From owner-freebsd-gecko@FreeBSD.ORG Sun Apr 3 09:55:35 2011 Return-Path: Delivered-To: gecko@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 68976106566B for ; Sun, 3 Apr 2011 09:55:35 +0000 (UTC) (envelope-from RemiZOffAlex@mail.ru) Received: from fallback3.mail.ru (fallback3.mail.ru [94.100.176.58]) by mx1.freebsd.org (Postfix) with ESMTP id C8F148FC0A for ; Sun, 3 Apr 2011 09:55:33 +0000 (UTC) Received: from smtp12.mail.ru (smtp12.mail.ru [94.100.176.89]) by fallback3.mail.ru (mPOP.Fallback_MX) with ESMTP id 302B06518981 for ; Sun, 3 Apr 2011 13:40:59 +0400 (MSD) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail; h=Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=F/+ljp/4giZCQ9bbdcc1pO73XdYfj6X3Rb2Xc27kKUM=; b=n3ROcH514rwdR2QLb0OYKhpnoFP4oFRPs28vQ8r0E9KayuufDUei+OaVCfApGna9MgdDLzgEkIvvK3FhLsnpCYkdkN5oT1/hGwon+A7BEe1Rq0vXeCulsrXf3y1qVxKJ; Received: from [91.103.79.75] (port=26357 helo=helper.home.net) by smtp12.mail.ru with asmtp id 1Q6Jnk-0002PJ-00 for gecko@FreeBSD.org; Sun, 03 Apr 2011 13:40:56 +0400 Message-ID: <4D9840A7.5060702@mail.ru> Date: Sun, 03 Apr 2011 13:40:55 +0400 From: Alex User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; ru-RU; rv:1.9.2.15) Gecko/20110402 Thunderbird/3.1.9 MIME-Version: 1.0 To: gecko@FreeBSD.org Content-Type: multipart/mixed; boundary="------------000002010007020907010601" X-Spam: Not detected X-Mras: Ok X-MR-Warn: 1 Cc: Subject: No install firefox4 X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Apr 2011 09:55:35 -0000 This is a multi-part message in MIME format. --------------000002010007020907010601 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit helper# ls /var/db/pkg ORBit2-2.14.19 libiodbc-3.52.7 OpenEXR-1.6.1_3 libkate-0.3.7_1 aalib-1.4.r5_5 libksba-1.2.0 akonadi-1.5.1 libktorrent-1.0.5 amspsfnt-1.0_5 libltdl-2.4 apache-1.3.42 libmad-0.15.1b_2 appres-1.0.3 libmikmod-esound-3.1.12 apr-ipv6-devrandom-gdbm-db42-1.4.2.1.3.10 libmng-1.0.10_2 ar-kde-l10n-4.6.1 libmodplug-0.8.8.1 arc-5.21o_1 libmpeg2-0.5.1 arj-3.10.22_4 libmsn-4.1 arts-1.5.10_5,1 libmspack-0.2_1 aspell-0.60.6_5 libmusicbrainz-2.1.5 atk-1.32.0 libnice-0.0.13_3 attica-0.2.80,1 libnotify-0.5.2 autoconf-2.13.000227_6 libnova-0.13.0 autoconf-2.68 libofa-0.9.3_4 autoconf-wrapper-20101119 libogg-1.2.2,4 automake-1.11.1 liboldX-1.0.1 automake-wrapper-20101119 libotr-3.2.0_3 automoc4-0.9.88_1 libpaper-1.1.24 avahi-app-0.6.29 libpciaccess-0.12.1 bash-4.1.9 libproxy-0.2.3_1 bg-kde-l10n-4.6.1 libpthread-stubs-0.3_3 bison-2.4.3,1 libqalculate-0.9.7_1 bitmap-1.0.5 libreoffice-3.3.2 bitstream-vera-1.10_4 librsvg2-2.32.1_1 boost-jam-1.45.0 libsamplerate-0.1.7_1 boost-libs-1.45.0_1 libsndfile-1.0.24 boost-python-libs-1.45.0_1 libsoup-2.32.2 ca-kde-l10n-4.5.5 libsoup-gnome-2.32.2 ca_root_nss-3.12.9 libspectre-0.2.6 ca_valencia-kde-l10n-4.5.5 libssh-0.4.8 cagibi-0.1.1 libtasn1-2.9 cairo-1.10.0_3,1 libtextcat-2.2_4 cdparanoia-3.9.8_9 libthai-0.1.5_4 cdrdao-1.2.3_1 libtheora-1.1.1_2 cdrtools-3.00_1 libtool-2.4 celt-0.7.0_1 libtunepimp-0.5.3_9,1 cfitsio-3.250 libublio-20070103 chmlib-0.40 libungif-4.1.4_5 clamav-0.97 libutempter-1.1.5_1 cln-1.3.1_1 libv4l-0.8.1 clucene-0.9.21 libvdpau-0.4.1_1 cmake-2.8.4 libvncserver-0.9.7_2 cmpsfont-1.0_6 libvolume_id-0.81.1 compositeproto-0.4.2 libvorbis-1.3.2,3 consolekit-0.4.3 libvpx-0.9.5 coreutils-8.5 libwnck-2.30.6 cppunit-1.12.1 libwpd-0.9.1 cs-kde-l10n-4.5.5 libwpg-0.2.0_1 ctorrent-3.3.2_3 libwps-0.2.0 cups-client-1.4.6 libwww-5.4.0_4 cups-image-1.4.6 libxcb-1.7 cups-pk-helper-0.0.4_2 libxine-1.1.19_2 curl-7.21.3_1 libxkbfile-1.0.6 cvsup-16.1h_4 libxkbui-1.0.2_1 cyrus-sasl-2.1.23_3 libxklavier-5.0,1 da-kde-l10n-4.5.5 libxml2-2.7.8_1 damageproto-1.2.1 libxslt-1.1.26_2 db41-4.1.25_4 libxul-1.9.2.13 db42-4.2.52_5 libzip-0.9.3 dbus-1.4.1 lp_solve-5.5.2.0 dbus-glib-0.88 lsof-4.85C_1,5 dconf-0.5.1_3 lt-kde-l10n-4.5.5 de-kde-l10n-4.5.5 luit-1.0.5 desktop-file-utils-0.15_2 lv-kde-l10n-4.5.5 desktop-installer-0.3 m4-1.4.16,1 djvulibre-nox11-3.5.23 mDNSResponder-214.3.2_1 dmidecode-2.10 makedepend-1.0.3,1 dmxproto-2.3 marble-4.5.5 docbook-1.4 mdbtools-gnome-0.5_14 docbook-4.1_4 meanwhile-1.0.2_2 docbook-4.2 mkfontdir-1.0.5 docbook-4.3 mkfontscale-1.0.7 docbook-4.4_2 ml-kde-l10n-4.5.5 docbook-4.5_2 mono-2.6.7_1 docbook-5.0_1 moonlight-2.2_2 docbook-sk-4.1.2_4 moonshine-0.7_2 docbook-xml-4.2_1 mp4v2-1.9.1 docbook-xml-4.3 mplayer-1.0.r20101106_1 docbook-xml-4.4_1 mplayer-skins-1.1.2_6 docbook-xml-4.5 musepack-2009.03.01_1 docbook-xsl-1.75.2_1 mySAR-2.1.4_2 dotconf-1.1.0 mysql-client-5.5.10 doxygen-1.7.3 mysql-server-5.5.10 dri-7.4.4,2 nas-1.9.2 dri2proto-2.3 nasm-2.09.07,1 dvd+rw-tools-7.1 nautilus-2.32.2.1 dvipsk-tetex-5.95a_5 nautilus-cd-burner-2.24.0_7 ebook-tools-0.2.1 nb-kde-l10n-4.5.5 eel-2.26.0_6 nds-kde-l10n-4.5.5 eggdbus-0.6_1 neon29-0.29.5 el-kde-l10n-4.5.5 netpbm-10.26.64_4 en-freebsd-doc-20110110 nl-kde-l10n-4.5.5 en_GB-kde-l10n-4.5.5 nn-kde-l10n-4.5.5 enchant-1.6.0 nspr-4.8.7 encodings-1.0.3,1 nss-3.12.9 es-kde-l10n-4.5.5 openbabel-2.2.3 esound-0.2.41 openjpeg-1.3_2 espeak-1.44.05 openldap-sasl-client-2.4.25_1 et-kde-l10n-4.5.5 openslp-1.2.1_3 eu-kde-l10n-4.5.5 orc-0.4.11 evolution-data-server-2.32.1 ortp-0.13.0_1 exempi-2.1.1 p5-Archive-Zip-1.30_1 exiv2-0.20,1 p5-DBD-mysql51-4.017 expat-2.0.1_1 p5-DBI-1.616 f2c-20060810_3 p5-Locale-gettext-1.05_3 faad2-2.7_3,1 p5-Storable-2.25 farsight2-0.0.22 p5-XML-LibXML-1.70,1 ffmpeg-0.6.1_3,1 p5-XML-NamespaceSupport-1.11 fftw3-3.2.2_1 p5-XML-Parser-2.40 fi-kde-l10n-4.5.5 p5-XML-SAX-0.96 firefox-3.6.13,1 p5-type1inst-0.6.1_5 firefox-i18n-3.6.13_1 pa-kde-l10n-4.5.5 fixesproto-4.1.2 pango-1.28.3 flac-1.2.1_2 patch-2.6.1_1 flashplugin-mozilla-0.4.13_5 pciids-20110312 font-adobe-100dpi-1.0.1 pcre-8.12 font-adobe-75dpi-1.0.1 pear-1.9.1_1 font-adobe-utopia-100dpi-1.0.2 pear-MDB2-2.5.0.b2 font-adobe-utopia-75dpi-1.0.2 pear-MDB2_Driver_mysql-1.5.0.b2 font-adobe-utopia-type1-1.0.2 perl-5.10.1_3 font-alias-1.0.2 phonon-4.4.2 font-arabic-misc-1.0.1 phonon-gstreamer-4.4.2 font-bh-100dpi-1.0.1 phonon-xine-4.4.2 font-bh-75dpi-1.0.1 php5-5.3.6 font-bh-lucidatypewriter-100dpi-1.0.1 php5-ctype-5.3.5 font-bh-lucidatypewriter-75dpi-1.0.1 php5-dom-5.3.5 font-bh-ttf-1.0.1 php5-extensions-1.4 font-bh-type1-1.0.1 php5-filter-5.3.5 font-bitstream-100dpi-1.0.1 php5-hash-5.3.5 font-bitstream-75dpi-1.0.1 php5-iconv-5.3.5 font-bitstream-type1-1.0.1 php5-json-5.3.5 font-cronyx-cyrillic-1.0.1 php5-mysql-5.3.5 font-cursor-misc-1.0.1 php5-pdo-5.3.5 font-daewoo-misc-1.0.1 php5-pdo_sqlite-5.3.5 font-dec-misc-1.0.1 php5-posix-5.3.5 font-ibm-type1-1.0.1 php5-session-5.3.5 font-isas-misc-1.0.1 php5-simplexml-5.3.6 font-jis-misc-1.0.1 php5-sqlite-5.3.5 font-micro-misc-1.0.1 php5-tokenizer-5.3.5 font-misc-cyrillic-1.0.1 php5-xml-5.3.5 font-misc-ethiopic-1.0.1 php5-xmlreader-5.3.5 font-misc-meltho-1.0.1 php5-xmlwriter-5.3.5 font-misc-misc-1.1.0 pixman-0.18.4 font-mutt-misc-1.0.1 pkg-config-0.25_1 font-schumacher-misc-1.1.0 pkgdb.db font-screen-cyrillic-1.0.2 pl-kde-l10n-4.5.5 font-sony-misc-1.0.1 pl-libgadu-1.10.1,1 font-sun-misc-1.0.1 plasma-scriptengine-python-4.5.5 font-util-1.2.0 plasma-scriptengine-ruby-4.5.5 font-winitzki-cyrillic-1.0.1 png-1.4.5 font-xfree86-type1-1.0.2 policykit-0.9_6 fontcacheproto-0.1.3 policykit-gnome-0.9.2_5 fontconfig-2.8.0,1 policykit-qt-0.9.4 fontsproto-2.1.1 polkit-0.99 fpc-2.4.2 poppler-0.14.5 fpc-fcl-async-2.4.2 poppler-data-0.4.4 fpc-fcl-base-2.4.2 poppler-qt4-0.14.5 fpc-fcl-net-2.4.2 popt-1.16 fpc-fcl-passrc-2.4.2 portaudio-18.1_2 fpc-fcl-xml-2.4.2 portupgrade-2.4.8_1,2 fpc-hash-2.4.2 printproto-1.0.4 fpc-iconvenc-2.4.2 pt-kde-l10n-4.5.5 fpc-paszlib-2.4.2 pt_BR-kde-l10n-4.5.5 fpc-pthreads-2.4.2 pth-2.0.7 fr-kde-l10n-4.5.5 pulseaudio-0.9.22 freetype2-2.4.4 py26-cairo-1.8.10 fribidi-0.19.2_1 py26-cups-1.9.53 fusefs-curlftpfs-0.9.2_3 py26-dbus-0.83.2 fusefs-httpfs-2.06.08.26 py26-fusefs-0.2_1 fusefs-kmod-0.3.9.p1.20080208_7 py26-gdata-2.0.13 fusefs-libs-2.7.4 py26-gobject-2.26.0 fusefs-ntfs-2010.10.2 py26-gstreamer-0.10.20 fusefs-smbnetfs-0.3.7 py26-gtk-2.22.0_1 fusefs-sshfs-2.2 py26-kdebindings-kde-4.5.5 fusefs-wikipediafs-0.3 py26-kdebindings-pykdeuic4-4.5.5 fy-kde-l10n-4.5.5 py26-libxml2-2.7.8_1 ga-kde-l10n-4.5.5 py26-notify-0.1.1_7 gamin-0.1.10_4 py26-qt4-core-4.8.1,1 gawk-3.1.8 py26-qt4-dbus-4.8.1,1 gccmakedep-1.0.2 py26-qt4-gui-4.8.1,1 gconf2-2.32.0_2 py26-qt4-network-4.8.1,1 gd-2.0.35_7,1 py26-qt4-phonon-4.8.1 gdbm-1.8.3_3 py26-qt4-svg-4.8.1,1 gdk-pixbuf-2.22.1 py26-qt4-webkit-4.8.1 getopt-1.1.4_2 py26-qt4-xml-4.8.1,1 gettext-0.18.1.1 py26-setuptools-0.6c11_1 ggz-client-libs-0.0.14.1_2 py26-sip-4.12.1,1 ghostscript8-8.71_6 py26-xml-0.8.4_2 gio-fam-backend-2.26.1 python26-2.6.6_1 gl-kde-l10n-4.5.5 qca-2.0.3 gle-3.1.0_2 qca-ossl-2.0.0.b3_4 glib-1.2.10_13 qimageblitz-0.0.6 glib-2.26.1_1 qmake-3.3.8_1 gmake-3.81_4 qscintilla2-2.4.5,1 gmime-24-2.4.15 qt-copy-3.3.8_12 gmp-5.0.1 qt4-assistant-4.7.1 gnome-desktop-2.32.1 qt4-clucene-4.7.1 gnome-desktop-sharp-2.26.0_6 qt4-corelib-4.7.1 gnome-doc-utils-0.20.3 qt4-dbus-4.7.1 gnome-icon-theme-2.31.0_1 qt4-declarative-4.7.1 gnome-keyring-2.32.1 qt4-designer-4.7.1 gnome-menus-2.30.5 qt4-doc-4.7.2 gnome-mime-data-2.18.0_4 qt4-gui-4.7.1 gnome-mount-0.8_7 qt4-help-4.7.1 gnome-panel-2.32.1 qt4-iconengines-4.7.1 gnome-settings-daemon-2.32.1_1 qt4-imageformats-4.7.1 gnome-sharp-2.24.1_5 qt4-inputmethods-4.7.1 gnome-vfs-2.24.4 qt4-makeqpf-4.7.1 gnome_subr-1.0 qt4-moc-4.7.2 gnomehier-2.3_12 qt4-multimedia-4.7.1 gnupg-2.0.17 qt4-mysql-plugin-4.7.1 gnutls-2.8.6_2 qt4-network-4.7.1 gobject-introspection-0.9.12 qt4-opengl-4.7.1 gpac-libgpac-0.4.5_4,1 qt4-pixeltool-4.7.1 gperf-3.0.3 qt4-porting-4.7.1 gpgme-1.3.0_3 qt4-qdbusviewer-4.7.1 gpsd-2.95 qt4-qmake-4.7.2 graphviz-2.26.3_3 qt4-qt3support-4.7.1 gsfonts-8.11_5 qt4-qtestlib-4.7.1 gsl-1.14 qt4-rcc-4.7.2 gstreamer-0.10.31 qt4-script-4.7.1 gstreamer-ffmpeg-0.10.11_1 qt4-scripttools-4.7.1 gstreamer-plugins-0.10.31,3 qt4-sql-4.7.1 gstreamer-plugins-a52dec-0.10.16,3 qt4-sqlite-plugin-4.7.1 gstreamer-plugins-bad-0.10.20,3 qt4-svg-4.7.1 gstreamer-plugins-core-0.10_12 qt4-uic-4.7.2 gstreamer-plugins-dts-0.10.20,3 qt4-webkit-4.7.1 gstreamer-plugins-dvd-0.10.16,3 qt4-xml-4.7.1 gstreamer-plugins-gconf-0.10.26,3 qt4-xmlpatterns-4.7.1 gstreamer-plugins-gio-0.10.31,3 qwt-5.2.1_1 gstreamer-plugins-good-0.10.26,3 randrproto-1.3.2 gstreamer-plugins-hal-0.10.26,3 raptor-1.4.21 gstreamer-plugins-libpng-0.10.26,3 rarian-0.8.1 gstreamer-plugins-mad-0.10.16,3 rasqal-0.9.20 gstreamer-plugins-mp3-0.10.0_1 recordproto-1.14 gstreamer-plugins-mpeg2dec-0.10.16,3 redland-1.0.12 gstreamer-plugins-ogg-0.10.31,3 renderproto-0.11 gstreamer-plugins-pango-0.10.31,3 rgb-1.0.3 gstreamer-plugins-soup-0.10.26,3 ro-kde-l10n-4.5.5 gstreamer-plugins-theora-0.10.31,3 ru-kde-l10n-4.5.5 gstreamer-plugins-ugly-0.10.16,3 ruby-1.8.7.302,1 gstreamer-plugins-vorbis-0.10.31,3 ruby18-bdb-0.6.5_1 gstreamer-plugins-xvid-0.10.20,3 ruby18-kdebindings-4.5.5 gtk-1.2.10_22 samba34-libsmbclient-3.4.9 gtk-2.22.1_1 samba35-3.5.6_2 gtk-engines2-2.20.2 sane-backends-1.0.21_2 gtk-sharp-2.12.10 schroedinger-1.0.10 gtkhtml3-3.32.1 scrnsaverproto-1.2.0 gtksourceview2-2.10.5 sdl-1.2.14_2,2 gu-kde-l10n-4.5.5 sessreg-1.0.5_1 gvfs-1.6.6 setxkbmap-1.1.0 hal-0.5.14_12 shared-desktop-ontologies-0.6.0 he-kde-l10n-4.5.5 shared-mime-info-0.80 help2man-1.39.2 sk-kde-l10n-4.5.5 hi-kde-l10n-4.5.5 sl-kde-l10n-4.5.5 hicolor-icon-theme-0.12 smproxy-1.0.3 hr-kde-l10n-4.5.5 soprano-2.5.3 hu-hunspell-1.2.11 speech-dispatcher-0.7.1 hu-kde-l10n-4.5.5 speex-1.2.r1_3,1 ia-kde-l10n-4.5.5 sqlite3-3.7.5 iceauth-1.0.3 squid-3.1.11 icu-4.6.1 squidGuard-1.4_3 id-kde-l10n-4.5.5 squid_radius_auth-1.10 ilmbase-1.0.1_1 sr-kde-l10n-4.5.5 imake-1.0.4,1 startup-notification-0.10_2 inputproto-2.0.1 strigi-0.7.2_1 intltool-0.41.1 subversion-1.6.15 is-kde-l10n-4.5.5 sv-kde-l10n-4.5.5 iso-codes-3.24.2 system-config-printer-1.1.16_2 iso8879-1986_2 system-config-printer-kde-4.5.5 it-kde-l10n-4.5.5 t1lib-5.1.2_1,1 ja-kde-l10n-4.5.5 taglib-1.7 jackit-0.118.0_3 talloc-2.0.1_1 jasper-1.900.1_9 tcl-8.5.9 jbig2dec-0.11 tcl-modules-8.5.9 jbigkit-1.6 tdb-1.2.1_1,1 jpeg-8_3 teTeX-base-3.0_21 kbproto-1.0.5 teTeX-texmf-3.0_6 kde-l10n-4.5.5 telepathy-farsight-0.0.15 kde4-4.5.5 telepathy-glib-0.12.7 kde4-freebsd-carddeck-1.0 telepathy-qt4-0.4.2 kde4-icons-oxygen-4.6.1 tex-texmflocal-1.9 kde4-shared-mime-info-1.1 texi2html-1.82,1 kde4-style-bespin-200912030441_3 th-kde-l10n-4.5.5 kde4-style-nitrogen-1.0.5_2 thunderbird-3.1.9 kde4-style-polyester-2.0.0_4 thunderbird-i18n-3.1.9 kde4-style-skulpture-0.2.3_3 tidy-lib-090315.c_1 kde4-windeco-dekorator-0.4.0.2_4 tiff-4.0.0 kde4-windeco-nitrogen-3.3.3_1 tinderbox-3.3_3 kde4-xdg-env-1.0 tmake-1.7_5 kdeaccessibility-4.5.5 totem-2.32.0 kdeadmin-4.5.5 totem-pl-parser-2.32.1 kdeartwork-4.5.5 tr-kde-l10n-4.5.5 kdebase-4.5.5 transmission-2.13 kdebase-runtime-4.5.5 transmission-cli-2.13 kdebase-workspace-4.5.5 transmission-daemon-2.22 kdebindings-smoke-4.5.5 transmission-gtk2-2.13 kdeedu-4.5.5 transmission-web-2.22 kdegames-4.5.5 transmisson-remote-gui-2.2 kdegraphics-4.5.5 trapproto-3.4.3 kdehier-1.0_11 twm-1.0.4 kdehier4-1.0.7 uk-kde-l10n-4.5.5 kdelibs-3.5.10_7 unique-1.1.6_2 kdelibs-4.5.5 unzip-6.0 kdemultimedia-4.5.5 unzoo-4.4_2 kdenetwork-4.5.5_1 v4l_compat-1.0.20101027_1 kdepim-4.4.9_1 vala-0.10.1 kdepim-runtime-4.4.9 vala-vapigen-0.10.1 kdepimlibs-4.5.5_1 vcdimager-0.7.23_6 kdeplasma-addons-4.5.5 videoproto-2.3.0 kdesdk-4.5.5 vigra-1.6.0_3 kdetoys-4.5.5 vorbis-tools-1.4.0_1,3 kdeutils-4.5.5_1 vte-0.26.2 kdeutils-printer-applet-4.5.5 wa-kde-l10n-4.5.5 kdewebdev-4.5.5 wget-1.12_3 kk-kde-l10n-4.5.5 wxgtk2-common-2.6.4_5 km-kde-l10n-4.5.5 wxgtk2-unicode-2.6.4_5 kmplayer-kde4-0.11.2b,3 x11perf-1.5.1 kn-kde-l10n-4.5.5 x264-0.110.1820 ko-kde-l10n-4.5.5 xauth-1.0.4 ktorrent-4.0.5 xbacklight-1.1.1 ktts-4.5.5 xbitmaps-1.1.0 kwebkitpart-0.9.6.b1_1 xcalc-1.0.3 kxmleditor-1.1.4_8 xcb-util-0.3.6_1 lcms-1.19_1,1 xclock-1.0.4_1 lha-1.14i_6 xcmsdb-1.0.2 libFS-1.0.2 xcursor-themes-1.0.2 libGL-7.4.4 xcursorgen-1.0.3 libGLU-7.4.4 xdg-utils-1.0.2_5 libICE-1.0.6,1 xdpyinfo-1.1.0 libIDL-0.8.14_1 xdriinfo-1.0.3 libSM-1.1.1_3,1 xev-1.0.4 libX11-1.3.3_1,1 xextproto-7.1.1 libXScrnSaver-1.2.0 xf86-input-keyboard-1.4.0 libXTrap-1.0.0 xf86-input-mouse-1.5.0 libXau-1.0.5 xf86-video-ati-6.13.2 libXaw-1.0.7,1 xf86-video-intel-2.7.1_3 libXcomposite-0.4.1,1 xf86-video-mach64-6.8.2 libXcursor-1.1.10 xf86-video-nv-2.1.17 libXdamage-1.1.2 xf86-video-openchrome-0.2.904_2 libXdmcp-1.0.3 xf86-video-r128-6.8.1 libXevie-1.0.2 xf86-video-radeonhd-1.3.0_3 libXext-1.1.1,1 xf86-video-vesa-2.3.0 libXfixes-4.0.4 xf86dga-1.0.2_1 libXfont-1.4.0,1 xf86dgaproto-2.1 libXfontcache-1.0.5 xf86miscproto-0.9.3 libXft-2.1.14 xf86vidmodeproto-2.3 libXi-1.3,1 xgamma-1.0.3 libXinerama-1.1,1 xgc-1.0.2 libXmu-1.0.5,1 xhost-1.0.3 libXp-1.0.0,1 xineramaproto-1.2 libXpm-3.5.7 xinit-1.2.0_1 libXrandr-1.3.0 xinput-1.5.0 libXrender-0.9.5 xkbcomp-1.1.0 libXres-1.0.4 xkbevd-1.1.0 libXt-1.0.7 xkbutils-1.0.1_2 libXtst-1.1.0 xkeyboard-config-1.8_1 libXv-1.0.5,1 xkill-1.0.2 libXvMC-1.0.5 xlsatoms-1.0.2 libXxf86dga-1.1.1 xlsclients-1.0.2 libXxf86misc-1.0.2 xmessage-1.0.3 libXxf86vm-1.1.0 xmlcatmgr-2.2 liba52-0.7.4_2 xmlcharent-0.3_2 libao-1.0.0 xmms-1.2.11_14 libart_lgpl-2.3.21,1 xmms-avi-1.2.3_8 libassuan-2.0.1_1 xmms-skins-0.1_3 libaudiofile-0.2.7 xmms-status-plugin-1.0_4 libbonobo-2.32.0 xmodmap-1.0.4 libbonoboui-2.24.4 xorg-7.5 libcanberra-0.26 xorg-apps-7.5_1 libcddb-1.3.2_1 xorg-cf-files-1.0.3 libcdio-0.82_1 xorg-docs-1.4,1 libcroco-0.6.2_1 xorg-drivers-7.5 libdaemon-0.14 xorg-edit-07.08.11_4 libdbusmenu-qt-0.6.6 xorg-fonts-100dpi-7.5 libdca-0.0.5 xorg-fonts-7.5 libdmx-1.1.0 xorg-fonts-75dpi-7.5 libdrm-2.4.12_1 xorg-fonts-cyrillic-7.5 libdvdread-4.1.4.r1219 xorg-fonts-miscbitmaps-7.5 libevent-1.4.14b_2 xorg-fonts-truetype-7.5 libevent2-2.0.10_1 xorg-fonts-type1-7.5 libexecinfo-1.1_3 xorg-libraries-7.5 libexif-0.6.20 xorg-server-1.7.5,1 libfame-0.9.1_3 xorg-vfbserver-1.7.5,1 libffi-3.0.9 xpi-quick-locale-switcher-1.7.3.1 libflash-0.4.13_5 xplanet-1.2.1 libfontenc-1.0.5 xpr-1.0.3 libgcrypt-1.4.6 xprop-1.1.0 libgdata-0.6.6 xproto-7.0.16 libgee-0.6.0 xrandr-1.3.2 libggz-0.0.14.1_7 xrdb-1.0.6 libglade2-2.6.4_3 xrefresh-1.0.3 libglut-7.4.4 xscreensaver-5.12_1 libgnome-2.32.0 xset-1.1.0 libgnome-keyring-2.32.0 xsetmode-1.0.0 libgnomecanvas-2.30.2 xsetroot-1.0.3 libgnomekbd-2.32.0 xterm-267 libgnomeprint-2.18.8 xtrans-1.2.5 libgnomeprintui-2.18.6 xvid-1.3.0,1 libgnomeui-2.24.4 xvinfo-1.1.0 libgpg-error-1.10 xwd-1.0.3 libgphoto2-2.4.10.1_2 xwininfo-1.0.5 libgsf-1.14.19 xwud-1.0.2 libgweather-2.30.3 xz-5.0.0 libical-0.44 yasm-1.1.0 libiconv-1.13.1_1 zh_CN-kde-l10n-4.5.5 libid3tag-0.15.1b zh_TW-kde-l10n-4.5.5 libidn-1.16 zip-3.0 --------------000002010007020907010601 Content-Type: text/plain; name="config.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.log" VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMg d2hpbGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJl IG1ha2VzIGEgbWlzdGFrZS4KCmNvbmZpZ3VyZToxMDMzOiBjaGVja2luZyBob3N0IHN5c3Rl bSB0eXBlCmNvbmZpZ3VyZToxMDU0OiBjaGVja2luZyB0YXJnZXQgc3lzdGVtIHR5cGUKY29u ZmlndXJlOjEwNzI6IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlCmNvbmZpZ3VyZToxMTUz OiBjaGVja2luZyBmb3IgbWF3awpjb25maWd1cmU6MTE1MzogY2hlY2tpbmcgZm9yIGdhd2sK Y29uZmlndXJlOjEyODM6IGNoZWNraW5nIGZvciAvdXNyL2xvY2FsL2Jpbi9wZXJsNS4xMC4x CmNvbmZpZ3VyZToyNDIyOiBjaGVja2luZyBmb3IgZ2NjCmNvbmZpZ3VyZToyNTM1OiBjaGVj a2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIChjYyAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0 cmljdC1hbGlhc2luZyAgICApIHdvcmtzCmNvbmZpZ3VyZToyNTUxOiBjYyAtbyBjb25mdGVz dCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAgICAgICAgY29uZnRlc3Qu YyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6MjU3 NzogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciAoY2MgLU8yIC1waXBlICAtTzIg LWZuby1zdHJpY3QtYWxpYXNpbmcgICAgKSBpcyBhIGNyb3NzLWNvbXBpbGVyCmNvbmZpZ3Vy ZToyNTgyOiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyBHTlUgQwpjb25maWd1cmU6 MjU5MTogY2MgLUUgY29uZnRlc3QuYwpjb25maWd1cmU6MjYxMDogY2hlY2tpbmcgd2hldGhl ciBjYyBhY2NlcHRzIC1nCmNvbmZpZ3VyZToyNjQ2OiBjaGVja2luZyBmb3IgYysrCmNvbmZp Z3VyZToyNjc4OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgKGMrKyAtTzIg LXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICkgd29ya3MKY29uZmlndXJlOjI2 OTQ6IGMrKyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5n ICAgICAgICBjb25mdGVzdC5DIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAx PiY1CmNvbmZpZ3VyZToyNzIwOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIg KGMrKyAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICkgaXMgYSBjcm9z cy1jb21waWxlcgpjb25maWd1cmU6MjcyNTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNp bmcgR05VIEMrKwpjb25maWd1cmU6MjczNDogYysrIC1FIGNvbmZ0ZXN0LkMKY29uZmlndXJl OjI3NTM6IGNoZWNraW5nIHdoZXRoZXIgYysrIGFjY2VwdHMgLWcKY29uZmlndXJlOjI3ODc6 IGNoZWNraW5nIGZvciByYW5saWIKY29uZmlndXJlOjI4MTk6IGNoZWNraW5nIGZvciBhcwpj b25maWd1cmU6Mjg3MzogY2hlY2tpbmcgZm9yIGFyCmNvbmZpZ3VyZToyOTA4OiBjaGVja2lu ZyBmb3IgbGQKY29uZmlndXJlOjI5NDM6IGNoZWNraW5nIGZvciBzdHJpcApjb25maWd1cmU6 Mjk3ODogY2hlY2tpbmcgZm9yIHdpbmRyZXMKY29uZmlndXJlOjM4MTk6IGNoZWNraW5nIHdo ZXRoZXIgY2MgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0aGVyCmNvbmZpZ3VyZTozODMx OiBjYyAtYyBjb25mdGVzdC5jIC1vIGNvbmZ0ZXN0Lm8gMT4mNQpjb25maWd1cmU6MzgzMjog Y2MgLWMgY29uZnRlc3QuYyAtbyBjb25mdGVzdC5vIDE+JjUKY29uZmlndXJlOjM4NzY6IGNo ZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTozOTU2OiBj aGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTozOTc0 OiBjKysgLUUgICAgY29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZp Z3VyZTo0MDU1OiBjaGVja2luZyBmb3IgYSBCU0QgY29tcGF0aWJsZSBpbnN0YWxsCmNvbmZp Z3VyZTo0MTA4OiBjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzCmNvbmZpZ3VyZTo0MTMx OiBjaGVja2luZyBmb3IgbWluaW11bSByZXF1aXJlZCBwZXJsIHZlcnNpb24gPj0gNS4wMDYK Y29uZmlndXJlOjQxNDI6IGNoZWNraW5nIGZvciBmdWxsIHBlcmwgaW5zdGFsbGF0aW9uCmNv bmZpZ3VyZTo0MTU3OiBjaGVja2luZyBmb3IgcHl0aG9uMi43CmNvbmZpZ3VyZTo0MTU3OiBj aGVja2luZyBmb3IgcHl0aG9uMi42CmNvbmZpZ3VyZTo0MjE3OiBjaGVja2luZyBmb3IgZG94 eWdlbgpjb25maWd1cmU6NDI2NjogY2hlY2tpbmcgZm9yIGF1dG9jb25mCmNvbmZpZ3VyZTo0 MzE1OiBjaGVja2luZyBmb3IgdW56aXAKY29uZmlndXJlOjQzNjY6IGNoZWNraW5nIGZvciB6 aXAKY29uZmlndXJlOjQ0MjA6IGNoZWNraW5nIGZvciBtYWtlZGVwZW5kCmNvbmZpZ3VyZTo0 NDY4OiBjaGVja2luZyBmb3IgeGFyZ3MKY29uZmlndXJlOjQ4NDE6IGNoZWNraW5nIGZvciBn bWFrZQpjb25maWd1cmU6NDkwNDogY2hlY2tpbmcgZm9yIFgKY29uZmlndXJlOjUyMTg6IGNo ZWNraW5nIGZvciBkbmV0X250b2EgaW4gLWxkbmV0CmNvbmZpZ3VyZTo1MjM3OiBjYyAtbyBj b25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAgICAgICAgY29u ZnRlc3QuYyAtbGRuZXQgIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1 Ci91c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbGRuZXQKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CiNsaW5lIDUyMjYgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgi Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl cnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy ZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50 IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCmNoYXIgZG5ldF9udG9hKCk7Cgpp bnQgbWFpbigpIHsKZG5ldF9udG9hKCkKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6NTI1OTog Y2hlY2tpbmcgZm9yIGRuZXRfbnRvYSBpbiAtbGRuZXRfc3R1Ygpjb25maWd1cmU6NTI3ODog Y2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAg ICAgIGNvbmZ0ZXN0LmMgLWxkbmV0X3N0dWIgIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIg LWxpY29udiAxPiY1Ci91c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbGRuZXRfc3R1Ygpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgNTI2NyAiY29uZmlndXJlIgojaW5j bHVkZSAiY29uZmRlZnMuaCIKLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90 eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQg bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQg dGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hh ciBkbmV0X250b2EoKTsKCmludCBtYWluKCkgewpkbmV0X250b2EoKQo7IHJldHVybiAwOyB9 CmNvbmZpZ3VyZTo1MzA3OiBjaGVja2luZyBmb3IgZ2V0aG9zdGJ5bmFtZQpjb25maWd1cmU6 NTMzNTogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNp bmcgICAgICAgIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252 IDE+JjUKY29uZmlndXJlOjU0MDU6IGNoZWNraW5nIGZvciBjb25uZWN0CmNvbmZpZ3VyZTo1 NDMzOiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2lu ZyAgICAgICAgY29uZnRlc3QuYyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYg MT4mNQpjb25maWd1cmU6NTQ5NzogY2hlY2tpbmcgZm9yIHJlbW92ZQpjb25maWd1cmU6NTUy NTogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcg ICAgICAgIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+ JjUKY29uZmlndXJlOjU1ODk6IGNoZWNraW5nIGZvciBzaG1hdApjb25maWd1cmU6NTYxNzog Y2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAg ICAgIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUK Y29uZmlndXJlOjU2OTA6IGNoZWNraW5nIGZvciBJY2VDb25uZWN0aW9uTnVtYmVyIGluIC1s SUNFCmNvbmZpZ3VyZTo1NzA5OiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5v LXN0cmljdC1hbGlhc2luZyAgICAgICAgLUwvdXNyL2xvY2FsL2xpYiBjb25mdGVzdC5jIC1s SUNFICAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6 NjIwNDogY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgLVduby1pbnZh bGlkLW9mZnNldG9mCmNvbmZpZ3VyZTo2MjI3OiBjKysgLWMgLU8yIC1waXBlIC1PMiAtZm5v LXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtV25vLWludmFsaWQtb2Zm c2V0b2YgICAgY29uZnRlc3QuQyAxPiY1CmNvbmZpZ3VyZTo2MjU0OiBjaGVja2luZyB3aGV0 aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyAtV25vLXZhcmlhZGljLW1hY3Jvcwpjb25maWd1 cmU6NjI3NzogYysrIC1jIC1PMiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZu by1zdHJpY3QtYWxpYXNpbmcgLVduby12YXJpYWRpYy1tYWNyb3MgICAgY29uZnRlc3QuQyAx PiY1CmNvbmZpZ3VyZTo2MzA0OiBjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBw b3J0cyAtV2Vycm9yPXJldHVybi10eXBlCmNvbmZpZ3VyZTo2MzI3OiBjKysgLWMgLU8yIC1w aXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtV2Vy cm9yPXJldHVybi10eXBlICAgIGNvbmZ0ZXN0LkMgMT4mNQpjb25maWd1cmU6NjM2MzogY2hl Y2tpbmcgd2hldGhlciBsZCBoYXMgYXJjaGl2ZSBleHRyYWN0aW9uIGZsYWdzCmNvbmZpZ3Vy ZTo2Mzg3OiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlh c2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICAtV2wsLS13aG9sZS1hcmNoaXZlIGNvbmZ0 ZXN0LmMgLVdsLC0tbm8td2hvbGUtYXJjaGl2ZSAxPiY1CmNvbmZpZ3VyZTo2NDIwOiBjaGVj a2luZyB0aGF0IHN0YXRpYyBhc3NlcnRpb24gbWFjcm9zIHVzZWQgaW4gYXV0b2NvbmYgdGVz dHMgd29yawpjb25maWd1cmU6NjQ0MTogY2MgLWMgLU8yIC1waXBlICAtTzIgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgY29uZnRlc3QuYyAxPiY1CmNv bmZpZ3VyZTo2NDU4OiBjYyAtYyAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2lu ZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOiBJ biBmdW5jdGlvbiAnbWFpbic6CmNvbmZpZ3VyZTo2NDU5OiBlcnJvcjogc2l6ZSBvZiBhcnJh eSAnc3RhdGljX2Fzc2VydF9saW5lXzY0NTgnIGlzIG5lZ2F0aXZlCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgojbGluZSA2NDUxICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25m ZGVmcy5oIgoKI2RlZmluZSBDT05GSUdVUkVfU1RBVElDX0FTU0VSVChjb25kaXRpb24pIENP TkZJR1VSRV9TVEFUSUNfQVNTRVJUX0lNUEwoY29uZGl0aW9uLCBfX0xJTkVfXykKI2RlZmlu ZSBDT05GSUdVUkVfU1RBVElDX0FTU0VSVF9JTVBMKGNvbmRpdGlvbiwgbGluZSkgQ09ORklH VVJFX1NUQVRJQ19BU1NFUlRfSU1QTDIoY29uZGl0aW9uLCBsaW5lKQojZGVmaW5lIENPTkZJ R1VSRV9TVEFUSUNfQVNTRVJUX0lNUEwyKGNvbmRpdGlvbiwgbGluZSkgdHlwZWRlZiBpbnQg c3RhdGljX2Fzc2VydF9saW5lXyMjbGluZVsoY29uZGl0aW9uKSA/IDEgOiAtMV0KCmludCBt YWluKCkgewpDT05GSUdVUkVfU1RBVElDX0FTU0VSVCgwKQo7IHJldHVybiAwOyB9CmNvbmZp Z3VyZTo2NDgxOiBjKysgLWMgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLXN0cmljdC1hbGlhc2luZyAgICBjb25mdGVzdC5DIDE+JjUKY29uZmlndXJlOjY0OTg6 IGMrKyAtYyAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0 LWFsaWFzaW5nICAgIGNvbmZ0ZXN0LkMgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0aW9uICdp bnQgbWFpbigpJzoKY29uZmlndXJlOjY0OTg6IGVycm9yOiBzaXplIG9mIGFycmF5ICdzdGF0 aWNfYXNzZXJ0X2xpbmVfNjQ5OCcgaXMgbmVnYXRpdmUKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CiNsaW5lIDY0OTEgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgi CgojZGVmaW5lIENPTkZJR1VSRV9TVEFUSUNfQVNTRVJUKGNvbmRpdGlvbikgQ09ORklHVVJF X1NUQVRJQ19BU1NFUlRfSU1QTChjb25kaXRpb24sIF9fTElORV9fKQojZGVmaW5lIENPTkZJ R1VSRV9TVEFUSUNfQVNTRVJUX0lNUEwoY29uZGl0aW9uLCBsaW5lKSBDT05GSUdVUkVfU1RB VElDX0FTU0VSVF9JTVBMMihjb25kaXRpb24sIGxpbmUpCiNkZWZpbmUgQ09ORklHVVJFX1NU QVRJQ19BU1NFUlRfSU1QTDIoY29uZGl0aW9uLCBsaW5lKSB0eXBlZGVmIGludCBzdGF0aWNf YXNzZXJ0X2xpbmVfIyNsaW5lWyhjb25kaXRpb24pID8gMSA6IC0xXQoKaW50IG1haW4oKSB7 CkNPTkZJR1VSRV9TVEFUSUNfQVNTRVJUKDApCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjY1 MzI6IGNoZWNraW5nIGZvciA2NC1iaXQgT1MKY29uZmlndXJlOjY1NDE6IGNjIC1jIC1PMiAt cGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAg IGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZmln dXJlOjY1NDI6IGVycm9yOiBzaXplIG9mIGFycmF5ICdzdGF0aWNfYXNzZXJ0X2xpbmVfNjU0 MScgaXMgbmVnYXRpdmUKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDY1 MzQgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCgojZGVmaW5lIENPTkZJR1VS RV9TVEFUSUNfQVNTRVJUKGNvbmRpdGlvbikgQ09ORklHVVJFX1NUQVRJQ19BU1NFUlRfSU1Q TChjb25kaXRpb24sIF9fTElORV9fKQojZGVmaW5lIENPTkZJR1VSRV9TVEFUSUNfQVNTRVJU X0lNUEwoY29uZGl0aW9uLCBsaW5lKSBDT05GSUdVUkVfU1RBVElDX0FTU0VSVF9JTVBMMihj b25kaXRpb24sIGxpbmUpCiNkZWZpbmUgQ09ORklHVVJFX1NUQVRJQ19BU1NFUlRfSU1QTDIo Y29uZGl0aW9uLCBsaW5lKSB0eXBlZGVmIGludCBzdGF0aWNfYXNzZXJ0X2xpbmVfIyNsaW5l Wyhjb25kaXRpb24pID8gMSA6IC0xXQoKaW50IG1haW4oKSB7CkNPTkZJR1VSRV9TVEFUSUNf QVNTRVJUKHNpemVvZih2b2lkKikgPT0gOCkKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6Njgx NzogY2hlY2tpbmcgZm9yIFB5dGhvbiB2ZXJzaW9uID49IDIuNSBidXQgbm90IDMueApjb25m aWd1cmU6ODM0NzogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMKY29uZmlndXJl OjgzNjA6IGNwcCAgICBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29u ZmlndXJlOjg0Mjc6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAgICBjb25mdGVzdC5jIC1wdGhy ZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1CmNvbmZpZ3VyZTogSW4gZnVuY3Rp b24gJ21haW4nOgpjb25maWd1cmU6ODQyMjogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0Jwpjb25maWd1cmU6 ODQ1MTogY2hlY2tpbmcgZm9yIHdvcmtpbmcgY29uc3QKY29uZmlndXJlOjg1MDU6IGNjIC1j IC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFz aW5nICAgIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6ODUyNjogY2hlY2tpbmcgZm9yIG1v ZGVfdApjb25maWd1cmU6ODU1OTogY2hlY2tpbmcgZm9yIG9mZl90CmNvbmZpZ3VyZTo4NTky OiBjaGVja2luZyBmb3IgcGlkX3QKY29uZmlndXJlOjg2MjU6IGNoZWNraW5nIGZvciBzaXpl X3QKY29uZmlndXJlOjg2NjU6IGNoZWNraW5nIGZvciBfX3N0ZGNhbGwKY29uZmlndXJlOjg2 Nzk6IGMrKyAtYyAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3Ry aWN0LWFsaWFzaW5nICAgIGNvbmZ0ZXN0LkMgMT4mNQpjb25maWd1cmU6ODY3MzogZXJyb3I6 ICdfX3N0ZGNhbGwnIHdhcyBub3QgZGVjbGFyZWQgaW4gdGhpcyBzY29wZQpjb25maWd1cmU6 ODY3MzogZXJyb3I6IHRlbXBsYXRlIGFyZ3VtZW50IDEgaXMgaW52YWxpZApjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgODY3MCAiY29uZmlndXJlIgojaW5jbHVkZSAi Y29uZmRlZnMuaCIKdGVtcGxhdGUgPHR5cGVuYW1lIE1ldGhvZD4gc3RydWN0IGZvbzsKICAg ICAgICAgICAgICAgICAgdGVtcGxhdGUgPD4gc3RydWN0IGZvbzx2b2lkICgqKSgpPiB7fTsK ICAgICAgICAgICAgICAgICAgdGVtcGxhdGUgPD4gc3RydWN0IGZvbzx2b2lkIChfX3N0ZGNh bGwqKSgpPiB7fTsKaW50IG1haW4oKSB7Cgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTo4NzA4 OiBjaGVja2luZyBmb3Igc3NpemVfdApjb25maWd1cmU6ODcyMTogY2MgLWMgLU8yIC1waXBl ICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgY29u ZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZTo4NzQzOiBjaGVja2luZyBmb3Igc3RfYmxrc2l6ZSBp biBzdHJ1Y3Qgc3RhdApjb25maWd1cmU6ODc1NjogY2MgLWMgLU8yIC1waXBlICAtTzIgLWZu by1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgY29uZnRlc3QuYyAx PiY1CmNvbmZpZ3VyZTo4Nzc3OiBjaGVja2luZyBmb3Igc2lnaW5mb190CmNvbmZpZ3VyZTo4 NzkwOiBjYyAtYyAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0 cmljdC1hbGlhc2luZyAgICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjg4MTM6IGNoZWNr aW5nIGZvciBpbnQxNl90CmNvbmZpZ3VyZTo4ODI2OiBjYyAtYyAtTzIgLXBpcGUgIC1PMiAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICBjb25mdGVzdC5j IDE+JjUKY29uZmlndXJlOjg4NDg6IGNoZWNraW5nIGZvciBpbnQzMl90CmNvbmZpZ3VyZTo4 ODYxOiBjYyAtYyAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0 cmljdC1hbGlhc2luZyAgICBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjg4ODM6IGNoZWNr aW5nIGZvciBpbnQ2NF90CmNvbmZpZ3VyZTo4ODk2OiBjYyAtYyAtTzIgLXBpcGUgIC1PMiAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICBjb25mdGVzdC5j IDE+JjUKY29uZmlndXJlOjg5MTg6IGNoZWNraW5nIGZvciBpbnQ2NApjb25maWd1cmU6ODkz MTogY2MgLWMgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJp Y3QtYWxpYXNpbmcgICAgY29uZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24g J21haW4nOgpjb25maWd1cmU6ODkyNzogZXJyb3I6ICdpbnQ2NCcgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNvbmZpZ3VyZTo4OTI3OiBlcnJvcjogKEVhY2gg dW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQpjb25maWd1cmU6 ODkyNzogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQpjb25maWd1 cmU6ODkyNzogZXJyb3I6IGV4cGVjdGVkICc7JyBiZWZvcmUgJ2ZvbycKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDg5MjMgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNv bmZkZWZzLmgiCiNpbmNsdWRlIDxzdGRpby5oPgogICAgICAgICAgICAgICAgICAjaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CmludCBtYWluKCkgewppbnQ2NCBmb28gPSAwOwo7IHJldHVybiAw OyB9CmNvbmZpZ3VyZTo4OTUzOiBjaGVja2luZyBmb3IgdWludApjb25maWd1cmU6ODk2Njog Y2MgLWMgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3Qt YWxpYXNpbmcgICAgY29uZnRlc3QuYyAxPiY1CmNvbmZpZ3VyZTo4OTg4OiBjaGVja2luZyBm b3IgdWludF90CmNvbmZpZ3VyZTo5MDAxOiBjYyAtYyAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0 cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICBjb25mdGVzdC5jIDE+JjUK Y29uZmlndXJlOiBJbiBmdW5jdGlvbiAnbWFpbic6CmNvbmZpZ3VyZTo4OTk3OiBlcnJvcjog J3VpbnRfdCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCmNvbmZp Z3VyZTo4OTk3OiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9y dGVkIG9ubHkgb25jZQpjb25maWd1cmU6ODk5NzogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9u IGl0IGFwcGVhcnMgaW4uKQpjb25maWd1cmU6ODk5NzogZXJyb3I6IGV4cGVjdGVkICc7JyBi ZWZvcmUgJ2ZvbycKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDg5OTMg ImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCiNpbmNsdWRlIDxzdGRpby5oPgog ICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CmludCBtYWluKCkgewp1 aW50X3QgZm9vID0gMDsKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6OTAyMzogY2hlY2tpbmcg Zm9yIHVpbnQxNl90CmNvbmZpZ3VyZTo5MDM2OiBjYyAtYyAtTzIgLXBpcGUgIC1PMiAtZm5v LXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICBjb25mdGVzdC5jIDE+ JjUKY29uZmlndXJlOjkwNjc6IGNoZWNraW5nIGZvciB1bmFtZS5kb21haW5uYW1lCmNvbmZp Z3VyZTo5MDgwOiBjKysgLWMgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLXN0cmljdC1hbGlhc2luZyAgICBjb25mdGVzdC5DIDE+JjUKY29uZmlndXJlOiBJbiBm dW5jdGlvbiAnaW50IG1haW4oKSc6CmNvbmZpZ3VyZTo5MDc2OiBlcnJvcjogJ3N0cnVjdCB1 dHNuYW1lJyBoYXMgbm8gbWVtYmVyIG5hbWVkICdkb21haW5uYW1lJwpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgOTA3MiAiY29uZmlndXJlIgojaW5jbHVkZSAiY29u ZmRlZnMuaCIKI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CmludCBtYWluKCkgewogc3RydWN0 IHV0c25hbWUgKnJlczsgY2hhciAqZG9tYWluOyAKICAgICAgICAgICAgKHZvaWQpdW5hbWUo cmVzKTsgIGlmIChyZXMgIT0gMCkgeyBkb21haW4gPSByZXMtPmRvbWFpbm5hbWU7IH0gCjsg cmV0dXJuIDA7IH0KY29uZmlndXJlOjkxMDQ6IGNoZWNraW5nIGZvciB1bmFtZS5fX2RvbWFp bm5hbWUKY29uZmlndXJlOjkxMTc6IGMrKyAtYyAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgIGNvbmZ0ZXN0LkMgMT4mNQpjb25m aWd1cmU6IEluIGZ1bmN0aW9uICdpbnQgbWFpbigpJzoKY29uZmlndXJlOjkxMTM6IGVycm9y OiAnc3RydWN0IHV0c25hbWUnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ19fZG9tYWlubmFtZScK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDkxMDkgImNvbmZpZ3VyZSIK I2luY2x1ZGUgImNvbmZkZWZzLmgiCiNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgppbnQgbWFp bigpIHsKIHN0cnVjdCB1dHNuYW1lICpyZXM7IGNoYXIgKmRvbWFpbjsgCiAgICAgICAgICAg ICh2b2lkKXVuYW1lKHJlcyk7ICBpZiAocmVzICE9IDApIHsgZG9tYWluID0gcmVzLT5fX2Rv bWFpbm5hbWU7IH0gCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjkxNDk6IGNoZWNraW5nIGZv ciB1c2FibGUgY2hhcjE2X3QgKDIgYnl0ZXMsIHVuc2lnbmVkKQpjb25maWd1cmU6OTE2NTog YysrIC1jIC1PMiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3Qt YWxpYXNpbmcgICAgY29uZnRlc3QuQyAxPiY1CmNvbmZpZ3VyZTo5MTY1OjE6IHdhcm5pbmc6 IGhleCBlc2NhcGUgc2VxdWVuY2Ugb3V0IG9mIHJhbmdlCmNvbmZpZ3VyZTogSW4gZnVuY3Rp b24gJ2ludCBtYWluKCknOgpjb25maWd1cmU6OTE2MTogZXJyb3I6ICdjaGFyMTZfdCcgd2Fz IG5vdCBkZWNsYXJlZCBpbiB0aGlzIHNjb3BlCmNvbmZpZ3VyZTo5MTYzOiBlcnJvcjogJ3Un IHdhcyBub3QgZGVjbGFyZWQgaW4gdGhpcyBzY29wZQpjb25maWd1cmU6OTE2MzogZXJyb3I6 IGV4cGVjdGVkIGApJyBiZWZvcmUgc3RyaW5nIGNvbnN0YW50CmNvbmZpZ3VyZTo5MTYzOiBl cnJvcjogZXhwZWN0ZWQgYCknIGJlZm9yZSAnOycgdG9rZW4KY29uZmlndXJlOjkxNjM6IGVy cm9yOiBleHBlY3RlZCBgKScgYmVmb3JlICc7JyB0b2tlbgpjb25maWd1cmU6OTE2MzogZXJy b3I6IGV4cGVjdGVkIGBdJyBiZWZvcmUgJzsnIHRva2VuCmNvbmZpZ3VyZTo5MTY0OiBlcnJv cjogZXhwZWN0ZWQgYCknIGJlZm9yZSAnYScKY29uZmlndXJlOjkxNjQ6IGVycm9yOiBleHBl Y3RlZCBgKScgYmVmb3JlICc7JyB0b2tlbgpjb25maWd1cmU6OTE2NDogZXJyb3I6IGV4cGVj dGVkIGBdJyBiZWZvcmUgJzsnIHRva2VuCmNvbmZpZ3VyZTo5MTY1OiBlcnJvcjogZXhwZWN0 ZWQgYCknIGJlZm9yZSAnXHhmZmZmZmZmZicKY29uZmlndXJlOjkxNjY6IGVycm9yOiBleHBl Y3RlZCBgXScgYmVmb3JlICc7JyB0b2tlbgpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKI2xpbmUgOTE1NCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCiNkZWZp bmUgQ09ORklHVVJFX1NUQVRJQ19BU1NFUlQoY29uZGl0aW9uKSBDT05GSUdVUkVfU1RBVElD X0FTU0VSVF9JTVBMKGNvbmRpdGlvbiwgX19MSU5FX18pCiNkZWZpbmUgQ09ORklHVVJFX1NU QVRJQ19BU1NFUlRfSU1QTChjb25kaXRpb24sIGxpbmUpIENPTkZJR1VSRV9TVEFUSUNfQVNT RVJUX0lNUEwyKGNvbmRpdGlvbiwgbGluZSkKI2RlZmluZSBDT05GSUdVUkVfU1RBVElDX0FT U0VSVF9JTVBMMihjb25kaXRpb24sIGxpbmUpIHR5cGVkZWYgaW50IHN0YXRpY19hc3NlcnRf bGluZV8jI2xpbmVbKGNvbmRpdGlvbikgPyAxIDogLTFdCgppbnQgbWFpbigpIHsKQ09ORklH VVJFX1NUQVRJQ19BU1NFUlQoc2l6ZW9mKGNoYXIxNl90KSA9PSAyKTsKICAgICAgICAgICAg ICAgICAgICAgQ09ORklHVVJFX1NUQVRJQ19BU1NFUlQoY2hhcjE2X3QoLTEpID4gY2hhcjE2 X3QoMCkpOwogICAgICAgICAgICAgICAgICAgICBDT05GSUdVUkVfU1RBVElDX0FTU0VSVChz aXplb2YoKHUiaGVsbG8iKVswXSkgPT0gMik7CiAgICAgICAgICAgICAgICAgICAgIENPTkZJ R1VSRV9TVEFUSUNfQVNTRVJUKHNpemVvZih1J2EnKSA9PSAyKTsKICAgICAgICAgICAgICAg ICAgICAgQ09ORklHVVJFX1NUQVRJQ19BU1NFUlQodSdceEZGRkYnID4gdSdceDAnKQo7IHJl dHVybiAwOyB9CmNvbmZpZ3VyZTo5MTg4OiBjaGVja2luZyBmb3IgdXNhYmxlIHdjaGFyX3Qg KDIgYnl0ZXMsIHVuc2lnbmVkKQpjb25maWd1cmU6OTIwMjogYysrIC1jIC1PMiAtcGlwZSAt TzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgY29uZnRl c3QuQyAxPiY1CmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24gJ2ludCBtYWluKCknOgpjb25maWd1 cmU6OTIwMTogZXJyb3I6IHNpemUgb2YgYXJyYXkgJ3N0YXRpY19hc3NlcnRfbGluZV85MjAx JyBpcyBuZWdhdGl2ZQpjb25maWd1cmU6OTIwMjogZXJyb3I6IHNpemUgb2YgYXJyYXkgJ3N0 YXRpY19hc3NlcnRfbGluZV85MjAyJyBpcyBuZWdhdGl2ZQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKI2xpbmUgOTE5MyAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMu aCIKI2luY2x1ZGUgPHN0ZGRlZi5oPgogICAgICAgICAgICAgICAgICAgICAKI2RlZmluZSBD T05GSUdVUkVfU1RBVElDX0FTU0VSVChjb25kaXRpb24pIENPTkZJR1VSRV9TVEFUSUNfQVNT RVJUX0lNUEwoY29uZGl0aW9uLCBfX0xJTkVfXykKI2RlZmluZSBDT05GSUdVUkVfU1RBVElD X0FTU0VSVF9JTVBMKGNvbmRpdGlvbiwgbGluZSkgQ09ORklHVVJFX1NUQVRJQ19BU1NFUlRf SU1QTDIoY29uZGl0aW9uLCBsaW5lKQojZGVmaW5lIENPTkZJR1VSRV9TVEFUSUNfQVNTRVJU X0lNUEwyKGNvbmRpdGlvbiwgbGluZSkgdHlwZWRlZiBpbnQgc3RhdGljX2Fzc2VydF9saW5l XyMjbGluZVsoY29uZGl0aW9uKSA/IDEgOiAtMV0KCmludCBtYWluKCkgewpDT05GSUdVUkVf U1RBVElDX0FTU0VSVChzaXplb2Yod2NoYXJfdCkgPT0gMik7CiAgICAgICAgICAgICAgICAg ICAgIENPTkZJR1VSRV9TVEFUSUNfQVNTRVJUKCh3Y2hhcl90KS0xID4gKHdjaGFyX3QpIDAp CjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjkyMjc6IGNoZWNraW5nIGZvciBjb21waWxlciAt ZnNob3J0LXdjaGFyIG9wdGlvbgpjb25maWd1cmU6OTI0MTogYysrIC1vIGNvbmZ0ZXN0IC1P MiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcg LWZzaG9ydC13Y2hhciAgICAgICAgY29uZnRlc3QuQyAtcHRocmVhZCAtTC91c3IvbG9jYWwv bGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6OTI4NDogY2hlY2tpbmcgZm9yIHZpc2liaWxp dHkoaGlkZGVuKSBhdHRyaWJ1dGUKY29uZmlndXJlOjkzMDk6IGNoZWNraW5nIGZvciB2aXNp YmlsaXR5KGRlZmF1bHQpIGF0dHJpYnV0ZQpjb25maWd1cmU6OTMzNDogY2hlY2tpbmcgZm9y IHZpc2liaWxpdHkgcHJhZ21hIHN1cHBvcnQKY29uZmlndXJlOjkzNTk6IGNoZWNraW5nIEZv ciBnY2MgdmlzaWJpbGl0eSBidWcgd2l0aCBjbGFzcy1sZXZlbCBhdHRyaWJ1dGVzIChHQ0Mg YnVnIDI2OTA1KQpjb25maWd1cmU6OTM4NzogY2hlY2tpbmcgRm9yIHg4Nl82NCBnY2Mgdmlz aWJpbGl0eSBidWcgd2l0aCBidWlsdGlucyAoR0NDIGJ1ZyAyMDI5NykKY29uZmlndXJlOjk0 NDE6IGNoZWNraW5nIGZvciBfX2ZvcmNlX2FsaWduX2FyZ19wb2ludGVyX18gYXR0cmlidXRl CmNvbmZpZ3VyZTo5NDUzOiBjYyAtYyAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlh c2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtV2Vycm9yICAgIGNvbmZ0ZXN0LmMgMT4mNQpj b25maWd1cmU6OTQ4MDogY2hlY2tpbmcgZm9yIGRpcmVudC5oIHRoYXQgZGVmaW5lcyBESVIK Y29uZmlndXJlOjk0OTM6IGNjIC1jIC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6 OTUxODogY2hlY2tpbmcgZm9yIG9wZW5kaXIgaW4gLWxkaXIKY29uZmlndXJlOjk1Mzc6IGNj IC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8t c3RyaWN0LWFsaWFzaW5nICAgICAgICBjb25mdGVzdC5jIC1sZGlyICAtcHRocmVhZCAtTC91 c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxk aXIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDk1MjYgImNvbmZpZ3Vy ZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFs IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBjaGFyIGJlY2F1 c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0 aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g ICovCmNoYXIgb3BlbmRpcigpOwoKaW50IG1haW4oKSB7Cm9wZW5kaXIoKQo7IHJldHVybiAw OyB9CmNvbmZpZ3VyZTo5NjEwOiBjaGVja2luZyBmb3Igc3lzL2J5dGVvcmRlci5oCmNvbmZp Z3VyZTo5NjIwOiBjcHAgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPi9k ZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6OTYxNjoyNzogZXJyb3I6IHN5cy9i eXRlb3JkZXIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKI2xpbmUgOTYxNSAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRl ZnMuaCIKI2luY2x1ZGUgPHN5cy9ieXRlb3JkZXIuaD4KY29uZmlndXJlOjk2MTA6IGNoZWNr aW5nIGZvciBjb21wYXQuaApjb25maWd1cmU6OTYyMDogY3BwICAgICAtSS91c3IvbG9jYWwv aW5jbHVkZSBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJl Ojk2MTY6MjA6IGVycm9yOiBjb21wYXQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgOTYxNSAiY29uZmlndXJlIgoj aW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPGNvbXBhdC5oPgpjb25maWd1cmU6OTYx MDogY2hlY2tpbmcgZm9yIGdldG9wdC5oCmNvbmZpZ3VyZTo5NjIwOiBjcHAgICAgIC1JL3Vz ci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApj b25maWd1cmU6OTY1MDogY2hlY2tpbmcgZm9yIHN5cy9iaXR5cGVzLmgKY29uZmlndXJlOjk2 NjA6IGNwcCAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxs IDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZTo5NjU2OjI1OiBlcnJvcjogc3lzL2JpdHlwZXMu aDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKI2xpbmUgOTY1NSAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2lu Y2x1ZGUgPHN5cy9iaXR5cGVzLmg+CmNvbmZpZ3VyZTo5NjUwOiBjaGVja2luZyBmb3IgbWVt b3J5LmgKY29uZmlndXJlOjk2NjA6IGNwcCAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29u ZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZTo5NjUwOiBjaGVj a2luZyBmb3IgdW5pc3RkLmgKY29uZmlndXJlOjk2NjA6IGNwcCAgICAgLUkvdXNyL2xvY2Fs L2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3Vy ZTo5NjkwOiBjaGVja2luZyBmb3IgZ251L2xpYmMtdmVyc2lvbi5oCmNvbmZpZ3VyZTo5NzAw OiBjcHAgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAy PmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6OTY5NjozMDogZXJyb3I6IGdudS9saWJjLXZlcnNp b24uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKI2xpbmUgOTY5NSAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIK I2luY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KY29uZmlndXJlOjk2OTA6IGNoZWNraW5n IGZvciBubF90eXBlcy5oCmNvbmZpZ3VyZTo5NzAwOiBjcHAgICAgIC1JL3Vzci9sb2NhbC9p bmNsdWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6 OTczMDogY2hlY2tpbmcgZm9yIG1hbGxvYy5oCmNvbmZpZ3VyZTo5NzQwOiBjcHAgICAgIC1J L3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91 dApJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZmlndXJlOjk3MzY6Ci91c3IvaW5jbHVkZS9t YWxsb2MuaDozOjI6IGVycm9yOiAjZXJyb3IgIjxtYWxsb2MuaD4gaGFzIGJlZW4gcmVwbGFj ZWQgYnkgPHN0ZGxpYi5oPiIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5l IDk3MzUgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCiNpbmNsdWRlIDxtYWxs b2MuaD4KY29uZmlndXJlOjk3NzA6IGNoZWNraW5nIGZvciBYMTEvWEtCbGliLmgKY29uZmln dXJlOjk3ODA6IGNwcCAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rl di9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZTo5ODEwOiBjaGVja2luZyBmb3IgaW8u aApjb25maWd1cmU6OTgyMDogY3BwICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVz dC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjk4MTY6MTY6IGVycm9y OiBpby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgojbGluZSA5ODE1ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5o IgojaW5jbHVkZSA8aW8uaD4KY29uZmlndXJlOjk4NTE6IGNoZWNraW5nIGZvciBzeXMvc3Rh dHZmcy5oCmNvbmZpZ3VyZTo5ODYxOiBjcHAgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNv bmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6OTg1MTogY2hl Y2tpbmcgZm9yIHN5cy9zdGF0ZnMuaApjb25maWd1cmU6OTg2MTogY3BwICAgICAtSS91c3Iv bG9jYWwvaW5jbHVkZSBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29u ZmlndXJlOjk4NTc6MjQ6IGVycm9yOiBzeXMvc3RhdGZzLmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDk4NTYgImNv bmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCiNpbmNsdWRlIDxzeXMvc3RhdGZzLmg+ CmNvbmZpZ3VyZTo5ODUxOiBjaGVja2luZyBmb3Igc3lzL3Zmcy5oCmNvbmZpZ3VyZTo5ODYx OiBjcHAgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAy PmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6OTg1NzoyMTogZXJyb3I6IHN5cy92ZnMuaDogTm8g c3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK I2xpbmUgOTg1NiAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUg PHN5cy92ZnMuaD4KY29uZmlndXJlOjk4NTE6IGNoZWNraW5nIGZvciBzeXMvbW91bnQuaApj b25maWd1cmU6OTg2MTogY3BwICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5j ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjk4OTI6IGNoZWNraW5nIGZv ciBzeXMvcXVvdGEuaApjb25maWd1cmU6OTkwMjogY3BwICAgICAtSS91c3IvbG9jYWwvaW5j bHVkZSBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjk4 OTg6MjM6IGVycm9yOiBzeXMvcXVvdGEuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgOTg5NyAiY29uZmlndXJlIgoj aW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPHN5cy9xdW90YS5oPgpjb25maWd1cmU6 OTkzMjogY2hlY2tpbmcgZm9yIGxpbnV4L3F1b3RhLmgKY29uZmlndXJlOjk5NDI6IGNwcCAg ICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRl c3Qub3V0CmNvbmZpZ3VyZTo5OTM4OjI1OiBlcnJvcjogbGludXgvcXVvdGEuaDogTm8gc3Vj aCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xp bmUgOTkzNyAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPGxp bnV4L3F1b3RhLmg+CmNvbmZpZ3VyZTo5OTczOiBjaGVja2luZyBmb3IgbW1pbnRyaW4uaApj b25maWd1cmU6OTk4MzogY3BwICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5j ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZp Z3VyZTo5OTc5OgovdXNyL2luY2x1ZGUvbW1pbnRyaW4uaDozNTozOiBlcnJvcjogI2Vycm9y ICJNTVggaW5zdHJ1Y3Rpb24gc2V0IG5vdCBlbmFibGVkIgpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKI2xpbmUgOTk3OCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMu aCIKI2luY2x1ZGUgPG1taW50cmluLmg+CmNvbmZpZ3VyZToxMDAyMDogY2hlY2tpbmcgZm9y IG5ldwpjb25maWd1cmU6MTAwMzA6IGMrKyAtRSAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUg Y29uZnRlc3QuQyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxMDEyMjog Y2hlY2tpbmcgZm9yIHN5cy9jZGVmcy5oCmNvbmZpZ3VyZToxMDEzMjogY3BwICAgICAtSS91 c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQK Y29uZmlndXJlOjEwMTY2OiBjaGVja2luZyBmb3IgZ2V0aG9zdGJ5bmFtZV9yIGluIC1sY19y CmNvbmZpZ3VyZToxMDE4NTogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgIC1JL3Vzci9sb2NhbC9p bmNsdWRlICAgICBjb25mdGVzdC5jIC1sY19yICAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGli IC1saWNvbnYgMT4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxjX3IKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDEwMTc0ICJjb25maWd1cmUiCiNpbmNsdWRl ICJjb25mZGVmcy5oIgovKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUg dG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVu IGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIGdl dGhvc3RieW5hbWVfcigpOwoKaW50IG1haW4oKSB7CmdldGhvc3RieW5hbWVfcigpCjsgcmV0 dXJuIDA7IH0KY29uZmlndXJlOjEwMjI1OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWlu aW5nIGRsb3Blbgpjb25maWd1cmU6MTAyNDM6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAg LU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91 c3IvbG9jYWwvaW5jbHVkZSAgICAgY29uZnRlc3QuYyAtcHRocmVhZCAtTC91c3IvbG9jYWwv bGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6MTAyODM6IGNoZWNraW5nIGZvciBkbGZjbi5o CmNvbmZpZ3VyZToxMDI5MzogY3BwICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVz dC5jID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjEwMzI4OiBjaGVja2lu ZyBmb3IgZGxhZGRyCmNvbmZpZ3VyZToxMDM1NjogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBl ICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgLURfR05V X1NPVVJDRSAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgICAgIGNvbmZ0ZXN0LmMgLXB0aHJl YWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKY29uZmlndXJlOjEwNDkxOiBjaGVj a2luZyBmb3Igc29ja2V0IGluIC1sc29ja2V0CmNvbmZpZ3VyZToxMDUxMDogY2MgLW8gY29u ZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3Qt YWxpYXNpbmcgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlICAgICBjb25mdGVzdC5jIC1sc29j a2V0ICAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQovdXNyL2Jpbi9s ZDogY2Fubm90IGZpbmQgLWxzb2NrZXQKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CiNsaW5lIDEwNDk5ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBPdmVy cmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAq LwovKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5 cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIHNvY2tldCgpOwoKaW50IG1haW4oKSB7 CnNvY2tldCgpCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjEwNTg2OiBjaGVja2luZyBmb3Ig WERyYXdMaW5lcyBpbiAtbFgxMQpjb25maWd1cmU6MTA2MDU6IGNjIC1vIGNvbmZ0ZXN0IC1P MiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5n ICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAgLUwvdXNyL2xvY2FsL2xpYiAgICAgY29uZnRl c3QuYyAtbFgxMSAtbFgxMSAgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+ JjUKY29uZmlndXJlOjEwNjI3OiBjaGVja2luZyBmb3IgWGV4dEFkZERpc3BsYXkgaW4gLWxY ZXh0CmNvbmZpZ3VyZToxMDY0NjogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZu by1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgIC1JL3Vzci9sb2Nh bC9pbmNsdWRlICAtTC91c3IvbG9jYWwvbGliICAgICBjb25mdGVzdC5jIC1sWGV4dCAtbFgx MSAgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKY29uZmlndXJlOjEw NjY5OiBjaGVja2luZyBmb3IgWHRGcmVlIGluIC1sWHQKY29uZmlndXJlOjEwNjg4OiBjYyAt byBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0 cmljdC1hbGlhc2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgIC1ML3Vzci9sb2NhbC9s aWIgICAgIGNvbmZ0ZXN0LmMgLWxYdCAgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGlj b252IDE+JjUKY29uZmlndXJlOjEwODQyOiBjaGVja2luZyBmb3IgWFNobUNyZWF0ZUltYWdl IGluIC1sWGV4dApjb25maWd1cmU6MTA4NjE6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAg LU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91 c3IvbG9jYWwvaW5jbHVkZSAgLUwvdXNyL2xvY2FsL2xpYiAgICAgY29uZnRlc3QuYyAtbFhl eHQgLWxYMTEgIC1sWGV4dCAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4m NQpjb25maWd1cmU6MTA4ODM6IGNoZWNraW5nIGZvciBYMTEvZXh0ZW5zaW9ucy9YU2htLmgK Y29uZmlndXJlOjEwODkzOiBjcHAgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0 LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MTA5MjQ6IGNoZWNraW5n IGZvciBYMTEvZXh0ZW5zaW9ucy9zY3Juc2F2ZXIuaApjb25maWd1cmU6MTA5MzQ6IGNwcCAg ICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRl c3Qub3V0CmNvbmZpZ3VyZToxMDk1MTogY2hlY2tpbmcgZm9yIFhTY3JlZW5TYXZlclF1ZXJ5 SW5mbyBpbiAtbFhzcwpjb25maWd1cmU6MTA5NzA6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlw ZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAt SS91c3IvbG9jYWwvaW5jbHVkZSAgLUwvdXNyL2xvY2FsL2xpYiAgICAgY29uZnRlc3QuYyAt bFhzcyAtbFhleHQgLWxYMTEgIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAx PiY1CmNvbmZpZ3VyZToxMTAwMDogY2hlY2tpbmcgZm9yIFhpZUZsb0dlb21ldHJ5IGluIC1s WElFCmNvbmZpZ3VyZToxMTAxOTogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZu by1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgIC1JL3Vzci9sb2Nh bC9pbmNsdWRlICAtTC91c3IvbG9jYWwvbGliICAgICBjb25mdGVzdC5jIC1sWElFIC1sWDEx ICAtbFhleHQgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKL3Vzci9i aW4vbGQ6IGNhbm5vdCBmaW5kIC1sWElFCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz OgojbGluZSAxMTAwOCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKLyogT3Zl cnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAg Ki8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0 eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90 eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBYaWVGbG9HZW9tZXRyeSgpOwoKaW50 IG1haW4oKSB7ClhpZUZsb0dlb21ldHJ5KCkKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MTEw NDE6IGNoZWNraW5nIGZvciBYMTEvZXh0ZW5zaW9ucy9YSUVsaWIuaApjb25maWd1cmU6MTEw NTE6IGNwcCAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxs IDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3VyZToxMTA0NzozNTogZXJyb3I6IFgxMS9leHRlbnNp b25zL1hJRWxpYi5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgojbGluZSAxMTA0NiAiY29uZmlndXJlIgojaW5jbHVkZSAiY29u ZmRlZnMuaCIKI2luY2x1ZGUgPFgxMS9leHRlbnNpb25zL1hJRWxpYi5oPgpjb25maWd1cmU6 MTExMjU6IGNoZWNraW5nIGZvciBmcmVldHlwZS1jb25maWcKY29uZmlndXJlOjExMTYxOiBj aGVja2luZyBmb3IgRnJlZVR5cGUgLSB2ZXJzaW9uID49IDYuMS4wCmNvbmZpZ3VyZToxMTI4 NTogY2hlY2tpbmcgZm9yIEZUX0JpdG1hcF9TaXplLnlfcHBlbQpjb25maWd1cmU6MTEzMDA6 IGNjIC1jIC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0 LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlL2ZyZWV0eXBlMiAtSS91c3IvbG9jYWwv aW5jbHVkZSAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuYyAxPiY1CmNvbmZp Z3VyZToxMTMyNjogY2hlY2tpbmcgZm9yIEZUX0dseXBoU2xvdF9FbWJvbGRlbgpjb25maWd1 cmU6MTEzNTQ6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFs aWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNsdWRlL2ZyZWV0 eXBlMiAtSS91c3IvbG9jYWwvaW5jbHVkZSAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgICAg IGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IC1ML3Vzci9s b2NhbC9saWIgLWxmcmVldHlwZSAtbHogMT4mNQpjb25maWd1cmU6MTEzMjY6IGNoZWNraW5n IGZvciBGVF9Mb2FkX1NmbnRfVGFibGUKY29uZmlndXJlOjExMzU0OiBjYyAtbyBjb25mdGVz dCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlh c2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZS9mcmVldHlwZTIgLUkvdXNyL2xvY2FsL2luY2x1 ZGUgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlICAgICBjb25mdGVzdC5jIC1wdGhyZWFkIC1M L3Vzci9sb2NhbC9saWIgLWxpY29udiAtTC91c3IvbG9jYWwvbGliIC1sZnJlZXR5cGUgLWx6 IDE+JjUKY29uZmlndXJlOjExMzI2OiBjaGVja2luZyBmb3IgRlRfU2VsZWN0X1NpemUKY29u ZmlndXJlOjExMzU0OiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmlj dC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtSS91c3IvbG9jYWwvaW5jbHVkZS9m cmVldHlwZTIgLUkvdXNyL2xvY2FsL2luY2x1ZGUgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRl ICAgICBjb25mdGVzdC5jIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAtTC91 c3IvbG9jYWwvbGliIC1sZnJlZXR5cGUgLWx6IDE+JjUKY29uZmlndXJlOjExMzkzOiBjaGVj a2luZyBmb3IgQVJNIFNJTUQgc3VwcG9ydCBpbiBjb21waWxlcgpjb25maWd1cmU6MTE0MDQ6 IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1m bm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAgICAgY29uZnRl c3QuYyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQp7c3RhbmRhcmQg aW5wdXR9OiBBc3NlbWJsZXIgbWVzc2FnZXM6CntzdGFuZGFyZCBpbnB1dH06MTQ6IEVycm9y OiBubyBzdWNoIGluc3RydWN0aW9uOiBgdXFhZGQ4IHIxLHIxLHIyJwpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMTEzOTcgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNv bmZkZWZzLmgiCgppbnQgbWFpbigpIHsKYXNtKCJ1cWFkZDggcjEsIHIxLCByMiIpOwo7IHJl dHVybiAwOyB9CmNvbmZpZ3VyZToxMTQyNTogY2hlY2tpbmcgZm9yIEFSTSBORU9OIHN1cHBv cnQgaW4gY29tcGlsZXIKY29uZmlndXJlOjExNDQxOiBjYyAtbyBjb25mdGVzdCAtTzIgLXBp cGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtbWZw dT1uZW9uIC1tZmxvYXQtYWJpPXNvZnRmcCAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgICAg IGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKY2Mx OiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gIi1tZnB1PW5lb24i CmNjMTogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICItbWZsb2F0 LWFiaT1zb2Z0ZnAiCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAxMTQz NCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCmludCBtYWluKCkgewphc20o InZhZGQuaTggZDAsIGQwLCBkMCIpOwo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToxMTQ2OTog Y2hlY2tpbmcgZm9yIHB0aHJlYWRfY3JlYXRlIGluIC1scHRocmVhZHMKY2MgLW8gZHVtbXkg ZHVtbXkuYyAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmlj dC1hbGlhc2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLWxwdGhyZWFkcyAgICAgLXB0 aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252Ci91c3IvYmluL2xkOiBjYW5ub3QgZmlu ZCAtbHB0aHJlYWRzCmNvbmZpZ3VyZToxMTQ5MjogY2hlY2tpbmcgZm9yIHB0aHJlYWRfY3Jl YXRlIGluIC1scHRocmVhZApjYyAtbyBkdW1teSBkdW1teS5jIC1PMiAtcGlwZSAgLU8yIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91c3IvbG9j YWwvaW5jbHVkZSAtbHB0aHJlYWQgICAgIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxp Y29udgpjb25maWd1cmU6MTE1OTc6IGNoZWNraW5nIHdoZXRoZXIgY2MgYWNjZXB0cyAtcHRo cmVhZApjb25maWd1cmU6MTE3MTU6IGNoZWNraW5nIHdoZXRoZXIgbW1hcCgpIHNlZXMgd3Jp dGUoKXMKY29uZmlndXJlOjExNzU4OiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICAgLUkvdXNyL2xv Y2FsL2luY2x1ZGUgLXB0aHJlYWQgICAgIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xv Y2FsL2xpYiAtbGljb252IDE+JjUKY29uZmlndXJlOjExNzgzOiBjaGVja2luZyB3aGV0aGVy IGNjIG5lZWRzIC10cmFkaXRpb25hbApjb25maWd1cmU6MTE3OTA6MTk6IGVycm9yOiBzZ3R0 eS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZToxMTgwODoyMDogZXJy b3I6IHRlcm1pby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CmNvbmZpZ3VyZToxMTgy OTogY2hlY2tpbmcgZm9yIDgtYml0IGNsZWFuIG1lbWNtcApjb25maWd1cmU6MTE4NDc6IGNj IC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8t c3RyaWN0LWFsaWFzaW5nICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAg Y29uZnRlc3QuYyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25m aWd1cmU6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZmlndXJlOjExODQyOiB3YXJuaW5nOiBp bmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24g J2V4aXQnCmNvbmZpZ3VyZToxMTg2NzogY2hlY2tpbmcgZm9yIHJhbmRvbQpjb25maWd1cmU6 MTE4OTU6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtcHRo cmVhZCAgICAgY29uZnRlc3QuYyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYg MT4mNQpjb25maWd1cmU6MTE4Njc6IGNoZWNraW5nIGZvciBzdHJlcnJvcgpjb25maWd1cmU6 MTE4OTU6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFz aW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtcHRo cmVhZCAgICAgY29uZnRlc3QuYyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYg MT4mNQpjb25maWd1cmU6MTE4Njc6IGNoZWNraW5nIGZvciBsY2hvd24KY29uZmlndXJlOjEx ODk1OiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2lu ZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0aHJl YWQgICAgIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+ JjUKY29uZmlndXJlOjExODY3OiBjaGVja2luZyBmb3IgZmNobW9kCmNvbmZpZ3VyZToxMTg5 NTogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcg LWZuby1zdHJpY3QtYWxpYXNpbmcgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1wdGhyZWFk ICAgICBjb25mdGVzdC5jIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1 CmNvbmZpZ3VyZToxMTg2NzogY2hlY2tpbmcgZm9yIHNucHJpbnRmCmNvbmZpZ3VyZToxMTg5 NTogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcg LWZuby1zdHJpY3QtYWxpYXNpbmcgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1wdGhyZWFk ICAgICBjb25mdGVzdC5jIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1 CmNvbmZpZ3VyZToxMTg3OTogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0 LWluIGZ1bmN0aW9uICdzbnByaW50ZicKY29uZmlndXJlOjExODY3OiBjaGVja2luZyBmb3Ig c3RhdHZmcwpjb25maWd1cmU6MTE4OTU6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8y IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91c3Iv bG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAgY29uZnRlc3QuYyAtcHRocmVhZCAtTC91c3Iv bG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6MTE4Njc6IGNoZWNraW5nIGZvciBt ZW1tb3ZlCmNvbmZpZ3VyZToxMTg5NTogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIg LWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgIC1JL3Vzci9s b2NhbC9pbmNsdWRlIC1wdGhyZWFkICAgICBjb25mdGVzdC5jIC1wdGhyZWFkIC1ML3Vzci9s b2NhbC9saWIgLWxpY29udiAxPiY1CmNvbmZpZ3VyZToxMTg3OTogd2FybmluZzogY29uZmxp Y3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdtZW1tb3ZlJwpjb25maWd1cmU6 MTE4Njc6IGNoZWNraW5nIGZvciByaW50CmNvbmZpZ3VyZToxMTg5NTogY2MgLW8gY29uZnRl c3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxp YXNpbmcgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1wdGhyZWFkICAgICBjb25mdGVzdC5j IC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1CmNvbmZpZ3VyZToxMTg3 OTogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdy aW50JwovdmFyL3RtcC8vY2NFenBGMnYubygudGV4dCsweDEyKTogSW4gZnVuY3Rpb24gYG1h aW4nOgo6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHJpbnQnCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgojbGluZSAxMTg3MiAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRl ZnMuaCIKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9w ZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hh ciByaW50KCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBh bnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBX ZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2Yg YSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291 bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIHJpbnQoKTsKCmludCBtYWluKCkgewoKLyogVGhl IEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1w bGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9u cyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFu ZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwojaWYgZGVmaW5lZCAoX19zdHVi X3JpbnQpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3JpbnQpCmNob2tlIG1lCiNlbHNlCnJpbnQo KTsKI2VuZGlmCgo7IHJldHVybiAwOyB9CmNvbmZpZ3VyZToxMTg2NzogY2hlY2tpbmcgZm9y IHN0YXQ2NApjb25maWd1cmU6MTE4OTU6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8y IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91c3Iv bG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAgY29uZnRlc3QuYyAtcHRocmVhZCAtTC91c3Iv bG9jYWwvbGliIC1saWNvbnYgMT4mNQovdmFyL3RtcC8vY2NxeDNYbGMubygudGV4dCsweDEy KTogSW4gZnVuY3Rpb24gYG1haW4nOgo6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHN0YXQ2 NCcKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDExODcyICJjb25maWd1 cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBf X3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCiAgICB3aGljaCBj YW4gY29uZmxpY3Qgd2l0aCBjaGFyIHN0YXQ2NCgpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxh c3NlcnQuaD4KLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2 b2lkIGFuIGVycm9yLiAgKi8KLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0 Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMg YXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBzdGF0NjQo KTsKCmludCBtYWluKCkgewoKLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZv ciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgdG8gYWx3YXlzIGZhaWwgd2l0 aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKICAgIHNvbWV0 aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMu ICAqLwojaWYgZGVmaW5lZCAoX19zdHViX3N0YXQ2NCkgfHwgZGVmaW5lZCAoX19zdHViX19f c3RhdDY0KQpjaG9rZSBtZQojZWxzZQpzdGF0NjQoKTsKI2VuZGlmCgo7IHJldHVybiAwOyB9 CmNvbmZpZ3VyZToxMTg2NzogY2hlY2tpbmcgZm9yIGxzdGF0NjQKY29uZmlndXJlOjExODk1 OiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLXN0cmljdC1hbGlhc2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0aHJlYWQg ICAgIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUK L3Zhci90bXAvL2NjS0I0MTNlLm8oLnRleHQrMHgxMik6IEluIGZ1bmN0aW9uIGBtYWluJzoK OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBsc3RhdDY0Jwpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKI2xpbmUgMTE4NzIgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZz LmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVm dWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIg bHN0YXQ2NCgpOyBiZWxvdy4gICovCiNpbmNsdWRlIDxhc3NlcnQuaD4KLyogT3ZlcnJpZGUg YW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLyog V2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdv dWxkIHN0aWxsIGFwcGx5LiAgKi8KY2hhciBsc3RhdDY0KCk7CgppbnQgbWFpbigpIHsKCi8q IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0 IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9f c3R1Yl9sc3RhdDY0KSB8fCBkZWZpbmVkIChfX3N0dWJfX19sc3RhdDY0KQpjaG9rZSBtZQoj ZWxzZQpsc3RhdDY0KCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MTE4Njc6 IGNoZWNraW5nIGZvciB0cnVuY2F0ZTY0CmNvbmZpZ3VyZToxMTg5NTogY2MgLW8gY29uZnRl c3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxp YXNpbmcgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1wdGhyZWFkICAgICBjb25mdGVzdC5j IC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1Ci92YXIvdG1wLy9jY2pk R0xqdi5vKC50ZXh0KzB4MTIpOiBJbiBmdW5jdGlvbiBgbWFpbic6CjogdW5kZWZpbmVkIHJl ZmVyZW5jZSB0byBgdHJ1bmNhdGU2NCcKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 CiNsaW5lIDExODcyICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVmcy5oIgovKiBTeXN0 ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHBy b3RvdHlwZXMsCiAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHRydW5jYXRlNjQo KTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2My IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi8qIFdlIHVzZSBj aGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIK ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovCmNoYXIgdHJ1bmNhdGU2NCgpOwoKaW50IG1haW4oKSB7CgovKiBUaGUg R05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBs ZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z IGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5k IHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJf dHJ1bmNhdGU2NCkgfHwgZGVmaW5lZCAoX19zdHViX19fdHJ1bmNhdGU2NCkKY2hva2UgbWUK I2Vsc2UKdHJ1bmNhdGU2NCgpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjEx ODY3OiBjaGVja2luZyBmb3Igc3RhdHZmczY0CmNvbmZpZ3VyZToxMTg5NTogY2MgLW8gY29u ZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3Qt YWxpYXNpbmcgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1wdGhyZWFkICAgICBjb25mdGVz dC5jIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1Ci92YXIvdG1wLy9j Y1dSUzA4QS5vKC50ZXh0KzB4MTIpOiBJbiBmdW5jdGlvbiBgbWFpbic6CjogdW5kZWZpbmVk IHJlZmVyZW5jZSB0byBgc3RhdHZmczY0Jwpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKI2xpbmUgMTE4NzIgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5 c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcg cHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc3RhdHZmczY0 KCk7IGJlbG93LiAgKi8KI2luY2x1ZGUgPGFzc2VydC5oPgovKiBPdmVycmlkZSBhbnkgZ2Nj MiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwovKiBXZSB1c2Ug Y2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2My CiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp bGwgYXBwbHkuICAqLwpjaGFyIHN0YXR2ZnM2NCgpOwoKaW50IG1haW4oKSB7CgovKiBUaGUg R05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBs ZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z IGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5k IHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIChfX3N0dWJf c3RhdHZmczY0KSB8fCBkZWZpbmVkIChfX3N0dWJfX19zdGF0dmZzNjQpCmNob2tlIG1lCiNl bHNlCnN0YXR2ZnM2NCgpOwojZW5kaWYKCjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjExODY3 OiBjaGVja2luZyBmb3Igc2V0YnVmCmNvbmZpZ3VyZToxMTg5NTogY2MgLW8gY29uZnRlc3Qg LU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNp bmcgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1wdGhyZWFkICAgICBjb25mdGVzdC5jIC1w dGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1CmNvbmZpZ3VyZToxMTg2Nzog Y2hlY2tpbmcgZm9yIGlzYXR0eQpjb25maWd1cmU6MTE4OTU6IGNjIC1vIGNvbmZ0ZXN0IC1P MiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5n ICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAgY29uZnRlc3QuYyAtcHRo cmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6MTE5MjI6IGNo ZWNraW5nIGZvciBmbG9ja2ZpbGUKY29uZmlndXJlOjExOTUwOiBjYyAtbyBjb25mdGVzdCAt TzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2lu ZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0aHJlYWQgICAgIGNvbmZ0ZXN0LmMgLXB0 aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKY29uZmlndXJlOjExOTIyOiBj aGVja2luZyBmb3IgZ2V0cGFnZXNpemUKY29uZmlndXJlOjExOTUwOiBjYyAtbyBjb25mdGVz dCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlh c2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0aHJlYWQgICAgIGNvbmZ0ZXN0LmMg LXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKY29uZmlndXJlOjExOTc3 OiBjaGVja2luZyBmb3IgbG9jYWx0aW1lX3IKY29uZmlndXJlOjEyMDA1OiBjYyAtbyBjb25m dGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1h bGlhc2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0aHJlYWQgICAgIGNvbmZ0ZXN0 LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKY29uZmlndXJlOjEx OTc3OiBjaGVja2luZyBmb3Igc3RydG9rX3IKY29uZmlndXJlOjEyMDA1OiBjYyAtbyBjb25m dGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1h bGlhc2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0aHJlYWQgICAgIGNvbmZ0ZXN0 LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKY29uZmlndXJlOjEy MDMzOiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIGNsb2NrX2dldHRpbWUKY29u ZmlndXJlOjEyMDUxOiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmlj dC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1 ZGUgLXB0aHJlYWQgICAgIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAt bGljb252IDE+JjUKY29uZmlndXJlOjEyMDk0OiBjaGVja2luZyBmb3IgY2xvY2tfZ2V0dGlt ZShDTE9DS19NT05PVE9OSUMpCmNvbmZpZ3VyZToxMjEwNzogY2MgLW8gY29uZnRlc3QgLU8y IC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcg ICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1wdGhyZWFkICAgICBjb25mdGVzdC5jIC1wdGhy ZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1CmNvbmZpZ3VyZToxMjE0NDogY2hl Y2tpbmcgZm9yIHdjcnRvbWIKY29uZmlndXJlOjEyMTU2OiBjKysgLW8gY29uZnRlc3QgLU8y IC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAt ZnNob3J0LXdjaGFyICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAgY29u ZnRlc3QuQyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1 cmU6MTIxNzY6IGNoZWNraW5nIGZvciBtYnJ0b3djCmNvbmZpZ3VyZToxMjE4ODogYysrIC1v IGNvbmZ0ZXN0IC1PMiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZzaG9ydC13Y2hhciAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0 aHJlYWQgICAgIGNvbmZ0ZXN0LkMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252 IDE+JjUKY29uZmlndXJlOjEyMjE3OiBjaGVja2luZyBmb3IgcmVzX25pbml0KCkKY29uZmln dXJlOjEyMjM0OiBjYyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1h bGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUg LXB0aHJlYWQgICAgIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGlj b252IDE+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZpZ3VyZToxMjIyNzoKL3Vzci9p bmNsdWRlL3Jlc29sdi5oOjE2MTogZXJyb3I6IGFycmF5IHR5cGUgaGFzIGluY29tcGxldGUg ZWxlbWVudCB0eXBlCi91c3IvaW5jbHVkZS9yZXNvbHYuaDoxNzU6IGVycm9yOiBmaWVsZCAn YWRkcicgaGFzIGluY29tcGxldGUgdHlwZQovdXNyL2luY2x1ZGUvcmVzb2x2Lmg6MTk5OiBl cnJvcjogZmllbGQgJ3NpbicgaGFzIGluY29tcGxldGUgdHlwZQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKI2xpbmUgMTIyMjIgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZk ZWZzLmgiCgogICAgICAgICNpZmRlZiBsaW51eAogICAgICAgICNkZWZpbmUgX0JTRF9TT1VS Q0UgMQogICAgICAgICNlbmRpZgogICAgICAgICNpbmNsdWRlIDxyZXNvbHYuaD4KICAgICAg ICAKaW50IG1haW4oKSB7CmludCBmb28gPSByZXNfbmluaXQoJl9yZXMpOwo7IHJldHVybiAw OyB9CmNvbmZpZ3VyZToxMjI2NDogY2hlY2tpbmcgZm9yIGdudV9nZXRfbGliY192ZXJzaW9u KCkKY29uZmlndXJlOjEyMjgwOiBjKysgLW8gY29uZnRlc3QgLU8yIC1waXBlIC1PMiAtZm5v LXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnNob3J0LXdjaGFyICAg ICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAgY29uZnRlc3QuQyAtcHRocmVh ZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0aW9u ICdpbnQgbWFpbigpJzoKY29uZmlndXJlOjEyMjc2OiBlcnJvcjogJ2dudV9nZXRfbGliY192 ZXJzaW9uJyB3YXMgbm90IGRlY2xhcmVkIGluIHRoaXMgc2NvcGUKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDEyMjY5ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25m ZGVmcy5oIgoKICAgICAgICAjaWZkZWYgSEFWRV9HTlVfTElCQ19WRVJTSU9OX0gKICAgICAg ICAjaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgogICAgICAgICNlbmRpZgogICAgICAg IAppbnQgbWFpbigpIHsKY29uc3QgY2hhciAqZ2xpYmNfdmVyc2lvbiA9IGdudV9nZXRfbGli Y192ZXJzaW9uKCk7CjsgcmV0dXJuIDA7IH0KY29uZmlndXJlOjEyMzA5OiBjaGVja2luZyBm b3IgaWNvbnYgaW4gLWxjCmNvbmZpZ3VyZToxMjMzMTogYysrIC1vIGNvbmZ0ZXN0IC1PMiAt cGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZz aG9ydC13Y2hhciAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0aHJlYWQgICAgIGNvbmZ0 ZXN0LkMgLWxjICAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25m aWd1cmU6MTI0NDA6IGNoZWNraW5nIGZvciBpY29udigpCmNvbmZpZ3VyZToxMjQ1OTogYysr IC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZzaG9ydC13Y2hhciAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUg LXB0aHJlYWQgICAgIGNvbmZ0ZXN0LkMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGlj b252ICAxPiY1CmNvbmZpZ3VyZToxMjQ4MzogY2hlY2tpbmcgZm9yIGljb252KCkgd2l0aCBj b25zdCBpbnB1dApjb25maWd1cmU6MTI1MDM6IGMrKyAtYyAtTzIgLXBpcGUgLU8yIC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mc2hvcnQtd2NoYXIgICAg IC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LkMgMT4mNQpjb25maWd1cmU6MTI1MzI6 IGNoZWNraW5nIGZvciBubF9sYW5naW5mbyBhbmQgQ09ERVNFVApjb25maWd1cmU6MTI1NDQ6 IGMrKyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mc2hvcnQtd2NoYXIgICAgIC1JL3Vzci9sb2NhbC9pbmNs dWRlIC1wdGhyZWFkICAgICBjb25mdGVzdC5DIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIg LWxpY29udiAxPiY1CmNvbmZpZ3VyZToxMjU3NjogY2hlY2tpbmcgZm9yIGFuIGltcGxlbWVu dGF0aW9uIG9mIHZhX2NvcHkoKQpjb25maWd1cmU6MTI2MDA6IGNjIC1vIGNvbmZ0ZXN0IC1P MiAtcGlwZSAgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5n ICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAgY29uZnRlc3QuYyAtcHRo cmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6IEluIGZ1bmN0 aW9uICdmJzoKY29uZmlndXJlOjEyNTk0OiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGlj aXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCmNvbmZpZ3VyZTox MjYxNzogY2hlY2tpbmcgZm9yIGFuIGltcGxlbWVudGF0aW9uIG9mIF9fdmFfY29weSgpCmNv bmZpZ3VyZToxMjY0MTogY2MgLW8gY29uZnRlc3QgLU8yIC1waXBlICAtTzIgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgIC1JL3Vzci9sb2NhbC9pbmNs dWRlIC1wdGhyZWFkICAgICBjb25mdGVzdC5jIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIg LWxpY29udiAxPiY1CmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24gJ2YnOgpjb25maWd1cmU6MTI2 MzU6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWls dC1pbiBmdW5jdGlvbiAnZXhpdCcKL3Zhci90bXAvL2NjMzNublJ6Lm8oLnRleHQrMHgxNyk6 IEluIGZ1bmN0aW9uIGBmJzoKOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX3ZhX2NvcHkn CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAxMjYyNyAiY29uZmlndXJl IgojaW5jbHVkZSAiY29uZmRlZnMuaCIKCiAgICAgICAgI2luY2x1ZGUgPHN0ZGFyZy5oPgog ICAgICAgIHZvaWQgZiAoaW50IGksIC4uLikgewogICAgICAgICAgICB2YV9saXN0IGFyZ3Mx LCBhcmdzMjsKICAgICAgICAgICAgdmFfc3RhcnQgKGFyZ3MxLCBpKTsKICAgICAgICAgICAg X192YV9jb3B5IChhcmdzMiwgYXJnczEpOwogICAgICAgICAgICBpZiAodmFfYXJnIChhcmdz MiwgaW50KSAhPSA0MiB8fCB2YV9hcmcgKGFyZ3MxLCBpbnQpICE9IDQyKQogICAgICAgICAg ICAgICAgZXhpdCAoMSk7CiAgICAgICAgICAgIHZhX2VuZCAoYXJnczEpOyB2YV9lbmQgKGFy Z3MyKTsKICAgICAgICB9CiAgICAgICAgaW50IG1haW4oKSB7IGYgKDAsIDQyKTsgcmV0dXJu IDA7IH0KY29uZmlndXJlOjEyNjU4OiBjaGVja2luZyB3aGV0aGVyIHZhX2xpc3RzIGNhbiBi ZSBjb3BpZWQgYnkgdmFsdWUKY29uZmlndXJlOjEyNjgyOiBjYyAtbyBjb25mdGVzdCAtTzIg LXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAg ICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0aHJlYWQgICAgIGNvbmZ0ZXN0LmMgLXB0aHJl YWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKY29uZmlndXJlOiBJbiBmdW5jdGlv biAnZic6CmNvbmZpZ3VyZToxMjY3Njogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0 IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0Jwpjb25maWd1cmU6MTI4 MzE6IGNoZWNraW5nIGZvciBnY2MgMy4wIEFCSQpjb25maWd1cmU6MTI4NDk6IGMrKyAtYyAt TzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5n IC1mc2hvcnQtd2NoYXIgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LkMgMT4m NQpjb25maWd1cmU6MTI4NzM6IGNoZWNraW5nIGZvciBDKysgImV4cGxpY2l0IiBrZXl3b3Jk CmNvbmZpZ3VyZToxMjg4ODogYysrIC1jIC1PMiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxp YXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZzaG9ydC13Y2hhciAgICAgLUkvdXNyL2xv Y2FsL2luY2x1ZGUgY29uZnRlc3QuQyAxPiY1CmNvbmZpZ3VyZToxMjkwOTogY2hlY2tpbmcg Zm9yIEMrKyAidHlwZW5hbWUiIGtleXdvcmQKY29uZmlndXJlOjEyOTMzOiBjKysgLWMgLU8y IC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAt ZnNob3J0LXdjaGFyICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5DIDE+JjUK Y29uZmlndXJlOjEyOTU0OiBjaGVja2luZyBmb3IgbW9kZXJuIEMrKyB0ZW1wbGF0ZSBzcGVj aWFsaXphdGlvbiBzeW50YXggc3VwcG9ydApjb25maWd1cmU6MTI5Njk6IGMrKyAtYyAtTzIg LXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1m c2hvcnQtd2NoYXIgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LkMgMT4mNQpj b25maWd1cmU6MTI5OTE6IGNoZWNraW5nIHdoZXRoZXIgcGFydGlhbCB0ZW1wbGF0ZSBzcGVj aWFsaXphdGlvbiB3b3Jrcwpjb25maWd1cmU6MTMwMDQ6IGMrKyAtYyAtTzIgLXBpcGUgLU8y IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mc2hvcnQtd2No YXIgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LkMgMT4mNQpjb25maWd1cmU6 MTMwMjU6IGNoZWNraW5nIHdoZXRoZXIgb3BlcmF0b3JzIG11c3QgYmUgcmUtZGVmaW5lZCBm b3IgdGVtcGxhdGVzIGRlcml2ZWQgZnJvbSB0ZW1wbGF0ZXMKY29uZmlndXJlOjEzMDQyOiBj KysgLWMgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1h bGlhc2luZyAtZnNob3J0LXdjaGFyICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVz dC5DIDE+JjUKY29uZmlndXJlOjEzMDY0OiBjaGVja2luZyB3aGV0aGVyIHdlIG5lZWQgdG8g Y2FzdCBhIGRlcml2ZWQgdGVtcGxhdGUgdG8gcGFzcyBhcyBpdHMgYmFzZSBjbGFzcwpjb25m aWd1cmU6MTMwNzg6IGMrKyAtYyAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5n IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mc2hvcnQtd2NoYXIgICAgIC1JL3Vzci9sb2NhbC9p bmNsdWRlIGNvbmZ0ZXN0LkMgMT4mNQpjb25maWd1cmU6MTMwOTk6IGNoZWNraW5nIHdoZXRo ZXIgdGhlIGNvbXBpbGVyIGNhbiByZXNvbHZlIGNvbnN0IGFtYmlndWl0aWVzIGZvciB0ZW1w bGF0ZXMKY29uZmlndXJlOjEzMTI1OiBjKysgLWMgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmlj dC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnNob3J0LXdjaGFyICAgICAtSS91 c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5DIDE+JjUKY29uZmlndXJlOjEzMTQ3OiBjaGVj a2luZyB3aGV0aGVyIHRoZSBDKysgInVzaW5nIiBrZXl3b3JkIGNhbiBjaGFuZ2UgYWNjZXNz CmNvbmZpZ3VyZToxMzE2MDogYysrIC1jIC1PMiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxp YXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZzaG9ydC13Y2hhciAgICAgLUkvdXNyL2xv Y2FsL2luY2x1ZGUgY29uZnRlc3QuQyAxPiY1CmNvbmZpZ3VyZToxMzE3MTogYysrIC1jIC1P MiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcg LWZzaG9ydC13Y2hhciAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuQyAxPiY1 CmNvbmZpZ3VyZTogSW4gZnVuY3Rpb24gJ2ludCBtYWluKCknOgpjb25maWd1cmU6MTMxNjQ6 IGVycm9yOiAnaW50IEE6OmZvbygpJyBpcyBpbmFjY2Vzc2libGUKY29uZmlndXJlOjEzMTY3 OiBlcnJvcjogd2l0aGluIHRoaXMgY29udGV4dApjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoKI2xpbmUgMTMxNjMgImNvbmZpZ3VyZSIKI2luY2x1ZGUgImNvbmZkZWZzLmgiCmNs YXNzIEEgeyBwdWJsaWM6IGludCBmb28oKSB7IHJldHVybiAxOyB9IH07CiAgICAgICAgICAg ICAgICAgICAgICAgY2xhc3MgQiA6IHB1YmxpYyBBIHsgcHJpdmF0ZTogdXNpbmcgQTo6Zm9v OyB9OwppbnQgbWFpbigpIHsKQiBiOyByZXR1cm4gYi5mb28oKTsKOyByZXR1cm4gMDsgfQpj b25maWd1cmU6MTMxOTk6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyAidXNpbmciIGtleXdv cmQgcmVzb2x2ZXMgYW1iaWd1aXR5CmNvbmZpZ3VyZToxMzIyMDogYysrIC1jIC1PMiAtcGlw ZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZzaG9y dC13Y2hhciAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuQyAxPiY1CmNvbmZp Z3VyZToxMzI0MTogY2hlY2tpbmcgZm9yICJzdGQ6OiIgbmFtZXNwYWNlCmNvbmZpZ3VyZTox MzI1MzogYysrIC1jIC1PMiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZzaG9ydC13Y2hhciAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUg Y29uZnRlc3QuQyAxPiY1CmNvbmZpZ3VyZToxMzI3NDogY2hlY2tpbmcgd2hldGhlciBzdGFu ZGFyZCB0ZW1wbGF0ZSBvcGVyYXRvciE9KCkgaXMgYW1iaWd1b3VzCmNvbmZpZ3VyZToxMzI4 OTogYysrIC1jIC1PMiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJp Y3QtYWxpYXNpbmcgLWZzaG9ydC13Y2hhciAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgY29u ZnRlc3QuQyAxPiY1CmNvbmZpZ3VyZToxMzMxMTogY2hlY2tpbmcgZm9yIEMrKyByZWludGVy cHJldF9jYXN0CmNvbmZpZ3VyZToxMzMyNDogYysrIC1jIC1PMiAtcGlwZSAtTzIgLWZuby1z dHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZzaG9ydC13Y2hhciAgICAg LUkvdXNyL2xvY2FsL2luY2x1ZGUgY29uZnRlc3QuQyAxPiY1CmNvbmZpZ3VyZToxMzM0NTog Y2hlY2tpbmcgZm9yIEMrKyBkeW5hbWljX2Nhc3QgdG8gdm9pZCoKY29uZmlndXJlOjEzMzcy OiBjKysgLW8gY29uZnRlc3QgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZnNob3J0LXdjaGFyICAgICAtSS91c3IvbG9jYWwvaW5j bHVkZSAtcHRocmVhZCAgICAgY29uZnRlc3QuQyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGli IC1saWNvbnYgMT4mNQpjb25maWd1cmU6MTMzOTY6IGNoZWNraW5nIHdoZXRoZXIgQysrIHJl cXVpcmVzIGltcGxlbWVudGF0aW9uIG9mIHVudXNlZCB2aXJ0dWFsIG1ldGhvZHMKY29uZmln dXJlOjEzNDA4OiBjKysgLW8gY29uZnRlc3QgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmljdC1h bGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnNob3J0LXdjaGFyICAgICAtSS91c3Iv bG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAgY29uZnRlc3QuQyAtcHRocmVhZCAtTC91c3Iv bG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6MTM0MzE6IGNoZWNraW5nIGZvciB0 cm91YmxlIGNvbXBhcmluZyB0byB6ZXJvIG5lYXIgc3RkOjpvcGVyYXRvciE9KCkKY29uZmln dXJlOjEzNDQ3OiBjKysgLWMgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZnNob3J0LXdjaGFyICAgICAtSS91c3IvbG9jYWwvaW5j bHVkZSBjb25mdGVzdC5DIDE+JjUKY29uZmlndXJlOjEzNDcxOiBjaGVja2luZyBmb3IgX190 aHJlYWQga2V5d29yZCBmb3IgVExTIHZhcmlhYmxlcwpjb25maWd1cmU6MTM0ODM6IGMrKyAt byBjb25mdGVzdCAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC1mc2hvcnQtd2NoYXIgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1w dGhyZWFkICAgICAtZlBJQyAtc2hhcmVkIC1XbCwteixkZWZzIGNvbmZ0ZXN0LkMgLXB0aHJl YWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUKY29uZmlndXJlOjEzNTIwOiBjaGVj a2luZyBmb3IgbWFsbG9jLmgKY29uZmlndXJlOjEzNTU0OiBjaGVja2luZyBmb3IgbWFsbG9j L21hbGxvYy5oCmNvbmZpZ3VyZToxMzU2NDogYysrIC1FICAgICAtSS91c3IvbG9jYWwvaW5j bHVkZSBjb25mdGVzdC5DID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjEz NTYwOjI3OiBlcnJvcjogbWFsbG9jL21hbGxvYy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgojbGluZSAxMzU1OSAiY29uZmln dXJlIgojaW5jbHVkZSAiY29uZmRlZnMuaCIKI2luY2x1ZGUgPG1hbGxvYy9tYWxsb2MuaD4K Y29uZmlndXJlOjEzNTg4OiBjaGVja2luZyBmb3Igc3lzL21hbGxvYy5oCmNvbmZpZ3VyZTox MzU5ODogYysrIC1FICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5DID4vZGV2 L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjEzNjMyOiBjaGVja2luZyBmb3Igc3Ry bmR1cApjb25maWd1cmU6MTM2NjM6IGMrKyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgLU8yIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mc2hvcnQtd2NoYXIg ICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1wdGhyZWFkICAgICBjb25mdGVzdC5DIC1wdGhy ZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAxPiY1CmNvbmZpZ3VyZToxMzYzMjogY2hl Y2tpbmcgZm9yIHBvc2l4X21lbWFsaWduCmNvbmZpZ3VyZToxMzY2MzogYysrIC1vIGNvbmZ0 ZXN0IC1PMiAtcGlwZSAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxp YXNpbmcgLWZzaG9ydC13Y2hhciAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLXB0aHJlYWQg ICAgIGNvbmZ0ZXN0LkMgLXB0aHJlYWQgLUwvdXNyL2xvY2FsL2xpYiAtbGljb252IDE+JjUK Y29uZmlndXJlOjEzNjMyOiBjaGVja2luZyBmb3IgbWVtYWxpZ24KY29uZmlndXJlOjEzNjYz OiBjKysgLW8gY29uZnRlc3QgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAt Zm5vLXN0cmljdC1hbGlhc2luZyAtZnNob3J0LXdjaGFyICAgICAtSS91c3IvbG9jYWwvaW5j bHVkZSAtcHRocmVhZCAgICAgY29uZnRlc3QuQyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGli IC1saWNvbnYgMT4mNQovdmFyL3RtcC8vY2NzN0RRTzUubygudGV4dCsweDEyKTogSW4gZnVu Y3Rpb24gYG1haW4nOgo6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG1lbWFsaWduJwpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKI2xpbmUgMTM2MzcgImNvbmZpZ3VyZSIKI2lu Y2x1ZGUgImNvbmZkZWZzLmgiCi8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKICAgIHdoaWNoIGNhbiBjb25m bGljdCB3aXRoIGNoYXIgbWVtYWxpZ24oKTsgYmVsb3cuICAqLwojaW5jbHVkZSA8YXNzZXJ0 Lmg+Ci8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCiNlbmRpZgovKiBX ZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2Yg YSBnY2MyCiAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291 bGQgc3RpbGwgYXBwbHkuICAqLwpjaGFyIG1lbWFsaWduKCk7CgppbnQgbWFpbigpIHsKCi8q IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0 IGltcGxlbWVudHMKICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KI2lmIGRlZmluZWQgKF9f c3R1Yl9tZW1hbGlnbikgfHwgZGVmaW5lZCAoX19zdHViX19fbWVtYWxpZ24pCmNob2tlIG1l CiNlbHNlCm1lbWFsaWduKCk7CiNlbmRpZgoKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6MTM2 MzI6IGNoZWNraW5nIGZvciB2YWxsb2MKY29uZmlndXJlOjEzNjYzOiBjKysgLW8gY29uZnRl c3QgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlh c2luZyAtZnNob3J0LXdjaGFyICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtcHRocmVhZCAg ICAgY29uZnRlc3QuQyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpj b25maWd1cmU6MTM2OTA6IGNoZWNraW5nIGZvciBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5s aW5lKSkKY29uZmlndXJlOjEzNzAyOiBjKysgLWMgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmlj dC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnNob3J0LXdjaGFyICAgICAtSS91 c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5DIDE+JjUKY29uZmlndXJlOjEzNzE3OiBjaGVj a2luZyBmb3IgX19hdHRyaWJ1dGVfXygobWFsbG9jKSkKY29uZmlndXJlOjEzNzI5OiBjKysg LWMgLU8yIC1waXBlIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlh c2luZyAtZnNob3J0LXdjaGFyICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5D IDE+JjUKY29uZmlndXJlOjEzNzQ0OiBjaGVja2luZyBmb3IgX19hdHRyaWJ1dGVfXygod2Fy bl91bnVzZWRfcmVzdWx0KSkKY29uZmlndXJlOjEzNzU2OiBjKysgLWMgLU8yIC1waXBlIC1P MiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnNob3J0LXdj aGFyICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5DIDE+JjUKY29uZmlndXJl OjEzNzcxOiBjaGVja2luZyBmb3IgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKQpjb25maWd1 cmU6MTM3ODM6IGMrKyAtYyAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mc2hvcnQtd2NoYXIgICAgIC1JL3Vzci9sb2NhbC9pbmNs dWRlIGNvbmZ0ZXN0LkMgMT4mNQpjb25maWd1cmU6MTM4MDc6IGNoZWNraW5nIGZvciBMQ19N RVNTQUdFUwpjb25maWd1cmU6MTM4MTk6IGNjIC1jIC1PMiAtcGlwZSAgLU8yIC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91c3IvbG9jYWwvaW5j bHVkZSBjb25mdGVzdC5jIDE+JjUKY29uZmlndXJlOjEzODQyOiBjaGVja2luZyBmb3IgbG9j YWxlY29udgpjb25maWd1cmU6MTM4NzA6IGNjIC1vIGNvbmZ0ZXN0IC1PMiAtcGlwZSAgLU8y IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nICAgICAtSS91c3Iv bG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAgY29uZnRlc3QuYyAtcHRocmVhZCAtTC91c3Iv bG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6MTQwNjc6IGNoZWNraW5nIGZvciBu c3ByLWNvbmZpZwpjb25maWd1cmU6MTQxMDI6IGNoZWNraW5nIGZvciBOU1BSIC0gdmVyc2lv biA+PSA0LjguNwpjb25maWd1cmU6MTQxNzA6IGNjIC1jIC1PMiAtcGlwZSAgLU8yIC1mbm8t c3RyaWN0LWFsaWFzaW5nIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1JL3Vzci9sb2NhbC9pbmNs dWRlL25zcHIgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgMT4mNQpjb25m aWd1cmU6MTQ0NjM6IGNoZWNraW5nIGZvciBZQVNNIGFzc2VtYmxlcgpjb25maWd1cmU6MTQ0 Njk6IGNoZWNraW5nIGZvciB5YXNtCmNvbmZpZ3VyZToxNDYyNTogY2hlY2tpbmcgZm9yIGd6 cmVhZCBpbiAtbHoKY29uZmlndXJlOjE0NjQ0OiBjYyAtbyBjb25mdGVzdCAtSS91c3IvaW5j bHVkZSAtTzIgLXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1h bGlhc2luZyAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUwvdXNyL2xpYiAtcHRocmVhZCAg ICAgY29uZnRlc3QuYyAtbHogIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIgLWxpY29udiAx PiY1CmNvbmZpZ3VyZToxNDY4MDogY2MgLWMgLUkvdXNyL2luY2x1ZGUgLU8yIC1waXBlICAt TzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgICAgIC1JL3Vz ci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1cmU6MTUxOTY6IGNoZWNr aW5nIGlmIGFwcC1zcGVjaWZpYyBjb25mdmFycy5zaCBleGlzdHMKY29uZmlndXJlOjE1NTQ1 OiBjaGVja2luZyBmb3IgcGtnLWNvbmZpZwpjb25maWd1cmU6MTU1ODk6IGNoZWNraW5nIGZv ciBndGsrLTIuMCA+PSAyLjEwLjAgZ3RrKy11bml4LXByaW50LTIuMCBnbGliLTIuMCBnb2Jq ZWN0LTIuMCBnZGsteDExLTIuMApjb25maWd1cmU6MTU1OTY6IGNoZWNraW5nIE1PWl9HVEsy X0NGTEFHUwpjb25maWd1cmU6MTU2MDE6IGNoZWNraW5nIE1PWl9HVEsyX0xJQlMKY29uZmln dXJlOjE2MjA0OiBjaGVja2luZyBmb3IgcGFuZ28gPj0gMS4xNC4wCmNvbmZpZ3VyZToxNjIx MTogY2hlY2tpbmcgX1BBTkdPQ0hLX0NGTEFHUwpjb25maWd1cmU6MTYyMTY6IGNoZWNraW5n IF9QQU5HT0NIS19MSUJTCmNvbmZpZ3VyZToxNjI5NjogY2hlY2tpbmcgZm9yIHBhbmdvID49 IDEuMTQuMCBwYW5nb2Z0MiA+PSAxLjE0LjAgcGFuZ29jYWlybyA+PSAxLjE0LjAKY29uZmln dXJlOjE2MzAzOiBjaGVja2luZyBNT1pfUEFOR09fQ0ZMQUdTCmNvbmZpZ3VyZToxNjMwODog Y2hlY2tpbmcgTU9aX1BBTkdPX0xJQlMKY29uZmlndXJlOjE2OTU4OiBjaGVja2luZyBmb3Ig Z2NvbmYtMi4wID49IDEuMi4xIGdvYmplY3QtMi4wIApjb25maWd1cmU6MTY5NjU6IGNoZWNr aW5nIE1PWl9HQ09ORl9DRkxBR1MKY29uZmlndXJlOjE2OTcwOiBjaGVja2luZyBNT1pfR0NP TkZfTElCUwpjb25maWd1cmU6MTcyMjY6IGNoZWNraW5nIGZvciBsaWJub3RpZnkgPj0gMC40 CmNvbmZpZ3VyZToxNzIzMzogY2hlY2tpbmcgTU9aX0xJQk5PVElGWV9DRkxBR1MKY29uZmln dXJlOjE3MjM4OiBjaGVja2luZyBNT1pfTElCTk9USUZZX0xJQlMKY29uZmlndXJlOjE3MzU3 OiBjaGVja2luZyBmb3IgbGliZ25vbWV1aS0yLjAgPj0gMi4yLjAKY29uZmlndXJlOjE3MzY0 OiBjaGVja2luZyBNT1pfR05PTUVVSV9DRkxBR1MKY29uZmlndXJlOjE3MzY5OiBjaGVja2lu ZyBNT1pfR05PTUVVSV9MSUJTCmNvbmZpZ3VyZToxNzQ5MTogY2hlY2tpbmcgZm9yIGRidXMt MSA+PSAwLjYwCmNvbmZpZ3VyZToxNzQ5ODogY2hlY2tpbmcgTU9aX0RCVVNfQ0ZMQUdTCmNv bmZpZ3VyZToxNzUwMzogY2hlY2tpbmcgTU9aX0RCVVNfTElCUwpjb25maWd1cmU6MTc1ODI6 IGNoZWNraW5nIGZvciBkYnVzLWdsaWItMSA+PSAwLjYwCmNvbmZpZ3VyZToxNzU4OTogY2hl Y2tpbmcgTU9aX0RCVVNfR0xJQl9DRkxBR1MKY29uZmlndXJlOjE3NTk0OiBjaGVja2luZyBN T1pfREJVU19HTElCX0xJQlMKY29uZmlndXJlOjE3OTI1OiBjaGVja2luZyBfX2F0dHJpYnV0 ZV9fICgoYWxpZ25lZCAoKSkpIHN1cHBvcnQKY29uZmlndXJlOjE3OTQyOiBjYyAtYyAtTzIg LXBpcGUgIC1PMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAt V2Vycm9yICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5jIDE+JjUKY29uZmln dXJlOjE4NDc2OiBjaGVja2luZyBmb3IgamF2YQpjb25maWd1cmU6MTg1MjU6IGNoZWNraW5n IGZvciBqYXZhYwpjb25maWd1cmU6MTg1NzQ6IGNoZWNraW5nIGZvciBqYXIKY29uZmlndXJl OjE5MjIxOiBjaGVja2luZyBmb3IgdGFyIGFyY2hpdmVyCmNvbmZpZ3VyZToxOTIyNzogY2hl Y2tpbmcgZm9yIGdudXRhcgpjb25maWd1cmU6MTkyMjc6IGNoZWNraW5nIGZvciBndGFyCmNv bmZpZ3VyZToxOTIyNzogY2hlY2tpbmcgZm9yIHRhcgpjb25maWd1cmU6MTkyNjQ6IGNoZWNr aW5nIGZvciB3Z2V0CmNvbmZpZ3VyZToxOTI3MDogY2hlY2tpbmcgZm9yIHdnZXQKY29uZmln dXJlOjE5OTcwOiBjaGVja2luZyBmb3IgY29uaWMKY29uZmlndXJlOjIwOTkwOiBjaGVja2lu ZyBmb3IgdmFsaWQgb3B0aW1pemF0aW9uIGZsYWdzCmNvbmZpZ3VyZToyMTAwMTogY2MgLWMg LU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNp bmcgLU8gICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgMT4mNQpjb25maWd1 cmU6MjE3NDQ6IGNoZWNraW5nIGZvciBfX2N4YV9kZW1hbmdsZQpjb25maWd1cmU6MjE3NzU6 IGMrKyAtbyBjb25mdGVzdCAtTzIgLXBpcGUgLU8yIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1m bm8tc3RyaWN0LWFsaWFzaW5nIC1mc2hvcnQtd2NoYXIgICAgIC1JL3Vzci9sb2NhbC9pbmNs dWRlIC1wdGhyZWFkICAgICBjb25mdGVzdC5DIC1wdGhyZWFkIC1ML3Vzci9sb2NhbC9saWIg LWxpY29udiAxPiY1CmNvbmZpZ3VyZToyMTgyMzogY2hlY2tpbmcgZm9yIHVud2luZC5oCmNv bmZpZ3VyZToyMTgzMzogY3BwICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVzdC5j ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQKY29uZmlndXJlOjIxODI5OjIwOiBlcnJvcjog dW53aW5kLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CiNsaW5lIDIxODI4ICJjb25maWd1cmUiCiNpbmNsdWRlICJjb25mZGVm cy5oIgojaW5jbHVkZSA8dW53aW5kLmg+CmNvbmZpZ3VyZToyMjAxOTogY2hlY2tpbmcgZm9y IGdjYyAtcGlwZSBzdXBwb3J0CmR1bW15LWhlbGxvLmM6IEluIGZ1bmN0aW9uICdtYWluJzoK ZHVtbXktaGVsbG8uYzoyOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFy YXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCmNvbmZpZ3VyZToyMjA0MTogY2Mg LWMgLU8yIC1waXBlICAtTzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxp YXNpbmcgLXBpcGUgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgMT4mNQpj b25maWd1cmU6MjIwODY6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBzdXBwb3J0cyAt ZnByb2ZpbGUtZ2VuZXJhdGUKY29uZmlndXJlOjIyMDk1OiBjYyAtYyAtTzIgLXBpcGUgIC1P MiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtcGlwZSAtZnBy b2ZpbGUtZ2VuZXJhdGUgLWZwcm9maWxlLWNvcnJlY3Rpb24gICAgIC1JL3Vzci9sb2NhbC9p bmNsdWRlIGNvbmZ0ZXN0LmMgMT4mNQpjYzE6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFu ZCBsaW5lIG9wdGlvbiAiLWZwcm9maWxlLWNvcnJlY3Rpb24iCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgojbGluZSAyMjA4OCAiY29uZmlndXJlIgojaW5jbHVkZSAiY29uZmRl ZnMuaCIKCmludCBtYWluKCkgewpyZXR1cm4gMDsKOyByZXR1cm4gMDsgfQpjb25maWd1cmU6 MjIxOTM6IGNoZWNraW5nIGZvciBjb3JyZWN0IHRlbXBvcmFyeSBvYmplY3QgZGVzdHJ1Y3Rp b24gb3JkZXIKY29uZmlndXJlOjIyMjIxOiBjKysgLW8gY29uZnRlc3QgLU8yIC1waXBlIC1P MiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnNob3J0LXdj aGFyIC1waXBlICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSAtcHRocmVhZCAgICAgY29uZnRl c3QuQyAtcHRocmVhZCAtTC91c3IvbG9jYWwvbGliIC1saWNvbnYgMT4mNQpjb25maWd1cmU6 MjIyNDI6IGNoZWNraW5nIGZvciBjb3JyZWN0IG92ZXJsb2FkIHJlc29sdXRpb24gd2l0aCBj b25zdCBhbmQgdGVtcGxhdGVzCmNvbmZpZ3VyZToyMjI3NzogYysrIC1jIC1PMiAtcGlwZSAt TzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZzaG9ydC13 Y2hhciAtcGlwZSAgLVdhbGwgLVdwb2ludGVyLWFyaXRoIC1Xb3ZlcmxvYWRlZC12aXJ0dWFs IC1Xc3ludGggLVduby1jdG9yLWR0b3ItcHJpdmFjeSAtV25vLW5vbi12aXJ0dWFsLWR0b3Ig LVdjYXN0LWFsaWduIC1Xbm8taW52YWxpZC1vZmZzZXRvZiAtV25vLXZhcmlhZGljLW1hY3Jv cyAtV2Vycm9yPXJldHVybi10eXBlICAgICAtSS91c3IvbG9jYWwvaW5jbHVkZSBjb25mdGVz dC5DIDE+JjUKY29uZmlndXJlOiBJbiBmdW5jdGlvbiAnaW50IG1haW4oKSc6CmNvbmZpZ3Vy ZToyMjI3Mjogd2FybmluZzogJ2JhcicgaXMgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMg ZnVuY3Rpb24KY29uZmlndXJlOjIyNjk2OiBjaGVja2luZyBmb3IgbGliSURMLTIuMCA+PSAw LjguMCBnbGliLTIuMCBnb2JqZWN0LTIuMApjb25maWd1cmU6MjI3MDM6IGNoZWNraW5nIEhP U1RfTElCSURMX0NGTEFHUwpjb25maWd1cmU6MjI3MDg6IGNoZWNraW5nIEhPU1RfTElCSURM X0xJQlMKY29uZmlndXJlOjIzNTg1OiBjaGVja2luZyBmb3IgZ2xpYi0yLjAgPj0gMS4zLjcg Z29iamVjdC0yLjAKY29uZmlndXJlOjIzNTkyOiBjaGVja2luZyBHTElCX0NGTEFHUwpjb25m aWd1cmU6MjM1OTc6IGNoZWNraW5nIEdMSUJfTElCUwpjb25maWd1cmU6MjM5NTE6IGNoZWNr aW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6MjM5NjE6IGNwcCAgICAgLUkvdXNyL2xvY2Fs L2luY2x1ZGUgY29uZnRlc3QuYyA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0CmNvbmZpZ3Vy ZToyMzk1MTogY2hlY2tpbmcgZm9yIGludHR5cGVzLmgKY29uZmlndXJlOjIzOTYxOiBjcHAg ICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPi9kZXYvbnVsbCAyPmNvbmZ0 ZXN0Lm91dApjb25maWd1cmU6MjM5NTE6IGNoZWNraW5nIGZvciBzeXMvaW50X3R5cGVzLmgK Y29uZmlndXJlOjIzOTYxOiBjcHAgICAgIC1JL3Vzci9sb2NhbC9pbmNsdWRlIGNvbmZ0ZXN0 LmMgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dApjb25maWd1cmU6MjM5NTc6Mjc6IGVycm9y OiBzeXMvaW50X3R5cGVzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CiNsaW5lIDIzOTU2ICJjb25maWd1cmUiCiNpbmNsdWRl ICJjb25mZGVmcy5oIgojaW5jbHVkZSA8c3lzL2ludF90eXBlcy5oPgpjb25maWd1cmU6MjQ0 MTM6IGNoZWNraW5nIGZvciBjYWlybyA+PSAxLjEwIHBpeG1hbi0xIGZyZWV0eXBlMiBmb250 Y29uZmlnCmNvbmZpZ3VyZToyNDQyMDogY2hlY2tpbmcgQ0FJUk9fQ0ZMQUdTCmNvbmZpZ3Vy ZToyNDQyNTogY2hlY2tpbmcgQ0FJUk9fTElCUwpjb25maWd1cmU6MjQ1MDY6IGNoZWNraW5n IGZvciBjYWlyby10ZWUgPj0gMS4xMAo= --------------000002010007020907010601-- From owner-freebsd-gecko@FreeBSD.ORG Mon Apr 4 08:33:01 2011 Return-Path: Delivered-To: freebsd-gecko@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47C4F106566B for ; Mon, 4 Apr 2011 08:33:01 +0000 (UTC) (envelope-from decke@FreeBSD.org) Received: from groupware.itac.at (groupware.itac.at [91.205.172.99]) by mx1.freebsd.org (Postfix) with ESMTP id D1A8F8FC1C for ; Mon, 4 Apr 2011 08:33:00 +0000 (UTC) Received: from home.bluelife.at (93.104.210.95) by groupware.itac.at (Axigen) with (AES256-SHA encrypted) ESMTPSA id 3EA7D4; Mon, 4 Apr 2011 10:33:00 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Date: Mon, 04 Apr 2011 10:33:00 +0200 From: Bernhard Froehlich To: Pan Tsu In-Reply-To: <86lizvn8wz.fsf@gmail.com> References: <86lizvn8wz.fsf@gmail.com> Message-ID: <8e8deacee319b46e9009fe05ee04b1fb@bluelife.at> X-Sender: decke@FreeBSD.org User-Agent: Roundcube Webmail/0.5.1 X-AxigenSpam-Level: 1 X-CTCH-RefID: str=0001.0A0B0208.4D99823B.020D,ss=1,fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown Cc: freebsd-gecko@freebsd.org Subject: Re: --disable-ipc is disallowed X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Apr 2011 08:33:01 -0000 On Thu, 31 Mar 2011 09:41:48 +0400, Pan Tsu wrote: > Mozilla devs recently disabled the option > > https://bugzilla.mozilla.org/show_bug.cgi?id=638755 > > mozilla-central (aka trunk) still builds fine on FreeBSD but I wonder > how long it'll remain so. > > So, do you plan to fix IPC port[1], probably using some pieces from > www/chromium, or try keep --disable-ipc as long as possible? > > [1] it was removed in r430 > > http://trillian.chruetertee.ch/freebsd-gecko/changeset/430 Thanks for the hint. We will definitely need to talk to the Mozilla guys about that. The IPC code is just not working on FreeBSD in it's current state and beat@ created some patch in the firefox 3.6.x days that is not stable but hopefully a good starting point. I don't know about the state of that on Mac OSX and also don't know if they have updated the IPC code because it was already very old when they introduced it. So for now we need to keep --disable-ipc but it's on our todo list to fix that issue since they introduced that feature. Help on this issue is very welcome. If you don't know what we are talking about: http://www.mozilla.com/en-US/firefox/lorentz/ "Keep Plugin Crashes Under Control Firefox "Lorentz" provides uninterrupted browsing for Windows and Linux users when there is a crash in the Adobe Flash, Apple Quicktime or Microsoft Silverlight plugins. If a plugin crashes or freezes, it will not affect the rest of Firefox. You will be able to reload the page to restart the plugin and try again. Firefox Lorentz will become part of a future release of Firefox 3.6." -- Bernhard Froehlich http://www.bluelife.at/ From owner-freebsd-gecko@FreeBSD.ORG Mon Apr 4 08:51:29 2011 Return-Path: Delivered-To: gecko@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 697531065670 for ; Mon, 4 Apr 2011 08:51:29 +0000 (UTC) (envelope-from decke@bluelife.at) Received: from groupware.itac.at (groupware.itac.at [91.205.172.99]) by mx1.freebsd.org (Postfix) with ESMTP id D8E568FC1D for ; Mon, 4 Apr 2011 08:51:28 +0000 (UTC) Received: from home.bluelife.at (93.104.210.95) by groupware.itac.at (Axigen) with (AES256-SHA encrypted) ESMTPSA id 138855; Mon, 4 Apr 2011 10:36:23 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: Mon, 04 Apr 2011 10:36:23 +0200 From: Bernhard Froehlich To: Alex In-Reply-To: <4D9840A7.5060702@mail.ru> References: <4D9840A7.5060702@mail.ru> Message-ID: <3137fab616175470c422ca1afa82437b@bluelife.at> X-Sender: decke@bluelife.at User-Agent: Roundcube Webmail/0.5.1 X-AxigenSpam-Level: 1 X-CTCH-RefID: str=0001.0A0B0205.4D998306.0101,ss=1,fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown Cc: gecko@FreeBSD.org Subject: Re: No install firefox4 X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Apr 2011 08:51:29 -0000 On Sun, 03 Apr 2011 13:40:55 +0400, Alex wrote: > helper# ls /var/db/pkg > ORBit2-2.14.19 libiodbc-3.52.7 > OpenEXR-1.6.1_3 libkate-0.3.7_1 > > [snip] Please also send the compiler or configure output. -- Bernhard Fröhlich http://www.bluelife.at/ From owner-freebsd-gecko@FreeBSD.ORG Mon Apr 4 11:07:18 2011 Return-Path: Delivered-To: gecko@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B41C10656D5 for ; Mon, 4 Apr 2011 11:07:18 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 478DE8FC26 for ; Mon, 4 Apr 2011 11:07:18 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p34B7Iam028867 for ; Mon, 4 Apr 2011 11:07:18 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p34B7HjQ028865 for gecko@FreeBSD.org; Mon, 4 Apr 2011 11:07:17 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 4 Apr 2011 11:07:17 GMT Message-Id: <201104041107.p34B7HjQ028865@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: gecko@FreeBSD.org Cc: Subject: Current problem reports assigned to gecko@FreeBSD.org X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Apr 2011 11:07:18 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- f ports/155949 gecko www/firefox: firefox 4, WITH_PGO, better Text against o ports/155291 gecko reinstalling www/firefox removes www/firefox-sync o ports/153114 gecko www/firefox 3.6.12_1,1 crash: Assertion failure: prop o ports/150631 gecko www/firefox 3.6.9 does not build if you have previousl o ports/146231 gecko [feature request] [patch] www/firefox: use port libs o ports/144044 gecko [PATCH] www/firefox: Makefile.webplugins target order 6 problems total. From owner-freebsd-gecko@FreeBSD.ORG Mon Apr 4 11:29:19 2011 Return-Path: Delivered-To: gecko@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2FCB4106564A; Mon, 4 Apr 2011 11:29:19 +0000 (UTC) (envelope-from decke@FreeBSD.org) Received: from groupware.itac.at (groupware.itac.at [91.205.172.99]) by mx1.freebsd.org (Postfix) with ESMTP id BA25B8FC0A; Mon, 4 Apr 2011 11:29:18 +0000 (UTC) Received: from home.bluelife.at (93.104.210.95) by groupware.itac.at (Axigen) with (AES256-SHA encrypted) ESMTPSA id 2C1766; Mon, 4 Apr 2011 13:29:18 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Date: Mon, 04 Apr 2011 13:29:18 +0200 From: Bernhard Froehlich To: In-Reply-To: <201103290607.p2T674ob067019@freefall.freebsd.org> References: <201103290607.p2T674ob067019@freefall.freebsd.org> Message-ID: X-Sender: decke@FreeBSD.org User-Agent: Roundcube Webmail/0.5.1 X-AxigenSpam-Level: 1 X-CTCH-RefID: str=0001.0A0B0201.4D99AB8D.0121,ss=1,fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown Cc: gecko@FreeBSD.org, kalten@gmx.at Subject: Re: ports/155949: www/firefox: firefox 4, WITH_PGO, better Text against DISPLAY problem X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Apr 2011 11:29:19 -0000 I think the cleanest solution would be a check before starting build to detect if X is available or not. (ideally configure or otherwise port Makefile) But if we are talking about PGO removal do we have some numbers how much speed you gain? I don't feel any differences on my machine and JS benchmarks are about the same. Mozilla ships his own Firefox binaries all without PGO so I'm not sure about the support of that optimizations. Drawbacks: 1) 2 full compiler runs - build time about ~2.5x 2) requires X to actually run the binary and do some profiling 3) it tends to fail in some cases -- Bernhard Froehlich http://www.bluelife.at/ From owner-freebsd-gecko@FreeBSD.ORG Mon Apr 4 13:43:47 2011 Return-Path: Delivered-To: gecko@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C3F8F1065670; Mon, 4 Apr 2011 13:43:47 +0000 (UTC) (envelope-from inyaoo@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 29D928FC18; Mon, 4 Apr 2011 13:43:46 +0000 (UTC) Received: by fxm11 with SMTP id 11so5143861fxm.13 for ; Mon, 04 Apr 2011 06:43:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type; bh=iTLz2wdRXwmaQmHRLypfVedNpPC6Rnpml0JNq9OdC1A=; b=hQnCB9nObi5l8/P2Tm2W8slAsXAu71I9yx/xlN3Kqa9qiyPvQ9VZVQkZA+7RRCncVk WKaF+VokPnaw0g3UjUjKN4LLwN6JqLNgqU12QBdc0lHqWB1Wv9t7xDOwS3+/5BPTzP3/ 4TyU4glY6RIvQmlcO2MOwJU9M5f0ThSvxg0nA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; b=WY5TXu8H+CLxLAqslWpeU8AktD+Qx8bh7IyPgzXkOJ1XsqzMrpXO4o++Sc8XKSG1Wc HTQZznVYbIH8uXsh2qdDYLOAB+4jPPJRdnJTlw5mT0wmIB4oXIIENvElYGLdSWDvFzTP eDcV72RJW+JRrS/KERcdWrViRN8Y0JJrP2toY= Received: by 10.223.6.198 with SMTP id a6mr1469902faa.126.1301923032303; Mon, 04 Apr 2011 06:17:12 -0700 (PDT) Received: from localhost ([38.108.126.205]) by mx.google.com with ESMTPS id c21sm1719267fac.46.2011.04.04.06.17.08 (version=SSLv3 cipher=OTHER); Mon, 04 Apr 2011 06:17:11 -0700 (PDT) From: Pan Tsu To: Bernhard Froehlich References: <201103290607.p2T674ob067019@freefall.freebsd.org> Date: Mon, 04 Apr 2011 17:16:53 +0400 In-Reply-To: (Bernhard Froehlich's message of "Mon, 04 Apr 2011 13:29:18 +0200") Message-ID: <86y63q9mwq.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain Cc: gecko@FreeBSD.org, Beat Gaetzi , Kalten Subject: Re: ports/155949: www/firefox: firefox 4, WITH_PGO, better Text against DISPLAY problem X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Apr 2011 13:43:47 -0000 Bernhard Froehlich writes: > I think the cleanest solution would be a check before starting build to > detect if X is available or not. (ideally configure or otherwise port > Makefile) [...] Does waiting for XOpenDisplay() to time out and abort the build suffice? %% Index: www/firefox/Makefile =================================================================== RCS file: /a/.cvsup/ports/www/firefox/Makefile,v retrieving revision 1.239 diff -u -p -r1.239 Makefile --- www/firefox/Makefile 24 Mar 2011 11:04:17 -0000 1.239 +++ www/firefox/Makefile 4 Apr 2011 13:05:54 -0000 @@ -88,7 +87,7 @@ ALL_TARGET= profiledbuild BUILD_DEPENDS+= yasm:${PORTSDIR}/devel/yasm .endif -pre-extract: +pgo-check: .if defined(WITH_PGO) @${ECHO} "*****************************************************************" @${ECHO} "**************************** attention **************************" @@ -99,7 +98,9 @@ pre-extract: @${ECHO} "During the build a Firefox instance will start and run some test." @${ECHO} " Do not interrupt or close Firefox during this tests! " @${ECHO} "*****************************************************************" - @sleep 10 + @${PYTHON_CMD} -c 'from ctypes import CDLL; CDLL("libX11.so").\ + XOpenDisplay("${DISPLAY}")' & \ + if sleep 3 && kill $$!; then return 1; fi .endif post-extract:: @@ -122,7 +123,7 @@ s|/usr/X11R6|${LOCALBASE}|g' \ ${WRKSRC}/js/src/configure -pre-configure: +pre-configure: pgo-check (cd ${WRKSRC} && ${AUTOCONF}) (cd ${WRKSRC}/js/src/ && ${AUTOCONF}) %% From owner-freebsd-gecko@FreeBSD.ORG Tue Apr 5 09:10:12 2011 Return-Path: Delivered-To: gecko@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7DFE7106564A for ; Tue, 5 Apr 2011 09:10:12 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 5217C8FC15 for ; Tue, 5 Apr 2011 09:10:12 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p359ACNq059936 for ; Tue, 5 Apr 2011 09:10:12 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p359ACRI059935; Tue, 5 Apr 2011 09:10:12 GMT (envelope-from gnats) Date: Tue, 5 Apr 2011 09:10:12 GMT Message-Id: <201104050910.p359ACRI059935@freefall.freebsd.org> To: gecko@FreeBSD.org From: Beat Gaetzi Cc: Subject: Re: ports/155949: www/firefox: firefox 4, WITH_PGO, better Text against DISPLAY problem X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Beat Gaetzi List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Apr 2011 09:10:12 -0000 The following reply was made to PR ports/155949; it has been noted by GNATS. From: Beat Gaetzi To: Bernhard Froehlich Cc: bug-followup@FreeBSD.org Subject: Re: ports/155949: www/firefox: firefox 4, WITH_PGO, better Text against DISPLAY problem Date: Tue, 05 Apr 2011 11:01:05 +0200 On 04.04.2011 13:29, Bernhard Froehlich wrote: > I think the cleanest solution would be a check before starting build to > detect if X is available or not. (ideally configure or otherwise port > Makefile) But if we are talking about PGO removal do we have some > numbers how much speed you gain? I don't feel any differences on my > machine and JS benchmarks are about the same. Mozilla ships his own > Firefox binaries all without PGO so I'm not sure about the support of > that optimizations. I don't know how we should or can test that X is available or not. Please note I don't think that we should remove PGO from the port in general I propose to remove it only from OPTIONS. Although I do not have numbers what we gain with PGO from my subjective experience when using Firefox I think it act faster when building with PGO. Beat From owner-freebsd-gecko@FreeBSD.ORG Thu Apr 7 06:08:17 2011 Return-Path: Delivered-To: gecko@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 90B07106564A for ; Thu, 7 Apr 2011 06:08:17 +0000 (UTC) (envelope-from RemiZOffAlex@mail.ru) Received: from smtp19.mail.ru (smtp19.mail.ru [94.100.176.156]) by mx1.freebsd.org (Postfix) with ESMTP id 1D6678FC08 for ; Thu, 7 Apr 2011 06:08:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:Subject:In-Reply-To:References:Cc:To:From; bh=RobVVp8/NgUwfjJHWrxx7/ihMSs0QW07OPWfFmzroIg=; b=O2mQSO2xe2DdIt1x/muXbIfcjbYYq9ke/zmjR21JzjUIq10rEiY+Tv0ZCRjGdCk4d0keJb9XsxYsaQIxtTIAPJG72k7yC/QkAj7iY1fXZfJlk0D7lkjBKe8en7J+sxRG; Received: from [91.103.79.75] (port=27661 helo=professional) by smtp19.mail.ru with asmtp id 1Q7iO7-0003TN-00; Thu, 07 Apr 2011 10:08:15 +0400 From: "RemiZOffAlex" To: "'Bernhard Froehlich'" References: <4D9840A7.5060702@mail.ru> <3137fab616175470c422ca1afa82437b@bluelife.at> In-Reply-To: <3137fab616175470c422ca1afa82437b@bluelife.at> Date: Thu, 7 Apr 2011 10:08:08 +0400 Message-ID: <000101cbf4ea$2b08c230$811a4690$@ru> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: Acvyo2DueaFkV9BaSMi8nbANSiRnRQCRaydQ Content-Language: ru X-Spam: Not detected X-Mras: Ok Cc: gecko@FreeBSD.org Subject: RE: No install firefox4 X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Apr 2011 06:08:17 -0000 Hi Bernhard! I'm update ports and start portupgrade. Firefox installed. Big thank = you. P.S.: I'm of Russia and not speak English. Sorry. :-) -----Original Message----- From: Bernhard Froehlich [mailto:decke@bluelife.at]=20 Sent: Monday, April 04, 2011 12:36 PM To: Alex Cc: gecko@FreeBSD.org Subject: Re: No install firefox4 On Sun, 03 Apr 2011 13:40:55 +0400, Alex wrote: > helper# ls /var/db/pkg > ORBit2-2.14.19 libiodbc-3.52.7 > OpenEXR-1.6.1_3 libkate-0.3.7_1 > > [snip] Please also send the compiler or configure output. --=20 Bernhard Fr=D1=86hlich http://www.bluelife.at/ From owner-freebsd-gecko@FreeBSD.ORG Thu Apr 7 21:12:48 2011 Return-Path: Delivered-To: freebsd-gecko@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 760041065675 for ; Thu, 7 Apr 2011 21:12:48 +0000 (UTC) (envelope-from inyaoo@gmail.com) Received: from mail-ww0-f50.google.com (mail-ww0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id 04E2A8FC15 for ; Thu, 7 Apr 2011 21:12:47 +0000 (UTC) Received: by wwc33 with SMTP id 33so3423071wwc.31 for ; Thu, 07 Apr 2011 14:12:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type; bh=IKsO3WO5fOOFWMRYzVGH11EEXQk1ztJ3LJY5o4GC7qA=; b=jFF64kie3EfqLbgmY43x6W5jFZO4BwynOC+/5K3mdRHPWjaolvBivT2HhvIBGdPl0j SwWR0DSHA98Cq/IUQxQsHZTDkhUfGbGi/VGJnCTbEFTBVbO27vfVYE/sJKt702dRz9A0 nJVlkCiRB6UrspUPeH8BxJCuNxltt5Et78UDs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:references:date:in-reply-to:message-id:user-agent :mime-version:content-type; b=aWvXTupcAHIJ1ngvNMgWTqUc3LDnn2xkusFhbnw0IWiYuxWN6ISD60NjA921MQ/fgr ClpF/hJckWKce1K1mtbwQCPH5BaBsFT2CzUvjQVrSTUa2EG+de/tdOlt51V9ThjbTk4p sxwNdSN40O/oyD9JumzuwqVCPua2l0/cKrdGs= Received: by 10.227.200.210 with SMTP id ex18mr1416768wbb.139.1302210766619; Thu, 07 Apr 2011 14:12:46 -0700 (PDT) Received: from localhost ([109.123.119.163]) by mx.google.com with ESMTPS id b20sm1296093wbb.33.2011.04.07.14.12.42 (version=SSLv3 cipher=OTHER); Thu, 07 Apr 2011 14:12:44 -0700 (PDT) From: Pan Tsu To: freebsd-gecko@freebsd.org References: <86lizvn8wz.fsf@gmail.com> <8e8deacee319b46e9009fe05ee04b1fb@bluelife.at> Date: Fri, 08 Apr 2011 01:12:37 +0400 In-Reply-To: <8e8deacee319b46e9009fe05ee04b1fb@bluelife.at> (Bernhard Froehlich's message of "Mon, 04 Apr 2011 10:33:00 +0200") Message-ID: <867hb5935m.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain Subject: Re: --disable-ipc is disallowed X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Apr 2011 21:12:48 -0000 Bernhard Froehlich writes: > On Thu, 31 Mar 2011 09:41:48 +0400, Pan Tsu wrote: >> Mozilla devs recently disabled the option >> >> https://bugzilla.mozilla.org/show_bug.cgi?id=638755 >> >> mozilla-central (aka trunk) still builds fine on FreeBSD but I wonder >> how long it'll remain so. >> >> So, do you plan to fix IPC port[1], probably using some pieces from >> www/chromium, or try keep --disable-ipc as long as possible? >> >> [1] it was removed in r430 >> >> http://trillian.chruetertee.ch/freebsd-gecko/changeset/430 > > Thanks for the hint. We will definitely need to talk to the Mozilla > guys about that. The IPC code is just not working on FreeBSD in it's > current state and beat@ created some patch in the firefox 3.6.x days > that is not stable but hopefully a good starting point. Hmm, IPC seems stable for me. Tested on 67597:fb566937c787, PGO build, -Ofast, ports/146231 flash plugin no longer causes rendering glitches with vdpau, not sure if it's because of IPC or an update. %% build hacks for r67597 Index: www/firefox/Makefile =================================================================== RCS file: /a/.cvsup/ports/www/firefox/Makefile,v retrieving revision 1.239 diff -u -p -r1.239 Makefile --- www/firefox/Makefile 24 Mar 2011 11:04:17 -0000 1.239 +++ www/firefox/Makefile 7 Apr 2011 20:24:51 -0000 @@ -18,6 +17,7 @@ MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla BUILD_DEPENDS= nspr>=4.8.7:${PORTSDIR}/devel/nspr +LIB_DEPENDS= execinfo.1:${PORTSDIR}/devel/libexecinfo USE_AUTOTOOLS= autoconf213 USE_GECKO= gecko @@ -54,5 +52,9 @@ OPTIONS= DBUS "Enable D-BUS support" on PGO "Enable Profile-Guided Optimization" off \ SMB "Enable smb:// URI support using gnomevfs" off +# XXX: what is gcc46 specific? +CXXFLAGS+= -fpermissive +MOZ_OPTIONS+= --disable-warnings-as-errors + .include @@ -108,6 +112,9 @@ post-extract:: <${FILESDIR}/firefox.desktop.in >${WRKDIR}/${MOZILLA}.desktop post-patch: + @${GREP} -Flr \"/proc ${WRKSRC}/ipc/chromium/src/base | ${XARGS} ${REINPLACE_CMD} \ + -e 's|/proc/self/fd|/dev/fd|' \ + -e 's|/proc["/]|/compat/linux&|' ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS:C/-pthread/${GECKO_PTHREAD_LIBS}/}|' \ ${WRKSRC}/storage/build/Makefile.in \ ${WRKSRC}/toolkit/library/Makefile.in \ Index: www/firefox/files/patch-ipc-chromium-src-base-atomicops_internals_mutex.cc =================================================================== RCS file: www/firefox/files/patch-ipc-chromium-src-base-atomicops_internals_mutex.cc diff -N www/firefox/files/patch-ipc-chromium-src-base-atomicops_internals_mutex.cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/firefox/files/patch-ipc-chromium-src-base-atomicops_internals_mutex.cc 7 Apr 2011 15:10:16 -0000 @@ -0,0 +1,10 @@ +--- ipc/chromium/src/base/atomicops_internals_mutex.cc~ ++++ ipc/chromium/src/base/atomicops_internals_mutex.cc +@@ -39,6 +39,7 @@ + * ***** END LICENSE BLOCK ***** */ + + #include "base/atomicops.h" ++#include "base/lock.h" + + namespace base { + namespace subtle { Index: www/firefox/files/patch-ipc-chromium-src-base-file_util.h =================================================================== RCS file: www/firefox/files/patch-ipc-chromium-src-base-file_util.h diff -N www/firefox/files/patch-ipc-chromium-src-base-file_util.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/firefox/files/patch-ipc-chromium-src-base-file_util.h 7 Apr 2011 15:10:16 -0000 @@ -0,0 +1,13 @@ +--- ipc/chromium/src/base/file_util.h~ ++++ ipc/chromium/src/base/file_util.h +@@ -15,8 +15,9 @@ + #elif defined(ANDROID) + #include + #elif defined(OS_POSIX) ++#include ++#include + #include +-#include + #endif + + #include Index: www/firefox/files/patch-ipc-chromium-src-base-file_util_linux.cc =================================================================== RCS file: www/firefox/files/patch-ipc-chromium-src-base-file_util_linux.cc diff -N www/firefox/files/patch-ipc-chromium-src-base-file_util_linux.cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/firefox/files/patch-ipc-chromium-src-base-file_util_linux.cc 7 Apr 2011 15:10:16 -0000 @@ -0,0 +1,11 @@ +--- ipc/chromium/src/base/file_util_linux.cc~ ++++ ipc/chromium/src/base/file_util_linux.cc +@@ -28,7 +28,7 @@ bool GetShmemTempDir(FilePath* path) { + #ifdef ANDROID + return GetTempDir(path); + #else +- *path = FilePath("/dev/shm"); ++ *path = FilePath("/tmp"); + return true; + #endif + } Index: www/firefox/files/patch-ipc-chromium-src-base-file_util_posix.cc =================================================================== RCS file: www/firefox/files/patch-ipc-chromium-src-base-file_util_posix.cc diff -N www/firefox/files/patch-ipc-chromium-src-base-file_util_posix.cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/firefox/files/patch-ipc-chromium-src-base-file_util_posix.cc 7 Apr 2011 15:10:16 -0000 @@ -0,0 +1,11 @@ +--- ipc/chromium/src/base/file_util_posix.cc~ ++++ ipc/chromium/src/base/file_util_posix.cc +@@ -30,6 +30,8 @@ + #include "base/string_util.h" + #include "base/time.h" + ++#define stat64 stat ++ + namespace file_util { + + #if defined(GOOGLE_CHROME_BUILD) Index: www/firefox/files/patch-ipc-chromium-src-base-platform_file_posix.cc =================================================================== RCS file: www/firefox/files/patch-ipc-chromium-src-base-platform_file_posix.cc diff -N www/firefox/files/patch-ipc-chromium-src-base-platform_file_posix.cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/firefox/files/patch-ipc-chromium-src-base-platform_file_posix.cc 7 Apr 2011 15:10:16 -0000 @@ -0,0 +1,10 @@ +--- ipc/chromium/src/base/platform_file_posix.cc~ ++++ ipc/chromium/src/base/platform_file_posix.cc +@@ -9,6 +9,7 @@ + #ifdef ANDROID + #include + #endif ++#include + + #include "base/logging.h" + #include "base/string_util.h" Index: www/firefox/files/patch-ipc-chromium-src-base-platform_thread_posix.cc =================================================================== RCS file: www/firefox/files/patch-ipc-chromium-src-base-platform_thread_posix.cc diff -N www/firefox/files/patch-ipc-chromium-src-base-platform_thread_posix.cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/firefox/files/patch-ipc-chromium-src-base-platform_thread_posix.cc 7 Apr 2011 19:56:07 -0000 @@ -0,0 +1,21 @@ +--- ipc/chromium/src/base/platform_thread_posix.cc~ ++++ ipc/chromium/src/base/platform_thread_posix.cc +@@ -10,8 +10,7 @@ + #if defined(OS_MACOSX) + #include + #elif defined(OS_LINUX) +-#include +-#include ++#include + #endif + + #if defined(OS_MACOSX) +@@ -34,7 +33,7 @@ PlatformThreadId PlatformThread::Current + #if defined(OS_MACOSX) + return mach_thread_self(); + #elif defined(OS_LINUX) +- return syscall(__NR_gettid); ++ return pthread_getthreadid_np(); // thr_self(2) ? + #endif + } + Index: www/firefox/files/patch-ipc-chromium-src-base-third_party-nspr-prcpucfg.h =================================================================== RCS file: www/firefox/files/patch-ipc-chromium-src-base-third_party-nspr-prcpucfg.h diff -N www/firefox/files/patch-ipc-chromium-src-base-third_party-nspr-prcpucfg.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/firefox/files/patch-ipc-chromium-src-base-third_party-nspr-prcpucfg.h 7 Apr 2011 15:10:16 -0000 @@ -0,0 +1,11 @@ +--- ipc/chromium/src/base/third_party/nspr/prcpucfg.h~ ++++ ipc/chromium/src/base/third_party/nspr/prcpucfg.h +@@ -34,7 +34,7 @@ + #include "base/third_party/nspr/prcpucfg_win.h" + #elif defined(__APPLE__) + #include "base/third_party/nspr/prcpucfg_mac.h" +-#elif defined(__linux__) || defined(ANDROID) ++#elif defined(__FreeBSD__) || defined(ANDROID) + #include "base/third_party/nspr/prcpucfg_linux.h" + #else + #error Provide a prcpucfg.h appropriate for your platform Index: www/firefox/files/patch-ipc-chromium-src-build-build_config.h =================================================================== RCS file: www/firefox/files/patch-ipc-chromium-src-build-build_config.h diff -N www/firefox/files/patch-ipc-chromium-src-build-build_config.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/firefox/files/patch-ipc-chromium-src-build-build_config.h 7 Apr 2011 15:10:16 -0000 @@ -0,0 +1,11 @@ +--- ipc/chromium/src/build/build_config.h~ ++++ ipc/chromium/src/build/build_config.h +@@ -17,7 +17,7 @@ + // A set of macros to use for platform detection. + #if defined(__APPLE__) + #define OS_MACOSX 1 +-#elif defined(__linux__) || defined(ANDROID) ++#elif defined(__FreeBSD__) || defined(ANDROID) + #define OS_LINUX 1 + #elif defined(_WIN32) + #define OS_WIN 1 Index: www/firefox/files/patch-toolkit_library_Makefile.in =================================================================== RCS file: /a/.cvsup/ports/www/firefox/files/patch-toolkit_library_Makefile.in,v retrieving revision 1.2 diff -u -p -r1.2 patch-toolkit_library_Makefile.in --- www/firefox/files/patch-toolkit_library_Makefile.in 22 Mar 2011 15:24:49 -0000 1.2 +++ www/firefox/files/patch-toolkit_library_Makefile.in 7 Apr 2011 15:05:47 -0000 @@ -5,7 +5,7 @@ $(INSTALL) $^ . -EXTRA_DSO_LDOPTS += $(LIBS_DIR) $(EXTRA_DSO_LIBS) -+EXTRA_DSO_LDOPTS += $(LIBS_DIR) $(EXTRA_DSO_LIBS) %%PTHREAD_LIBS%% ++EXTRA_DSO_LDOPTS += $(LIBS_DIR) $(EXTRA_DSO_LIBS) -lexecinfo %%PTHREAD_LIBS%% ifdef MOZ_ENABLE_LIBXUL include $(srcdir)/libxul-rules.mk Index: www/firefox/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in =================================================================== RCS file: /a/.cvsup/ports/www/firefox/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in,v retrieving revision 1.3 diff -u -p -r1.3 patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in --- www/firefox/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in 22 Mar 2011 15:24:49 -0000 1.3 +++ www/firefox/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in 28 Mar 2011 07:48:47 -0000 @@ -29,9 +29,9 @@ +CPPSRCS := xptcinvoke_amd64_openbsd.cpp xptcstubs_amd64_openbsd.cpp +endif +# - # BeOS/Intel (uses the same unixish_x86 code) + # Neutrino/Intel (uses the same unixish_x86 code) # - ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC) + ifeq ($(OS_TARGET),NTO) @@ -158,9 +167,15 @@ ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s endif %% From owner-freebsd-gecko@FreeBSD.ORG Thu Apr 7 21:58:42 2011 Return-Path: Delivered-To: freebsd-gecko@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CAB901065767 for ; Thu, 7 Apr 2011 21:58:42 +0000 (UTC) (envelope-from inyaoo@gmail.com) Received: from mail-gy0-f182.google.com (mail-gy0-f182.google.com [209.85.160.182]) by mx1.freebsd.org (Postfix) with ESMTP id 831538FC1F for ; Thu, 7 Apr 2011 21:58:42 +0000 (UTC) Received: by gyg13 with SMTP id 13so1385274gyg.13 for ; Thu, 07 Apr 2011 14:58:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type; bh=W94NRUplTmg9A6KuIAu3T8G6UuGU/St5pDmCYeljZYE=; b=DK/4rBN6RKP08GdsU7huu4WZi6iESdLop3MfE37Wt1BxNFOn4MxaHKU8/3sCy7SUQY hI8f9T5IZKmO44W8QemtLPXH3qa0sjGdyAYWOlLuH8Q+ApYsP071ukqVWSub45QRNlTu fg7cL8I2xoLrlRpdRsB6gQhl3Ks3SI10/s+Kg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:references:date:in-reply-to:message-id:user-agent :mime-version:content-type; b=thQq78y1BM3AHmUYcRI6dkqbFjemCZrXeqmLCWxOHTX5wXX5D9AyvqiWkuENDZwQoH 9GntPddPlDperyq8kHZztu54+t9oyGrSE3Qr8x0Qo36t5hhpLEC5s+XZa3wudmlGTdqa mXrtHKsKd7hhUuKknfyTodpLASj6qe0t5Zqro= Received: by 10.151.123.21 with SMTP id a21mr1337852ybn.285.1302213521765; Thu, 07 Apr 2011 14:58:41 -0700 (PDT) Received: from localhost (tor-exit-router36-readme.formlessnetworking.net [199.48.147.36]) by mx.google.com with ESMTPS id r18sm1108195yba.26.2011.04.07.14.58.39 (version=SSLv3 cipher=OTHER); Thu, 07 Apr 2011 14:58:40 -0700 (PDT) From: Pan Tsu To: freebsd-gecko@freebsd.org References: <86lizvn8wz.fsf@gmail.com> <8e8deacee319b46e9009fe05ee04b1fb@bluelife.at> <867hb5935m.fsf@gmail.com> Date: Fri, 08 Apr 2011 01:58:35 +0400 In-Reply-To: <867hb5935m.fsf@gmail.com> (Pan Tsu's message of "Fri, 08 Apr 2011 01:12:37 +0400") Message-ID: <868vvl7mgk.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain Subject: Re: --disable-ipc is disallowed X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Apr 2011 21:58:42 -0000 Pan Tsu writes: [...] > flash plugin no longer causes rendering glitches with vdpau, not sure if > it's because of IPC or an update. Nevermind, glitches occured again after killing mplayer in background. According to google the issue seems to be known on linux, too.