[www-releases] r349965 - Add 7.0.1 docs for clang, llvm, and lld

Tom Stellard via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 21 13:53:04 PST 2018


Added: www-releases/trunk/7.0.1/tools/clang/docs/searchindex.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/clang/docs/searchindex.js?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/clang/docs/searchindex.js (added)
+++ www-releases/trunk/7.0.1/tools/clang/docs/searchindex.js Fri Dec 21 13:53:02 2018
@@ -0,0 +1 @@
+Search.setIndex({docnames:["AddressSanitizer","AttributeReference","AutomaticReferenceCounting","Block-ABI-Apple","BlockLanguageSpec","ClangCheck","ClangCommandLineReference","ClangFormat","ClangFormatStyleOptions","ClangPlugins","ClangTools","CommandGuide/clang","CommandGuide/diagtool","CommandGuide/index","ControlFlowIntegrity","ControlFlowIntegrityDesign","CrossCompilation","DataFlowSanitizer","DataFlowSanitizerDesign","DiagnosticsReference","DriverInternals","ExternalClangExamples","FAQ","HardwareAssistedAddressSanitizerDesign","HowToSetupToolingForLLVM","InternalsManual","IntroductionToTheClangAST","ItaniumMangleAbiTags","JSONCompilationDatabase","LTOVisibility","LanguageExtensions","LeakSanitizer","LibASTMatchers","LibASTMatchersTutorial","LibFormat","LibTooling","MSVCCompatibility","MemorySanitizer","Modules","ObjectiveCLiterals","OpenMPSupport","PCHInternals","PTHInternals","RAVFrontendAction","RefactoringEngine","ReleaseNotes","SafeStack","SanitizerCoverage","SanitizerSpecialCaseList","SanitizerStats","ShadowCallStack","SourceBasedCodeCoverage","ThinLTO","ThreadSafetyAnalysis","ThreadSanitizer","Toolchain","Tooling","UndefinedBehaviorSanitizer","UsersManual","index"],envversion:53,filenames:["AddressSanitizer.rst","AttributeReference.rst","AutomaticReferenceCounting.rst","Block-ABI-Apple.rst","BlockLanguageSpec.rst","ClangCheck.rst","ClangCommandLineReference.rst","ClangFormat.rst","ClangFormatStyleOptions.rst","ClangPlugins.rst","ClangTools.rst","CommandGuide/clang.rst","CommandGuide/diagtool.rst","CommandGuide/index.rst","ControlFlowIntegrity.rst","ControlFlowIntegrityDesign.rst","CrossCompilation.rst","DataFlowSanitizer.rst","DataFlowSanitizerDesign.rst","DiagnosticsReference.rst","DriverInternals.rst","ExternalClangExamples.rst","FAQ.rst","HardwareAssistedAddressSanitizerDesign.rst","HowToSetupToolingForLLVM.rst","InternalsManual.rst","IntroductionToTheClangAST.rst","ItaniumMangleAbiTags.rst","JSONCompilationDatabase.rst","LTOVisibility.rst","LanguageExtensions.rst","LeakSanitizer.rst","LibASTMatchers.rst","LibASTMatchersTutorial.rst","LibFormat.rst","LibTooling.rst","MSVCCompatibility.rst","MemorySanitizer.rst","Modules.rst","ObjectiveCLiterals.rst","OpenMPSupport.rst","PCHInternals.rst","PTHInternals.rst","RAVFrontendAction.rst","RefactoringEngine.rst","ReleaseNotes.rst","SafeStack.rst","SanitizerCoverage.rst","SanitizerSpecialCaseList.rst","SanitizerStats.rst","ShadowCallStack.rst","SourceBasedCodeCoverage.rst","ThinLTO.rst","ThreadSafetyAnalysis.rst","ThreadSanitizer.rst","Toolchain.rst","Tooling.rst","UndefinedBehaviorSanitizer.rst","UsersManual.rst","index.rst"],objects:{"":{"-###":[11,0,1,"cmdoption"],"--help":[11,0,1,"cmdoption-help"],"-D<macroname>":[11,0,1,"cmdoption-d-macroname"],"-E":[11,0,1,"cmdoption-e"],"-F<directory>":[11,0,1,"cmdoption-f-directory"],"-I<directory>":[11,0,1,"cmdoption-i-directory"],"-MV":[58,0,1,"cmdoption-mv"],"-O":[11,0,1,"cmdoption-o0"],"-O0":[11,0,1,"cmdoption-o0"],"-O1":[11,0,1,"cmdoption-o0"],"-O2":[11,0,1,"cmdoption-o0"],"-O3":[11,0,1,"cmdoption-o0"],"-O4":[11,0,1,"cmdoption-o0"],"-ObjC":[11,0,1,"cmdoption-objc"],"-ObjC++":[11,0,1,"cmdoption-objc"],"-Ofast":[11,0,1,"cmdoption-o0"],"-Og":[11,0,1,"cmdoption-o0"],"-Os":[11,0,1,"cmdoption-o0"],"-Oz":[11,0,1,"cmdoption-o0"],"-Qunused-arguments":[11,0,1,"cmdoption-qunused-arguments"],"-S":[11,0,1,"cmdoption-s"],"-U<macroname>":[11,0,1,"cmdoption-u-macroname"],"-Wa,<args>":[11,0,1,"cmdoption-wa-args"],"-Wambiguous-member-template":[58,0,1,"cmdoption-wambiguous-member-template"],"-Wbind-to-temporary-copy":[58,0,1,"cmdoption-wbind-to-temporary-copy"],"-Wdocumentation":[58,0,1,"cmdoption-wdocumentation"],"-Werror":[58,0,1,"cmdoption-werror"],"-Weverything":[58,0,1,"cmdoption-weverything"],"-Wextra-tokens":[58,0,1,"cmdoption-wextra-tokens"],"-Wfoo":[58,0,1,"cmdoption-wfoo"],"-Wl,<args>":[11,0,1,"cmdoption-wl-args"],"-Wno-documentation-unknown-command":[58,0,1,"cmdoption-wno-documentation-unknown-command"],"-Wno-error":[58,0,1,"cmdoption-wno-error"],"-Wno-foo":[58,0,1,"cmdoption-wno-foo"],"-Wp,<args>":[11,0,1,"cmdoption-wp-args"],"-Wsystem-headers":[58,0,1,"cmdoption-wsystem-headers"],"-Xanalyzer":[11,0,1,"cmdoption-xanalyzer"],"-Xassembler":[11,0,1,"cmdoption-xassembler"],"-Xlinker":[11,0,1,"cmdoption-xlinker"],"-Xpreprocessor":[11,0,1,"cmdoption-xpreprocessor"],"-ansi":[11,0,1,"cmdoption-ansi"],"-arch":[11,0,1,"cmdoption-arch"],"-c":[11,0,1,"cmdoption-c"],"-cl-ext":[58,0,1,"cmdoption-cl-ext"],"-emit-llvm":[11,0,1,"cmdoption-flto"],"-f[no-]strict-float-cast-overflow":[58,0,1,"cmdoption-f-no-strict-float-cast-overflow"],"-faddrsig":[58,0,1,"cmdoption-faddrsig"],"-fblocks":[11,0,1,"cmdoption-fblocks"],"-fborland-extensions":[11,0,1,"cmdoption-fborland-extensions"],"-fbracket-depth":[58,0,1,"cmdoption-fbracket-depth"],"-fcaret-diagnostics":[11,0,1,"cmdoption-fshow-column"],"-fcomment-block-commands":[58,0,1,"cmdoption-fcomment-block-commands"],"-fcommon":[11,0,1,"cmdoption-fcommon"],"-fconstexpr-depth":[58,0,1,"cmdoption-fconstexpr-depth"],"-fconstexpr-steps":[58,0,1,"cmdoption-fconstexpr-steps"],"-fdebug-macro":[58,0,1,"cmdoption-fdebug-macro"],"-fdenormal-fp-math":[58,0,1,"cmdoption-fdenormal-fp-math"],"-fdiagnostics-fixit-info":[11,0,1,"cmdoption-fshow-column"],"-fdiagnostics-format":[58,0,1,"cmdoption-fdiagnostics-format"],"-fdiagnostics-parseable-fixits":[58,0,1,"cmdoption-fdiagnostics-parseable-fixits"],"-fdiagnostics-print-source-range-info":[11,0,1,"cmdoption-fshow-column"],"-fdiagnostics-show-category":[58,0,1,"cmdoption-fdiagnostics-show-category"],"-fdiagnostics-show-option":[11,0,1,"cmdoption-fshow-column"],"-fdiagnostics-show-template-tree":[58,0,1,"cmdoption-fdiagnostics-show-template-tree"],"-fdiscard-value-names":[58,0,1,"cmdoption-fdiscard-value-names"],"-femulated-tls":[58,0,1,"cmdoption-femulated-tls"],"-ferror-limit":[58,0,1,"cmdoption-ferror-limit"],"-fexceptions":[11,0,1,"cmdoption-fexceptions"],"-ffake-address-space-map":[58,0,1,"cmdoption-ffake-address-space-map"],"-ffast-math":[58,0,1,"cmdoption-ffast-math"],"-fforce-emit-vtables":[58,0,1,"cmdoption-fforce-emit-vtables"],"-ffreestanding":[11,0,1,"cmdoption-ffreestanding"],"-finclude-default-header":[58,0,1,"cmdoption-finclude-default-header"],"-flax-vector-conversions":[11,0,1,"cmdoption-flax-vector-conversions"],"-flto":[11,0,1,"cmdoption-flto"],"-fmath-errno":[11,0,1,"cmdoption-fmath-errno"],"-fmessage-length":[11,0,1,"cmdoption-fshow-column"],"-fms-extensions":[11,0,1,"cmdoption-fms-extensions"],"-fmsc-version":[11,0,1,"cmdoption-fmsc-version"],"-fno-addrsig":[58,0,1,"cmdoption-faddrsig"],"-fno-assume-sane-operator-new":[58,0,1,"cmdoption-fno-assume-sane-operator-new"],"-fno-builtin":[11,0,1,"cmdoption-fno-builtin"],"-fno-common":[11,0,1,"cmdoption-fcommon"],"-fno-crash-diagnostics":[58,0,1,"cmdoption-fno-crash-diagnostics"],"-fno-debug-macro":[58,0,1,"cmdoption-fno-debug-macro"],"-fno-discard-value-names":[58,0,1,"cmdoption-fno-discard-value-names"],"-fno-elide-type":[58,0,1,"cmdoption-fno-elide-type"],"-fno-objc-nonfragile-abi":[11,0,1,"cmdoption-fobjc-nonfragile-abi"],"-fno-sanitize-blacklist":[58,0,1,"cmdoption-fno-sanitize-blacklist"],"-fno-standalone-debug":[58,0,1,"cmdoption-fno-standalone-debug"],"-fobjc-abi-version":[11,0,1,"cmdoption-fobjc-abi-version"],"-fobjc-nonfragile-abi":[11,0,1,"cmdoption-fobjc-nonfragile-abi"],"-fobjc-nonfragile-abi-version":[11,0,1,"cmdoption-fobjc-nonfragile-abi-version"],"-fopenmp-use-tls":[58,0,1,"cmdoption-fopenmp-use-tls"],"-foperator-arrow-depth":[58,0,1,"cmdoption-foperator-arrow-depth"],"-fparse-all-comments":[58,0,1,"cmdoption-fparse-all-comments"],"-fpascal-strings":[11,0,1,"cmdoption-fpascal-strings"],"-fprint-source-range-info":[11,0,1,"cmdoption-fshow-column"],"-fprofile-generate[":[58,0,1,"cmdoption-fprofile-generate"],"-fprofile-use[":[58,0,1,"cmdoption-fprofile-use"],"-fsanitize-blacklist":[58,0,1,"cmdoption-fsanitize-blacklist"],"-fsanitize-cfi-cross-dso":[58,0,1,"cmdoption-fsanitize-cfi-cross-dso"],"-fsanitize-cfi-icall-generalize-pointers":[58,0,1,"cmdoption-fsanitize-cfi-icall-generalize-pointers"],"-fsanitize-undefined-trap-on-error":[58,0,1,"cmdoption-fsanitize-undefined-trap-on-error"],"-fshow-column":[11,0,1,"cmdoption-fshow-column"],"-fshow-source-location":[11,0,1,"cmdoption-fshow-column"],"-fstandalone-debug":[58,0,1,"cmdoption-fstandalone-debug"],"-fstrict-vtable-pointers":[58,0,1,"cmdoption-fstrict-vtable-pointers"],"-fsyntax-only":[11,0,1,"cmdoption-fsyntax-only"],"-ftemplate-backtrace-limit":[58,0,1,"cmdoption-ftemplate-backtrace-limit"],"-ftemplate-depth":[58,0,1,"cmdoption-ftemplate-depth"],"-ftime-report":[11,0,1,"cmdoption-ftime-report"],"-ftls-model":[58,0,1,"cmdoption-ftls-model"],"-ftrap-function":[58,0,1,"cmdoption-ftrap-function"],"-ftrapv":[11,0,1,"cmdoption-ftrapv"],"-fvisibility":[11,0,1,"cmdoption-fvisibility"],"-fwhole-program-vtables":[58,0,1,"cmdoption-fwhole-program-vtables"],"-fwritable-strings":[11,0,1,"cmdoption-fwritable-strings"],"-g":[58,0,1,"cmdoption-g"],"-g0":[58,0,1,"cmdoption-g0"],"-gen-reproducer":[58,0,1,"cmdoption-gen-reproducer"],"-ggdb":[58,0,1,"cmdoption-ggdb"],"-gline-tables-only":[58,0,1,"cmdoption-gline-tables-only"],"-glldb":[58,0,1,"cmdoption-ggdb"],"-gmodules":[11,0,1,"cmdoption-g"],"-gsce":[58,0,1,"cmdoption-ggdb"],"-include":[11,0,1,"cmdoption-include"],"-integrated-as":[11,0,1,"cmdoption-integrated-as"],"-m[no-]crc":[58,0,1,"cmdoption-m-no-crc"],"-march":[11,0,1,"cmdoption-march"],"-mcompact-branches":[58,0,1,"cmdoption-mcompact-branches"],"-mgeneral-regs-only":[58,0,1,"cmdoption-mgeneral-regs-only"],"-mhwdiv":[58,0,1,"cmdoption-mhwdiv"],"-miphoneos-version-min":[11,0,1,"cmdoption-miphoneos-version-min"],"-mmacosx-version-min":[11,0,1,"cmdoption-mmacosx-version-min"],"-no-integrated-as":[11,0,1,"cmdoption-integrated-as"],"-nobuiltininc":[11,0,1,"cmdoption-nobuiltininc"],"-nostdinc":[11,0,1,"cmdoption-nostdinc"],"-nostdlibinc":[11,0,1,"cmdoption-nostdlibinc"],"-o":[11,0,1,"cmdoption-o"],"-pedantic":[58,0,1,"cmdoption-pedantic"],"-pedantic-errors":[58,0,1,"cmdoption-pedantic-errors"],"-print-file-name":[11,0,1,"cmdoption-print-file-name"],"-print-libgcc-file-name":[11,0,1,"cmdoption-print-libgcc-file-name"],"-print-prog-name":[11,0,1,"cmdoption-print-prog-name"],"-print-search-dirs":[11,0,1,"cmdoption-print-search-dirs"],"-rtlib":[11,0,1,"cmdoption-rtlib"],"-save-stats":[11,0,1,"cmdoption-save-stats"],"-save-temps":[11,0,1,"cmdoption-save-temps"],"-std":[11,0,1,"cmdoption-std"],"-stdlib":[11,0,1,"cmdoption-stdlib"],"-time":[11,0,1,"cmdoption-time"],"-trigraphs":[11,0,1,"cmdoption-trigraphs"],"-v":[11,0,1,"cmdoption-v"],"-w":[58,0,1,"cmdoption-w"],"-x":[11,0,1,"cmdoption-x"],"C_INCLUDE_PATH,OBJC_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJCPLUS_INCLUDE_PATH":[11,1,1,"-"],"TMPDIR,TEMP,TMP":[11,1,1,"-"],CPATH:[11,1,1,"-"],MACOSX_DEPLOYMENT_TARGET:[11,1,1,"-"],no:[11,0,1,"cmdoption-arg-no"]},"clang.-Wa,<arg>,<arg2>..":{"":[6,0,1,"cmdoption-clang-wa-arg-arg2"]},"clang.-Wl,<arg>,<arg2>..":{"":[6,0,1,"cmdoption-clang-wl-arg-arg2"]},"clang.-Wp,<arg>,<arg2>..":{"":[6,0,1,"cmdoption-clang-wp-arg-arg2"]},"clang.-mno-sse4":{"1":[6,0,1,"cmdoption-clang-msse4-1"]},"clang.-msse4":{"1":[6,0,1,"cmdoption-clang-msse4-1"]},"clang1.-mno-sse4":{"2":[6,0,1,"cmdoption-clang1-msse4-2"]},"clang1.-msse4":{"2":[6,0,1,"cmdoption-clang1-msse4-2"]},clang1:{"-ObjC++":[6,0,1,"cmdoption-clang1-objc"],"-Xopenmp-target":[6,0,1,"cmdoption-clang1-xopenmp-target"],"-Z":[6,0,1,"cmdoption-clang1-z"],"-arch_errors_fatal":[6,0,1,"cmdoption-clang1-arch-errors-fatal"],"-bundle_loader":[6,0,1,"cmdoption-clang1-bundle-loader"],"-d<arg>":[6,0,1,"cmdoption-clang1-d-arg"],"-dylinker_install_name<arg>":[6,0,1,"cmdoption-clang1-dylinker-install-name-arg"],"-falign-functions":[6,0,1,"cmdoption-clang1-falign-functions"],"-faligned-allocation":[6,0,1,"cmdoption-clang1-faligned-allocation"],"-faligned-new":[6,0,1,"cmdoption-clang1-faligned-allocation"],"-fauto-profile":[6,0,1,"cmdoption-clang1-fprofile-sample-use"],"-fdiagnostics-color":[6,0,1,"cmdoption-clang1-fdiagnostics-color"],"-flto":[6,0,1,"cmdoption-clang1-flto"],"-fno-aligned-allocation":[6,0,1,"cmdoption-clang1-faligned-allocation"],"-fno-sanitize-recover":[6,0,1,"cmdoption-clang1-fsanitize-recover"],"-fopenmp":[6,0,1,"cmdoption-clang1-fopenmp"],"-force_flat_namespace":[6,0,1,"cmdoption-clang1-force-flat-namespace"],"-fpack-struct":[6,0,1,"cmdoption-clang1-fpack-struct"],"-fprofile-generate":[6,0,1,"cmdoption-clang1-fprofile-generate"],"-fprofile-instr-generate":[6,0,1,"cmdoption-clang1-fprofile-instr-generate"],"-fprofile-instr-use":[6,0,1,"cmdoption-clang1-fprofile-instr-use"],"-fprofile-sample-use":[6,0,1,"cmdoption-clang1-fprofile-sample-use"],"-fprofile-use":[6,0,1,"cmdoption-clang1-fprofile-use"],"-frewrite-map-file":[6,0,1,"cmdoption-clang1-frewrite-map-file"],"-fsanitize-memory-track-origins":[6,0,1,"cmdoption-clang1-fsanitize-memory-track-origins"],"-fsanitize-recover":[6,0,1,"cmdoption-clang1-fsanitize-recover"],"-ftrapv-handler":[6,0,1,"cmdoption-clang1-ftrapv-handler"],"-fxray-instruction-threshold":[6,0,1,"cmdoption-clang1-fxray-instruction-threshold"],"-gz":[6,0,1,"cmdoption-clang1-gz"],"-lazy_library":[6,0,1,"cmdoption-clang1-lazy-library"],"-mhvx":[6,0,1,"cmdoption-clang1-mhvx"],"-mrecip":[6,0,1,"cmdoption-clang1-mrecip"],"-msse4":[6,0,1,"cmdoption-clang1-msse4-2"],"-multiply_defined_unused":[6,0,1,"cmdoption-clang1-multiply-defined-unused"],"-nostdinc++":[6,0,1,"cmdoption-clang1-nostdinc"],"-nostdlib++":[6,0,1,"cmdoption-clang1-nostdlib"],"-prebind_all_twolevel_modules":[6,0,1,"cmdoption-clang1-prebind-all-twolevel-modules"],"-seg_addr_table_filename":[6,0,1,"cmdoption-clang1-seg-addr-table-filename"],"-segs_read_only_addr":[6,0,1,"cmdoption-clang1-segs-read-only-addr"],"-sub_umbrella<arg>":[6,0,1,"cmdoption-clang1-sub-umbrella-arg"],"-twolevel_namespace_hints":[6,0,1,"cmdoption-clang1-twolevel-namespace-hints"],"-weak_library":[6,0,1,"cmdoption-clang1-weak-library"]},clang2:{"-arch_only":[6,0,1,"cmdoption-clang2-arch-only"],"-force_load":[6,0,1,"cmdoption-clang2-force-load"],"-segs_read_write_addr":[6,0,1,"cmdoption-clang2-segs-read-write-addr"],"-weak_reference_mismatches":[6,0,1,"cmdoption-clang2-weak-reference-mismatches"]},clang:{"--CLASSPATH":[6,0,1,"cmdoption-clang-fclasspath"],"--analyze":[6,0,1,"cmdoption-clang-analyze"],"--analyze-auto":[6,0,1,"cmdoption-clang-analyze-auto"],"--analyzer-no-default-checks":[6,0,1,"cmdoption-clang-analyzer-no-default-checks"],"--analyzer-output<arg>":[6,0,1,"cmdoption-clang-analyzer-output-arg"],"--ansi":[6,0,1,"cmdoption-clang-ansi"],"--assemble":[6,0,1,"cmdoption-clang-s"],"--assert":[6,0,1,"cmdoption-clang-assert"],"--autocomplete":[6,0,1,"cmdoption-clang-autocomplete"],"--bootclasspath":[6,0,1,"cmdoption-clang-fbootclasspath"],"--classpath":[6,0,1,"cmdoption-clang-fclasspath"],"--comments":[6,0,1,"cmdoption-clang-comments"],"--comments-in-macros":[6,0,1,"cmdoption-clang-cc"],"--compile":[6,0,1,"cmdoption-clang-c"],"--config":[6,0,1,"cmdoption-clang-config"],"--constant-cfstrings":[6,0,1,"cmdoption-clang-constant-cfstrings"],"--coverage":[6,0,1,"cmdoption-clang-coverage"],"--cuda-compile-host-device":[6,0,1,"cmdoption-clang-cuda-compile-host-device"],"--cuda-device-only":[6,0,1,"cmdoption-clang-cuda-device-only"],"--cuda-gpu-arch":[6,0,1,"cmdoption-clang-cuda-gpu-arch"],"--cuda-host-only":[6,0,1,"cmdoption-clang-cuda-host-only"],"--cuda-include-ptx":[6,0,1,"cmdoption-clang-cuda-include-ptx"],"--cuda-noopt-device-debug":[6,0,1,"cmdoption-clang-cuda-noopt-device-debug"],"--cuda-path":[6,0,1,"cmdoption-clang-cuda-path"],"--cuda-path-ignore-env":[6,0,1,"cmdoption-clang-cuda-path-ignore-env"],"--debug":[6,0,1,"cmdoption-clang-g"],"--define-macro":[6,0,1,"cmdoption-clang-d-macro"],"--dependencies":[6,0,1,"cmdoption-clang-m"],"--dyld-prefix":[6,0,1,"cmdoption-clang-dyld-prefix"],"--encoding":[6,0,1,"cmdoption-clang-fencoding"],"--entry":[6,0,1,"cmdoption-clang-e-arg"],"--extdirs":[6,0,1,"cmdoption-clang-fextdirs"],"--extra-warnings":[6,0,1,"cmdoption-clang-w-warning"],"--for-linker":[6,0,1,"cmdoption-clang-xlinker"],"--force-link":[6,0,1,"cmdoption-clang-u-arg"],"--gcc-toolchain":[6,0,1,"cmdoption-clang-gcc-toolchain"],"--help":[6,0,1,"cmdoption-clang-help"],"--help-hidden":[6,0,1,"cmdoption-clang-help-hidden"],"--hip-device-lib":[6,0,1,"cmdoption-clang-hip-device-lib"],"--hip-device-lib-path":[6,0,1,"cmdoption-clang-hip-device-lib-path"],"--hip-link":[6,0,1,"cmdoption-clang-hip-link"],"--imacros":[6,0,1,"cmdoption-clang-imacros-file"],"--imacros<file>":[6,0,1,"cmdoption-clang-imacros-file"],"--include":[6,0,1,"cmdoption-clang-include-file"],"--include<file>":[6,0,1,"cmdoption-clang-include-file"],"--include-barrier":[6,0,1,"cmdoption-clang-i"],"--include-directory":[6,0,1,"cmdoption-clang-i-dir"],"--include-directory-after":[6,0,1,"cmdoption-clang-idirafter-arg"],"--include-prefix":[6,0,1,"cmdoption-clang-iprefix-dir"],"--include-with-prefix":[6,0,1,"cmdoption-clang-iwithprefix-dir"],"--include-with-prefix-after":[6,0,1,"cmdoption-clang-iwithprefix-dir"],"--include-with-prefix-before":[6,0,1,"cmdoption-clang-iwithprefixbefore-dir"],"--language":[6,0,1,"cmdoption-clang-x-language"],"--library-directory":[6,0,1,"cmdoption-clang-l-dir"],"--mhwdiv":[6,0,1,"cmdoption-clang-mhwdiv"],"--migrate":[6,0,1,"cmdoption-clang-migrate"],"--no-cuda-gpu-arch":[6,0,1,"cmdoption-clang-cuda-gpu-arch"],"--no-cuda-include-ptx":[6,0,1,"cmdoption-clang-cuda-include-ptx"],"--no-cuda-noopt-device-debug":[6,0,1,"cmdoption-clang-cuda-noopt-device-debug"],"--no-cuda-version-check":[6,0,1,"cmdoption-clang-no-cuda-version-check"],"--no-integrated-cpp":[6,0,1,"cmdoption-clang-no-integrated-cpp"],"--no-line-commands":[6,0,1,"cmdoption-clang-no-line-commands"],"--no-pedantic":[6,0,1,"cmdoption-clang-pedantic"],"--no-standard-includes":[6,0,1,"cmdoption-clang-nostdinc"],"--no-standard-libraries":[6,0,1,"cmdoption-clang-nostdlib"],"--no-system-header-prefix":[6,0,1,"cmdoption-clang-system-header-prefix"],"--no-undefined":[6,0,1,"cmdoption-clang-undefined-arg"],"--no-warnings":[6,0,1,"cmdoption-clang-w"],"--optimize":[6,0,1,"cmdoption-clang-o-arg"],"--output":[6,0,1,"cmdoption-clang-o-file"],"--output-class-directory":[6,0,1,"cmdoption-clang-foutput-class-dir"],"--param":[6,0,1,"cmdoption-clang-param"],"--pedantic":[6,0,1,"cmdoption-clang-pedantic"],"--pedantic-errors":[6,0,1,"cmdoption-clang-pedantic-errors"],"--pipe":[6,0,1,"cmdoption-clang-pipe"],"--precompile":[6,0,1,"cmdoption-clang-precompile"],"--prefix":[6,0,1,"cmdoption-clang-b-dir"],"--preprocess":[6,0,1,"cmdoption-clang-e"],"--print-diagnostic-categories":[6,0,1,"cmdoption-clang-print-diagnostic-categories"],"--print-file-name":[6,0,1,"cmdoption-clang-print-file-name"],"--print-libgcc-file-name":[6,0,1,"cmdoption-clang-print-libgcc-file-name"],"--print-missing-file-dependencies":[6,0,1,"cmdoption-clang-mg"],"--print-multi-directory":[6,0,1,"cmdoption-clang-print-multi-directory"],"--print-multi-lib":[6,0,1,"cmdoption-clang-print-multi-lib"],"--print-prog-name":[6,0,1,"cmdoption-clang-print-prog-name"],"--print-resource-dir":[6,0,1,"cmdoption-clang-print-resource-dir"],"--print-search-dirs":[6,0,1,"cmdoption-clang-print-search-dirs"],"--profile":[6,0,1,"cmdoption-clang-p"],"--profile-blocks":[6,0,1,"cmdoption-clang-a-arg"],"--ptxas-path":[6,0,1,"cmdoption-clang-ptxas-path"],"--relocatable-pch":[6,0,1,"cmdoption-clang-relocatable-pch"],"--resource":[6,0,1,"cmdoption-clang-fcompile-resource"],"--rtlib":[6,0,1,"cmdoption-clang-rtlib"],"--save-stats":[6,0,1,"cmdoption-clang-save-stats"],"--save-temps":[6,0,1,"cmdoption-clang-save-temps"],"--serialize-diagnostics":[6,0,1,"cmdoption-clang-serialize-diagnostics"],"--shared":[6,0,1,"cmdoption-clang-shared"],"--signed-char":[6,0,1,"cmdoption-clang-fsigned-char"],"--specs":[6,0,1,"cmdoption-clang-specs"],"--static":[6,0,1,"cmdoption-clang-static"],"--std":[6,0,1,"cmdoption-clang-std"],"--stdlib":[6,0,1,"cmdoption-clang-stdlib"],"--sysroot":[6,0,1,"cmdoption-clang-sysroot"],"--system-header-prefix":[6,0,1,"cmdoption-clang-system-header-prefix"],"--target":[6,0,1,"cmdoption-clang-target"],"--target-help":[6,0,1,"cmdoption-clang-target-help"],"--trace-includes":[6,0,1,"cmdoption-clang-h"],"--traditional":[6,0,1,"cmdoption-clang-traditional"],"--traditional-cpp":[6,0,1,"cmdoption-clang-traditional-cpp"],"--trigraphs":[6,0,1,"cmdoption-clang-ftrigraphs"],"--undefine-macro":[6,0,1,"cmdoption-clang-u-macro"],"--unsigned-char":[6,0,1,"cmdoption-clang-funsigned-char"],"--user-dependencies":[6,0,1,"cmdoption-clang-mm"],"--verbose":[6,0,1,"cmdoption-clang-v"],"--verify-debug-info":[6,0,1,"cmdoption-clang-verify-debug-info"],"--version":[6,0,1,"cmdoption-clang-version"],"--warn-":[6,0,1,"cmdoption-clang-w-warning"],"--warn-<arg>":[6,0,1,"cmdoption-clang-w-warning"],"--write-dependencies":[6,0,1,"cmdoption-clang-md"],"--write-user-dependencies":[6,0,1,"cmdoption-clang-mmd"],"-A<arg>":[6,0,1,"cmdoption-clang-assert"],"-A-<arg>":[6,0,1,"id2"],"-B<dir>":[6,0,1,"cmdoption-clang-b-dir"],"-C":[6,0,1,"cmdoption-clang-comments"],"-CC":[6,0,1,"cmdoption-clang-cc"],"-D<macro>":[6,0,1,"cmdoption-clang-d-macro"],"-E":[6,0,1,"cmdoption-clang-e"],"-EB":[6,0,1,"cmdoption-clang-mbig-endian"],"-EL":[6,0,1,"cmdoption-clang-mlittle-endian"],"-F<arg>":[6,0,1,"cmdoption-clang-f-arg"],"-G":[6,0,1,"cmdoption-clang-g-size"],"-G<size>":[6,0,1,"cmdoption-clang-g-size"],"-H":[6,0,1,"cmdoption-clang-h"],"-I<dir>":[6,0,1,"cmdoption-clang-i-dir"],"-I-":[6,0,1,"cmdoption-clang-i"],"-J<arg>":[6,0,1,"cmdoption-clang-j-arg"],"-L<dir>":[6,0,1,"cmdoption-clang-l-dir"],"-M":[6,0,1,"cmdoption-clang-m"],"-MD":[6,0,1,"cmdoption-clang-md"],"-MF<file>":[6,0,1,"cmdoption-clang-mf-file"],"-MG":[6,0,1,"cmdoption-clang-mg"],"-MJ<arg>":[6,0,1,"cmdoption-clang-mj-arg"],"-MM":[6,0,1,"cmdoption-clang-mm"],"-MMD":[6,0,1,"cmdoption-clang-mmd"],"-MP":[6,0,1,"cmdoption-clang-mp"],"-MQ<arg>":[6,0,1,"cmdoption-clang-mq-arg"],"-MT<arg>":[6,0,1,"cmdoption-clang-mt-arg"],"-MV":[6,0,1,"cmdoption-clang-mv"],"-Mach":[6,0,1,"cmdoption-clang-mach"],"-O":[6,0,1,"cmdoption-clang-o-arg"],"-O<arg>":[6,0,1,"cmdoption-clang-o-arg"],"-ObjC":[6,0,1,"cmdoption-clang-objc"],"-Ofast<arg>":[6,0,1,"cmdoption-clang-ofast-arg"],"-P":[6,0,1,"cmdoption-clang-no-line-commands"],"-Qn":[6,0,1,"cmdoption-clang-qn"],"-Qunused-arguments":[6,0,1,"cmdoption-clang-qunused-arguments"],"-Qy":[6,0,1,"cmdoption-clang-qy"],"-R<remark>":[6,0,1,"cmdoption-clang-r-remark"],"-Rpass":[6,0,1,"cmdoption-clang-rpass"],"-Rpass-analysis":[6,0,1,"cmdoption-clang-rpass-analysis"],"-Rpass-missed":[6,0,1,"cmdoption-clang-rpass-missed"],"-S":[6,0,1,"cmdoption-clang-s"],"-T<script>":[6,0,1,"cmdoption-clang-t-script"],"-Tbss<addr>":[6,0,1,"cmdoption-clang-tbss-addr"],"-Tdata<addr>":[6,0,1,"cmdoption-clang-tdata-addr"],"-Ttext<addr>":[6,0,1,"cmdoption-clang-ttext-addr"],"-U<macro>":[6,0,1,"cmdoption-clang-u-macro"],"-W<warning>":[6,0,1,"cmdoption-clang-w-warning"],"-Wdeprecated":[6,0,1,"cmdoption-clang-wdeprecated"],"-Wframe-larger-than":[6,0,1,"cmdoption-clang-wframe-larger-than"],"-Wlarge-by-value-copy":[6,0,1,"cmdoption-clang-wlarge-by-value-copy"],"-Wno-deprecated":[6,0,1,"cmdoption-clang-wdeprecated"],"-Wno-nonportable-cfstrings<arg>":[6,0,1,"cmdoption-clang-wnonportable-cfstrings-arg"],"-Wnonportable-cfstrings<arg>":[6,0,1,"cmdoption-clang-wnonportable-cfstrings-arg"],"-X":[6,0,1,"cmdoption-clang-x"],"-Xanalyzer":[6,0,1,"cmdoption-clang-xanalyzer"],"-Xarch_<arg1>":[6,0,1,"cmdoption-clang-xarch-arg1"],"-Xassembler":[6,0,1,"cmdoption-clang-xassembler"],"-Xclang":[6,0,1,"cmdoption-clang-xclang"],"-Xcuda-fatbinary":[6,0,1,"cmdoption-clang-xcuda-fatbinary"],"-Xcuda-ptxas":[6,0,1,"cmdoption-clang-xcuda-ptxas"],"-Xlinker":[6,0,1,"cmdoption-clang-xlinker"],"-Xopenmp-target":[6,0,1,"cmdoption-clang-xopenmp-target"],"-Xpreprocessor":[6,0,1,"cmdoption-clang-xpreprocessor"],"-Z<arg>":[6,0,1,"cmdoption-clang-z-arg"],"-a<arg>":[6,0,1,"cmdoption-clang-a-arg"],"-all_load":[6,0,1,"cmdoption-clang-all-load"],"-allowable_client":[6,0,1,"cmdoption-clang-allowable-client"],"-ansi":[6,0,1,"cmdoption-clang-ansi"],"-arch":[6,0,1,"cmdoption-clang-arch"],"-arcmt-migrate-emit-errors":[6,0,1,"cmdoption-clang-arcmt-migrate-emit-errors"],"-arcmt-migrate-report-output":[6,0,1,"cmdoption-clang-arcmt-migrate-report-output"],"-bind_at_load":[6,0,1,"cmdoption-clang-bind-at-load"],"-bundle":[6,0,1,"cmdoption-clang-bundle"],"-c":[6,0,1,"cmdoption-clang-c"],"-cfguard":[6,0,1,"cmdoption-clang-cfguard"],"-cl-denorms-are-zero":[6,0,1,"cmdoption-clang-cl-denorms-are-zero"],"-cl-fast-relaxed-math":[6,0,1,"cmdoption-clang-cl-fast-relaxed-math"],"-cl-finite-math-only":[6,0,1,"cmdoption-clang-cl-finite-math-only"],"-cl-fp32-correctly-rounded-divide-sqrt":[6,0,1,"cmdoption-clang-cl-fp32-correctly-rounded-divide-sqrt"],"-cl-kernel-arg-info":[6,0,1,"cmdoption-clang-cl-kernel-arg-info"],"-cl-mad-enable":[6,0,1,"cmdoption-clang-cl-mad-enable"],"-cl-no-signed-zeros":[6,0,1,"cmdoption-clang-cl-no-signed-zeros"],"-cl-opt-disable":[6,0,1,"cmdoption-clang-cl-opt-disable"],"-cl-single-precision-constant":[6,0,1,"cmdoption-clang-cl-single-precision-constant"],"-cl-std":[6,0,1,"cmdoption-clang-cl-std"],"-cl-strict-aliasing":[6,0,1,"cmdoption-clang-cl-strict-aliasing"],"-cl-uniform-work-group-size":[6,0,1,"cmdoption-clang-cl-uniform-work-group-size"],"-cl-unsafe-math-optimizations":[6,0,1,"cmdoption-clang-cl-unsafe-math-optimizations"],"-client_name<arg>":[6,0,1,"cmdoption-clang-client-name-arg"],"-compatibility_version<arg>":[6,0,1,"cmdoption-clang-compatibility-version-arg"],"-coverage":[6,0,1,"cmdoption-clang-coverage"],"-cpp":[6,0,1,"cmdoption-clang-cpp"],"-current_version<arg>":[6,0,1,"cmdoption-clang-current-version-arg"],"-cxx-isystem<directory>":[6,0,1,"cmdoption-clang-cxx-isystem-directory"],"-d":[6,0,1,"cmdoption-clang-d"],"-dA":[6,0,1,"cmdoption-clang-da"],"-dD":[6,0,1,"cmdoption-clang-dd"],"-dI":[6,0,1,"cmdoption-clang-di"],"-dM":[6,0,1,"cmdoption-clang-dm"],"-dead_strip":[6,0,1,"cmdoption-clang-dead-strip"],"-dependency-dot":[6,0,1,"cmdoption-clang-dependency-dot"],"-dependency-file":[6,0,1,"cmdoption-clang-dependency-file"],"-dumpmachine":[6,0,1,"cmdoption-clang-dumpmachine"],"-dumpversion":[6,0,1,"cmdoption-clang-dumpversion"],"-dylib_file":[6,0,1,"cmdoption-clang-dylib-file"],"-dylinker":[6,0,1,"cmdoption-clang-dylinker"],"-dynamic":[6,0,1,"cmdoption-clang-dynamic"],"-dynamiclib":[6,0,1,"cmdoption-clang-dynamiclib"],"-e<arg>":[6,0,1,"cmdoption-clang-e-arg"],"-emit-ast":[6,0,1,"cmdoption-clang-emit-ast"],"-emit-llvm":[6,0,1,"cmdoption-clang-emit-llvm"],"-exported_symbols_list":[6,0,1,"cmdoption-clang-exported-symbols-list"],"-fPIC":[6,0,1,"cmdoption-clang-fpic"],"-fPIE":[6,0,1,"cmdoption-clang-fpie"],"-faccess-control":[6,0,1,"cmdoption-clang-faccess-control"],"-faddrsig":[6,0,1,"cmdoption-clang-faddrsig"],"-faggressive-function-elimination":[6,0,1,"cmdoption-clang-faggressive-function-elimination"],"-falign-commons":[6,0,1,"cmdoption-clang-falign-commons"],"-falign-functions":[6,0,1,"cmdoption-clang-falign-functions"],"-faligned-new":[6,0,1,"cmdoption-clang-faligned-new"],"-fall-intrinsics":[6,0,1,"cmdoption-clang-fall-intrinsics"],"-fallow-editor-placeholders":[6,0,1,"cmdoption-clang-fallow-editor-placeholders"],"-fallow-unsupported":[6,0,1,"cmdoption-clang-fallow-unsupported"],"-faltivec":[6,0,1,"cmdoption-clang-faltivec"],"-fansi-escape-codes":[6,0,1,"cmdoption-clang-fansi-escape-codes"],"-fapple-kext":[6,0,1,"cmdoption-clang-fapple-kext"],"-fapple-pragma-pack":[6,0,1,"cmdoption-clang-fapple-pragma-pack"],"-fapplication-extension":[6,0,1,"cmdoption-clang-fapplication-extension"],"-fasm":[6,0,1,"cmdoption-clang-fasm"],"-fasm-blocks":[6,0,1,"cmdoption-clang-fasm-blocks"],"-fassociative-math":[6,0,1,"cmdoption-clang-fassociative-math"],"-fassume-sane-operator-new":[6,0,1,"cmdoption-clang-fassume-sane-operator-new"],"-fast":[6,0,1,"cmdoption-clang-fast"],"-fastcp":[6,0,1,"cmdoption-clang-fastcp"],"-fastf":[6,0,1,"cmdoption-clang-fastf"],"-fasynchronous-unwind-tables":[6,0,1,"cmdoption-clang-fasynchronous-unwind-tables"],"-fauto-profile":[6,0,1,"cmdoption-clang-fprofile-sample-use"],"-fauto-profile-accurate":[6,0,1,"cmdoption-clang-fprofile-sample-accurate"],"-fautolink":[6,0,1,"cmdoption-clang-fautolink"],"-fautomatic":[6,0,1,"cmdoption-clang-fautomatic"],"-fbackslash":[6,0,1,"cmdoption-clang-fbackslash"],"-fbacktrace":[6,0,1,"cmdoption-clang-fbacktrace"],"-fblas-matmul-limit":[6,0,1,"cmdoption-clang-fblas-matmul-limit"],"-fblocks":[6,0,1,"cmdoption-clang-fblocks"],"-fbootclasspath":[6,0,1,"cmdoption-clang-fbootclasspath"],"-fborland-extensions":[6,0,1,"cmdoption-clang-fborland-extensions"],"-fbounds-check":[6,0,1,"cmdoption-clang-fbounds-check"],"-fbracket-depth":[6,0,1,"cmdoption-clang-fbracket-depth"],"-fbuild-session-file":[6,0,1,"cmdoption-clang-fbuild-session-file"],"-fbuild-session-timestamp":[6,0,1,"cmdoption-clang-fbuild-session-timestamp"],"-fbuiltin":[6,0,1,"cmdoption-clang-fbuiltin"],"-fbuiltin-module-map":[6,0,1,"cmdoption-clang-fbuiltin-module-map"],"-fcaret-diagnostics":[6,0,1,"cmdoption-clang-fcaret-diagnostics"],"-fcf-protection":[6,0,1,"cmdoption-clang-fcf-protection"],"-fchar8_t":[6,0,1,"cmdoption-clang-fchar8-t"],"-fcheck":[6,0,1,"cmdoption-clang-fcheck"],"-fcheck-array-temporaries":[6,0,1,"cmdoption-clang-fcheck-array-temporaries"],"-fclang-abi-compat":[6,0,1,"cmdoption-clang-fclang-abi-compat"],"-fclasspath":[6,0,1,"cmdoption-clang-fclasspath"],"-fcoarray":[6,0,1,"cmdoption-clang-fcoarray"],"-fcolor-diagnostics":[6,0,1,"cmdoption-clang-fcolor-diagnostics"],"-fcomment-block-commands":[6,0,1,"cmdoption-clang-fcomment-block-commands"],"-fcommon":[6,0,1,"cmdoption-clang-fcommon"],"-fcompile-resource":[6,0,1,"cmdoption-clang-fcompile-resource"],"-fcomplete-member-pointers":[6,0,1,"cmdoption-clang-fcomplete-member-pointers"],"-fconstant-cfstrings":[6,0,1,"cmdoption-clang-fconstant-cfstrings"],"-fconstant-string-class":[6,0,1,"cmdoption-clang-fconstant-string-class"],"-fconstexpr-backtrace-limit":[6,0,1,"cmdoption-clang-fconstexpr-backtrace-limit"],"-fconstexpr-depth":[6,0,1,"cmdoption-clang-fconstexpr-depth"],"-fconstexpr-steps":[6,0,1,"cmdoption-clang-fconstexpr-steps"],"-fconvert":[6,0,1,"cmdoption-clang-fconvert"],"-fcoroutines-ts":[6,0,1,"cmdoption-clang-fcoroutines-ts"],"-fcoverage-mapping":[6,0,1,"cmdoption-clang-fcoverage-mapping"],"-fcrash-diagnostics-dir":[6,0,1,"cmdoption-clang-fcrash-diagnostics-dir"],"-fcray-pointer":[6,0,1,"cmdoption-clang-fcray-pointer"],"-fcreate-profile":[6,0,1,"cmdoption-clang-fcreate-profile"],"-fcuda-approx-transcendentals":[6,0,1,"cmdoption-clang-fcuda-approx-transcendentals"],"-fcuda-flush-denormals-to-zero":[6,0,1,"cmdoption-clang-fcuda-flush-denormals-to-zero"],"-fcuda-rdc":[6,0,1,"cmdoption-clang-fcuda-rdc"],"-fcuda-short-ptr":[6,0,1,"cmdoption-clang-fcuda-short-ptr"],"-fcxx-exceptions":[6,0,1,"cmdoption-clang-fcxx-exceptions"],"-fcxx-modules":[6,0,1,"cmdoption-clang-fcxx-modules"],"-fd-lines-as-code":[6,0,1,"cmdoption-clang-fd-lines-as-code"],"-fd-lines-as-comments":[6,0,1,"cmdoption-clang-fd-lines-as-comments"],"-fdata-sections":[6,0,1,"cmdoption-clang-fdata-sections"],"-fdebug-info-for-profiling":[6,0,1,"cmdoption-clang-fdebug-info-for-profiling"],"-fdebug-macro":[6,0,1,"cmdoption-clang-fdebug-macro"],"-fdebug-pass-arguments":[6,0,1,"cmdoption-clang-fdebug-pass-arguments"],"-fdebug-pass-structure":[6,0,1,"cmdoption-clang-fdebug-pass-structure"],"-fdebug-prefix-map":[6,0,1,"cmdoption-clang-fdebug-prefix-map"],"-fdebug-types-section":[6,0,1,"cmdoption-clang-fdebug-types-section"],"-fdeclspec":[6,0,1,"cmdoption-clang-fdeclspec"],"-fdefault-double-8":[6,0,1,"cmdoption-clang-fdefault-double-8"],"-fdefault-integer-8":[6,0,1,"cmdoption-clang-fdefault-integer-8"],"-fdefault-real-8":[6,0,1,"cmdoption-clang-fdefault-real-8"],"-fdelayed-template-parsing":[6,0,1,"cmdoption-clang-fdelayed-template-parsing"],"-fdelete-null-pointer-checks":[6,0,1,"cmdoption-clang-fdelete-null-pointer-checks"],"-fdenormal-fp-math":[6,0,1,"cmdoption-clang-fdenormal-fp-math"],"-fdepfile-entry":[6,0,1,"cmdoption-clang-fdepfile-entry"],"-fdiagnostics-absolute-paths":[6,0,1,"cmdoption-clang-fdiagnostics-absolute-paths"],"-fdiagnostics-color":[6,0,1,"cmdoption-clang-fdiagnostics-color"],"-fdiagnostics-fixit-info":[6,0,1,"cmdoption-clang-fdiagnostics-fixit-info"],"-fdiagnostics-format":[6,0,1,"cmdoption-clang-fdiagnostics-format"],"-fdiagnostics-hotness-threshold":[6,0,1,"cmdoption-clang-fdiagnostics-hotness-threshold"],"-fdiagnostics-parseable-fixits":[6,0,1,"cmdoption-clang-fdiagnostics-parseable-fixits"],"-fdiagnostics-print-source-range-info":[6,0,1,"cmdoption-clang-fdiagnostics-print-source-range-info"],"-fdiagnostics-show-category":[6,0,1,"cmdoption-clang-fdiagnostics-show-category"],"-fdiagnostics-show-hotness":[6,0,1,"cmdoption-clang-fdiagnostics-show-hotness"],"-fdiagnostics-show-note-include-stack":[6,0,1,"cmdoption-clang-fdiagnostics-show-note-include-stack"],"-fdiagnostics-show-option":[6,0,1,"cmdoption-clang-fdiagnostics-show-option"],"-fdiagnostics-show-template-tree":[6,0,1,"cmdoption-clang-fdiagnostics-show-template-tree"],"-fdigraphs":[6,0,1,"cmdoption-clang-fdigraphs"],"-fdiscard-value-names":[6,0,1,"cmdoption-clang-fdiscard-value-names"],"-fdollar-ok":[6,0,1,"cmdoption-clang-fdollar-ok"],"-fdollars-in-identifiers":[6,0,1,"cmdoption-clang-fdollars-in-identifiers"],"-fdouble-square-bracket-attributes":[6,0,1,"cmdoption-clang-fdouble-square-bracket-attributes"],"-fdump-fortran-optimized":[6,0,1,"cmdoption-clang-fdump-fortran-optimized"],"-fdump-fortran-original":[6,0,1,"cmdoption-clang-fdump-fortran-original"],"-fdump-parse-tree":[6,0,1,"cmdoption-clang-fdump-parse-tree"],"-fdwarf-directory-asm":[6,0,1,"cmdoption-clang-fdwarf-directory-asm"],"-fdwarf-exceptions":[6,0,1,"cmdoption-clang-fdwarf-exceptions"],"-felide-constructors":[6,0,1,"cmdoption-clang-felide-constructors"],"-feliminate-unused-debug-symbols":[6,0,1,"cmdoption-clang-feliminate-unused-debug-symbols"],"-fembed-bitcode":[6,0,1,"cmdoption-clang-fembed-bitcode"],"-fembed-bitcode-marker":[6,0,1,"cmdoption-clang-fembed-bitcode"],"-femit-all-decls":[6,0,1,"cmdoption-clang-femit-all-decls"],"-femulated-tls":[6,0,1,"cmdoption-clang-femulated-tls"],"-fencoding":[6,0,1,"cmdoption-clang-fencoding"],"-ferror-limit":[6,0,1,"cmdoption-clang-ferror-limit"],"-fescaping-block-tail-calls":[6,0,1,"cmdoption-clang-fescaping-block-tail-calls"],"-fexceptions":[6,0,1,"cmdoption-clang-fexceptions"],"-fexec-charset":[6,0,1,"cmdoption-clang-fexec-charset"],"-fexperimental-isel":[6,0,1,"cmdoption-clang-fexperimental-isel"],"-fexperimental-new-pass-manager":[6,0,1,"cmdoption-clang-fexperimental-new-pass-manager"],"-fextdirs":[6,0,1,"cmdoption-clang-fextdirs"],"-fexternal-blas":[6,0,1,"cmdoption-clang-fexternal-blas"],"-ff2c":[6,0,1,"cmdoption-clang-ff2c"],"-ffast-math":[6,0,1,"cmdoption-clang-ffast-math"],"-ffine-grained-bitfield-accesses":[6,0,1,"cmdoption-clang-ffine-grained-bitfield-accesses"],"-ffinite-math-only":[6,0,1,"cmdoption-clang-ffinite-math-only"],"-ffixed-form":[6,0,1,"cmdoption-clang-ffixed-form"],"-ffixed-line-length-<arg>":[6,0,1,"cmdoption-clang-ffixed-line-length-arg"],"-ffixed-point":[6,0,1,"cmdoption-clang-ffixed-point"],"-ffixed-r19":[6,0,1,"cmdoption-clang-ffixed-r19"],"-ffixed-r9":[6,0,1,"cmdoption-clang-ffixed-r9"],"-ffixed-x18":[6,0,1,"cmdoption-clang-ffixed-x18"],"-ffixed-x20":[6,0,1,"cmdoption-clang-ffixed-x20"],"-ffor-scope":[6,0,1,"cmdoption-clang-ffor-scope"],"-fforce-emit-vtables":[6,0,1,"cmdoption-clang-fforce-emit-vtables"],"-fforce-enable-int128":[6,0,1,"cmdoption-clang-fforce-enable-int128"],"-ffp-contract":[6,0,1,"cmdoption-clang-ffp-contract"],"-ffpe-trap":[6,0,1,"cmdoption-clang-ffpe-trap"],"-ffree-form":[6,0,1,"cmdoption-clang-ffree-form"],"-ffree-line-length-<arg>":[6,0,1,"cmdoption-clang-ffree-line-length-arg"],"-ffreestanding":[6,0,1,"cmdoption-clang-ffreestanding"],"-ffrontend-optimize":[6,0,1,"cmdoption-clang-ffrontend-optimize"],"-ffunction-sections":[6,0,1,"cmdoption-clang-ffunction-sections"],"-fgnu-inline-asm":[6,0,1,"cmdoption-clang-fgnu-inline-asm"],"-fgnu-keywords":[6,0,1,"cmdoption-clang-fgnu-keywords"],"-fgnu-runtime":[6,0,1,"cmdoption-clang-fgnu-runtime"],"-fgnu89-inline":[6,0,1,"cmdoption-clang-fgnu89-inline"],"-fheinous-gnu-extensions":[6,0,1,"cmdoption-clang-fheinous-gnu-extensions"],"-fhonor-infinites":[6,0,1,"cmdoption-clang-fhonor-infinities"],"-fhonor-infinities":[6,0,1,"cmdoption-clang-fhonor-infinities"],"-fhonor-nans":[6,0,1,"cmdoption-clang-fhonor-nans"],"-fhosted":[6,0,1,"cmdoption-clang-fhosted"],"-fident":[6,0,1,"cmdoption-clang-qy"],"-filelist":[6,0,1,"cmdoption-clang-filelist"],"-fimplicit-module-maps":[6,0,1,"cmdoption-clang-fimplicit-module-maps"],"-fimplicit-modules":[6,0,1,"cmdoption-clang-fimplicit-modules"],"-fimplicit-none":[6,0,1,"cmdoption-clang-fimplicit-none"],"-findirect-virtual-calls":[6,0,1,"cmdoption-clang-fapple-kext"],"-finit-character":[6,0,1,"cmdoption-clang-finit-character"],"-finit-integer":[6,0,1,"cmdoption-clang-finit-integer"],"-finit-local-zero":[6,0,1,"cmdoption-clang-finit-local-zero"],"-finit-logical":[6,0,1,"cmdoption-clang-finit-logical"],"-finit-real":[6,0,1,"cmdoption-clang-finit-real"],"-finline-functions":[6,0,1,"cmdoption-clang-finline-functions"],"-finline-hint-functions":[6,0,1,"cmdoption-clang-finline-hint-functions"],"-finput-charset":[6,0,1,"cmdoption-clang-finput-charset"],"-finstrument-function-entry-bare":[6,0,1,"cmdoption-clang-finstrument-function-entry-bare"],"-finstrument-functions":[6,0,1,"cmdoption-clang-finstrument-functions"],"-finstrument-functions-after-inlining":[6,0,1,"cmdoption-clang-finstrument-functions-after-inlining"],"-finteger-4-integer-8":[6,0,1,"cmdoption-clang-finteger-4-integer-8"],"-fintegrated-as":[6,0,1,"cmdoption-clang-fintegrated-as"],"-fintrinsic-modules-path":[6,0,1,"cmdoption-clang-fintrinsic-modules-path"],"-fjump-tables":[6,0,1,"cmdoption-clang-fjump-tables"],"-flat_namespace":[6,0,1,"cmdoption-clang-flat-namespace"],"-flax-vector-conversions":[6,0,1,"cmdoption-clang-flax-vector-conversions"],"-flimited-precision":[6,0,1,"cmdoption-clang-flimited-precision"],"-flto":[6,0,1,"cmdoption-clang-flto"],"-flto-jobs":[6,0,1,"cmdoption-clang-flto-jobs"],"-fmacro-backtrace-limit":[6,0,1,"cmdoption-clang-fmacro-backtrace-limit"],"-fmath-errno":[6,0,1,"cmdoption-clang-fmath-errno"],"-fmax-array-constructor":[6,0,1,"cmdoption-clang-fmax-array-constructor"],"-fmax-errors":[6,0,1,"cmdoption-clang-fmax-errors"],"-fmax-identifier-length":[6,0,1,"cmdoption-clang-fmax-identifier-length"],"-fmax-stack-var-size":[6,0,1,"cmdoption-clang-fmax-stack-var-size"],"-fmax-subrecord-length":[6,0,1,"cmdoption-clang-fmax-subrecord-length"],"-fmax-type-align":[6,0,1,"cmdoption-clang-fmax-type-align"],"-fmerge-all-constants":[6,0,1,"cmdoption-clang-fmerge-all-constants"],"-fmessage-length":[6,0,1,"cmdoption-clang-fmessage-length"],"-fmodule-file":[6,0,1,"cmdoption-clang-fmodule-file"],"-fmodule-file-deps":[6,0,1,"cmdoption-clang-fmodule-file-deps"],"-fmodule-implementation-of":[6,0,1,"cmdoption-clang-fmodule-name"],"-fmodule-map-file":[6,0,1,"cmdoption-clang-fmodule-map-file"],"-fmodule-maps":[6,0,1,"cmdoption-clang-fimplicit-module-maps"],"-fmodule-name":[6,0,1,"cmdoption-clang-fmodule-name"],"-fmodule-private":[6,0,1,"cmdoption-clang-fmodule-private"],"-fmodules":[6,0,1,"cmdoption-clang-fmodules"],"-fmodules-cache-path":[6,0,1,"cmdoption-clang-fmodules-cache-path"],"-fmodules-decluse":[6,0,1,"cmdoption-clang-fmodules-decluse"],"-fmodules-disable-diagnostic-validation":[6,0,1,"cmdoption-clang-fmodules-disable-diagnostic-validation"],"-fmodules-ignore-macro":[6,0,1,"cmdoption-clang-fmodules-ignore-macro"],"-fmodules-prune-after":[6,0,1,"cmdoption-clang-fmodules-prune-after"],"-fmodules-prune-interval":[6,0,1,"cmdoption-clang-fmodules-prune-interval"],"-fmodules-search-all":[6,0,1,"cmdoption-clang-fmodules-search-all"],"-fmodules-strict-decluse":[6,0,1,"cmdoption-clang-fmodules-strict-decluse"],"-fmodules-ts":[6,0,1,"cmdoption-clang-fmodules-ts"],"-fmodules-user-build-path":[6,0,1,"cmdoption-clang-fmodules-user-build-path"],"-fmodules-validate-once-per-build-session":[6,0,1,"cmdoption-clang-fmodules-validate-once-per-build-session"],"-fmodules-validate-system-headers":[6,0,1,"cmdoption-clang-fmodules-validate-system-headers"],"-fms-compatibility":[6,0,1,"cmdoption-clang-fms-compatibility"],"-fms-compatibility-version":[6,0,1,"cmdoption-clang-fms-compatibility-version"],"-fms-extensions":[6,0,1,"cmdoption-clang-fms-extensions"],"-fms-memptr-rep":[6,0,1,"cmdoption-clang-fms-memptr-rep"],"-fms-volatile<arg>":[6,0,1,"cmdoption-clang-fms-volatile-arg"],"-fmsc-version":[6,0,1,"cmdoption-clang-fmsc-version"],"-fmudflap":[6,0,1,"cmdoption-clang-fmudflap"],"-fmudflapth":[6,0,1,"cmdoption-clang-fmudflapth"],"-fnested-functions":[6,0,1,"cmdoption-clang-fnested-functions"],"-fnew-alignment":[6,0,1,"cmdoption-clang-fnew-alignment"],"-fnext-runtime":[6,0,1,"cmdoption-clang-fnext-runtime"],"-fno-PIC":[6,0,1,"cmdoption-clang-fpic"],"-fno-PIE":[6,0,1,"cmdoption-clang-fpie"],"-fno-access-control":[6,0,1,"cmdoption-clang-faccess-control"],"-fno-addrsig":[6,0,1,"cmdoption-clang-faddrsig"],"-fno-aggressive-function-elimination":[6,0,1,"cmdoption-clang-faggressive-function-elimination"],"-fno-align-commons":[6,0,1,"cmdoption-clang-falign-commons"],"-fno-align-functions":[6,0,1,"cmdoption-clang-falign-functions"],"-fno-all-intrinsics":[6,0,1,"cmdoption-clang-fall-intrinsics"],"-fno-allow-editor-placeholders":[6,0,1,"cmdoption-clang-fallow-editor-placeholders"],"-fno-altivec":[6,0,1,"cmdoption-clang-faltivec"],"-fno-apple-pragma-pack":[6,0,1,"cmdoption-clang-fapple-pragma-pack"],"-fno-application-extension":[6,0,1,"cmdoption-clang-fapplication-extension"],"-fno-asm":[6,0,1,"cmdoption-clang-fasm"],"-fno-asm-blocks":[6,0,1,"cmdoption-clang-fasm-blocks"],"-fno-associative-math":[6,0,1,"cmdoption-clang-fassociative-math"],"-fno-assume-sane-operator-new":[6,0,1,"cmdoption-clang-fassume-sane-operator-new"],"-fno-asynchronous-unwind-tables":[6,0,1,"cmdoption-clang-fasynchronous-unwind-tables"],"-fno-autolink":[6,0,1,"cmdoption-clang-fautolink"],"-fno-automatic":[6,0,1,"cmdoption-clang-fautomatic"],"-fno-backslash":[6,0,1,"cmdoption-clang-fbackslash"],"-fno-backtrace":[6,0,1,"cmdoption-clang-fbacktrace"],"-fno-blocks":[6,0,1,"cmdoption-clang-fblocks"],"-fno-borland-extensions":[6,0,1,"cmdoption-clang-fborland-extensions"],"-fno-bounds-check":[6,0,1,"cmdoption-clang-fbounds-check"],"-fno-builtin":[6,0,1,"cmdoption-clang-fbuiltin"],"-fno-builtin-<arg>":[6,0,1,"cmdoption-clang-fno-builtin-arg"],"-fno-caret-diagnostics":[6,0,1,"cmdoption-clang-fcaret-diagnostics"],"-fno-char8_t":[6,0,1,"cmdoption-clang-fchar8-t"],"-fno-check-array-temporaries":[6,0,1,"cmdoption-clang-fcheck-array-temporaries"],"-fno-color-diagnostics":[6,0,1,"cmdoption-clang-fcolor-diagnostics"],"-fno-common":[6,0,1,"cmdoption-clang-fcommon"],"-fno-complete-member-pointers":[6,0,1,"cmdoption-clang-fcomplete-member-pointers"],"-fno-constant-cfstrings":[6,0,1,"cmdoption-clang-fconstant-cfstrings"],"-fno-coroutines-ts":[6,0,1,"cmdoption-clang-fcoroutines-ts"],"-fno-coverage-mapping":[6,0,1,"cmdoption-clang-fcoverage-mapping"],"-fno-crash-diagnostics":[6,0,1,"cmdoption-clang-fno-crash-diagnostics"],"-fno-cray-pointer":[6,0,1,"cmdoption-clang-fcray-pointer"],"-fno-cuda-approx-transcendentals":[6,0,1,"cmdoption-clang-fcuda-approx-transcendentals"],"-fno-cuda-flush-denormals-to-zero":[6,0,1,"cmdoption-clang-fcuda-flush-denormals-to-zero"],"-fno-cuda-rdc":[6,0,1,"cmdoption-clang-fcuda-rdc"],"-fno-cuda-short-ptr":[6,0,1,"cmdoption-clang-fcuda-short-ptr"],"-fno-cxx-exceptions":[6,0,1,"cmdoption-clang-fcxx-exceptions"],"-fno-cxx-modules":[6,0,1,"cmdoption-clang-fcxx-modules"],"-fno-d-lines-as-code":[6,0,1,"cmdoption-clang-fd-lines-as-code"],"-fno-d-lines-as-comments":[6,0,1,"cmdoption-clang-fd-lines-as-comments"],"-fno-data-sections":[6,0,1,"cmdoption-clang-fdata-sections"],"-fno-debug-info-for-profiling":[6,0,1,"cmdoption-clang-fdebug-info-for-profiling"],"-fno-debug-macro":[6,0,1,"cmdoption-clang-fdebug-macro"],"-fno-debug-types-section":[6,0,1,"cmdoption-clang-fdebug-types-section"],"-fno-declspec":[6,0,1,"cmdoption-clang-fdeclspec"],"-fno-default-double-8":[6,0,1,"cmdoption-clang-fdefault-double-8"],"-fno-default-integer-8":[6,0,1,"cmdoption-clang-fdefault-integer-8"],"-fno-default-real-8":[6,0,1,"cmdoption-clang-fdefault-real-8"],"-fno-delayed-template-parsing":[6,0,1,"cmdoption-clang-fdelayed-template-parsing"],"-fno-delete-null-pointer-checks":[6,0,1,"cmdoption-clang-fdelete-null-pointer-checks"],"-fno-diagnostics-color":[6,0,1,"cmdoption-clang-fdiagnostics-color"],"-fno-diagnostics-fixit-info":[6,0,1,"cmdoption-clang-fdiagnostics-fixit-info"],"-fno-diagnostics-show-hotness":[6,0,1,"cmdoption-clang-fdiagnostics-show-hotness"],"-fno-diagnostics-show-note-include-stack":[6,0,1,"cmdoption-clang-fdiagnostics-show-note-include-stack"],"-fno-diagnostics-show-option":[6,0,1,"cmdoption-clang-fdiagnostics-show-option"],"-fno-digraphs":[6,0,1,"cmdoption-clang-fdigraphs"],"-fno-discard-value-names":[6,0,1,"cmdoption-clang-fdiscard-value-names"],"-fno-dollar-ok":[6,0,1,"cmdoption-clang-fdollar-ok"],"-fno-dollars-in-identifiers":[6,0,1,"cmdoption-clang-fdollars-in-identifiers"],"-fno-double-square-bracket-attributes":[6,0,1,"cmdoption-clang-fdouble-square-bracket-attributes"],"-fno-dump-fortran-optimized":[6,0,1,"cmdoption-clang-fdump-fortran-optimized"],"-fno-dump-fortran-original":[6,0,1,"cmdoption-clang-fdump-fortran-original"],"-fno-dump-parse-tree":[6,0,1,"cmdoption-clang-fdump-parse-tree"],"-fno-dwarf-directory-asm":[6,0,1,"cmdoption-clang-fdwarf-directory-asm"],"-fno-elide-constructors":[6,0,1,"cmdoption-clang-felide-constructors"],"-fno-elide-type":[6,0,1,"cmdoption-clang-fno-elide-type"],"-fno-eliminate-unused-debug-symbols":[6,0,1,"cmdoption-clang-feliminate-unused-debug-symbols"],"-fno-emulated-tls":[6,0,1,"cmdoption-clang-femulated-tls"],"-fno-escaping-block-tail-calls":[6,0,1,"cmdoption-clang-fescaping-block-tail-calls"],"-fno-exceptions":[6,0,1,"cmdoption-clang-fexceptions"],"-fno-experimental-isel":[6,0,1,"cmdoption-clang-fexperimental-isel"],"-fno-experimental-new-pass-manager":[6,0,1,"cmdoption-clang-fexperimental-new-pass-manager"],"-fno-external-blas":[6,0,1,"cmdoption-clang-fexternal-blas"],"-fno-f2c":[6,0,1,"cmdoption-clang-ff2c"],"-fno-fast-math":[6,0,1,"cmdoption-clang-ffast-math"],"-fno-fine-grained-bitfield-accesses":[6,0,1,"cmdoption-clang-ffine-grained-bitfield-accesses"],"-fno-finite-math-only":[6,0,1,"cmdoption-clang-ffinite-math-only"],"-fno-fixed-form":[6,0,1,"cmdoption-clang-ffixed-form"],"-fno-fixed-point":[6,0,1,"cmdoption-clang-ffixed-point"],"-fno-for-scope":[6,0,1,"cmdoption-clang-ffor-scope"],"-fno-force-emit-vtables":[6,0,1,"cmdoption-clang-fforce-emit-vtables"],"-fno-force-enable-int128":[6,0,1,"cmdoption-clang-fforce-enable-int128"],"-fno-free-form":[6,0,1,"cmdoption-clang-ffree-form"],"-fno-frontend-optimize":[6,0,1,"cmdoption-clang-ffrontend-optimize"],"-fno-function-sections":[6,0,1,"cmdoption-clang-ffunction-sections"],"-fno-gnu-inline-asm":[6,0,1,"cmdoption-clang-fgnu-inline-asm"],"-fno-gnu-keywords":[6,0,1,"cmdoption-clang-fgnu-keywords"],"-fno-gnu89-inline":[6,0,1,"cmdoption-clang-fgnu89-inline"],"-fno-honor-infinities":[6,0,1,"cmdoption-clang-fhonor-infinities"],"-fno-honor-nans":[6,0,1,"cmdoption-clang-fhonor-nans"],"-fno-ident":[6,0,1,"cmdoption-clang-qn"],"-fno-implicit-module-maps":[6,0,1,"cmdoption-clang-fimplicit-module-maps"],"-fno-implicit-modules":[6,0,1,"cmdoption-clang-fimplicit-modules"],"-fno-implicit-none":[6,0,1,"cmdoption-clang-fimplicit-none"],"-fno-init-local-zero":[6,0,1,"cmdoption-clang-finit-local-zero"],"-fno-inline-functions":[6,0,1,"cmdoption-clang-finline-functions"],"-fno-integer-4-integer-8":[6,0,1,"cmdoption-clang-finteger-4-integer-8"],"-fno-integrated-as":[6,0,1,"cmdoption-clang-fintegrated-as"],"-fno-intrinsic-modules-path":[6,0,1,"cmdoption-clang-fintrinsic-modules-path"],"-fno-jump-tables":[6,0,1,"cmdoption-clang-fjump-tables"],"-fno-lax-vector-conversions":[6,0,1,"cmdoption-clang-flax-vector-conversions"],"-fno-limit-debug-info":[6,0,1,"cmdoption-clang-fstandalone-debug"],"-fno-lto":[6,0,1,"cmdoption-clang-flto"],"-fno-math-errno":[6,0,1,"cmdoption-clang-fmath-errno"],"-fno-max-identifier-length":[6,0,1,"cmdoption-clang-fmax-identifier-length"],"-fno-max-type-align":[6,0,1,"cmdoption-clang-fno-max-type-align"],"-fno-merge-all-constants":[6,0,1,"cmdoption-clang-fmerge-all-constants"],"-fno-module-file-deps":[6,0,1,"cmdoption-clang-fmodule-file-deps"],"-fno-module-private":[6,0,1,"cmdoption-clang-fmodule-private"],"-fno-modules":[6,0,1,"cmdoption-clang-fmodules"],"-fno-modules-decluse":[6,0,1,"cmdoption-clang-fmodules-decluse"],"-fno-modules-search-all":[6,0,1,"cmdoption-clang-fmodules-search-all"],"-fno-modules-validate-system-headers":[6,0,1,"cmdoption-clang-fmodules-validate-system-headers"],"-fno-ms-compatibility":[6,0,1,"cmdoption-clang-fms-compatibility"],"-fno-ms-extensions":[6,0,1,"cmdoption-clang-fms-extensions"],"-fno-objc-arc":[6,0,1,"cmdoption-clang-fobjc-arc"],"-fno-objc-arc-exceptions":[6,0,1,"cmdoption-clang-fobjc-arc-exceptions"],"-fno-objc-exceptions":[6,0,1,"cmdoption-clang-fobjc-exceptions"],"-fno-objc-infer-related-result-type":[6,0,1,"cmdoption-clang-fobjc-infer-related-result-type"],"-fno-objc-legacy-dispatch":[6,0,1,"cmdoption-clang-fobjc-legacy-dispatch"],"-fno-objc-nonfragile-abi":[6,0,1,"cmdoption-clang-fobjc-nonfragile-abi"],"-fno-objc-weak":[6,0,1,"cmdoption-clang-fobjc-weak"],"-fno-omit-frame-pointer":[6,0,1,"cmdoption-clang-fomit-frame-pointer"],"-fno-openmp":[6,0,1,"cmdoption-clang-fopenmp"],"-fno-openmp-simd":[6,0,1,"cmdoption-clang-fopenmp-simd"],"-fno-operator-names":[6,0,1,"cmdoption-clang-fno-operator-names"],"-fno-optimize-sibling-calls":[6,0,1,"cmdoption-clang-foptimize-sibling-calls"],"-fno-pack-derived":[6,0,1,"cmdoption-clang-fpack-derived"],"-fno-pack-struct":[6,0,1,"cmdoption-clang-fpack-struct"],"-fno-pascal-strings":[6,0,1,"cmdoption-clang-fpascal-strings"],"-fno-pic":[6,0,1,"cmdoption-clang-fno-pic"],"-fno-pie":[6,0,1,"cmdoption-clang-fno-pie"],"-fno-plt":[6,0,1,"cmdoption-clang-fplt"],"-fno-preserve-as-comments":[6,0,1,"cmdoption-clang-fpreserve-as-comments"],"-fno-profile-arcs":[6,0,1,"cmdoption-clang-fprofile-arcs"],"-fno-profile-generate":[6,0,1,"cmdoption-clang-fprofile-generate"],"-fno-profile-instr-generate":[6,0,1,"cmdoption-clang-fprofile-instr-generate"],"-fno-profile-instr-use":[6,0,1,"cmdoption-clang-fprofile-instr-use"],"-fno-profile-sample-accurate":[6,0,1,"cmdoption-clang-fprofile-sample-accurate"],"-fno-profile-sample-use":[6,0,1,"cmdoption-clang-fprofile-sample-use"],"-fno-protect-parens":[6,0,1,"cmdoption-clang-fprotect-parens"],"-fno-range-check":[6,0,1,"cmdoption-clang-frange-check"],"-fno-real-4-real-10":[6,0,1,"cmdoption-clang-freal-4-real-10"],"-fno-real-4-real-16":[6,0,1,"cmdoption-clang-freal-4-real-16"],"-fno-real-4-real-8":[6,0,1,"cmdoption-clang-freal-4-real-8"],"-fno-real-8-real-10":[6,0,1,"cmdoption-clang-freal-8-real-10"],"-fno-real-8-real-16":[6,0,1,"cmdoption-clang-freal-8-real-16"],"-fno-real-8-real-4":[6,0,1,"cmdoption-clang-freal-8-real-4"],"-fno-realloc-lhs":[6,0,1,"cmdoption-clang-frealloc-lhs"],"-fno-reciprocal-math":[6,0,1,"cmdoption-clang-freciprocal-math"],"-fno-recursive":[6,0,1,"cmdoption-clang-frecursive"],"-fno-register-global-dtors-with-atexit":[6,0,1,"cmdoption-clang-fregister-global-dtors-with-atexit"],"-fno-relaxed-template-template-args":[6,0,1,"cmdoption-clang-frelaxed-template-template-args"],"-fno-repack-arrays":[6,0,1,"cmdoption-clang-frepack-arrays"],"-fno-reroll-loops":[6,0,1,"cmdoption-clang-freroll-loops"],"-fno-rewrite-imports":[6,0,1,"cmdoption-clang-frewrite-imports"],"-fno-rewrite-includes":[6,0,1,"cmdoption-clang-frewrite-includes"],"-fno-ropi":[6,0,1,"cmdoption-clang-fropi"],"-fno-rtlib-add-rpath":[6,0,1,"cmdoption-clang-frtlib-add-rpath"],"-fno-rtti":[6,0,1,"cmdoption-clang-frtti"],"-fno-rtti-data":[6,0,1,"cmdoption-clang-fno-rtti-data"],"-fno-rwpi":[6,0,1,"cmdoption-clang-frwpi"],"-fno-sanitize":[6,0,1,"cmdoption-clang-fsanitize"],"-fno-sanitize-address-poison-class-member-array-new-cookie":[6,0,1,"cmdoption-clang-fsanitize-address-poison-class-member-array-new-cookie"],"-fno-sanitize-address-use-after-scope":[6,0,1,"cmdoption-clang-fsanitize-address-use-after-scope"],"-fno-sanitize-blacklist":[6,0,1,"cmdoption-clang-fno-sanitize-blacklist"],"-fno-sanitize-cfi-cross-dso":[6,0,1,"cmdoption-clang-fsanitize-cfi-cross-dso"],"-fno-sanitize-coverage":[6,0,1,"cmdoption-clang-fsanitize-coverage"],"-fno-sanitize-memory-track-origins":[6,0,1,"cmdoption-clang-fsanitize-memory-track-origins"],"-fno-sanitize-memory-use-after-dtor":[6,0,1,"cmdoption-clang-fsanitize-memory-use-after-dtor"],"-fno-sanitize-minimal-runtime":[6,0,1,"cmdoption-clang-fsanitize-minimal-runtime"],"-fno-sanitize-recover":[6,0,1,"cmdoption-clang-fsanitize-recover"],"-fno-sanitize-stats":[6,0,1,"cmdoption-clang-fsanitize-stats"],"-fno-sanitize-thread-atomics":[6,0,1,"cmdoption-clang-fsanitize-thread-atomics"],"-fno-sanitize-thread-func-entry-exit":[6,0,1,"cmdoption-clang-fsanitize-thread-func-entry-exit"],"-fno-sanitize-thread-memory-access":[6,0,1,"cmdoption-clang-fsanitize-thread-memory-access"],"-fno-sanitize-trap":[6,0,1,"cmdoption-clang-fsanitize-trap"],"-fno-sanitize-undefined-trap-on-error":[6,0,1,"cmdoption-clang-fsanitize-undefined-trap-on-error"],"-fno-save-optimization-record":[6,0,1,"cmdoption-clang-fsave-optimization-record"],"-fno-second-underscore":[6,0,1,"cmdoption-clang-fsecond-underscore"],"-fno-short-enums":[6,0,1,"cmdoption-clang-fshort-enums"],"-fno-short-wchar":[6,0,1,"cmdoption-clang-fshort-wchar"],"-fno-show-column":[6,0,1,"cmdoption-clang-fshow-column"],"-fno-show-source-location":[6,0,1,"cmdoption-clang-fshow-source-location"],"-fno-sign-zero":[6,0,1,"cmdoption-clang-fsign-zero"],"-fno-signaling-math":[6,0,1,"cmdoption-clang-fsignaling-math"],"-fno-signed-char":[6,0,1,"cmdoption-clang-fsigned-char"],"-fno-signed-zeros":[6,0,1,"cmdoption-clang-fsigned-zeros"],"-fno-sized-deallocation":[6,0,1,"cmdoption-clang-fsized-deallocation"],"-fno-slp-vectorize":[6,0,1,"cmdoption-clang-fslp-vectorize"],"-fno-spell-checking":[6,0,1,"cmdoption-clang-fspell-checking"],"-fno-split-dwarf-inlining":[6,0,1,"cmdoption-clang-fsplit-dwarf-inlining"],"-fno-stack-arrays":[6,0,1,"cmdoption-clang-fstack-arrays"],"-fno-stack-protector":[6,0,1,"cmdoption-clang-fstack-protector"],"-fno-stack-size-section":[6,0,1,"cmdoption-clang-fstack-size-section"],"-fno-standalone-debug":[6,0,1,"cmdoption-clang-fstandalone-debug"],"-fno-strict-aliasing":[6,0,1,"cmdoption-clang-fstrict-aliasing"],"-fno-strict-enums":[6,0,1,"cmdoption-clang-fstrict-enums"],"-fno-strict-float-cast-overflow":[6,0,1,"cmdoption-clang-fstrict-float-cast-overflow"],"-fno-strict-modules-decluse":[6,0,1,"cmdoption-clang-fno-strict-modules-decluse"],"-fno-strict-overflow":[6,0,1,"cmdoption-clang-fstrict-overflow"],"-fno-strict-return":[6,0,1,"cmdoption-clang-fstrict-return"],"-fno-strict-vtable-pointers":[6,0,1,"cmdoption-clang-fstrict-vtable-pointers"],"-fno-struct-path-tbaa":[6,0,1,"cmdoption-clang-fstruct-path-tbaa"],"-fno-threadsafe-statics":[6,0,1,"cmdoption-clang-fthreadsafe-statics"],"-fno-trapping-math":[6,0,1,"cmdoption-clang-ftrapping-math"],"-fno-trigraphs":[6,0,1,"cmdoption-clang-ftrigraphs"],"-fno-underscoring":[6,0,1,"cmdoption-clang-funderscoring"],"-fno-unique-section-names":[6,0,1,"cmdoption-clang-funique-section-names"],"-fno-unit-at-a-time":[6,0,1,"cmdoption-clang-funit-at-a-time"],"-fno-unroll-loops":[6,0,1,"cmdoption-clang-funroll-loops"],"-fno-unsafe-math-optimizations":[6,0,1,"cmdoption-clang-funsafe-math-optimizations"],"-fno-unsigned-char":[6,0,1,"cmdoption-clang-funsigned-char"],"-fno-unwind-tables":[6,0,1,"cmdoption-clang-funwind-tables"],"-fno-use-cxa-atexit":[6,0,1,"cmdoption-clang-fuse-cxa-atexit"],"-fno-use-init-array":[6,0,1,"cmdoption-clang-fuse-init-array"],"-fno-use-line-directives":[6,0,1,"cmdoption-clang-fuse-line-directives"],"-fno-vectorize":[6,0,1,"cmdoption-clang-fvectorize"],"-fno-verbose-asm":[6,0,1,"cmdoption-clang-fverbose-asm"],"-fno-whole-file":[6,0,1,"cmdoption-clang-fwhole-file"],"-fno-whole-program-vtables":[6,0,1,"cmdoption-clang-fwhole-program-vtables"],"-fno-working-directory":[6,0,1,"cmdoption-clang-fno-working-directory"],"-fno-wrapv":[6,0,1,"cmdoption-clang-fwrapv"],"-fno-xray-always-emit-customevents":[6,0,1,"cmdoption-clang-fxray-always-emit-customevents"],"-fno-xray-always-emit-typedevents":[6,0,1,"cmdoption-clang-fxray-always-emit-typedevents"],"-fno-xray-instrument":[6,0,1,"cmdoption-clang-fxray-instrument"],"-fno-zero-initialized-in-bss":[6,0,1,"cmdoption-clang-fzero-initialized-in-bss"],"-fno-zvector":[6,0,1,"cmdoption-clang-fzvector"],"-fnoxray-link-deps":[6,0,1,"cmdoption-clang-fnoxray-link-deps"],"-fobjc-abi-version":[6,0,1,"cmdoption-clang-fobjc-abi-version"],"-fobjc-arc":[6,0,1,"cmdoption-clang-fobjc-arc"],"-fobjc-arc-exceptions":[6,0,1,"cmdoption-clang-fobjc-arc-exceptions"],"-fobjc-exceptions":[6,0,1,"cmdoption-clang-fobjc-exceptions"],"-fobjc-infer-related-result-type":[6,0,1,"cmdoption-clang-fobjc-infer-related-result-type"],"-fobjc-legacy-dispatch":[6,0,1,"cmdoption-clang-fobjc-legacy-dispatch"],"-fobjc-link-runtime":[6,0,1,"cmdoption-clang-fobjc-link-runtime"],"-fobjc-nonfragile-abi":[6,0,1,"cmdoption-clang-fobjc-nonfragile-abi"],"-fobjc-nonfragile-abi-version":[6,0,1,"cmdoption-clang-fobjc-nonfragile-abi-version"],"-fobjc-runtime":[6,0,1,"cmdoption-clang-fobjc-runtime"],"-fobjc-sender-dependent-dispatch":[6,0,1,"cmdoption-clang-fobjc-sender-dependent-dispatch"],"-fobjc-weak":[6,0,1,"cmdoption-clang-fobjc-weak"],"-fomit-frame-pointer":[6,0,1,"cmdoption-clang-fomit-frame-pointer"],"-fopenmp":[6,0,1,"cmdoption-clang-fopenmp"],"-fopenmp-simd":[6,0,1,"cmdoption-clang-fopenmp-simd"],"-fopenmp-targets":[6,0,1,"cmdoption-clang-fopenmp-targets"],"-fopenmp-version":[6,0,1,"cmdoption-clang-fopenmp-version"],"-foperator-arrow-depth":[6,0,1,"cmdoption-clang-foperator-arrow-depth"],"-foptimization-record-file":[6,0,1,"cmdoption-clang-foptimization-record-file"],"-foptimize-sibling-calls":[6,0,1,"cmdoption-clang-foptimize-sibling-calls"],"-force_cpusubtype_ALL":[6,0,1,"cmdoption-clang-force-cpusubtype-all"],"-foutput-class-dir":[6,0,1,"cmdoption-clang-foutput-class-dir"],"-fpack-derived":[6,0,1,"cmdoption-clang-fpack-derived"],"-fpack-struct":[6,0,1,"cmdoption-clang-fpack-struct"],"-fparse-all-comments":[6,0,1,"cmdoption-clang-fparse-all-comments"],"-fpascal-strings":[6,0,1,"cmdoption-clang-fpascal-strings"],"-fpcc-struct-return":[6,0,1,"cmdoption-clang-fpcc-struct-return"],"-fpch-preprocess":[6,0,1,"cmdoption-clang-fpch-preprocess"],"-fpic":[6,0,1,"cmdoption-clang-fno-pic"],"-fpie":[6,0,1,"cmdoption-clang-fno-pie"],"-fplt":[6,0,1,"cmdoption-clang-fplt"],"-fplugin":[6,0,1,"cmdoption-clang-fplugin"],"-fprebuilt-module-path":[6,0,1,"cmdoption-clang-fprebuilt-module-path"],"-fpreserve-as-comments":[6,0,1,"cmdoption-clang-fpreserve-as-comments"],"-fprofile-arcs":[6,0,1,"cmdoption-clang-fprofile-arcs"],"-fprofile-dir":[6,0,1,"cmdoption-clang-fprofile-dir"],"-fprofile-generate":[6,0,1,"cmdoption-clang-fprofile-generate"],"-fprofile-instr-generate":[6,0,1,"cmdoption-clang-fprofile-instr-generate"],"-fprofile-instr-use":[6,0,1,"cmdoption-clang-fprofile-instr-use"],"-fprofile-sample-accurate":[6,0,1,"cmdoption-clang-fprofile-sample-accurate"],"-fprofile-sample-use":[6,0,1,"cmdoption-clang-fprofile-sample-use"],"-fprofile-use":[6,0,1,"cmdoption-clang-fprofile-instr-use"],"-fprotect-parens":[6,0,1,"cmdoption-clang-fprotect-parens"],"-framework":[6,0,1,"cmdoption-clang-framework"],"-frange-check":[6,0,1,"cmdoption-clang-frange-check"],"-freal-4-real-10":[6,0,1,"cmdoption-clang-freal-4-real-10"],"-freal-4-real-16":[6,0,1,"cmdoption-clang-freal-4-real-16"],"-freal-4-real-8":[6,0,1,"cmdoption-clang-freal-4-real-8"],"-freal-8-real-10":[6,0,1,"cmdoption-clang-freal-8-real-10"],"-freal-8-real-16":[6,0,1,"cmdoption-clang-freal-8-real-16"],"-freal-8-real-4":[6,0,1,"cmdoption-clang-freal-8-real-4"],"-frealloc-lhs":[6,0,1,"cmdoption-clang-frealloc-lhs"],"-freciprocal-math":[6,0,1,"cmdoption-clang-freciprocal-math"],"-frecord-marker":[6,0,1,"cmdoption-clang-frecord-marker"],"-frecursive":[6,0,1,"cmdoption-clang-frecursive"],"-freg-struct-return":[6,0,1,"cmdoption-clang-freg-struct-return"],"-fregister-global-dtors-with-atexit":[6,0,1,"cmdoption-clang-fregister-global-dtors-with-atexit"],"-frelaxed-template-template-args":[6,0,1,"cmdoption-clang-frelaxed-template-template-args"],"-frepack-arrays":[6,0,1,"cmdoption-clang-frepack-arrays"],"-freroll-loops":[6,0,1,"cmdoption-clang-freroll-loops"],"-fretain-comments-from-system-headers":[6,0,1,"cmdoption-clang-fretain-comments-from-system-headers"],"-frewrite-imports":[6,0,1,"cmdoption-clang-frewrite-imports"],"-frewrite-includes":[6,0,1,"cmdoption-clang-frewrite-includes"],"-frewrite-map-file":[6,0,1,"cmdoption-clang-frewrite-map-file"],"-fropi":[6,0,1,"cmdoption-clang-fropi"],"-frtlib-add-rpath":[6,0,1,"cmdoption-clang-frtlib-add-rpath"],"-frtti":[6,0,1,"cmdoption-clang-frtti"],"-frwpi":[6,0,1,"cmdoption-clang-frwpi"],"-fsanitize":[6,0,1,"cmdoption-clang-fsanitize"],"-fsanitize-address-field-padding":[6,0,1,"cmdoption-clang-fsanitize-address-field-padding"],"-fsanitize-address-globals-dead-stripping":[6,0,1,"cmdoption-clang-fsanitize-address-globals-dead-stripping"],"-fsanitize-address-poison-class-member-array-new-cookie":[6,0,1,"cmdoption-clang-fsanitize-address-poison-class-member-array-new-cookie"],"-fsanitize-address-use-after-scope":[6,0,1,"cmdoption-clang-fsanitize-address-use-after-scope"],"-fsanitize-blacklist":[6,0,1,"cmdoption-clang-fsanitize-blacklist"],"-fsanitize-cfi-cross-dso":[6,0,1,"cmdoption-clang-fsanitize-cfi-cross-dso"],"-fsanitize-cfi-icall-generalize-pointers":[6,0,1,"cmdoption-clang-fsanitize-cfi-icall-generalize-pointers"],"-fsanitize-coverage":[6,0,1,"cmdoption-clang-fsanitize-coverage"],"-fsanitize-link-c++-runtime":[6,0,1,"cmdoption-clang-fsanitize-link-c-runtime"],"-fsanitize-memory-track-origins":[6,0,1,"cmdoption-clang-fsanitize-memory-track-origins"],"-fsanitize-memory-use-after-dtor":[6,0,1,"cmdoption-clang-fsanitize-memory-use-after-dtor"],"-fsanitize-minimal-runtime":[6,0,1,"cmdoption-clang-fsanitize-minimal-runtime"],"-fsanitize-recover":[6,0,1,"cmdoption-clang-fsanitize-recover"],"-fsanitize-stats":[6,0,1,"cmdoption-clang-fsanitize-stats"],"-fsanitize-thread-atomics":[6,0,1,"cmdoption-clang-fsanitize-thread-atomics"],"-fsanitize-thread-func-entry-exit":[6,0,1,"cmdoption-clang-fsanitize-thread-func-entry-exit"],"-fsanitize-thread-memory-access":[6,0,1,"cmdoption-clang-fsanitize-thread-memory-access"],"-fsanitize-trap":[6,0,1,"cmdoption-clang-fsanitize-trap"],"-fsanitize-undefined-strip-path-components":[6,0,1,"cmdoption-clang-fsanitize-undefined-strip-path-components"],"-fsanitize-undefined-trap-on-error":[6,0,1,"cmdoption-clang-fsanitize-undefined-trap-on-error"],"-fsave-optimization-record":[6,0,1,"cmdoption-clang-fsave-optimization-record"],"-fsecond-underscore":[6,0,1,"cmdoption-clang-fsecond-underscore"],"-fseh-exceptions":[6,0,1,"cmdoption-clang-fseh-exceptions"],"-fshort-enums":[6,0,1,"cmdoption-clang-fshort-enums"],"-fshort-wchar":[6,0,1,"cmdoption-clang-fshort-wchar"],"-fshow-column":[6,0,1,"cmdoption-clang-fshow-column"],"-fshow-overloads":[6,0,1,"cmdoption-clang-fshow-overloads"],"-fshow-source-location":[6,0,1,"cmdoption-clang-fshow-source-location"],"-fsign-zero":[6,0,1,"cmdoption-clang-fsign-zero"],"-fsignaling-math":[6,0,1,"cmdoption-clang-fsignaling-math"],"-fsigned-bitfields":[6,0,1,"cmdoption-clang-fsigned-bitfields"],"-fsigned-char":[6,0,1,"cmdoption-clang-fsigned-char"],"-fsigned-zeros":[6,0,1,"cmdoption-clang-fsigned-zeros"],"-fsized-deallocation":[6,0,1,"cmdoption-clang-fsized-deallocation"],"-fsjlj-exceptions":[6,0,1,"cmdoption-clang-fsjlj-exceptions"],"-fslp-vectorize":[6,0,1,"cmdoption-clang-fslp-vectorize"],"-fspell-checking":[6,0,1,"cmdoption-clang-fspell-checking"],"-fspell-checking-limit":[6,0,1,"cmdoption-clang-fspell-checking-limit"],"-fsplit-dwarf-inlining":[6,0,1,"cmdoption-clang-fsplit-dwarf-inlining"],"-fsplit-stack":[6,0,1,"cmdoption-clang-fsplit-stack"],"-fstack-arrays":[6,0,1,"cmdoption-clang-fstack-arrays"],"-fstack-protector":[6,0,1,"cmdoption-clang-fstack-protector"],"-fstack-protector-all":[6,0,1,"cmdoption-clang-fstack-protector-all"],"-fstack-protector-strong":[6,0,1,"cmdoption-clang-fstack-protector-strong"],"-fstack-size-section":[6,0,1,"cmdoption-clang-fstack-size-section"],"-fstandalone-debug":[6,0,1,"cmdoption-clang-fstandalone-debug"],"-fstrict-aliasing":[6,0,1,"cmdoption-clang-fstrict-aliasing"],"-fstrict-enums":[6,0,1,"cmdoption-clang-fstrict-enums"],"-fstrict-float-cast-overflow":[6,0,1,"cmdoption-clang-fstrict-float-cast-overflow"],"-fstrict-overflow":[6,0,1,"cmdoption-clang-fstrict-overflow"],"-fstrict-return":[6,0,1,"cmdoption-clang-fstrict-return"],"-fstrict-vtable-pointers":[6,0,1,"cmdoption-clang-fstrict-vtable-pointers"],"-fstruct-path-tbaa":[6,0,1,"cmdoption-clang-fstruct-path-tbaa"],"-fsyntax-only":[6,0,1,"cmdoption-clang-fsyntax-only"],"-ftabstop":[6,0,1,"cmdoption-clang-ftabstop"],"-ftemplate-backtrace-limit":[6,0,1,"cmdoption-clang-ftemplate-backtrace-limit"],"-ftemplate-depth":[6,0,1,"cmdoption-clang-ftemplate-depth"],"-ftemplate-depth-<arg>":[6,0,1,"cmdoption-clang-ftemplate-depth-arg"],"-fterminated-vtables":[6,0,1,"cmdoption-clang-fapple-kext"],"-ftest-coverage":[6,0,1,"cmdoption-clang-ftest-coverage"],"-fthinlto-index":[6,0,1,"cmdoption-clang-fthinlto-index"],"-fthreadsafe-statics":[6,0,1,"cmdoption-clang-fthreadsafe-statics"],"-ftime-report":[6,0,1,"cmdoption-clang-ftime-report"],"-ftls-model":[6,0,1,"cmdoption-clang-ftls-model"],"-ftrap-function":[6,0,1,"cmdoption-clang-ftrap-function"],"-ftrapping-math":[6,0,1,"cmdoption-clang-ftrapping-math"],"-ftrapv":[6,0,1,"cmdoption-clang-ftrapv"],"-ftrapv-handler":[6,0,1,"cmdoption-clang-ftrapv-handler"],"-ftree-slp-vectorize":[6,0,1,"cmdoption-clang-fslp-vectorize"],"-ftree-vectorize":[6,0,1,"cmdoption-clang-fvectorize"],"-ftrigraphs":[6,0,1,"cmdoption-clang-ftrigraphs"],"-funderscoring":[6,0,1,"cmdoption-clang-funderscoring"],"-funique-section-names":[6,0,1,"cmdoption-clang-funique-section-names"],"-funit-at-a-time":[6,0,1,"cmdoption-clang-funit-at-a-time"],"-funroll-loops":[6,0,1,"cmdoption-clang-funroll-loops"],"-funsafe-math-optimizations":[6,0,1,"cmdoption-clang-funsafe-math-optimizations"],"-funsigned-bitfields":[6,0,1,"cmdoption-clang-funsigned-bitfields"],"-funsigned-char":[6,0,1,"cmdoption-clang-funsigned-char"],"-funwind-tables":[6,0,1,"cmdoption-clang-funwind-tables"],"-fuse-cxa-atexit":[6,0,1,"cmdoption-clang-fuse-cxa-atexit"],"-fuse-init-array":[6,0,1,"cmdoption-clang-fuse-init-array"],"-fuse-ld":[6,0,1,"cmdoption-clang-fuse-ld"],"-fuse-line-directives":[6,0,1,"cmdoption-clang-fuse-line-directives"],"-fveclib":[6,0,1,"cmdoption-clang-fveclib"],"-fvectorize":[6,0,1,"cmdoption-clang-fvectorize"],"-fverbose-asm":[6,0,1,"cmdoption-clang-fverbose-asm"],"-fvisibility":[6,0,1,"cmdoption-clang-fvisibility"],"-fvisibility-inlines-hidden":[6,0,1,"cmdoption-clang-fvisibility-inlines-hidden"],"-fvisibility-ms-compat":[6,0,1,"cmdoption-clang-fvisibility-ms-compat"],"-fwhole-file":[6,0,1,"cmdoption-clang-fwhole-file"],"-fwhole-program-vtables":[6,0,1,"cmdoption-clang-fwhole-program-vtables"],"-fwrapv":[6,0,1,"cmdoption-clang-fwrapv"],"-fwritable-strings":[6,0,1,"cmdoption-clang-fwritable-strings"],"-fxray-always-emit-customevents":[6,0,1,"cmdoption-clang-fxray-always-emit-customevents"],"-fxray-always-emit-typedevents":[6,0,1,"cmdoption-clang-fxray-always-emit-typedevents"],"-fxray-always-instrument":[6,0,1,"cmdoption-clang-fxray-always-instrument"],"-fxray-attr-list":[6,0,1,"cmdoption-clang-fxray-attr-list"],"-fxray-instruction-threshold<arg>":[6,0,1,"cmdoption-clang-fxray-instruction-threshold-arg"],"-fxray-instrument":[6,0,1,"cmdoption-clang-fxray-instrument"],"-fxray-instrumentation-bundle":[6,0,1,"cmdoption-clang-fxray-instrumentation-bundle"],"-fxray-link-deps":[6,0,1,"cmdoption-clang-fxray-link-deps"],"-fxray-modes":[6,0,1,"cmdoption-clang-fxray-modes"],"-fxray-never-instrument":[6,0,1,"cmdoption-clang-fxray-never-instrument"],"-fzero-initialized-in-bss":[6,0,1,"cmdoption-clang-fzero-initialized-in-bss"],"-fzvector":[6,0,1,"cmdoption-clang-fzvector"],"-g":[6,0,1,"cmdoption-clang-g"],"-g0":[6,0,1,"cmdoption-clang-g0"],"-g1":[6,0,1,"cmdoption-clang-gline-tables-only"],"-g2":[6,0,1,"cmdoption-clang-g2"],"-g3":[6,0,1,"cmdoption-clang-g3"],"-gcc-toolchain":[6,0,1,"cmdoption-clang-gcc-toolchain"],"-gcodeview":[6,0,1,"cmdoption-clang-gcodeview"],"-gcolumn-info":[6,0,1,"cmdoption-clang-gcolumn-info"],"-gdwarf":[6,0,1,"cmdoption-clang-gdwarf-4"],"-gdwarf-2":[6,0,1,"cmdoption-clang-gdwarf-2"],"-gdwarf-3":[6,0,1,"cmdoption-clang-gdwarf-3"],"-gdwarf-4":[6,0,1,"cmdoption-clang-gdwarf-4"],"-gdwarf-5":[6,0,1,"cmdoption-clang-gdwarf-5"],"-gdwarf-aranges":[6,0,1,"cmdoption-clang-gdwarf-aranges"],"-gembed-source":[6,0,1,"cmdoption-clang-gembed-source"],"-gfull":[6,0,1,"cmdoption-clang-gfull"],"-ggdb":[6,0,1,"cmdoption-clang-ggdb"],"-ggdb0":[6,0,1,"cmdoption-clang-ggdb0"],"-ggdb1":[6,0,1,"cmdoption-clang-ggdb1"],"-ggdb2":[6,0,1,"cmdoption-clang-ggdb2"],"-ggdb3":[6,0,1,"cmdoption-clang-ggdb3"],"-ggnu-pubnames":[6,0,1,"cmdoption-clang-ggnu-pubnames"],"-gline-tables-only":[6,0,1,"cmdoption-clang-gline-tables-only"],"-glldb":[6,0,1,"cmdoption-clang-glldb"],"-gmlt":[6,0,1,"cmdoption-clang-gline-tables-only"],"-gmodules":[6,0,1,"cmdoption-clang-gmodules"],"-gno-column-info":[6,0,1,"cmdoption-clang-gcolumn-info"],"-gno-embed-source":[6,0,1,"cmdoption-clang-gembed-source"],"-gno-gnu-pubnames":[6,0,1,"cmdoption-clang-ggnu-pubnames"],"-gno-record-gcc-switches":[6,0,1,"cmdoption-clang-grecord-gcc-switches"],"-gno-strict-dwarf":[6,0,1,"cmdoption-clang-gstrict-dwarf"],"-grecord-gcc-switches":[6,0,1,"cmdoption-clang-grecord-gcc-switches"],"-gsce":[6,0,1,"cmdoption-clang-gsce"],"-gsplit-dwarf":[6,0,1,"cmdoption-clang-gsplit-dwarf"],"-gstrict-dwarf":[6,0,1,"cmdoption-clang-gstrict-dwarf"],"-gused":[6,0,1,"cmdoption-clang-gused"],"-gz":[6,0,1,"cmdoption-clang-gz"],"-headerpad_max_install_names<arg>":[6,0,1,"cmdoption-clang-headerpad-max-install-names-arg"],"-help":[6,0,1,"cmdoption-clang-help"],"-idirafter<arg>":[6,0,1,"cmdoption-clang-idirafter-arg"],"-iframework<arg>":[6,0,1,"cmdoption-clang-iframework-arg"],"-iframeworkwithsysroot<directory>":[6,0,1,"cmdoption-clang-iframeworkwithsysroot-directory"],"-imacros<file>":[6,0,1,"cmdoption-clang-imacros-file"],"-image_base":[6,0,1,"cmdoption-clang-image-base"],"-imultilib":[6,0,1,"cmdoption-clang-imultilib"],"-include<file>":[6,0,1,"cmdoption-clang-include-file"],"-include-pch":[6,0,1,"cmdoption-clang-include-pch"],"-index-header-map":[6,0,1,"cmdoption-clang-index-header-map"],"-init":[6,0,1,"cmdoption-clang-init"],"-install_name":[6,0,1,"cmdoption-clang-install-name"],"-integrated-as":[6,0,1,"cmdoption-clang-fintegrated-as"],"-iprefix<dir>":[6,0,1,"cmdoption-clang-iprefix-dir"],"-iquote<directory>":[6,0,1,"cmdoption-clang-iquote-directory"],"-isysroot<dir>":[6,0,1,"cmdoption-clang-isysroot-dir"],"-isystem<directory>":[6,0,1,"cmdoption-clang-isystem-directory"],"-isystem-after<directory>":[6,0,1,"cmdoption-clang-isystem-after-directory"],"-ivfsoverlay<arg>":[6,0,1,"cmdoption-clang-ivfsoverlay-arg"],"-iwithprefix<dir>":[6,0,1,"cmdoption-clang-iwithprefix-dir"],"-iwithprefixbefore<dir>":[6,0,1,"cmdoption-clang-iwithprefixbefore-dir"],"-iwithsysroot<directory>":[6,0,1,"cmdoption-clang-iwithsysroot-directory"],"-keep_private_externs":[6,0,1,"cmdoption-clang-keep-private-externs"],"-l<arg>":[6,0,1,"cmdoption-clang-l-arg"],"-lazy_framework":[6,0,1,"cmdoption-clang-lazy-framework"],"-m16":[6,0,1,"cmdoption-clang-m16"],"-m32":[6,0,1,"cmdoption-clang-m32"],"-m3dnow":[6,0,1,"cmdoption-clang-m3dnow"],"-m3dnowa":[6,0,1,"cmdoption-clang-m3dnowa"],"-m64":[6,0,1,"cmdoption-clang-m64"],"-m80387":[6,0,1,"cmdoption-clang-mx87"],"-mabi":[6,0,1,"cmdoption-clang-mabi"],"-mabicalls":[6,0,1,"cmdoption-clang-mabicalls"],"-mabs":[6,0,1,"cmdoption-clang-mabs"],"-madx":[6,0,1,"cmdoption-clang-madx"],"-maes":[6,0,1,"cmdoption-clang-maes"],"-malign-double":[6,0,1,"cmdoption-clang-malign-double"],"-maltivec":[6,0,1,"cmdoption-clang-maltivec"],"-mappletvos-version-min":[6,0,1,"cmdoption-clang-mtvos-version-min"],"-mappletvsimulator-version-min":[6,0,1,"cmdoption-clang-mtvos-simulator-version-min"],"-march":[6,0,1,"cmdoption-clang-march"],"-masm":[6,0,1,"cmdoption-clang-masm"],"-mavx":[6,0,1,"cmdoption-clang-mavx"],"-mavx2":[6,0,1,"cmdoption-clang-mavx2"],"-mavx512bitalg":[6,0,1,"cmdoption-clang-mavx512bitalg"],"-mavx512bw":[6,0,1,"cmdoption-clang-mavx512bw"],"-mavx512cd":[6,0,1,"cmdoption-clang-mavx512cd"],"-mavx512dq":[6,0,1,"cmdoption-clang-mavx512dq"],"-mavx512er":[6,0,1,"cmdoption-clang-mavx512er"],"-mavx512f":[6,0,1,"cmdoption-clang-mavx512f"],"-mavx512ifma":[6,0,1,"cmdoption-clang-mavx512ifma"],"-mavx512pf":[6,0,1,"cmdoption-clang-mavx512pf"],"-mavx512vbmi":[6,0,1,"cmdoption-clang-mavx512vbmi"],"-mavx512vbmi2":[6,0,1,"cmdoption-clang-mavx512vbmi2"],"-mavx512vl":[6,0,1,"cmdoption-clang-mavx512vl"],"-mavx512vnni":[6,0,1,"cmdoption-clang-mavx512vnni"],"-mavx512vpopcntdq":[6,0,1,"cmdoption-clang-mavx512vpopcntdq"],"-mbackchain":[6,0,1,"cmdoption-clang-mbackchain"],"-mbig-endian":[6,0,1,"cmdoption-clang-mbig-endian"],"-mbmi":[6,0,1,"cmdoption-clang-mbmi"],"-mbmi2":[6,0,1,"cmdoption-clang-mbmi2"],"-mcheck-zero-division":[6,0,1,"cmdoption-clang-mcheck-zero-division"],"-mcldemote":[6,0,1,"cmdoption-clang-mcldemote"],"-mclflushopt":[6,0,1,"cmdoption-clang-mclflushopt"],"-mclwb":[6,0,1,"cmdoption-clang-mclwb"],"-mclzero":[6,0,1,"cmdoption-clang-mclzero"],"-mcmodel":[6,0,1,"cmdoption-clang-mcmodel"],"-mcmpb":[6,0,1,"cmdoption-clang-mcmpb"],"-mcompact-branches":[6,0,1,"cmdoption-clang-mcompact-branches"],"-mconsole<arg>":[6,0,1,"cmdoption-clang-mconsole-arg"],"-mcpu":[6,0,1,"cmdoption-clang-mcpu"],"-mcrbits":[6,0,1,"cmdoption-clang-mcrbits"],"-mcrc":[6,0,1,"cmdoption-clang-mcrc"],"-mcrypto":[6,0,1,"cmdoption-clang-mcrypto"],"-mcx16":[6,0,1,"cmdoption-clang-mcx16"],"-mdefault-build-attributes<arg>":[6,0,1,"cmdoption-clang-mdefault-build-attributes-arg"],"-mdirect-move":[6,0,1,"cmdoption-clang-mdirect-move"],"-mdll<arg>":[6,0,1,"cmdoption-clang-mdll-arg"],"-mdouble-float":[6,0,1,"cmdoption-clang-mdouble-float"],"-mdsp":[6,0,1,"cmdoption-clang-mdsp"],"-mdspr2":[6,0,1,"cmdoption-clang-mdspr2"],"-mdynamic-no-pic<arg>":[6,0,1,"cmdoption-clang-mdynamic-no-pic-arg"],"-meabi":[6,0,1,"cmdoption-clang-meabi"],"-membedded-data":[6,0,1,"cmdoption-clang-membedded-data"],"-mexception-handling":[6,0,1,"cmdoption-clang-mexception-handling"],"-mexecute-only":[6,0,1,"cmdoption-clang-mexecute-only"],"-mextern-sdata":[6,0,1,"cmdoption-clang-mextern-sdata"],"-mf16c":[6,0,1,"cmdoption-clang-mf16c"],"-mfentry":[6,0,1,"cmdoption-clang-mfentry"],"-mfix-cortex-a53-835769":[6,0,1,"cmdoption-clang-mfix-cortex-a53-835769"],"-mfloat-abi":[6,0,1,"cmdoption-clang-mfloat-abi"],"-mfloat128":[6,0,1,"cmdoption-clang-mfloat128"],"-mfma":[6,0,1,"cmdoption-clang-mfma"],"-mfma4":[6,0,1,"cmdoption-clang-mfma4"],"-mfp32":[6,0,1,"cmdoption-clang-mfp32"],"-mfp64":[6,0,1,"cmdoption-clang-mfp64"],"-mfpmath":[6,0,1,"cmdoption-clang-mfpmath"],"-mfprnd":[6,0,1,"cmdoption-clang-mfprnd"],"-mfpu":[6,0,1,"cmdoption-clang-mfpu"],"-mfsgsbase":[6,0,1,"cmdoption-clang-mfsgsbase"],"-mfxsr":[6,0,1,"cmdoption-clang-mfxsr"],"-mgeneral-regs-only":[6,0,1,"cmdoption-clang-mgeneral-regs-only"],"-mgfni":[6,0,1,"cmdoption-clang-mgfni"],"-mginv":[6,0,1,"cmdoption-clang-mginv"],"-mglobal-merge":[6,0,1,"cmdoption-clang-mglobal-merge"],"-mgpopt":[6,0,1,"cmdoption-clang-mgpopt"],"-mhard-float":[6,0,1,"cmdoption-clang-mhard-float"],"-mhtm":[6,0,1,"cmdoption-clang-mhtm"],"-mhvx":[6,0,1,"cmdoption-clang-mhvx"],"-mhvx-length":[6,0,1,"cmdoption-clang-mhvx-length"],"-mhwdiv":[6,0,1,"cmdoption-clang-mhwdiv"],"-miamcu":[6,0,1,"cmdoption-clang-miamcu"],"-mieee-rnd-near":[6,0,1,"cmdoption-clang-mieee-rnd-near"],"-mimplicit-float":[6,0,1,"cmdoption-clang-mimplicit-float"],"-mimplicit-it":[6,0,1,"cmdoption-clang-mimplicit-it"],"-mincremental-linker-compatible":[6,0,1,"cmdoption-clang-mincremental-linker-compatible"],"-mindirect-jump":[6,0,1,"cmdoption-clang-mindirect-jump"],"-minvariant-function-descriptors":[6,0,1,"cmdoption-clang-minvariant-function-descriptors"],"-minvpcid":[6,0,1,"cmdoption-clang-minvpcid"],"-mios-simulator-version-min":[6,0,1,"cmdoption-clang-mios-simulator-version-min"],"-mios-version-min":[6,0,1,"cmdoption-clang-miphoneos-version-min"],"-miphoneos-version-min":[6,0,1,"cmdoption-clang-miphoneos-version-min"],"-miphonesimulator-version-min":[6,0,1,"cmdoption-clang-mios-simulator-version-min"],"-mips16":[6,0,1,"cmdoption-clang-mips16"],"-misel":[6,0,1,"cmdoption-clang-misel"],"-mkernel":[6,0,1,"cmdoption-clang-mkernel"],"-mldc1-sdc1":[6,0,1,"cmdoption-clang-mldc1-sdc1"],"-mlinker-version":[6,0,1,"cmdoption-clang-mlinker-version"],"-mlittle-endian":[6,0,1,"cmdoption-clang-mlittle-endian"],"-mllvm":[6,0,1,"cmdoption-clang-mllvm"],"-mlocal-sdata":[6,0,1,"cmdoption-clang-mlocal-sdata"],"-mlong-calls":[6,0,1,"cmdoption-clang-mlong-calls"],"-mlongcall":[6,0,1,"cmdoption-clang-mlongcall"],"-mlwp":[6,0,1,"cmdoption-clang-mlwp"],"-mlzcnt":[6,0,1,"cmdoption-clang-mlzcnt"],"-mmacos-version-min":[6,0,1,"cmdoption-clang-mmacosx-version-min"],"-mmacosx-version-min":[6,0,1,"cmdoption-clang-mmacosx-version-min"],"-mmadd4":[6,0,1,"cmdoption-clang-mmadd4"],"-mmcu":[6,0,1,"cmdoption-clang-mmcu"],"-mmemops":[6,0,1,"cmdoption-clang-mmemops"],"-mmfcrf":[6,0,1,"cmdoption-clang-mmfocrf"],"-mmfocrf":[6,0,1,"cmdoption-clang-mmfocrf"],"-mmicromips":[6,0,1,"cmdoption-clang-mmicromips"],"-mmmx":[6,0,1,"cmdoption-clang-mmmx"],"-mmovbe":[6,0,1,"cmdoption-clang-mmovbe"],"-mmovdir64b":[6,0,1,"cmdoption-clang-mmovdir64b"],"-mmovdiri":[6,0,1,"cmdoption-clang-mmovdiri"],"-mmpx":[6,0,1,"cmdoption-clang-mmpx"],"-mms-bitfields":[6,0,1,"cmdoption-clang-mms-bitfields"],"-mmsa":[6,0,1,"cmdoption-clang-mmsa"],"-mmt":[6,0,1,"cmdoption-clang-mmt"],"-mmwaitx":[6,0,1,"cmdoption-clang-mmwaitx"],"-mnan":[6,0,1,"cmdoption-clang-mnan"],"-mno-3dnow":[6,0,1,"cmdoption-clang-m3dnow"],"-mno-3dnowa":[6,0,1,"cmdoption-clang-m3dnowa"],"-mno-abicalls":[6,0,1,"cmdoption-clang-mabicalls"],"-mno-adx":[6,0,1,"cmdoption-clang-madx"],"-mno-aes":[6,0,1,"cmdoption-clang-maes"],"-mno-altivec":[6,0,1,"cmdoption-clang-maltivec"],"-mno-avx":[6,0,1,"cmdoption-clang-mavx"],"-mno-avx2":[6,0,1,"cmdoption-clang-mavx2"],"-mno-avx512bitalg":[6,0,1,"cmdoption-clang-mavx512bitalg"],"-mno-avx512bw":[6,0,1,"cmdoption-clang-mavx512bw"],"-mno-avx512cd":[6,0,1,"cmdoption-clang-mavx512cd"],"-mno-avx512dq":[6,0,1,"cmdoption-clang-mavx512dq"],"-mno-avx512er":[6,0,1,"cmdoption-clang-mavx512er"],"-mno-avx512f":[6,0,1,"cmdoption-clang-mavx512f"],"-mno-avx512ifma":[6,0,1,"cmdoption-clang-mavx512ifma"],"-mno-avx512pf":[6,0,1,"cmdoption-clang-mavx512pf"],"-mno-avx512vbmi":[6,0,1,"cmdoption-clang-mavx512vbmi"],"-mno-avx512vbmi2":[6,0,1,"cmdoption-clang-mavx512vbmi2"],"-mno-avx512vl":[6,0,1,"cmdoption-clang-mavx512vl"],"-mno-avx512vnni":[6,0,1,"cmdoption-clang-mavx512vnni"],"-mno-avx512vpopcntdq":[6,0,1,"cmdoption-clang-mavx512vpopcntdq"],"-mno-backchain":[6,0,1,"cmdoption-clang-mbackchain"],"-mno-bmi":[6,0,1,"cmdoption-clang-mbmi"],"-mno-bmi2":[6,0,1,"cmdoption-clang-mbmi2"],"-mno-check-zero-division":[6,0,1,"cmdoption-clang-mcheck-zero-division"],"-mno-cldemote":[6,0,1,"cmdoption-clang-mcldemote"],"-mno-clflushopt":[6,0,1,"cmdoption-clang-mclflushopt"],"-mno-clwb":[6,0,1,"cmdoption-clang-mclwb"],"-mno-clzero":[6,0,1,"cmdoption-clang-mclzero"],"-mno-cmpb":[6,0,1,"cmdoption-clang-mcmpb"],"-mno-crbits":[6,0,1,"cmdoption-clang-mcrbits"],"-mno-crc":[6,0,1,"cmdoption-clang-mcrc"],"-mno-crypto":[6,0,1,"cmdoption-clang-mcrypto"],"-mno-cx16":[6,0,1,"cmdoption-clang-mcx16"],"-mno-default-build-attributes<arg>":[6,0,1,"cmdoption-clang-mdefault-build-attributes-arg"],"-mno-direct-move":[6,0,1,"cmdoption-clang-mdirect-move"],"-mno-dsp":[6,0,1,"cmdoption-clang-mdsp"],"-mno-dspr2":[6,0,1,"cmdoption-clang-mdspr2"],"-mno-embedded-data":[6,0,1,"cmdoption-clang-membedded-data"],"-mno-exception-handling":[6,0,1,"cmdoption-clang-mexception-handling"],"-mno-execute-only":[6,0,1,"cmdoption-clang-mexecute-only"],"-mno-extern-sdata":[6,0,1,"cmdoption-clang-mextern-sdata"],"-mno-f16c":[6,0,1,"cmdoption-clang-mf16c"],"-mno-fix-cortex-a53-835769":[6,0,1,"cmdoption-clang-mfix-cortex-a53-835769"],"-mno-float128":[6,0,1,"cmdoption-clang-mfloat128"],"-mno-fma":[6,0,1,"cmdoption-clang-mfma"],"-mno-fma4":[6,0,1,"cmdoption-clang-mfma4"],"-mno-fprnd":[6,0,1,"cmdoption-clang-mfprnd"],"-mno-fsgsbase":[6,0,1,"cmdoption-clang-mfsgsbase"],"-mno-fxsr":[6,0,1,"cmdoption-clang-mfxsr"],"-mno-gfni":[6,0,1,"cmdoption-clang-mgfni"],"-mno-ginv":[6,0,1,"cmdoption-clang-mginv"],"-mno-global-merge":[6,0,1,"cmdoption-clang-mglobal-merge"],"-mno-gpopt":[6,0,1,"cmdoption-clang-mgpopt"],"-mno-htm":[6,0,1,"cmdoption-clang-mhtm"],"-mno-hvx":[6,0,1,"cmdoption-clang-mhvx"],"-mno-iamcu":[6,0,1,"cmdoption-clang-miamcu"],"-mno-implicit-float":[6,0,1,"cmdoption-clang-mimplicit-float"],"-mno-incremental-linker-compatible":[6,0,1,"cmdoption-clang-mincremental-linker-compatible"],"-mno-invariant-function-descriptors":[6,0,1,"cmdoption-clang-minvariant-function-descriptors"],"-mno-invpcid":[6,0,1,"cmdoption-clang-minvpcid"],"-mno-isel":[6,0,1,"cmdoption-clang-misel"],"-mno-ldc1-sdc1":[6,0,1,"cmdoption-clang-mldc1-sdc1"],"-mno-local-sdata":[6,0,1,"cmdoption-clang-mlocal-sdata"],"-mno-long-calls":[6,0,1,"cmdoption-clang-mlong-calls"],"-mno-longcall":[6,0,1,"cmdoption-clang-mlongcall"],"-mno-lwp":[6,0,1,"cmdoption-clang-mlwp"],"-mno-lzcnt":[6,0,1,"cmdoption-clang-mlzcnt"],"-mno-madd4":[6,0,1,"cmdoption-clang-mmadd4"],"-mno-memops":[6,0,1,"cmdoption-clang-mmemops"],"-mno-mfocrf":[6,0,1,"cmdoption-clang-mmfocrf"],"-mno-micromips":[6,0,1,"cmdoption-clang-mmicromips"],"-mno-mips16":[6,0,1,"cmdoption-clang-mno-mips16"],"-mno-mmx":[6,0,1,"cmdoption-clang-mmmx"],"-mno-movbe":[6,0,1,"cmdoption-clang-mmovbe"],"-mno-movdir64b":[6,0,1,"cmdoption-clang-mmovdir64b"],"-mno-movdiri":[6,0,1,"cmdoption-clang-mmovdiri"],"-mno-movt":[6,0,1,"cmdoption-clang-mno-movt"],"-mno-mpx":[6,0,1,"cmdoption-clang-mmpx"],"-mno-ms-bitfields":[6,0,1,"cmdoption-clang-mms-bitfields"],"-mno-msa":[6,0,1,"cmdoption-clang-mmsa"],"-mno-mt":[6,0,1,"cmdoption-clang-mmt"],"-mno-mwaitx":[6,0,1,"cmdoption-clang-mmwaitx"],"-mno-neg-immediates":[6,0,1,"cmdoption-clang-mno-neg-immediates"],"-mno-nontrapping-fptoint":[6,0,1,"cmdoption-clang-mnontrapping-fptoint"],"-mno-nvj":[6,0,1,"cmdoption-clang-mnvj"],"-mno-nvs":[6,0,1,"cmdoption-clang-mnvs"],"-mno-omit-leaf-frame-pointer":[6,0,1,"cmdoption-clang-momit-leaf-frame-pointer"],"-mno-outline":[6,0,1,"cmdoption-clang-moutline"],"-mno-packets":[6,0,1,"cmdoption-clang-mpackets"],"-mno-pclmul":[6,0,1,"cmdoption-clang-mpclmul"],"-mno-pconfig":[6,0,1,"cmdoption-clang-mpconfig"],"-mno-pie-copy-relocations":[6,0,1,"cmdoption-clang-mpie-copy-relocations"],"-mno-pku":[6,0,1,"cmdoption-clang-mpku"],"-mno-popcnt":[6,0,1,"cmdoption-clang-mpopcnt"],"-mno-popcntd":[6,0,1,"cmdoption-clang-mpopcntd"],"-mno-power8-vector":[6,0,1,"cmdoption-clang-mpower8-vector"],"-mno-power9-vector":[6,0,1,"cmdoption-clang-mpower9-vector"],"-mno-prefetchwt1":[6,0,1,"cmdoption-clang-mprefetchwt1"],"-mno-prfchw":[6,0,1,"cmdoption-clang-mprfchw"],"-mno-ptwrite":[6,0,1,"cmdoption-clang-mptwrite"],"-mno-qpx":[6,0,1,"cmdoption-clang-mqpx"],"-mno-rdpid":[6,0,1,"cmdoption-clang-mrdpid"],"-mno-rdrnd":[6,0,1,"cmdoption-clang-mrdrnd"],"-mno-rdseed":[6,0,1,"cmdoption-clang-mrdseed"],"-mno-red-zone":[6,0,1,"cmdoption-clang-mred-zone"],"-mno-relax":[6,0,1,"cmdoption-clang-mrelax"],"-mno-relax-all":[6,0,1,"cmdoption-clang-mrelax-all"],"-mno-restrict-it":[6,0,1,"cmdoption-clang-mrestrict-it"],"-mno-retpoline":[6,0,1,"cmdoption-clang-mretpoline"],"-mno-retpoline-external-thunk":[6,0,1,"cmdoption-clang-mretpoline-external-thunk"],"-mno-rtd":[6,0,1,"cmdoption-clang-mrtd"],"-mno-rtm":[6,0,1,"cmdoption-clang-mrtm"],"-mno-sahf":[6,0,1,"cmdoption-clang-msahf"],"-mno-sgx":[6,0,1,"cmdoption-clang-msgx"],"-mno-sha":[6,0,1,"cmdoption-clang-msha"],"-mno-shstk":[6,0,1,"cmdoption-clang-mshstk"],"-mno-sign-ext":[6,0,1,"cmdoption-clang-msign-ext"],"-mno-simd128":[6,0,1,"cmdoption-clang-msimd128"],"-mno-soft-float":[6,0,1,"cmdoption-clang-msoft-float"],"-mno-sse":[6,0,1,"cmdoption-clang-msse"],"-mno-sse2":[6,0,1,"cmdoption-clang-msse2"],"-mno-sse3":[6,0,1,"cmdoption-clang-msse3"],"-mno-sse4a":[6,0,1,"cmdoption-clang-msse4a"],"-mno-ssse3":[6,0,1,"cmdoption-clang-mssse3"],"-mno-stack-arg-probe":[6,0,1,"cmdoption-clang-mstack-arg-probe"],"-mno-stackrealign":[6,0,1,"cmdoption-clang-mstackrealign"],"-mno-tbm":[6,0,1,"cmdoption-clang-mtbm"],"-mno-thumb":[6,0,1,"cmdoption-clang-mthumb"],"-mno-unaligned-access":[6,0,1,"cmdoption-clang-munaligned-access"],"-mno-vaes":[6,0,1,"cmdoption-clang-mvaes"],"-mno-virt":[6,0,1,"cmdoption-clang-mvirt"],"-mno-vpclmulqdq":[6,0,1,"cmdoption-clang-mvpclmulqdq"],"-mno-vsx":[6,0,1,"cmdoption-clang-mvsx"],"-mno-vx":[6,0,1,"cmdoption-clang-mvx"],"-mno-waitpkg":[6,0,1,"cmdoption-clang-mwaitpkg"],"-mno-warn-nonportable-cfstrings":[6,0,1,"cmdoption-clang-mwarn-nonportable-cfstrings"],"-mno-wbnoinvd":[6,0,1,"cmdoption-clang-mwbnoinvd"],"-mno-x87":[6,0,1,"cmdoption-clang-mx87"],"-mno-xgot":[6,0,1,"cmdoption-clang-mxgot"],"-mno-xnack":[6,0,1,"cmdoption-clang-mxnack"],"-mno-xop":[6,0,1,"cmdoption-clang-mxop"],"-mno-xsave":[6,0,1,"cmdoption-clang-mxsave"],"-mno-xsavec":[6,0,1,"cmdoption-clang-mxsavec"],"-mno-xsaveopt":[6,0,1,"cmdoption-clang-mxsaveopt"],"-mno-xsaves":[6,0,1,"cmdoption-clang-mxsaves"],"-mnocrc":[6,0,1,"cmdoption-clang-mnocrc"],"-mnontrapping-fptoint":[6,0,1,"cmdoption-clang-mnontrapping-fptoint"],"-mnvj":[6,0,1,"cmdoption-clang-mnvj"],"-mnvs":[6,0,1,"cmdoption-clang-mnvs"],"-module-dependency-dir":[6,0,1,"cmdoption-clang-module-dependency-dir"],"-module-file-info":[6,0,1,"cmdoption-clang-module-file-info"],"-momit-leaf-frame-pointer":[6,0,1,"cmdoption-clang-momit-leaf-frame-pointer"],"-moslib":[6,0,1,"cmdoption-clang-moslib"],"-moutline":[6,0,1,"cmdoption-clang-moutline"],"-mpackets":[6,0,1,"cmdoption-clang-mpackets"],"-mpascal-strings":[6,0,1,"cmdoption-clang-fpascal-strings"],"-mpclmul":[6,0,1,"cmdoption-clang-mpclmul"],"-mpconfig":[6,0,1,"cmdoption-clang-mpconfig"],"-mpie-copy-relocations":[6,0,1,"cmdoption-clang-mpie-copy-relocations"],"-mpku":[6,0,1,"cmdoption-clang-mpku"],"-mpopcnt":[6,0,1,"cmdoption-clang-mpopcnt"],"-mpopcntd":[6,0,1,"cmdoption-clang-mpopcntd"],"-mpower8-vector":[6,0,1,"cmdoption-clang-mpower8-vector"],"-mpower9-vector":[6,0,1,"cmdoption-clang-mpower9-vector"],"-mprefer-vector-width":[6,0,1,"cmdoption-clang-mprefer-vector-width"],"-mprefetchwt1":[6,0,1,"cmdoption-clang-mprefetchwt1"],"-mprfchw":[6,0,1,"cmdoption-clang-mprfchw"],"-mptwrite":[6,0,1,"cmdoption-clang-mptwrite"],"-mpure-code":[6,0,1,"cmdoption-clang-mexecute-only"],"-mqdsp6-compat":[6,0,1,"cmdoption-clang-mqdsp6-compat"],"-mqpx":[6,0,1,"cmdoption-clang-mqpx"],"-mrdpid":[6,0,1,"cmdoption-clang-mrdpid"],"-mrdrnd":[6,0,1,"cmdoption-clang-mrdrnd"],"-mrdseed":[6,0,1,"cmdoption-clang-mrdseed"],"-mrecip":[6,0,1,"cmdoption-clang-mrecip"],"-mred-zone":[6,0,1,"cmdoption-clang-mred-zone"],"-mregparm":[6,0,1,"cmdoption-clang-mregparm"],"-mrelax":[6,0,1,"cmdoption-clang-mrelax"],"-mrelax-all":[6,0,1,"cmdoption-clang-mrelax-all"],"-mrestrict-it":[6,0,1,"cmdoption-clang-mrestrict-it"],"-mretpoline":[6,0,1,"cmdoption-clang-mretpoline"],"-mretpoline-external-thunk":[6,0,1,"cmdoption-clang-mretpoline-external-thunk"],"-mrtd":[6,0,1,"cmdoption-clang-mrtd"],"-mrtm":[6,0,1,"cmdoption-clang-mrtm"],"-msahf":[6,0,1,"cmdoption-clang-msahf"],"-msecure-plt":[6,0,1,"cmdoption-clang-msecure-plt"],"-msgx":[6,0,1,"cmdoption-clang-msgx"],"-msha":[6,0,1,"cmdoption-clang-msha"],"-mshstk":[6,0,1,"cmdoption-clang-mshstk"],"-msign-ext":[6,0,1,"cmdoption-clang-msign-ext"],"-msimd128":[6,0,1,"cmdoption-clang-msimd128"],"-msingle-float":[6,0,1,"cmdoption-clang-msingle-float"],"-msmall-data-threshold":[6,0,1,"cmdoption-clang-g-size"],"-msoft-float":[6,0,1,"cmdoption-clang-msoft-float"],"-msse":[6,0,1,"cmdoption-clang-msse"],"-msse2":[6,0,1,"cmdoption-clang-msse2"],"-msse3":[6,0,1,"cmdoption-clang-msse3"],"-msse4a":[6,0,1,"cmdoption-clang-msse4a"],"-mssse3":[6,0,1,"cmdoption-clang-mssse3"],"-mstack-alignment":[6,0,1,"cmdoption-clang-mstack-alignment"],"-mstack-arg-probe":[6,0,1,"cmdoption-clang-mstack-arg-probe"],"-mstack-probe-size":[6,0,1,"cmdoption-clang-mstack-probe-size"],"-mstackrealign":[6,0,1,"cmdoption-clang-mstackrealign"],"-mtbm":[6,0,1,"cmdoption-clang-mtbm"],"-mthread-model":[6,0,1,"cmdoption-clang-mthread-model"],"-mthreads<arg>":[6,0,1,"cmdoption-clang-mthreads-arg"],"-mthumb":[6,0,1,"cmdoption-clang-mthumb"],"-mtp":[6,0,1,"cmdoption-clang-mtp"],"-mtune":[6,0,1,"cmdoption-clang-mtune"],"-mtvos-simulator-version-min":[6,0,1,"cmdoption-clang-mtvos-simulator-version-min"],"-mtvos-version-min":[6,0,1,"cmdoption-clang-mtvos-version-min"],"-multi_module":[6,0,1,"cmdoption-clang-multi-module"],"-multiply_defined":[6,0,1,"cmdoption-clang-multiply-defined"],"-munaligned-access":[6,0,1,"cmdoption-clang-munaligned-access"],"-municode<arg>":[6,0,1,"cmdoption-clang-municode-arg"],"-mv4":[6,0,1,"cmdoption-clang-mcpu"],"-mv5":[6,0,1,"cmdoption-clang-mcpu"],"-mv55":[6,0,1,"cmdoption-clang-mcpu"],"-mv60":[6,0,1,"cmdoption-clang-mcpu"],"-mv62":[6,0,1,"cmdoption-clang-mcpu"],"-mv65":[6,0,1,"cmdoption-clang-mcpu"],"-mvaes":[6,0,1,"cmdoption-clang-mvaes"],"-mvirt":[6,0,1,"cmdoption-clang-mvirt"],"-mvpclmulqdq":[6,0,1,"cmdoption-clang-mvpclmulqdq"],"-mvsx":[6,0,1,"cmdoption-clang-mvsx"],"-mvx":[6,0,1,"cmdoption-clang-mvx"],"-mwaitpkg":[6,0,1,"cmdoption-clang-mwaitpkg"],"-mwarn-nonportable-cfstrings":[6,0,1,"cmdoption-clang-mwarn-nonportable-cfstrings"],"-mwatchos-simulator-version-min":[6,0,1,"cmdoption-clang-mwatchos-simulator-version-min"],"-mwatchos-version-min":[6,0,1,"cmdoption-clang-mwatchos-version-min"],"-mwatchsimulator-version-min":[6,0,1,"cmdoption-clang-mwatchos-simulator-version-min"],"-mwbnoinvd":[6,0,1,"cmdoption-clang-mwbnoinvd"],"-mwindows<arg>":[6,0,1,"cmdoption-clang-mwindows-arg"],"-mx32":[6,0,1,"cmdoption-clang-mx32"],"-mx87":[6,0,1,"cmdoption-clang-mx87"],"-mxgot":[6,0,1,"cmdoption-clang-mxgot"],"-mxnack":[6,0,1,"cmdoption-clang-mxnack"],"-mxop":[6,0,1,"cmdoption-clang-mxop"],"-mxsave":[6,0,1,"cmdoption-clang-mxsave"],"-mxsavec":[6,0,1,"cmdoption-clang-mxsavec"],"-mxsaveopt":[6,0,1,"cmdoption-clang-mxsaveopt"],"-mxsaves":[6,0,1,"cmdoption-clang-mxsaves"],"-mzvector":[6,0,1,"cmdoption-clang-fzvector"],"-no-integrated-cpp":[6,0,1,"cmdoption-clang-no-integrated-cpp"],"-no-pedantic":[6,0,1,"cmdoption-clang-pedantic"],"-no-pie":[6,0,1,"cmdoption-clang-nopie"],"-no-pthread":[6,0,1,"cmdoption-clang-pthread"],"-no_dead_strip_inits_and_terms":[6,0,1,"cmdoption-clang-no-dead-strip-inits-and-terms"],"-nobuiltininc":[6,0,1,"cmdoption-clang-nobuiltininc"],"-nocpp":[6,0,1,"cmdoption-clang-nocpp"],"-nocudainc":[6,0,1,"cmdoption-clang-nocudainc"],"-nocudalib":[6,0,1,"cmdoption-clang-nocudalib"],"-nodefaultlibs":[6,0,1,"cmdoption-clang-nodefaultlibs"],"-nofixprebinding":[6,0,1,"cmdoption-clang-nofixprebinding"],"-nolibc":[6,0,1,"cmdoption-clang-nolibc"],"-nomultidefs":[6,0,1,"cmdoption-clang-nomultidefs"],"-nopie":[6,0,1,"cmdoption-clang-nopie"],"-noprebind":[6,0,1,"cmdoption-clang-noprebind"],"-noseglinkedit":[6,0,1,"cmdoption-clang-noseglinkedit"],"-nostartfiles":[6,0,1,"cmdoption-clang-nostartfiles"],"-nostdinc":[6,0,1,"cmdoption-clang-nostdinc"],"-nostdlib":[6,0,1,"cmdoption-clang-nostdlib"],"-nostdlibinc":[6,0,1,"cmdoption-clang-nostdlibinc"],"-o<file>":[6,0,1,"cmdoption-clang-o-file"],"-objcmt-atomic-property":[6,0,1,"cmdoption-clang-objcmt-atomic-property"],"-objcmt-migrate-all":[6,0,1,"cmdoption-clang-objcmt-migrate-all"],"-objcmt-migrate-annotation":[6,0,1,"cmdoption-clang-objcmt-migrate-annotation"],"-objcmt-migrate-designated-init":[6,0,1,"cmdoption-clang-objcmt-migrate-designated-init"],"-objcmt-migrate-instancetype":[6,0,1,"cmdoption-clang-objcmt-migrate-instancetype"],"-objcmt-migrate-literals":[6,0,1,"cmdoption-clang-objcmt-migrate-literals"],"-objcmt-migrate-ns-macros":[6,0,1,"cmdoption-clang-objcmt-migrate-ns-macros"],"-objcmt-migrate-property":[6,0,1,"cmdoption-clang-objcmt-migrate-property"],"-objcmt-migrate-property-dot-syntax":[6,0,1,"cmdoption-clang-objcmt-migrate-property-dot-syntax"],"-objcmt-migrate-protocol-conformance":[6,0,1,"cmdoption-clang-objcmt-migrate-protocol-conformance"],"-objcmt-migrate-readonly-property":[6,0,1,"cmdoption-clang-objcmt-migrate-readonly-property"],"-objcmt-migrate-readwrite-property":[6,0,1,"cmdoption-clang-objcmt-migrate-readwrite-property"],"-objcmt-migrate-subscripting":[6,0,1,"cmdoption-clang-objcmt-migrate-subscripting"],"-objcmt-ns-nonatomic-iosonly":[6,0,1,"cmdoption-clang-objcmt-ns-nonatomic-iosonly"],"-objcmt-returns-innerpointer-property":[6,0,1,"cmdoption-clang-objcmt-returns-innerpointer-property"],"-objcmt-white-list-dir-path":[6,0,1,"cmdoption-clang-objcmt-whitelist-dir-path"],"-objcmt-whitelist-dir-path":[6,0,1,"cmdoption-clang-objcmt-whitelist-dir-path"],"-object":[6,0,1,"cmdoption-clang-object"],"-p":[6,0,1,"cmdoption-clang-p"],"-pagezero_size<arg>":[6,0,1,"cmdoption-clang-pagezero-size-arg"],"-pedantic":[6,0,1,"cmdoption-clang-pedantic"],"-pedantic-errors":[6,0,1,"cmdoption-clang-pedantic-errors"],"-pg":[6,0,1,"cmdoption-clang-pg"],"-pie":[6,0,1,"cmdoption-clang-pie"],"-pipe":[6,0,1,"cmdoption-clang-pipe"],"-prebind":[6,0,1,"cmdoption-clang-prebind"],"-preload":[6,0,1,"cmdoption-clang-preload"],"-print-file-name":[6,0,1,"cmdoption-clang-print-file-name"],"-print-ivar-layout":[6,0,1,"cmdoption-clang-print-ivar-layout"],"-print-libgcc-file-name":[6,0,1,"cmdoption-clang-print-libgcc-file-name"],"-print-multi-directory":[6,0,1,"cmdoption-clang-print-multi-directory"],"-print-multi-lib":[6,0,1,"cmdoption-clang-print-multi-lib"],"-print-prog-name":[6,0,1,"cmdoption-clang-print-prog-name"],"-print-resource-dir":[6,0,1,"cmdoption-clang-print-resource-dir"],"-print-search-dirs":[6,0,1,"cmdoption-clang-print-search-dirs"],"-private_bundle":[6,0,1,"cmdoption-clang-private-bundle"],"-pthread":[6,0,1,"cmdoption-clang-pthread"],"-pthreads":[6,0,1,"cmdoption-clang-pthreads"],"-r":[6,0,1,"cmdoption-clang-r"],"-rdynamic":[6,0,1,"cmdoption-clang-rdynamic"],"-read_only_relocs":[6,0,1,"cmdoption-clang-read-only-relocs"],"-relocatable-pch":[6,0,1,"cmdoption-clang-relocatable-pch"],"-remap":[6,0,1,"cmdoption-clang-remap"],"-rewrite-legacy-objc":[6,0,1,"cmdoption-clang-rewrite-legacy-objc"],"-rewrite-objc":[6,0,1,"cmdoption-clang-rewrite-objc"],"-rpath":[6,0,1,"cmdoption-clang-rpath"],"-rtlib":[6,0,1,"cmdoption-clang-rtlib"],"-s":[6,0,1,"id3"],"-save-stats":[6,0,1,"cmdoption-clang-save-stats"],"-save-temps":[6,0,1,"cmdoption-clang-save-temps"],"-sectalign":[6,0,1,"cmdoption-clang-sectalign"],"-sectcreate":[6,0,1,"cmdoption-clang-sectcreate"],"-sectobjectsymbols":[6,0,1,"cmdoption-clang-sectobjectsymbols"],"-sectorder":[6,0,1,"cmdoption-clang-sectorder"],"-seg1addr<arg>":[6,0,1,"cmdoption-clang-seg1addr-arg"],"-seg_addr_table":[6,0,1,"cmdoption-clang-seg-addr-table"],"-segaddr":[6,0,1,"cmdoption-clang-segaddr"],"-segcreate":[6,0,1,"cmdoption-clang-segcreate"],"-seglinkedit":[6,0,1,"cmdoption-clang-seglinkedit"],"-segprot":[6,0,1,"cmdoption-clang-segprot"],"-segs_read_<arg>":[6,0,1,"cmdoption-clang-segs-read-arg"],"-serialize-diagnostics":[6,0,1,"cmdoption-clang-serialize-diagnostics"],"-shared":[6,0,1,"cmdoption-clang-shared"],"-shared-libasan":[6,0,1,"cmdoption-clang-shared-libsan"],"-shared-libgcc":[6,0,1,"cmdoption-clang-shared-libgcc"],"-shared-libsan":[6,0,1,"cmdoption-clang-shared-libsan"],"-single_module":[6,0,1,"cmdoption-clang-single-module"],"-specs":[6,0,1,"cmdoption-clang-specs"],"-static":[6,0,1,"cmdoption-clang-static"],"-static-libgcc":[6,0,1,"cmdoption-clang-static-libgcc"],"-static-libgfortran":[6,0,1,"cmdoption-clang-static-libgfortran"],"-static-libsan":[6,0,1,"cmdoption-clang-static-libsan"],"-static-libstdc++":[6,0,1,"cmdoption-clang-static-libstdc"],"-std":[6,0,1,"cmdoption-clang-std"],"-std-default":[6,0,1,"cmdoption-clang-std-default"],"-stdlib":[6,0,1,"cmdoption-clang-stdlib"],"-sub_library<arg>":[6,0,1,"cmdoption-clang-sub-library-arg"],"-t":[6,0,1,"cmdoption-clang-t"],"-target":[6,0,1,"cmdoption-clang-target"],"-time":[6,0,1,"cmdoption-clang-time"],"-traditional":[6,0,1,"cmdoption-clang-traditional"],"-traditional-cpp":[6,0,1,"cmdoption-clang-traditional-cpp"],"-trigraphs":[6,0,1,"cmdoption-clang-ftrigraphs"],"-twolevel_namespace":[6,0,1,"cmdoption-clang-twolevel-namespace"],"-u<arg>":[6,0,1,"cmdoption-clang-u-arg"],"-umbrella":[6,0,1,"cmdoption-clang-umbrella"],"-undef":[6,0,1,"cmdoption-clang-undef"],"-undefined<arg>":[6,0,1,"cmdoption-clang-undefined-arg"],"-unexported_symbols_list":[6,0,1,"cmdoption-clang-unexported-symbols-list"],"-v":[6,0,1,"cmdoption-clang-v"],"-verify-pch":[6,0,1,"cmdoption-clang-verify-pch"],"-w":[6,0,1,"cmdoption-clang-w"],"-weak-l<arg>":[6,0,1,"cmdoption-clang-weak-l-arg"],"-weak_framework":[6,0,1,"cmdoption-clang-weak-framework"],"-whatsloaded":[6,0,1,"cmdoption-clang-whatsloaded"],"-whyload":[6,0,1,"cmdoption-clang-whyload"],"-working-directory":[6,0,1,"cmdoption-clang-working-directory-arg"],"-working-directory<arg>":[6,0,1,"cmdoption-clang-working-directory-arg"],"-x<language>":[6,0,1,"cmdoption-clang-x-language"],"-y<arg>":[6,0,1,"cmdoption-clang-y-arg"],"-z":[6,0,1,"cmdoption-clang-z"]}},objnames:{"0":["std","cmdoption","program option"],"1":["std","envvar","environment variable"]},objtypes:{"0":"std:cmdoption","1":"std:envvar"},terms:{"0b01101101":30,"0b10010":30,"0b10110110":30,"0f4fc3":15,"0x000000000000":18,"0x00000000a360":54,"0x00000000a3a4":54,"0x00000000a3b4":54,"0x00000000c790":54,"0x000000010000":18,"0x000000425a50":14,"0x1":50,"0x10":15,"0x13a4":15,"0x170fa80":33,"0x173af50":33,"0x173afa8":33,"0x173afc8":33,"0x173afe0":33,"0x173b008":33,"0x173b030":33,"0x173b048":33,"0x173b060":33,"0x173b088":33,"0x173b0b0":33,"0x173b240":33,"0x17f":15,"0x1e14":15,"0x20":39,"0x200000000000":18,"0x200200000000":18,"0x28d0":15,"0x2a":15,"0x3":15,"0x3b":15,"0x3d":15,"0x40":39,"0x40000000009":15,"0x403c43":0,"0x403c53":0,"0x403c8c":0,"0x404544":0,"0x404704":0,"0x44d96d0":24,"0x44d97c8":24,"0x44da290":24,"0x4af01b":31,"0x4da26a":31,"0x4ecd20":47,"0x4ecd5b":47,"0x4ecd9":47,"0x4ecdc7":47,"0x5aea0d0":26,"0x5aeaa90":26,"0x5aeab50":26,"0x5aeac10":26,"0x5aeac68":26,"0x5aeac90":26,"0x5aeacb0":26,"0x5aeacc8":26,"0x5aeacf0":26,"0x5aead10":26,"0x5aead28":26,"0x5aead50":26,"0x5aead68":26,"0x5aead88":26,"0x60":39,"0x6f70bc0":15,"0x700000008000":18,"0x71bcd0":47,"0x71bcd4":47,"0x71bcd8":47,"0x71bcdc":47,"0x71bce0":47,"0x7f":39,"0x7f076fd9cec4":31,"0x7f45938b676c":37,"0x7f45944b418a":37,"0x7f789249b76c":37,"0x7f78938b5c25":37,"0x7f7893901cbd":37,"0x7f7893912e06":37,"0x7f7893912ecd":37,"0x7f7893912f0b":37,"0x7f7ddab8c080":0,"0x7f7ddab8c084":0,"0x7f7ddab8c210":0,"0x7f7ddabcac4d":0,"0x7fb42c3":15,"0x7fcf47b21bc0":54,"0x7ff3a3029ed0":5,"0x7ff3a302a410":5,"0x7ff3a302a470":5,"0x7ff3a302a830":5,"0x7ff3a302a8d0":5,"0x7ff3a302a980":5,"0x7ff3a302a9d8":5,"0x7ff3a302a9f8":5,"0x7ff3a302aa10":5,"0x7fff87fb82c8":0,"0x7fff87fb82d0":0,"0x7fffffff":57,"0x8":50,"0x800000000000":18,"0x86":15,"0x9":15,"0x902":23,"0x98":15,"0x9b":15,"0xb5":15,"0xc0bfffffffffff32":47,"0xc0bfffffffffff64":47,"0xffff":15,"0xffffffu":58,"10x":54,"11a6":15,"11a9":15,"11b0":15,"11b3":15,"11b6":15,"11ba":15,"11be":15,"11c0":15,"11c7":15,"11ca":15,"11ce":15,"11d0":15,"11d3":15,"11f5":15,"141592654f":39,"15x":54,"199901l":58,"1gb":52,"1mb":54,"1st":[1,25,58],"201112l":58,"201710l":58,"23l":39,"256mb":[1,15],"32bit":58,"3dnow":6,"3dnowa":6,"3rd":[1,11,25,58],"42l":39,"42ll":39,"42u":39,"4th":25,"9a2":15,"9a5":15,"9ac":15,"9af":15,"9b1":15,"9b4":15,"9d6":15,"\u00falfar":14,"\u03c9":58,"\u215b":58,"\u215c":58,"\u215d":58,"\u215e":58,"abstract":[4,11,19,20,25,28,29,33,38,41,44,53,56],"boolean":[1,19,30,39,53],"break":[1,2,4,8,15,16,35,36,38,43,45,56],"byte":[0,1,6,7,15,18,19,23,25,31,47,52,57,58],"case":[0,1,2,3,4,7,8,10,14,16,17,20,24,25,29,30,32,33,35,36,37,38,39,41,42,43,44,45,46,47,49,50,52,53,54,55,57,58,59],"catch":[0,2,4,8,11,18,19,20,23,33,36,45,57],"char":[0,1,3,4,6,14,15,18,25,30,33,35,37,39,43,45,47,51,57,58],"class":[0,1,2,3,4,6,8,9,11,14,15,17,18,20,21,26,27,29,32,33,35,36,38,39,41,43,44,45,53,58],"const":[1,2,4,6,9,14,17,18,21,25,30,33,34,35,39,41,44,47,53,58],"default":[0,1,2,3,4,6,7,8,9,11,14,16,17,25,26,29,32,33,35,36,37,38,40,45,51,52,53,54,55,57,58],"enum":[1,3,6,8,25,27,30,44,57],"export":[1,8,9,15,19,35,58],"final":[0,1,2,16,17,20,25,30,31,33,36,37,38,44,45,46,51,52,53,58],"float":[1,4,6,8,16,25,39,41,45,51,53,57,58],"function":[0,2,4,6,7,8,9,10,11,17,18,20,23,24,25,26,29,33,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,57,58],"goto":4,"import":[1,2,4,5,6,8,10,11,16,20,25,26,30,33,41,52,58],"int":[0,1,2,3,4,5,6,8,10,14,17,18,22,23,25,26,27,30,31,33,35,37,39,43,45,47,48,49,50,51,53,54,57,58],"long":[0,1,2,3,4,6,8,14,15,18,20,30,37,38,39,42,45,51,55,58],"new":[0,1,2,3,4,6,8,15,18,20,21,23,24,25,29,30,33,35,36,37,38,39,41,43,44,47,52,53,56,58],"null":[1,2,3,6,15,24,25,30,33,39,41,54,57],"public":[1,8,9,10,25,29,33,38,41,43,44,53],"return":[0,1,3,4,6,8,9,10,14,17,18,23,24,25,26,27,29,31,32,33,34,35,37,39,43,44,46,47,50,51,53,54,57,58],"short":[6,8,18,25,30,39,50,56],"static":[0,1,2,3,4,9,10,11,14,15,18,21,25,29,33,35,36,37,40,46,47,53,54,55,57],"super":[1,2],"switch":[1,3,6,8,11,15,25,30,42,44,47,58],"throw":[1,2,19,36,46],"true":[0,1,2,3,4,8,9,16,19,25,30,33,39,43,53,57,58],"try":[0,1,2,4,8,10,11,15,19,20,24,25,30,32,33,36,37,38,45,50,51,53,58],"typeof":[3,58],"var":[2,6,8,26,30,33,58],"void":[0,1,3,4,5,6,8,9,14,15,17,18,25,27,29,30,31,33,36,39,41,43,45,47,48,49,51,53,54,58],"while":[1,2,5,8,11,14,19,25,28,30,33,36,38,39,41,42,45,46,48,51,52,53,55,57,58],AND:3,ASE:6,Added:45,Adding:[50,58],And:[33,58],Are:38,BUT:3,But:[15,16,45,47,58],Doing:[1,25,58],EXE:58,FOR:3,For:[0,1,2,3,4,5,8,9,10,11,14,15,16,17,18,20,23,25,26,27,28,30,32,33,35,36,37,38,39,41,42,43,44,45,48,51,52,53,55,57,58,59],Has:6,IDE:[1,10,20,25,41,44],IDEs:[44,58],IDs:[41,58],Its:[17,30,38,41,58],LHS:33,NOT:[3,27,30],Not:[1,2,11,25,30,58],OSes:55,One:[0,2,20,25,29,37,38,46,53,54],PCS:16,Such:[2,3,4,14,15,18,30,38,47,53],THE:3,TLS:[1,11,18,58],That:[1,10,16,25,30,38,57,58],The:[0,1,2,3,5,6,7,8,9,10,11,13,14,15,16,17,18,19,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,54,55,57],Then:[8,25,41,44,52],There:[1,2,3,7,8,9,14,15,16,18,21,25,26,27,28,30,32,33,35,36,38,41,42,44,50,51,53,55,57,58],These:[1,2,4,6,8,10,11,13,14,15,18,25,29,30,34,36,38,39,41,44,45,47,51,53,57,58],Tying:2,USE:3,Use:[0,1,6,7,8,9,14,19,24,25,30,35,46,47,50,52,53,54,56,57,58],Used:11,Useful:1,Using:[1,2,23,25,30,35,39,57],WITH:3,Will:[8,10],With:[2,7,8,10,11,14,15,17,28,32,33,37,38,41,45,46,47,52,58],YES:[39,55],Yes:8,__aligned_v16si:58,__always_inline__:30,__asm__:[1,58],__atomic_:[30,55],__atomic_acq_rel:30,__atomic_acquir:30,__atomic_consum:30,__atomic_fetch_max:30,__atomic_fetch_min:30,__atomic_relax:30,__atomic_releas:30,__atomic_seq_cst:30,__attribut:2,__attribute__:[2,19,25,27,29,30,39,47,49,53,58],__auto_typ:19,__autoreleas:19,__base_file__:30,__block:2,__block_copy_10:3,__block_copy_4:3,__block_copy_5:3,__block_copy_foo:3,__block_descriptor_10:3,__block_descriptor_1:3,__block_descriptor_2:3,__block_descriptor_4:3,__block_descriptor_5:3,__block_dispose_10:3,__block_dispose_4:3,__block_dispose_5:3,__block_dispose_foo:3,__block_invoke_10:3,__block_invoke_1:3,__block_invoke_2:3,__block_invoke_4:3,__block_invoke_5:3,__block_literal_10:3,__block_literal_1:3,__block_literal_2:3,__block_literal_3:3,__block_literal_4:3,__block_literal_5:3,__bridg:2,__bridge_retain:2,__bridge_transf:2,__builin_suspend:30,__builtin_:[30,55],__builtin_ab:25,__builtin_add_overflow:30,__builtin_addc:30,__builtin_addcb:30,__builtin_addcl:30,__builtin_alloca_with_align:19,__builtin_appli:58,__builtin_arm_clrex:30,__builtin_arm_ldaex:30,__builtin_arm_ldrex:30,__builtin_arm_stlex:30,__builtin_arm_strex:30,__builtin_assume_align:30,__builtin_avail:[19,30],__builtin_bitreverse16:30,__builtin_bitreverse32:30,__builtin_bitreverse64:30,__builtin_bitreverse8:30,__builtin_canonicalizef:30,__builtin_char_memchr:30,__builtin_choose_expr:[25,30],__builtin_classify_typ:25,__builtin_constant_p:[25,30],__builtin_coro_alloc:30,__builtin_coro_begin:30,__builtin_coro_destroi:30,__builtin_coro_don:30,__builtin_coro_end:30,__builtin_coro_fram:30,__builtin_coro_fre:30,__builtin_coro_id:30,__builtin_coro_param:30,__builtin_coro_promis:30,__builtin_coro_resum:30,__builtin_coro_s:30,__builtin_coro_suspend:30,__builtin_frame_address:46,__builtin_inf:25,__builtin_memchr:30,__builtin_mul_overflow:30,__builtin_nan:30,__builtin_nontemporal_load:30,__builtin_nontemporal_stor:30,__builtin_object_s:[1,57],__builtin_return_address:47,__builtin_sadd_overflow:30,__builtin_saddl_overflow:30,__builtin_saddll_overflow:30,__builtin_smul_overflow:30,__builtin_smull_overflow:30,__builtin_smulll_overflow:30,__builtin_ssub_overflow:30,__builtin_ssubl_overflow:30,__builtin_ssubll_overflow:30,__builtin_strlen:25,__builtin_sub_overflow:30,__builtin_subc:30,__builtin_subcb:30,__builtin_subcl:30,__builtin_trap:[30,58],__builtin_types_compatible_p:30,__builtin_uadd_overflow:30,__builtin_uaddl_overflow:30,__builtin_uaddll_overflow:30,__builtin_umul_overflow:30,__builtin_umull_overflow:30,__builtin_umulll_overflow:30,__builtin_usub_overflow:30,__builtin_usubl_overflow:30,__builtin_usubll_overflow:30,__builtin_va_arg_pack:58,__builtin_va_arg_pack_len:58,__builtin_va_list:5,__c11_:30,__c11_atomic_compare_exchange_strong:30,__c11_atomic_compare_exchange_weak:30,__c11_atomic_exchang:30,__c11_atomic_fetch_add:30,__c11_atomic_fetch_and:30,__c11_atomic_fetch_or:30,__c11_atomic_fetch_sub:30,__c11_atomic_fetch_xor:30,__c11_atomic_init:30,__c11_atomic_is_lock_fre:30,__c11_atomic_load:30,__c11_atomic_signal_f:30,__c11_atomic_stor:30,__c11_atomic_thread_f:30,__cdecl:58,__cfi_check:15,__cfi_slowpath:15,__cfi_slowpath_diag:15,__clang__:[30,53,57],__clang_major__:30,__clang_minor__:30,__clang_patchlevel__:30,__clang_version__:30,__clangast:41,__const__:30,__counter__:30,__cplusplu:39,__cpp_:30,__cpp_digit_separ:30,__cxa_atexit:6,__cxx11:27,__cxx_rvalue_references__:30,__date__:19,__declspec:[6,19,25,29,30,36,58],__deprec:6,__dfsan_arg_tl:18,__dfsan_retval_tl:18,__dfsan_union:18,__dfsw_f:17,__dfsw_memcpi:[17,18],__dllexport__:30,__dmb:30,__dsb:30,__emutls_get_address:58,__except:36,__extension__:25,__fast_math__:58,__fast_relaxed_math__:6,__fastcal:58,__final:[19,36],__format__:1,__fp16:30,__func__:45,__gnu_inline__:58,__has_attribut:[1,2,39],__has_extens:1,__has_featur:[2,39],__has_nothrow_assign:30,__has_nothrow_constructor:30,__has_nothrow_copi:30,__has_trivial_assign:30,__has_trivial_constructor:30,__has_trivial_copi:30,__has_trivial_destructor:30,__has_virtual_destructor:30,__has_warn:19,__hwasan_shadow:23,__if_exist:19,__if_not_exist:19,__imag__:30,__include_level__:30,__include_macro:19,__int128:5,__int128_t:5,__interceptor_malloc:31,__is_abstract:30,__is_aggreg:30,__is_assign:30,__is_base_of:30,__is_class:30,__is_construct:30,__is_convertible_to:30,__is_destruct:30,__is_empti:30,__is_enum:30,__is_fin:30,__is_interface_class:30,__is_liter:30,__is_nothrow_assign:30,__is_nothrow_construct:30,__is_nothrow_destruct:30,__is_pod:30,__is_polymorph:30,__is_trivially_assign:30,__is_trivially_construct:30,__is_union:30,__isb:30,__libc_start_main:[0,31,37],__line__:58,__llvm_profile_initialize_fil:51,__llvm_profile_runtim:51,__llvm_profile_set_filenam:51,__llvm_profile_write_fil:51,__msan_chain_origin:37,__need_size_t:38,__need_wchar_t:38,__objc_no:39,__objc_y:39,__opencl_:30,__opencl_atomic_:30,__opencl_memory_scope_all_svm_devic:30,__opencl_memory_scope_devic:30,__opencl_memory_scope_sub_group:30,__opencl_memory_scope_work_group:30,__opencl_memory_scope_work_item:30,__printf__:1,__private_extern__:19,__real__:30,__reference_binds_to_temporari:30,__regcal:58,__restrict__:19,__sanitizer_cov_8bit_counters_init:47,__sanitizer_cov_pcs_init:47,__sanitizer_cov_trace_cmp1:47,__sanitizer_cov_trace_cmp2:47,__sanitizer_cov_trace_cmp4:47,__sanitizer_cov_trace_cmp8:47,__sanitizer_cov_trace_const_cmp1:47,__sanitizer_cov_trace_const_cmp2:47,__sanitizer_cov_trace_const_cmp4:47,__sanitizer_cov_trace_const_cmp8:47,__sanitizer_cov_trace_div4:47,__sanitizer_cov_trace_div8:47,__sanitizer_cov_trace_gep:47,__sanitizer_cov_trace_pc:47,__sanitizer_cov_trace_pc_:47,__sanitizer_cov_trace_pc_guard:47,__sanitizer_cov_trace_pc_guard_init:47,__sanitizer_cov_trace_pc_indirect:47,__sanitizer_cov_trace_switch:47,__sanitizer_symbolize_pc:47,__scanf__:1,__single_inherit:1,__size_type__:38,__stdc__:41,__stdc_version__:58,__stdcall:58,__strict_ansi__:58,__strong:[2,19],__sync_:30,__sync_bool_compare_and_swap:30,__sync_fetch_and_add:30,__sync_lock_test_and_set:30,__thread:[1,19],__time__:19,__timestamp__:30,__try:36,__typeof:2,__typeof__:58,__uint128_t:5,__underlying_typ:30,__underscor:38,__unsafe_unretain:[2,19,30],__v16si:58,__va_args__:[19,53,58],__va_list_tag:5,__va_opt__:19,__vector:19,__vector_size__:30,__vectorcal:58,__wchar_t:30,__weak:[1,2,4,19,30],__x:30,__xray_customev:6,__xray_typedev:6,_aligna:30,_alignof:30,_atom:30,_attribute_:30,_block:3,_block_byref_assign_copi:3,_block_byref_blockstoragefoo:3,_block_byref_dispose_help:3,_block_byref_foo:3,_block_byref_i:3,_block_byref_keep_help:3,_block_byref_obj:3,_block_byref_obj_dispos:3,_block_byref_obj_keep:3,_block_byref_releas:3,_block_byref_voidblock:3,_block_copy_assign:3,_block_destroi:3,_block_liter:3,_block_object_assign:3,_block_object_dispos:3,_bool:[24,33],_clang:[7,8],_complex:[25,58],_decimal32:58,_end:8,_explicit:30,_float16:30,_floatn:30,_foo:[25,30],_fract:58,_imaginari:30,_ivar:2,_libcpp_hide_from_abi_per_tu:45,_msc_full_ver:58,_msc_ver:[6,11,58],_nonnul:[19,57],_noreturn:19,_nsconcreteglobalblock:3,_nsconcretestackblock:3,_null_unspecifi:19,_nullabl:19,_overflow:55,_perform:2,_pragma:[25,58],_rect:39,_returns_not_retain:30,_returns_retain:30,_size:39,_size_t:38,_some_struct:1,_static_assert:19,_test:8,_unwind_:55,_value_:[1,30],_z1fd:1,_z1fi:1,_z1gp1a:49,_z32bari:58,_z3foob1bv:27,_z3foov:58,_z4funcb4testv:27,_z5tgsind:1,_z5tgsine:1,_z5tgsinf:1,_z8myfoobarv:48,a15:16,a53:6,a_test:8,aaa:8,aaaa:8,aaaaaaaaaaaaa:8,aaaaaaaaaaaaaa:8,aaaaaaaaaaaaaaaaaaaa:8,aaaaaaaaaaaaaaaaaaaaa:8,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:8,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:8,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:8,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:8,aapc:1,aarch32:6,aarch64:[1,23,40,50,58],abadi:14,abbrevi:41,abc:58,abi:[1,2,3,6,11,14,15,19,29,41,45,50,57,58,59],abi_tag:[19,27],abical:6,abil:[1,2,15,25,29,41,58],abl:[0,1,2,15,16,20,24,25,30,33,36,37,41,51,53,55,57,58],abnorm:2,abort:[0,1,11,14,15,19,25,30,58],about:[0,1,6,8,10,11,15,16,17,20,21,24,25,26,30,32,33,36,41,43,44,45,46,53,54,55,56,57,58],abov:[1,2,3,8,11,14,15,18,25,29,30,37,38,39,41,42,43,44,53,55,57,58],abs:1,absenc:[1,6,25,38,58],absent:[2,38],absolut:[2,6,28,30,38,48,58],abus:20,academia:57,acceler:45,accept:[1,2,6,10,18,19,20,25,30,32,36,44,58],access:[0,1,2,4,6,8,10,15,16,17,18,20,25,26,32,33,38,45,46,50,52,53,57,58],accessmodifieroffset:8,accessor:[2,20,25,39],accid:25,accident:[2,38],accommod:[4,20],accompani:58,accord:[1,2,4,6,8,10,17,25,28,30,38,39,41,45,58],accordingli:[8,25,39],account:[1,2,8,41,51],accumul:58,accur:[1,2,6,25,54],accuraci:[23,25,30,58],achiev:[25,37,44,48,52],acknowledg:19,acl:30,acquir:[1,2,19,58],acquire_cap:53,acquire_shared_cap:53,acquired_befor:19,acronym:21,across:[1,2,14,16,18,25,30,38,39,40,44,46,55,58],act:[1,2,4,8,25,41,53,54],action:[3,9,19,20,25,30,35,43,47,55,56],actionfactori:24,actiontyp:9,activ:[4,10,25,30,36,38,40,52,53,54,56],actonbinop:25,actoncxx:25,actoncxxglobalscopespecifi:25,actoncxxnestednamespecifi:25,actonxxx:25,actual:[1,2,3,4,11,15,18,20,25,26,28,30,38,41,42,46,53,58],actuallli:1,acycl:41,ada:55,adapt:[20,46],add:[0,1,2,3,6,7,8,9,10,11,16,19,20,21,22,23,24,30,31,33,37,38,39,41,44,50,51,52,54,55,57,58],add_clang_execut:[33,43],add_subdirectori:33,addaftermainact:9,addanim:39,added:[1,2,6,10,11,15,19,21,25,30,33,35,36,38,44,45,51,52,53,55,58],adding:[0,1,2,4,7,8,19,25,33,44,45,53,58],addit:[1,2,3,4,6,9,11,15,16,17,18,19,21,25,33,37,38,40,41,44,47,49,52,53,55,56,58],addition:[0,1,2,3,25,30,38,51,57,58],additionalmemb:25,addmatch:33,addobject:39,addq:50,addr2lin:[54,58],addr:[6,15,18,30],address:[2,3,6,14,15,18,23,25,30,31,33,36,37,38,39,45,46,47,48,50,54,57,58],address_sanit:30,address_spac:30,addressof:30,addresssanit:[1,6,30,31,47,48,58,59],addresssanitizerleaksanit:31,addrsig:[6,45,58],adequ:[1,2],adher:21,adi:23,adjust:[1,2,25,33,46],admittedli:2,adopt:[20,38,39],adrp:23,advanc:[1,30,33,35,51],advantag:[1,18,24,25,30,39,42,58],advis:53,adx:6,aes:6,affect:[1,2,8,11,14,30,38,41,44,52,58],aforement:44,afraid:10,afresh:2,after:[0,1,2,3,4,6,8,9,16,20,23,24,25,27,28,30,33,35,36,38,39,41,44,46,50,51,52,53,55,57,58],afterclass:8,aftercolon:8,aftercontrolstat:8,afterenum:8,afterexternblock:8,afterfunct:8,afterhash:8,afternamespac:8,afterobjcdeclar:8,afterstruct:8,afterunion:8,afterward:[33,35],again:[0,2,3,8,33,36,47,57,58],against:[1,2,8,14,15,16,19,25,29,33,36,38,39,42,46,47,50,55,57,58],aggreg:[1,2,19,25],aggress:[6,11,52,58],agnost:[2,53],agre:[1,2],ahead:[1,16,25],aid:38,aim:[1,21,24,25,30,33,55,56,58],aka:[19,30],akin:[2,25],alarm:0,alexdenisov:21,alexfh:24,algebra:[33,58],algorithm:[1,2,26,41,42],alia:[19,46,57,58],alias:[2,6,30,53,58],aliase:19,alig:19,align:[1,2,6,8,23,55,57,58],aligna:[19,30],alignafteropenbracket:8,alignconsecutiveassign:8,alignconsecutivedeclar:8,aligned_double_ptr:1,alignescapednewlin:8,alignof:[30,58],alignoperand:8,aligntrailingcom:8,alignupto:15,aliv:19,all:[0,1,2,3,4,6,7,8,10,11,13,14,16,18,20,23,24,25,26,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,44,45,46,47,48,51,52,53,54,55,56,57],all_load:6,alldefinit:8,allevi:1,allman:8,alloc:[0,2,4,6,14,15,18,19,20,21,25,30,31,37,39,41,46,50,58],alloca:[18,23],allocat:58,allof:32,allow:[0,1,2,3,4,6,8,10,11,14,15,18,19,20,21,23,25,26,29,30,32,33,35,36,38,41,43,44,45,48,51,52,53,56,58],allowable_cli:6,allowallparametersofdeclarationonnextlin:8,allowshortblocksonasinglelin:8,allowshortcaselabelsonasinglelin:8,allowshortfunctionsonasinglelin:8,allowshortifstatementsonasinglelin:8,allowshortloopsonasinglelin:8,almost:[1,2,16,25,31,38,42],alnum:8,alon:[10,25,31,46],along:[1,10,11,20,24,25,30,33,36,38,41,45,58],alongsid:[38,51,58],alpha:7,alphabet:8,alreadi:[1,2,8,10,16,19,21,23,30,33,35,38,39,41,43,45,46,50,52],also:[0,1,2,3,4,6,8,9,10,14,15,16,17,19,20,21,23,24,25,26,27,28,29,30,33,34,35,36,37,38,39,41,42,44,45,47,49,50,51,52,53,54,57,58],alt:58,alter:[2,17,20,25,48,58],altern:[1,2,6,7,15,22,23,30,35,38,42,45,46,50,51,53,55,58],although:[1,2,4,10,20,39,41,44,53,57,58],altivec:[6,30,38],alwai:[1,2,3,6,8,14,16,19,20,21,25,26,30,32,38,39,40,45,46,53,58],always_inlin:[1,30],alwaysbreak:8,alwaysbreakafterdefinitionreturntyp:8,alwaysbreakafterreturntyp:8,alwaysbreakbeforemultilinestr:8,alwaysbreaktemplatedeclar:8,ambigu:[1,25,41],amd1:58,amd:58,amdgcn:58,amdgpu:1,amdhsa:58,amen:30,amend:[11,58],among:[2,25,38],amort:46,amount:[1,2,15,20,38,41,42,52,53,57],ampamp:25,analog:2,analys:[10,18,25],analysi:[1,2,6,11,17,18,21,25,36,39,40,41,46,52,54,58,59],analyz:[1,2,8,11,19,25,30,44,55],ancestor:26,ancestorsharedwithview:1,anchor:58,andersbakken:21,android:[0,16,57],androideabi:16,angl:[8,19,25],ani:[0,1,2,3,4,6,7,8,11,15,16,18,19,20,23,24,25,27,28,29,30,32,33,36,37,38,39,40,41,42,44,45,46,47,50,51,52,53,54,56,58],anim:39,animationwithkeypath:39,annoi:2,annot:[2,6,8,19,30,53,57,58],annot_cxxscop:25,annot_template_id:25,annot_typenam:25,annotationendloc:25,annotationvalu:25,annotmeth:1,anonym:[0,2,24,25],anoth:[0,1,2,7,14,15,16,17,18,19,20,25,27,30,33,38,41,44,46,53,55,58],ansi:[6,11,58],answer:[2,33,38],anti:38,anyth:[19,25,38,44,46,53,54,58],anytim:58,anywai:[2,41],anywher:[1,2,4,18,20,25,51],apart:[15,41],api:[1,2,10,14,17,21,25,30,38,44,53,56,58],api_avail:[1,30],app:[6,36],appar:[1,2],appear:[1,2,3,4,6,14,15,19,24,25,30,36,38,39,58],append:[17,19,30,39,45,51],appertain:[1,25,30],appl:[1,2,3,4,6,16,20,30,39,41,58],applescript:7,appli:[1,2,6,7,8,10,11,14,15,17,19,23,25,27,29,30,33,35,38,39,44,45,46,47,48,49,50,52,57,58],applic:[1,2,6,7,11,14,15,17,18,19,21,23,25,30,36,38,50,52,58,59],apply_to:30,approach:[0,15,18,20,21,23,41,42,58],appropri:[1,3,10,11,18,19,20,22,25,30,38,39,41,44,45,53,55,58],approx:6,approxim:[6,33,38,53],apropo:3,apvalu:25,aquir:30,arang:6,arbitrari:[1,2,4,8,18,25,32,33,39,41,42,46,50,58],arc:[6,19,30,38],arc_cf_code_audit:2,arch:[1,6,11,16,20,55,58],arch_errors_fat:6,arch_onli:6,architectur:[1,6,11,14,16,19,20,28,30,38,41,42,50,54],arcmt:6,area:[1,41,58],aren:[2,8,16,19,25,30,33],aresameexpr:33,aresamevari:33,arg1:[1,6,25,47],arg2:[1,6,25,47],arg3:6,arg:[1,6,8,9,11,12,18,20,25,27,39,57,58],arg_idx:1,arg_kind:1,argc:[0,1,33,35,37,39,43,47,57],arglist:20,argtyp:30,arguabl:58,argument1:8,argument2:8,argument:[1,3,4,7,8,9,11,13,14,15,17,24,27,28,35,36,39,44,45,47,49,52,53,55,58,59],argv:[0,1,33,35,37,39,43,47,57],aris:[2,3],arithmet:[2,18,39,57],ariti:46,arm64:23,arm7tdmi:16,arm:[0,16,25],arminterruptattr:25,armv5:58,armv6:58,armv7:58,armv7a:16,armv7l:[16,58],armv8:[6,30,58],around:[0,1,2,4,5,8,10,14,16,21,25,30,38,45,47,55,58],arr:8,arrai:[0,1,2,6,8,10,15,25,28,33,46,47,50,57,58],arrang:15,arrayoftenblocksreturningvoidwithintargu:4,arraywithobject:39,arrow:[6,58],artifact:[51,56],arxiv:23,asan:[0,23,31],asan_malloc_linux:31,asan_opt:[0,31,47],asan_symbol:0,asan_symbolizer_path:0,ascii:[25,58],ascrib:2,asid:25,ask:[1,36,38,59],aslr:[37,46],asm:[1,6,30,38,58],aspect:[1,25,38],assembl:[6,11,15,16,17,20,30,37,45,50,58,59],assert:[1,6,17,30,38,53,58],assert_exclusive_lock:53,assert_shared_lock:53,assertheld:53,assertreaderheld:53,assign:[1,2,3,4,7,8,18,20,39,41,45,57,58],assist:[2,3,20,30,36,38,58,59],associ:[1,2,3,6,18,19,20,25,30,33,38,39,41,43,49,53,58],assum:[1,2,4,6,7,8,15,16,17,19,25,30,32,36,38,39,44,46,51,53,58],assume_safeti:19,assumpt:[1,2,11,18,25,46,58],ast:[5,6,9,11,22,24,35,38,42,43,44,45,51,55,56,58,59],ast_match:33,astconsum:24,astcontext:[25,26,33,41],astdump:24,astdumpfilt:24,astfrontendact:59,astlist:24,astmatch:33,astmatchersmacro:32,astmatchfind:33,astnod:25,astprint:24,astread:41,astreaderstmt:25,astwriterstmt:25,asynchron:[6,36],atexit:6,atindexedsubscript:39,atl:[19,36],atom:[1,2,6,53,54,58],atomicchang:44,attach:[1,8,18,19,25,33,53,58],attack:[1,14,46,50,57],attempt:[1,2,3,4,6,8,11,20,25,30,36,38,40,41,45,53,55,57,58],attr:[6,38],attr_mpi_pwt:1,attract:42,attrdoc:25,attribut:[0,2,3,4,6,11,14,27,29,32,37,39,40,46,53,54,57,59],attribute_deprecated_with_messag:30,attribute_ext_vector_typ:30,attribute_unavailable_with_messag:30,attributerefer:25,audit:18,augment:[16,38,52],author:[2,3,37],auto:[1,3,4,6,8,10,25,38,58],autocleanup:53,autocmd:7,autocomplet:[6,45],autoconf:30,autofdo:58,autolink:[6,38],autom:[2,25,30,56],automat:[1,3,4,6,8,9,10,18,19,20,21,24,25,34,35,38,40,41,44,46,55,56,58],autonom:47,autoreleas:[2,30],autoreleasepool:8,autosens:58,autosynthes:19,autowrit:24,avail:[2,3,6,7,11,13,16,20,21,23,25,26,28,35,38,40,41,43,44,45,46,50,52,54,55,58],avaudioqualityhigh:39,avaudioqualitylow:39,avaudioqualitymax:39,avaudioqualitymedium:39,avaudioqualitymin:39,avaudiorecord:39,avencoderaudioqualitykei:39,averag:46,aview:1,avoid:[1,2,11,19,20,25,29,30,37,38,39,50,52,54,55,58],avx2:6,avx512bitalg:6,avx512bw:6,avx512cd:6,avx512dq:6,avx512er:6,avx512f:6,avx512ifma:6,avx512pf:6,avx512vbmi2:6,avx512vbmi:6,avx512vl:6,avx512vnni:6,avx512vpopcntdq:6,avx:[1,6,38,58],awai:[1,2,8,19,46,47],awar:[1,2,16,25],awkward:2,axw:21,back:[1,2,3,14,19,25,30,38,52,57,58],backbon:32,backchain:6,backend:[1,6,30,55,58],background:33,backslash:[6,8,19,58],backtrac:[6,11,58],backtrack:25,backward:[1,3,6,8,30,38,41,51,56,58],bad:[0,2,25,38,48,58],bad_:48,bad_arrai:0,bad_fil:[0,14],bad_foo:48,bad_head:14,bad_init_glob:0,bad_rect:39,bad_sourc:48,badasanfunc:48,badcal:14,badcfical:48,badclassnam:0,badfunct:48,badinitclasssubstr:0,badli:2,badstructnam:0,balanc:[2,30,53],balanceddelimitertrack:25,baltic:25,ban:2,banal:21,bank:1,bankaccount:53,bar2:8,bar:[1,2,8,25,30,32,48,50,51,53,58],bararg:2,bare:[6,16,27],barrier:[1,3,6,18,38],bas_align:8,bas_alwaysbreak:8,bas_dontalign:8,base1:8,base2:8,base:[1,2,3,4,6,7,8,9,10,11,14,15,17,18,21,23,25,26,28,29,33,34,35,36,38,39,40,41,42,45,46,52,53,55,57,58,59],basedonstyl:[7,8],basenam:49,basetag:23,basi:[1,25,30,38,58],basic:[1,2,5,9,10,14,15,16,26,32,34,35,38,40,44,45,46,47,57],basic_str:[25,27],bat:58,baz:[1,2,25,30,53,58],bazarg:2,bazptr:1,bbbb:8,bbbbbbbbbbbbbbb:8,bbbbbbbbbbbbbbbbbbbbb:8,bcanalyz:41,bcis_aftercolon:8,bcis_beforecolon:8,bcis_beforecomma:8,bcpl:2,bear:[28,30],beauti:58,becaus:[1,2,3,10,11,14,15,17,19,20,22,23,25,30,33,38,39,41,42,46,50,51,53,55,58],becom:[0,1,2,4,8,15,17,18,19,25,30],been:[1,2,3,6,8,14,18,19,20,25,30,33,36,38,39,41,45,46,50,51,52,53,54,58],befor:[1,2,6,8,11,14,15,18,23,25,27,30,33,36,37,38,41,44,45,46,47,50,51,53,57,58],beforecatch:8,beforecolon:8,beforecomma:8,beforeels:8,befriend:19,begin:[1,2,3,4,8,10,15,19,25,30,41,47,58],begun:[2,57],behav:[1,2,19,25,38,58],behavior:[1,2,6,8,14,17,18,19,25,36,38,39,41,48,51,57,58],behaviour:[1,6,16,45,57,58],behind:[1,20,25,41,53],being:[0,1,2,3,4,6,8,14,15,17,18,19,20,23,25,28,29,30,38,39,41,42,43,46,52,53,55,57,58],believ:[15,25],belong:[1,2,8,17,19,38,58],below:[1,2,8,14,15,20,25,30,32,38,39,41,44,46,47,53,55,57,58],benchmark:[14,46],benefici:30,benefit:[2,15,25,38,53],besid:33,best:[1,2,6,8,11,15,16,18,25,28,30,33,58],beta:[53,54],better:[1,16,20,21,23,25,30,36,38,47,52,57,58],between:[1,2,3,6,8,11,14,15,16,19,25,29,30,33,38,40,41,44,45,50,51,52,53,55,57],beyond:[2,4,25],bfd:51,bif:53,big:19,bigger:[0,7],bils_aftercolon:8,bils_beforecolon:8,bils_beforecomma:8,bin:[0,5,8,16,24,28,33,35,43,52,58],binari:[0,1,2,6,8,11,14,15,16,20,22,24,25,33,35,37,38,39,41,42,45,46,47,51,55,57,58],binaryoper:[26,33,41],binaryoperatorstyl:8,bind:[1,4,7,20,28,30,33,39,56,58],bind_at_load:6,bindabl:32,bindarchact:20,binpackargu:8,binpackparamet:8,binpackstyl:8,binutil:[1,16,51],bit0:47,bit:[0,1,2,3,6,18,19,20,23,25,30,38,41,42,45,47,54,55,57,58],bitcast:25,bitcod:[6,11,41,52,55,58],bitfield:[6,25],bitmap:6,bitmask:19,bitpattern:30,bitset:15,bitstream:[25,41],bitwis:[18,19,25,30],bla:6,black:15,blacklist:[6,19,47,48,58],blank:58,bleed:58,blerg:16,blink:46,blob_plain:21,block:[1,6,8,11,15,38,42,45,47,58],block_byref:3,block_byref_cal:3,block_copi:[1,2,3,4,30],block_decl:4,block_descriptor_1:3,block_field_:3,block_field_is_block:3,block_field_is_byref:3,block_field_is_object:3,block_field_is_weak:3,block_foo:4,block_fooptr:4,block_fooref:4,block_has_copy_dispos:3,block_has_ctor:3,block_has_signatur:3,block_has_stret:3,block_is_glob:3,block_is_noescap:3,block_literal_1:3,block_literal_express:4,block_priv:3,block_releas:[2,3,4],block_siz:3,blocka:3,blockb:3,blocklanguagespec:[1,30],blockreturningintwithintandcharargu:4,blockreturningvoidwithvoidargu:4,blockstoragefoo:3,blockti:1,blog:[52,57],blow:57,blue:[20,25,30,39],bmi2:6,bmi:6,bodi:[1,3,4,8,25,26,30,33,36,41,51,53,58],bogu:[25,53],boilerpl:38,bool:[1,8,9,25,30,33,39,43,45,57,58],boom:0,boost_foreach:8,bootclasspath:6,bootstrap:[24,33,37],borland:[6,11],bos_al:8,bos_non:8,bos_nonassign:8,both:[0,1,2,3,4,6,7,8,10,14,19,20,25,26,29,30,31,32,33,36,37,38,39,41,42,45,46,50,52,53,55,57,58],bottom:[38,46,58],bound:[0,1,4,6,7,15,20,28,30,33,38,57],boundari:[2,14,15,19,38,48,55],box:[1,19,35,56],bps_alwai:8,bps_auto:8,bps_never:8,bptr:2,brace:[2,8,25,30,58],bracebreakingstyl:8,bracewrap:8,bracewrappingflag:8,bracket:[6,8,19,25,30,48,58],bracketalignmentstyl:8,branch:[1,6,15,19,25,30,50,58],breakafterjavafieldannot:8,breakbeforebinaryoper:8,breakbeforebrac:8,breakbeforeternaryoper:8,breakconstructoriniti:8,breakconstructorinitializersstyl:8,breakinheritancelist:8,breakinheritanceliststyl:8,breakstringliter:8,breaktemplatedeclarationsstyl:8,brepro:58,brief:[12,20],briefli:[2,42],bring:[2,25,33],brk:23,broad:[30,58],broadli:58,broken:[2,20],broomfield:46,brows:47,browser:[14,21],bs_allman:8,bs_attach:8,bs_custom:8,bs_gnu:8,bs_linux:8,bs_mozilla:8,bs_stroustrup:8,bs_webkit:8,bsd:58,bss:[6,30],btds_multilin:8,btds_no:8,btds_ye:8,budiu:14,buf:1,buffer2:1,buffer:[1,7,8,11,19,23,25,38,41,46,50,58],buffer_idx:1,bufferptr:25,bufwritepr:7,bug:[0,1,2,10,14,17,18,19,23,36,37,45,46,54,55,57,58],bugfix:[45,51,52],build:[1,5,6,7,9,10,11,14,15,16,20,21,23,25,30,31,32,35,38,41,42,45,46,50,52,55,56,58,59],build_dir:51,buildcfg:25,buildxxx:25,built:[1,7,11,14,15,19,20,25,29,30,33,35,37,38,41,45,47,52,56,58],builtin:[1,2,6,11,19,22,26,38,46,55,57],bulk:41,bullet:1,bunch:[25,35],bundl:[6,26,41],bundle_load:6,bundler:6,burden:1,burdensom:2,bypass:[48,50],byref:3,byref_dispos:3,byref_i:3,byref_keep:3,byref_obj:3,bytearraybuild:15,bzero1:1,bzero:2,c11:[11,19,38,58],c17:[11,38,58],c2x:1,c89:[11,19,58],c90:[11,19,38,58],c94:58,c99:[1,4,11,19,25,38,58],c_002b_002b:27,c_aligna:30,c_alignof:30,c_atom:30,c_generic_select:30,c_include_path:11,c_static_assert:30,c_thread_loc:30,ca7fb:15,ca7fbb:15,ca7fc5:15,ca7fc8:15,ca7fcb:15,ca7fcf:15,ca7fd5:15,ca7fdb:15,ca7fe2:15,ca7fe6:15,ca7fec:15,ca8511:15,cabasicanim:39,cach:[1,6,11,30,38,42,50,58],cache_path_lto:52,cache_s:52,cache_size_byt:52,cache_size_fil:52,calcul:[15,53],call:[0,2,3,4,6,7,8,9,11,16,17,18,20,21,22,23,24,25,27,28,29,30,32,33,35,36,37,38,39,41,42,43,44,45,46,47,48,49,51,53,55,57,58],callabl:[18,32],callback:[15,19,25,32,33,47],calle:[1,2,14,15,19,32,47],caller:[1,2,15,30,53],callexpr:41,calloc:2,callq:[15,50],callsit:[1,6,58],callthem:1,came:25,camel:30,can:[0,1,2,3,4,5,6,7,8,9,10,11,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58],cancel:40,candea:46,candid:[1,2,6,25,38,58],cannot:[1,2,7,15,17,18,19,20,25,30,35,36,38,41,46,52,53,57,58],canon:[1,8,19,30,33,41,56],canonic:[30,33],canonicaldelimit:8,cansyntaxcheckcod:35,cap:58,capabl:[1,2,19,25,33,39,45,58],capit:25,captur:[2,3,4,25,33,41,47],captured_i:3,captured_obj:3,captured_voidblock:3,care:[2,8,16,20,25,30,43,46,51,56,58],carefulli:[2,10,25,30],caret:[2,6,25,58],carolin:14,carri:[1,2],carryin:30,carryout:30,cascad:38,cast:[1,4,6,8,10,15,21,25,27,30,32,33,45,57,58],cat:[0,5,26,31,37,42,47,48,49,51,54,57,58],categor:[2,25,39,58],categori:[0,1,2,6,8,10,17,21,25,29,30,33,35,41,48],caught:[18,19,45,46,57],caus:[0,1,2,3,4,14,15,17,18,19,25,30,37,38,45,46,49,52,53,54,58],caution:2,caveat:[1,2,20,38],cc1:[20,25,41,42,45,55,58],ccc:[8,16,20],cccc:8,ccccccccccccc:8,ccccccccccccccc:8,ccccccccccccccccccccccccccccccccccccccccc:8,ccmake:[24,33,35],center:39,centric:[25,41,53],cert:53,certain:[0,1,3,8,14,20,21,24,25,30,32,37,38,41,43,44,46,47,48,58],certainli:[2,25],cet:[1,15,50],cexpr:24,cf_audited_transf:2,cf_consum:[2,30],cf_returns_not_retain:[2,30],cf_returns_retain:[2,30],cf_unknown_transf:2,cfarrayref:3,cfe:[1,2,58,59],cffunction:19,cfg:58,cfgblock:25,cfguard:6,cfi:[6,29,48,49,58],cfprint:3,cfreleas:2,cfstring:6,cfstringref:[2,3],cgcall:58,chain:[20,25,30,42,55,58],challeng:18,chanc:[2,33],chang:[1,2,4,6,7,8,10,15,16,17,18,20,23,28,30,33,38,41,44,46,47,51,52,55,56,58],channel:50,char16_t:58,char32_t:58,char8_t:[6,19],charact:[1,2,6,8,25,28,38,39,42,45,52,58],character:[3,33],characterist:25,charg:[2,3],charset:[6,58],charsourcerang:[34,44],cheap:25,check1:58,check2:58,check:[2,5,6,9,11,16,17,20,21,24,25,33,35,37,38,42,43,44,45,46,47,48,49,50,54,55,56,58],check_initialization_ord:0,checker:[19,21,25,33,45,56,58],checkout:[10,33,34,55],checkowai:14,checkplaceholderexpr:25,cheer:2,child:[20,26,41],children:[25,33],chmod:24,choic:[1,3,58],choos:[1,2,4,11,16,20,25,40,44,59],chose:2,chosen:[1,16,23,25,30,33,55],chromium:[7,8,14,46],cin:8,circuit:[18,30],circumst:[1,2,3,25],cl1:11,cl2:[11,58],cl_intel_required_subgroup_s:1,cl_khr_:58,cl_khr_fp16:58,cl_khr_fp64:58,claim:[2,3],clang:[0,2,4,5,7,14,15,20,23,28,29,31,34,35,36,37,38,39,40,43,46,47,48,49,51,53,54,57],clang_check_last_cmd:24,clang_config_file_system_dir:58,clang_config_file_user_dir:58,clang_index:21,clang_plugin:21,clangast:41,clangastmatch:33,clangattremitt:25,clangbas:[33,38],clangcheck:[9,10,24,35,59],clangcheckimpl:24,clangformat:[8,34,59],clangseri:38,clangtool:43,classdesign:19,classic:58,classif:2,classifi:[1,2,25,58],classnam:0,classpath:6,classref:58,claus:[1,4,38,40,58],clazi:21,clcreateprogramwithbinari:58,cldemot:6,cldoc:21,clean:25,cleanli:1,cleanup:[1,2,19,25,53],cleanupandunlock:53,clear:[1,2,25,30,38,53],clearer:2,clearli:[2,25],clenqueuendrangekernel:6,cles_khr_int64:45,cleverli:33,clflushopt:6,clgetkernelarginfo:58,cli:10,click:25,client:[7,17,18,20,21,25,41,44,58],client_nam:6,clobber:[1,19,58],clock:30,clone:[10,24,25,33],close:[1,8,14,19,20,25,26,30,32],closedenum:1,closedflagenum:1,closer:15,closest:8,closur:30,cltoolex:58,cltoolpath:58,clue:16,clwb:6,clzero:6,cmake:[0,16,28,33,35,37,51,52,54,55,57,58],cmake_c_compil:58,cmake_cxx_compil:[33,58],cmake_exe_linker_flag:52,cmake_export_compile_command:[28,35],cmakecach:52,cmakelist:[33,43],cmd:[1,7,24],cmonster:21,cmovg:15,cmp:[15,23,47,50],cmpb:6,cmptr:30,coars:58,coclass:19,cocoa:[2,30,39,41],code16gcc:58,code:[1,2,3,4,6,7,9,10,14,15,16,17,18,20,21,23,24,25,26,28,30,32,33,34,36,38,39,40,41,43,44,45,46,47,50,53,54,55,56,59],codebas:[8,45,58],codegen:58,codegenfunct:25,codeseg:19,codeset:19,codeview:[6,36,58],codifi:2,codingstandard:[8,34],coerc:39,coff:[1,41,52],coher:25,col:[5,26,39],cold:[1,6],coldcc:1,collabor:53,collect:[1,2,3,4,6,21,25,30,37,38,39,45,46,56,58],collectallcontext:25,collector:2,collid:[38,39],collingbourn:14,collis:[2,15,38],colon:[2,8,48],coloncolon:25,color:[6,7,25,30,39,58],column:[6,8,11,25,41,43,49,58],columnlimit:8,com:[0,1,8,21,24,29,31,33,34,37,47,54,58],combin:[1,3,8,10,11,12,16,25,29,31,32,35,43,44,46,51,52,55,57,58],combust:30,come:[1,8,11,16,17,25,38,58],comfort:2,comma:[1,2,6,8,11,19,39,58],command:[0,1,8,10,11,12,20,22,24,25,28,29,30,33,35,39,41,42,44,46,49,50,51,54,55,57,59],commandlin:[33,35],comment:[1,6,8,10,25,30,36,38,41,45],commentpragma:8,commit:[7,21,25],committe:[1,30,38],common:[1,2,6,8,10,11,14,16,18,25,26,30,33,37,38,39,41,43,44,53,55,58],commonhelp:[33,35],commonli:[8,30,39,41],commonoptionspars:[33,35],commun:[2,25],comp_ctor:3,comp_dtor:3,compact:[15,41,52,58],compactnamespac:8,compar:[1,15,20,23,25,30,33,39,42,45,52],comparison:[2,6,15,18,25,30,33,39,42,47],comparisonopt:30,compat:[1,2,6,8,14,15,23,25,29,30,38,41,45,55,56,58,59],compatibility_vers:6,compatibl:3,compel:2,compil:[1,2,3,4,5,9,10,13,14,15,17,18,19,21,23,24,25,26,29,30,31,33,35,36,37,39,40,41,42,43,46,47,48,49,50,52,53,54,56,57],compilationdatabas:[24,35],compile_command:[24,28,35],compile_flag:28,compilerinst:[9,43],compilerplugin:21,complain:38,complement:[6,10],complementari:15,compler:47,complet:[1,2,6,8,11,13,14,20,21,24,25,27,30,33,36,38,40,41,42,45,46,51,53,56,58,59],complex:[1,14,15,16,17,20,25,38,53,58],compli:[8,34,58],complianc:11,compliant:58,compliat:30,complic:[20,25,36,41,53],compon:[1,2,6,10,11,20,25,30,44,55,57,58],componentsseparatedbystr:39,compos:[1,58],composit:8,compound:[2,3,4,26,30,39],compound_statement_bodi:4,compoundstat:33,compoundstmt:[5,24,25,26],comprehens:51,compress:[6,15,41],compris:41,comput:[1,2,4,6,11,18,19,20,25,45,57,58],computea:58,computeb:58,con:56,concaten:[25,30],concept:[2,25],conceptu:[15,20,25],concern:[1,25,41,58],concis:[30,33,39,58],concret:[1,15,16,20,25,44,58],concurr:[1,2],cond:58,condit:[1,2,3,4,8,17,30,33,42,50,53],condition:[1,30],conditionvarnam:33,condvar:33,condvarnam:33,config:[6,7,8,38,58],config_macro:38,configur:[6,7,9,10,11,14,16,19,24,25,28,33,34,35,39,45,51,52,55],conflict:[2,30,39],conflict_a:38,conflict_b:38,conform:[1,6,8,14,17,18,19,36,45,58],confus:[0,2,20,25,38,58],conjug:19,conjunct:[20,53],connect:[3,20,21,25],conscious:2,consecut:[6,8,15,19,33,41,47],consequ:[1,2,16,30,38,39,42,55,57,58],conserv:[2,15,20,53],consid:[1,2,3,6,14,15,19,25,30,33,37,38,41,42,45,47,51,55,56,57,58],consist:[0,2,3,4,8,15,20,21,25,28,29,30,33,36,37,38,48,51,54,58],consol:58,const_cast:[10,19,30],constant:[2,6,15,18,23,26,38,39,41,42,44,45,47,58],constantin:21,constexpr:[1,58],constrain:[1,2],constraint:[1,2,19,53],construct:[1,2,3,4,6,15,19,20,25,30,36,39,40,41,44,58],constructana:30,constructor:[1,2,3,4,6,8,25,35,44,47,58],constructorinitializerallononelineoroneperlin:8,constructorinitializerindentwidth:8,consult:[45,58],consum:[19,25,36,45,50],consumpt:[25,50],contact:45,contain:[0,1,2,3,4,6,7,8,9,10,11,14,15,16,17,18,20,23,25,28,30,33,38,40,41,44,45,47,48,51,53,55,57,58],content:[1,8,25,30,33,38,42,58],context:[1,7,8,19,33,38,41,42,43,44,45,58],contextu:33,contigu:2,continu:[0,1,2,3,4,8,14,25,30,33,36,39,53,57],continuationindentwidth:8,contract:[3,6,8,28,30],contradict:8,contrast:[2,42,50],contribut:[8,26,38,54],contributor:[8,21],control:[1,6,8,10,11,16,17,19,20,29,34,36,38,39,41,45,46,47,48,49,50,51,53,56,57,59],controlstat:8,convei:25,conveni:[1,2,4,19,24,30,33,38,43,58],convent:[2,3,6,15,28,30,36,38,46,58],converg:25,convers:[1,4,6,10,11,25,33,36,39,45,57,58],convert:[2,3,6,10,19,25,30,33,39,45,55,58],converttyp:25,converttypeformem:25,convfunc:1,convinc:2,convolut:2,cooki:[6,58],cooper:2,coordin:2,cope:[24,25],copi:[0,1,2,6,7,15,16,17,18,20,24,25,30,36,38,42,51,53,55,58],coprocessor:[1,6],copy_help:3,copyabl:[1,19],copysign:25,core:[1,2,16,21,25,33,34,38,41,42,52,53,56,58],corefound:[2,30],coro:30,coro_fram:30,corollari:29,coroutin:[6,19,38],coroutine_handl:30,correct:[1,2,14,15,16,17,25,27,29,30,39,46,48,58],correctli:[2,6,14,15,19,20,25,29,35,38,58],correspond:[1,2,4,8,12,15,18,19,20,25,30,32,38,41,44,45,47,53,58],corrupt:[0,1,2,15,58],cortex:[6,16],cost:[2,8,30,40,41,42,46,57],could:[0,1,2,3,8,10,11,15,16,18,19,23,25,30,37,38,41,44,46,47,50,52,57,58],count:[1,4,6,15,25,32,38,39,41,49,51,58],counter:[1,25,30,41,53,58],counteract:2,counterpart:58,coupl:[10,25,44],cours:[2,3,8,15,16,30],cout:[8,10],cov:[47,51],cover:[2,15,16,17,19,25,36,38,47,51,55,57,58],coverag:[6,58,59],coverage_dir:47,coverage_interfac:47,cpath:11,cpi:46,cplus_include_path:11,cplusplu:38,cplusplus11:38,cplusplus14:38,cplusplus17:38,cpp03:8,cpp11:8,cpp11bracedliststyl:8,cpp:[0,6,7,8,9,14,20,24,25,33,35,43,53,57,58],cppguid:34,cpu:[1,6,11,19,45,46],cpu_dispatch:19,crai:6,crash:[2,6,30],crbit:6,crc:[6,45,58],creat:[1,2,3,4,6,7,8,14,16,18,19,20,24,25,28,30,36,37,39,41,45,46,47,48,54,55,56,58],create_gcov:58,create_llvm_prof:58,createactionrul:44,createastconsum:43,createastdeclnodelist:24,createastdump:24,createastprint:24,createinsert:25,createrefactoringactionrul:44,createremov:25,createreplac:25,createsourcereplac:44,createstackrestorepoint:46,creation:[1,25,30,39,41,44,57,58],creator:32,crisp:21,criteria:[1,33],critic:[2,15,30,47],cross:[6,11,14,21,25,44,52,58,59],crt:1,crucial:38,crude:38,crypto:6,cstdio:38,ctag:21,ctor:6,ctrl:[7,19],ctype:38,cuda:[1,6,11,16,19,25],culprit:33,curiou:33,curli:[2,25],current:[1,2,3,6,7,8,10,11,14,15,18,19,20,21,23,24,25,28,29,30,33,34,36,39,40,41,42,45,46,47,48,49,50,51,55],current_vers:6,currentlocal:30,curs:24,cursor:[7,44,56],cursorvisitor:25,custom:[2,6,7,8,17,25,30,33,35,38,48,51,58],custom_error:58,customev:6,cut:26,cwd:[6,11],cwindow:24,cx16:6,cxa:6,cxcompilationdatabas:28,cxx11:[25,27],cxx:[6,24,53],cxx_:30,cxx_access_control_sfina:30,cxx_aggregate_nsdmi:30,cxx_alias_templ:30,cxx_aligna:30,cxx_alignof:30,cxx_attribut:30,cxx_auto_typ:30,cxx_binary_liter:30,cxx_constexpr:30,cxx_constexpr_string_builtin:30,cxx_contextual_convers:30,cxx_decltyp:30,cxx_decltype_auto:30,cxx_decltype_incomplete_return_typ:30,cxx_default_function_template_arg:30,cxx_defaulted_funct:30,cxx_delegating_constructor:30,cxx_deleted_funct:30,cxx_except:30,cxx_explicit_convers:30,cxx_generalized_initi:30,cxx_generic_lambda:30,cxx_implicit_mov:30,cxx_inheriting_constructor:30,cxx_init_captur:30,cxx_inline_namespac:30,cxx_lambda:30,cxx_local_type_template_arg:30,cxx_noexcept:30,cxx_nonstatic_member_init:30,cxx_nullptr:30,cxx_override_control:30,cxx_range_for:30,cxx_raw_string_liter:30,cxx_reference_qualified_funct:30,cxx_relaxed_constexpr:30,cxx_return_type_deduct:30,cxx_rtti:30,cxx_runtime_arrai:30,cxx_rvalue_refer:30,cxx_static_assert:30,cxx_strong_enum:30,cxx_thread_loc:30,cxx_trailing_return:30,cxx_unicode_liter:30,cxx_unrestricted_union:30,cxx_user_liter:30,cxx_variable_templ:30,cxx_variadic_templ:30,cxxbasespecifi:26,cxxconstructornam:25,cxxconversionfunctionnam:25,cxxdestructornam:25,cxxliteraloperatornam:25,cxxoperatornam:25,cxxrecorddecl:43,cxxusingdirect:25,cycl:[2,30,58],cycles_to_do_someth:30,cyclic:45,cygm:58,d1pp:58,d1reportallclasslayout:58,d__stdc_constant_macro:[9,35],d__stdc_format_macro:9,d__stdc_limit_macro:[9,35],d_debug:9,d_gnu_sourc:9,dag:41,dai:38,daili:25,damag:3,danger:2,dangl:[4,19],danieljasp:5,darwin9:[20,41],darwin:[11,16,20,38,50,57],dash:[30,33],data:[1,2,3,4,6,15,17,18,19,20,21,25,33,36,39,41,45,53,54,57,58],databas:[5,6,21,24,33,35,59],dataflow:58,dataflowsanit:[58,59],dataload:8,datatyp:1,date:[30,39,41,45],dawn:46,dc2:15,dc5:15,dcc:15,dcf:15,dcmake_ar:52,dcmake_c_compil:[24,52,58],dcmake_cxx_compil:[24,52,58],dcmake_export_compile_command:[24,35],dcmake_link:52,dcmake_ranlib:52,dd2:15,dd6:15,dda:15,ddc:15,dddddddddd:8,ddddddddddddd:8,de1:15,de4:15,de6:15,de9:15,dead:[6,58],dead_strip:6,deadlock:53,deal:[0,2,3,12,20,25,32,33,45],dealloc:[1,6,19,30,58],debug:[1,11,13,19,20,24,25,36,37,38,40,41,43,45,47,57],debug_nam:45,debugg:[1,11,25,36],debuginfo:51,decent:25,decid:[1,17,18,20,23,25,30,33,58],decim:[25,58],decis:[1,6,8,25,30,34,52,58],decl:[6,25,26,33,38,41,43],declar:[3,5,6,8,9,11,18,21,24,26,29,32,33,35,39,40,43,44,46,50,51,53,57,58],declarationnam:25,declarationnamet:25,declcontext:[25,26,41],declnod:25,declrefexpr:[26,33],decls_begin:25,decls_end:25,declspec:[6,25,58],declstmt:[5,26,33],decltyp:19,declus:[6,38],decompos:20,decor:30,decreas:[2,15],decrement:[2,19,53],dedic:[15,41,46,51],deduc:[2,10,19,30],dedupl:57,deem:[2,55],deepli:58,def:[0,25,37],default_:58,default_xxxx:58,defaultlvalueconvers:25,defect:19,defens:[1,38],defer:[36,58],defin:[0,1,2,4,6,8,11,14,15,16,17,18,20,29,32,33,37,38,39,40,41,44,45,47,50,51,53,54,55,57,58],defined_in:1,definit:[1,2,4,6,8,11,14,20,25,29,30,32,33,38,39,41,42,45,51,53,55,58],definitionreturntypebreakingstyl:8,degrad:19,deiniti:[2,30],delai:[2,6,36,38,53,58],deleg:[2,8,19,20],delet:[0,2,3,6,8,44],deleteselect:44,deleteselectedrang:44,deliber:[21,53,57],delimit:[2,8,11,25],delta:58,demand:[25,58],demangl:[47,51],demonstr:[9,17,35,39,53],demot:[45,57],denomin:16,denorm:[6,45,58],denot:[8,25,30,39,48],dens:25,densemap:25,denseset:25,dep:6,depend:[0,1,2,8,11,15,16,19,20,25,28,30,32,35,36,37,38,39,41,46,50,51,54,55,56,58],depfil:6,deploi:[1,14,53],deploy:[1,6,11,14,23,30,38],depositimpl:53,deprec:[0,6,8,25,38,45,46,53,57,58],depth:[2,6,30,58],derefer:[4,47],dereferenc:[4,19,25],deriv:[1,2,4,6,14,18,25,26,27,29,38,44,58],derived1:1,derivepointeralign:8,desc:18,descent:25,describ:[1,2,3,4,6,7,8,10,13,15,20,25,27,28,29,30,33,34,38,39,41,42,44,45,46,47,48,53,55,58],descript:[8,9,13,18,25,30,33,35,44,58],descriptor:[3,6],deseri:[41,42],deserv:25,design:[0,1,2,6,10,11,21,25,39,44,50,52,53,55,58],desir:[1,7,14,16,20,25,33,46,57,58],despit:[1,4,19,42],dest:[1,3,17],dest_label:17,destaddr:3,destin:[2,3,17,19,45,57,58],destroi:[1,2,3,4,6,19,30,53,58],destruct:[2,25],destructor:[1,2,3,4,6,14,25,30,37],detail:[0,1,10,11,12,14,15,20,23,25,27,30,33,37,39,41,45,46,48,51,53,55,56,58],detect:[1,2,6,8,10,11,14,15,17,18,23,24,25,28,30,31,38,45,46,53,54,55,57,58],detect_leak:[0,31],detect_stack_use_after_return:0,detect_write_exec:[0,37],detector:[0,31,37,57,58],determin:[1,6,7,8,11,20,25,27,29,30,33,41,44,51,53,57,58],dev:[2,25,58],develop:[1,2,8,10,14,16,17,19,21,22,26,30,38,42,44,52,53,56,58],devic:[1,6,19,45,58],devirtu:[6,29,38,45,58],dfs:18,dfsan:18,dfsan_add_label:18,dfsan_create_label:[17,18],dfsan_get_label:[17,18],dfsan_get_label_info:18,dfsan_has_label:[17,18],dfsan_has_label_with_desc:18,dfsan_interfac:[17,18],dfsan_label:[17,18],dfsan_label_info:18,dfsan_set_label:[17,18],dfsw:18,diag1:1,diag2:1,diag:25,diagdata:15,diaggroup:25,diagnos:[1,25,30,36,38,45],diagnose_if:19,diagnost:[1,2,10,13,15,30,38,41,55,59],diagnosticgroup:25,diagnostickind:25,diagnosticsemakind:25,diagnosticsengin:21,diagram:20,diagtool:[13,45],dialect:[1,2,38,41,58],dict:8,dictat:[1,53],dictionari:[19,30],dictionarywithobject:39,dictionarywithobjectsandkei:39,did:[2,3,19,25],didn:37,die:25,dif:58,diff:[7,25,30],differ:[0,1,2,3,6,7,8,9,10,11,12,14,15,16,19,20,23,24,25,26,28,30,32,33,34,35,36,37,38,39,41,43,44,45,46,47,48,50,51,53,54,55,56],differenti:30,difficult:[2,33,37,53,58],dig:25,digit:[19,25],digraph:[6,19,58],dimens:[1,36],dir:[6,11,38,52,58],direct:[1,2,6,8,11,18,20,25,30,31,39,41,42,45,49,58],directli:[1,2,8,9,10,11,18,19,20,21,22,25,26,30,38,39,41,42,51,52,53,55,57,58],directori:[6,7,8,9,11,16,22,24,28,30,33,35,45,48,51,52,58],dirnam:[35,58],disabl:[1,2,6,11,14,23,25,37,38,44,45,47,48,51,52,53,54],disableexpand:25,disableformat:8,disadvantag:2,disagre:25,disallow:[1,2,6,30,58],disambigu:[19,39],disappear:47,discard:[1,6,8,17,18,30,51,58],discourag:[2,19,53],discov:[33,38,50],discover:8,discrimin:[27,58],discuss:[2,3,21,23,25,34,38,41,53,58],disjoint:[15,41,46],disk:[19,41,47,51,52,58],dislik:23,dispatch:[1,6,19],displai:[1,6,7,10,11,25,33,35,51],dispos:[3,4],dispose_help:3,disproportion:58,distanc:[1,15],distinct:[2,4,15,20,25,36,38,44,46,51,52],distinguish:[1,2,3,25,28,38,58],distribut:[3,11,16,19,36,38,40,58],div:47,divid:[6,8,20,57,58],divis:[6,19,47,57,58],dlclose:15,dlibcxx_use_compiler_rt:55,dlibcxxabi_use_compiler_rt:55,dlibcxxabi_use_llvm_unwind:55,dll:58,dllexport:[19,29,30,36,58],dllimport:29,dllmain:45,dllvm_binutils_incdir:52,dllvm_build_instrumented_coverag:51,dllvm_build_test:33,dllvm_enable_lto:52,dllvm_profile_data_dir:51,dllvm_profile_merge_pool_s:51,dlopen:15,do_someth:[8,30],do_something_completely_differ:8,do_something_els:[8,30],do_somthing_completely_differ:8,doacross:40,doc:[1,5,8,23,25,34,45,48],doccatconsum:25,doccatfunct:25,doccatstmt:25,doccattyp:25,doccatvari:25,document:[0,1,3,6,9,10,13,14,16,17,19,20,21,24,26,28,30,32,33,34,35,37,38,39,41,42,44,45,48,51,53,55,56,58],doe:[0,1,2,3,4,7,8,11,14,15,16,17,19,20,23,25,26,27,28,30,33,35,36,38,39,40,41,42,45,48,50,51,52,53,54,55,57,58],doesn:[1,2,8,16,19,20,24,25,27,30,33,38,53,57,58],doesntfit:8,dogfood:10,doing:[2,11,23,24,25,30,38,45],dollar:6,domain:32,domin:[18,42,55,58],don:[0,1,2,6,8,10,11,15,16,20,25,30,33,36,37,38,44,47,56,58],done:[1,2,8,15,16,17,20,21,23,25,30,33,42,45,46,51,58],dontalign:8,dosomeio:53,dosometh:53,dosomethingtwic:53,dot:[6,38,58],doubl:[0,1,2,6,8,19,30,39,53,58],double__builtin_canonicalizel:30,doubt:56,down:[1,2,14,16,20,25,32,33,37,45],downcast:57,downgrad:58,download:[7,16,33,45],downsid:[9,20],doxygen:[19,26,58],dozen:[8,58],dr1170:30,draft:[11,30,58],dragonfli:58,drain:2,dramat:51,drastic:[2,38,41],drill:43,drive:10,driven:[20,28,41,58],driver:[6,36,55,58,59],dromaeo:14,drop:[2,4,19,20,57],drothli:21,drtbs_all:8,drtbs_none:8,drtbs_toplevel:8,dsl:[21,32,33],dso:[6,14,29,46,47,58],dsomedef:28,dsopath:6,dsp:[6,58],dspr2:6,dst:3,dst_vec_typ:30,dsymutil:0,dtor:[6,37,58],dual:53,dubiou:25,due:[1,2,4,14,19,23,28,30,38,41,50,54],dummi:47,dump:[5,7,8,20,22,24,25,26,32,33,43,47,49,58],dumpmachin:6,dumpvers:6,duplic:[1,19,25,41,45,47],durat:[1,30],dure:[1,2,6,9,10,11,14,16,18,19,20,21,25,30,34,37,39,41,42,43,44,47,52,53,57,58],dwarf:[6,45,58],dwarfstd:58,dwo:6,dwp:6,dxr:21,dyld:6,dyld_insert_librari:0,dylib:11,dylib_fil:6,dylink:6,dylinker_install_nam:6,dyn_cast:25,dynam:[0,1,2,4,6,9,11,14,17,18,23,32,39,46,47,55,56,57,58],dynamic_cast:19,dynamiclib:6,e0b:15,eabi:[6,16],eabl:37,each:[1,2,3,4,6,8,10,11,12,14,15,16,17,18,19,20,24,25,26,28,29,30,33,35,38,39,41,42,44,49,51,54,55,57,58],earli:[18,42,58],earlier:[0,11,19,41,45,52,55,58],earliest:2,eas:[20,58],easi:[2,7,8,10,16,25,33,36,42,44,56,58],easier:[2,16,37,38],easiest:58,easili:[18,20,21,25,30,38,53,58],eat:25,eax:[1,15,30,50],ebx:15,echo:[24,33,58],ecx:[1,15],edg:[25,46,51,58],edit:[7,24,41],editor:[6,7,10,34,44],edx:[1,15],effect:[1,2,4,6,8,15,16,19,23,25,29,30,38,51,58],effici:[1,2,11,14,15,18,20,23,25,30,38,52,58],effort:[2,7,25],eic:1,either:[0,1,2,3,4,6,8,11,14,15,16,20,24,25,26,28,29,30,32,38,41,44,46,47,50,52,53,55,58],elabor:[4,42],elect:2,elem:18,element:[1,2,3,8,15,19,30,39],elf:[1,6,16,41,45,47,52,58],elid:[2,6,30,58],elif:30,elig:33,elimin:[0,1,2,6,20,25,30,37,38,41],elis:[19,58],ellipsi:1,els:[1,2,8,15,18,24,25,30,39,46,53,58],elseif:24,elsewher:[2,58],email:21,emb:[3,6],embed:[3,6,15,19,20,25,38,57,58],emiss:[1,2,6,30,45,58],emit:[1,2,3,6,11,14,15,19,20,21,25,27,30,36,38,39,41,42,45,47,51,52,55,57],empir:27,emploi:[42,58],empti:[1,4,8,11,25,29,30,38,39,45,48,58],emul:[6,23,30,58],emutl:6,enabl:[0,1,2,4,6,7,11,14,15,19,25,26,30,33,37,38,39,41,44,45,46,48,50,52,53,54,57],enable_if:19,enas_dontalign:8,enas_left:8,enas_right:8,encapsul:[2,53],enclos:[1,2,3,4,8,19,25,38,53,58],enclosingfunct:8,encod:[6,15,25,26,27,30,39,41,58],encompass:[2,11,38],encount:[2,19,25,38,41,58],encourag:2,encrypt:46,end:[1,2,4,5,6,7,8,10,15,16,18,20,25,28,30,31,32,33,35,41,42,46,47,53,55,57,58],endbr:1,endbranch:15,endfunct:[7,24],endian:[6,15,19],endif:[0,1,8,24,30,37,38,39,42,46,50,53,54,58],endl:10,enforc:[1,2,6,14,15,46,50,53,58],eng:47,engag:2,engin:[26,53,59],english:25,enhanc:54,enjoi:10,enough:[1,2,16,19,20,25,33,47,53,57,58],enqueu:58,enqueue_kernel:58,ensur:[1,2,14,18,21,25,33,38,39,41,46,53,55],enter:[2,19,25,40],entir:[1,2,10,15,20,25,29,30,38,41,47,50,58],entiti:[0,1,7,14,25,29,33,37,38,41,48,54,57],entranc:25,entrant:53,entri:[1,2,6,15,18,19,33,38,41,43,45,47,48,53,58],entrypoint:2,enum1:30,enum2:30,enum_const:30,enumer:[1,8,19,25,39,41,57],enumerator_attribut:30,env:[6,45,58],environ:[0,2,3,4,6,19,20,23,28,37,38,45,47,49,51,53,56,57,58],eod:25,eof:[1,5,25,51],epc:1,ephemer:2,epilog:50,epilogu:[1,23],epoch:6,equal:[1,2,15,18,25,30,33,36,48,57,58],equival:[1,2,4,6,11,14,15,19,25,30,38,39,58],eras:53,erasur:58,erlingsson:14,err_:25,err_attribute_wrong_decl_typ:25,err_typecheck_invalid_operand:25,erratum:6,errno:[6,11,38],erron:19,error:[1,2,3,4,5,6,11,14,15,16,19,20,21,24,25,30,31,35,36,37,38,39,41,44,46,48,52,53,54,55,56],errorcode_t:30,escap:[1,2,4,6,8,25,28,53,55,58],escapednewlinealignmentstyl:8,escapingfunc:1,eschult:21,esp:30,especi:[2,25,38,42,53,54,58],essenti:[1,2,25,42],establish:[2,4,8,41],estim:1,etaoin:21,etc:[1,2,3,8,10,16,20,21,25,30,38,41,47,53,58],etw:36,evalu:[1,2,3,4,25,30,39,41,44,57,58],evaluat:25,even:[1,2,3,6,8,15,16,19,21,25,30,36,37,38,44,45,46,50,51,58],evenli:15,event:[2,3,25],eventu:[17,25,30,38],ever:[1,2,20,25,35,38,44,46],everi:[1,2,6,8,11,15,16,17,18,19,23,25,29,30,33,36,38,41,42,45,47,52,53,55,57,58],everyth:[2,15,25,26,38,43,46,53],everywher:[6,38],exact:[0,1,2,25,28,46,53,58],exactli:[1,2,3,4,8,10,15,20,25,30,33,38,47,58],examin:[32,33,41],exampl:[1,2,3,4,9,10,11,14,15,16,18,20,22,24,25,26,27,28,30,32,33,35,36,37,38,41,42,43,44,45,46,47,49,51,52,53,54,56,58,59],example_categori:48,example_pragma:9,example_useafterfre:0,examplefunc:48,examplepragmahandl:9,exce:19,excel:38,except:[1,4,6,8,11,14,15,17,20,23,25,36,39,40,43,51,55,58],excess:[38,58],exclipi:21,exclud:[1,2,30,38,58],exclude_cap:53,exclus:[1,3,4,19,23,53],exclusive_lock_funct:53,exclusive_locks_requir:53,exclusive_trylock_funct:53,exe:[36,45,52,54,55,58],exec:[0,1,11,58],execut:[1,2,3,4,6,11,14,18,19,20,25,28,29,30,31,32,33,38,43,45,46,47,49,50,51,53,54,55,57,58],exercis:[30,58],exhaust:[2,38],exhibit:38,exist:[1,2,3,4,8,11,14,24,25,28,30,33,38,39,41,45,51,53,55,58],existingblock:3,exit:[0,1,2,6,7,18,19,20,37,40,47,49,51,53,57,58],expand:[1,2,24,25,30,33,39,51,55,58],expans:[11,25,28,51,55,58],expect:[0,1,2,4,5,8,14,15,16,19,20,23,25,30,32,36,37,38,44,54,57,58],expect_tru:35,expens:[30,38,41],experi:27,experienc:38,experiment:[0,1,6,8,14,15,30,37,45,47,50,53,58],experimentalautodetectbinpack:8,expir:52,explain:[1,25,32,33,39,51,58],explan:[33,58],explanatori:25,explicit:[1,4,6,10,15,27,35,38,39,43,45,58],explicitli:[1,2,6,18,19,25,30,33,38,41,45,53,55],explod:30,exploit:[2,50],explor:58,expon:57,export_a:38,exported_symbols_list:6,expos:[2,30,34,38,50,53],expr:[25,26,33,58],exprconst:25,exprerror:25,express:[1,3,6,8,11,26,29,33,38,48,53,58],exprresult:25,ext:[6,58],ext_:25,ext_vector_typ:30,extdir:6,extend:[2,4,6,7,8,15,17,18,25,33,36,38,45,48],extens:[1,6,7,8,10,11,14,15,16,18,24,36,38,41,45,50,53,59],extent:[2,17,23,58],extern:[1,2,3,6,8,11,14,15,25,38,41,45,47,51,53,54,55,58,59],extern_c:38,externalastsourc:41,externalsemasourc:41,externalslocentrysourc:41,extra:[2,6,8,9,11,15,18,20,23,25,30,31,33,38,45,46,47,58],extract:[16,18,23,30,32,33,41,43],extrahelp:[33,35],extran:19,extrem:[2,16,25,30,38,58],extwarn:25,f16:30,f16c:6,f2c:6,f95:55,fabi:16,faccess:6,face:[2,25,30],facil:[1,20,25,38],facilit:[2,6,21,30],fact:[1,2,4,15,25,58],factor:[1,25,30,37,42],factorymethodpool:41,faddrsig:[6,45,58],faggress:6,fail:[1,2,4,6,14,15,16,20,25,30,35,36,37,38,39,44,52,53,58],failur:[1,14,15,19,25,38,53,58],fair:2,fairli:[25,33,38,42],faithfulli:2,fake:[53,58],falign:6,fall:[1,2,6,19,29,30,38,41,58],fallback:[1,7,8,30],fallow:6,fallthrough:[2,30],fals:[0,1,8,19,25,30,33,37,39,42,43,45,53,54,57,58],falseconst:1,falsenumb:39,faltivec:6,familar:26,famili:[1,11,25,30,38,55,58],familiar:[2,16,20],fancynewmethod:30,fansi:[6,58],fappl:6,fapplic:6,faq:[58,59],far:[2,8,25,30,33,38],fasm:6,fassoci:6,fassum:6,fast:[0,1,6,10,20,25,30,41,42,52,57,58],fastcp:6,faster:[0,11,24,37,41,42,58],fastest:11,fastf:6,fasynchron:6,fatal:[19,22,25,58],fatbinari:6,fault:46,fauto:6,fautolink:6,fautomat:6,favor:19,favorit:26,favoritecolor:39,fbackslash:6,fbacktrac:6,fbla:6,fblock:[6,11,58],fbootclasspath:6,fborland:[6,11],fbound:6,fbracket:[6,58],fbuild:6,fbuiltin:[6,38],fcaret:[6,11,58],fcf:[6,19,58],fchar8_t:6,fcheck:6,fclang:[6,45],fclasspath:6,fcntl:1,fcoarrai:6,fcolor:[6,58],fcomment:[6,58],fcommon:[6,11],fcompil:6,fcomplet:[6,14,58],fconstant:6,fconstexpr:[6,58],fconvert:6,fcoroutin:6,fcoverag:[6,51,58],fcrai:6,fcrash:6,fcreat:6,fct:8,fcuda:[6,45],fcxx:6,fdata:6,fdebug:[6,58],fdeclspec:[1,6],fdefault:6,fdelai:[6,36,58],fdelet:6,fdenorm:[6,58],fdepfil:6,fdiagnost:[6,11,58],fdigraph:6,fdiscard:[6,58],fdollar:6,fdoubl:6,fdump:6,fdwarf:6,feasibl:[2,38],featur:[1,2,6,8,10,11,23,25,29,37,38,39,42,51,52,53,56,57],feature_nam:30,feed:58,feel:[21,33,45],felid:6,felimin:6,felt:2,femb:6,femit:6,femul:[6,58],fenc:1,fencod:6,fentri:6,fenv:38,fenv_access:19,ferror:[6,58],fescap:6,fetch:1,fetch_or_zero:1,few:[1,8,10,15,20,25,33,36,38,41,45,51,58],fewer:[1,15,50],fexcept:[6,11],fexec:6,fexperiment:[6,19],fextdir:6,fextern:6,ff2c:6,ffake:58,ffast:[6,19,58],ffine:[6,19],ffinit:6,ffix:[6,50],ffor:6,fforc:[6,45,58],ffp:[6,30],ffpe:6,ffree:6,ffreestand:[6,11],ffrontend:6,ffunction:6,fgnu89:6,fgnu:6,fheinou:6,fhonor:6,fhost:6,fidel:2,fident:6,field:[3,6,8,14,25,28,30,41,45,58],fielddecl:25,fifoo:45,figur:[16,24,25,28,32,33,35,57],file1:52,file2:52,file:[0,1,2,3,7,8,9,10,11,14,15,16,17,18,20,21,22,24,28,29,33,35,36,37,42,43,44,45,46,47,48,49,51,52,53,54,55,56,57],filecheck:25,filelist:6,filemanag:25,filenam:[6,7,8,11,12,20,24,25,38,51,58],filesystem:6,fileurl:39,fill:[2,8,25,30,33,53,58],filt:0,filter:[2,7,24,25,33],fimplicit:[6,38,58],finclud:58,find:[0,1,2,6,7,8,10,11,14,15,16,19,23,24,25,32,33,35,36,37,38,41,43,44,45,46,51,55,58],findclassdecl:43,finder:33,findirect:6,findnamedclassact:43,findnamedclassconsum:43,findnamedclassvisitor:43,findsymboloccurr:44,findsymboloccurrencesrefactoringrul:44,fine:[2,6,25,30,57,58],finish:[19,20,32,36],finit:6,finlin:6,finput:6,finstrument:6,finteg:6,fintegr:6,fintrins:6,fiq:1,fire:49,first:[0,1,2,3,4,7,8,9,14,15,19,20,24,25,26,30,33,36,37,38,39,41,42,44,45,47,49,50,53,57,58],firstid:33,firstli:44,firstvalu:8,fit:[1,3,8,15,19,25,26,28,36,53,58],fitsononelin:8,five:[2,20,25],fix:[0,1,2,6,8,10,15,16,21,33,36,38,39,41,45,50,53,54,56,58],fixit:[6,10,11,21,25,56,58],fixithint:25,fixm:[34,58],fixnamespacecom:8,fjump:6,flag:[0,1,2,3,8,10,11,12,14,15,16,20,21,23,25,26,28,29,31,36,37,38,40,41,46,47,48,49,50,51,54,55,57,59],flat:[1,25,58],flat_namespac:6,flavor:58,flavour:15,flax:[6,11],flexibl:[16,25,32,39,58],flimit:6,float128:6,float2:30,float4:30,flow:[1,2,6,8,17,18,29,30,46,48,49,50,51,57,58,59],flto:[6,11,14,29,49,52,58],flush:[6,30,58],fly:[25,58],fma4:6,fma:[6,30],fmacro:6,fmath:[6,11],fmax:[6,58],fmerg:[6,45,58],fmessag:[6,11],fmodul:[6,19,30,38,58],fms:[1,6,11,36,58],fmsc:[6,11,58],fmudflap:6,fmudflapth:6,fn10:58,fn11:58,fn12:58,fn1:58,fn2:58,fn3:58,fn4:58,fn5:58,fn6:58,fn7:58,fn8:58,fn9:58,fna:58,fnaddr:30,fnb:58,fnest:6,fnew:6,fnext:6,fno:[0,1,2,6,11,14,20,30,37,38,45,55,57,58],fnoxrai:6,fns:9,fobjc:[2,6,11,30,45],focu:[10,25,58],focus:[2,10,58],fold:58,foldabl:25,foldingsetnodeid:33,follow:[0,1,2,3,4,7,8,10,12,13,15,17,18,19,20,23,25,27,29,30,33,36,37,38,39,41,42,43,44,45,47,48,49,50,51,52,53,54,55,57,58],follw:6,fomit:[6,20],foo1:[1,8,51],foo2:[1,51],foo3:[1,51],foo:[1,2,3,4,8,10,15,20,23,25,27,30,32,36,38,45,47,48,50,51,53,58],foo_ctor:3,foo_dtor:3,foo_priv:38,fooarg:2,foobar:[8,30,58],foobodi:25,foocfg:25,fool:8,fooneg:53,foopriv:38,fooptr:[1,4],fooref:4,fopenmp:[6,40,45,58],foper:[6,58],foptim:[6,58],forbid:[2,14,19,39],forbidden:[14,19],forc:[0,1,2,4,6,8,19,20,22,23,25,38,45,52,58],force_cpusubtype_al:6,force_cuda_host_devic:19,force_flat_namespac:6,force_load:6,forcibl:23,forcontinuationandindent:8,foreach:8,foreachmacro:8,forget:[2,16,19],forindent:8,forkei:39,forkeyedsubscript:39,forloop:33,form:[0,1,2,3,4,6,7,8,10,11,14,15,18,25,26,30,33,38,39,41,43,44,52,54,58],formal:[1,2,53],format:[0,6,7,11,16,30,32,34,38,41,56,59],formatdiff:7,formatonsav:7,formatstyl:[8,34],formatt:25,formatted_cod:8,formatted_code_again:8,former:[17,25,38],formerli:30,forstmt:[33,41],fortran:55,fortun:36,fortytwo:39,fortytwolong:39,fortytwolonglong:39,fortytwounsign:39,forward:[1,3,6,11,20,30,41,45,46,51,58],found:[1,2,3,4,7,8,15,18,20,22,24,25,30,33,34,38,41,43,53,58],foundat:[1,2,4],four:[1,2,12,20,25,30,49,51],fourth:49,foutput:6,fp32:6,fp_contract:[6,30],fpack:6,fpars:[6,58],fpascal:[6,11],fpcc:6,fpch:6,fpic:[6,19,54],fpie:[6,54],fplt:6,fplugin:[6,9],fpp:55,fprebuilt:[6,38],fpreserv:6,fprint:11,fprnd:6,fprofil:[6,51,58],fprotect:6,fptoint:6,fpu:1,fraction:[41,42],fragil:[2,11,30,38],fragment:25,frame:[0,2,4,6,11,19,20,23,36,37,39,46,48,54,57],framework:[1,2,6,10,11,17,18,38,39],frang:6,freal:6,frealloc:6,freciproc:6,frecord:6,frecurs:6,free:[0,1,2,3,6,19,21,23,30,32,38,39,45,50],freebsd:[0,37,45,46,54,57,58],freed:[0,2],freeli:2,freestand:[6,11,19,38],freg:6,fregist:6,frelax:6,frepack:6,frequenc:1,frequent:[1,2,15,36,39,46,58,59],frerol:6,fresh:[25,38],freshli:43,fretain:6,frewrit:6,frexp:30,friend:58,friendli:51,from:[0,1,4,5,6,7,8,9,10,11,14,16,17,18,20,21,23,24,25,26,27,29,30,31,32,33,35,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,53,55,56,57,58],from_promis:30,fromtyp:30,fromvalu:39,front:[1,8,25,41,58],frontend:[6,22,26,33,35,41,42,43,45,58],frontendact:[9,33,35],frontendactionfactori:35,frontendpluginregistri:9,fropi:6,frtlib:6,frtti:6,frwpi:6,fsanit:[0,6,15,19,23,29,31,37,45,46,47,48,49,50,54,55,57,58],fsave:[6,58],fsecond:6,fseh:6,fsgsbase:6,fshort:6,fshow:[6,11,58],fsign:6,fsignal:6,fsize:6,fsjlj:6,fslp:6,fspell:6,fsplit:[1,6],fstack:[1,6,50],fstandalon:[6,11,58],fstrict:[6,45,58],fstruct:6,fsyn:45,fsyntax:[6,9,11,20,26],ftabstop:6,ftemplat:[6,58],ftermin:6,ftest:[6,51],fthinlto:6,fthreadsaf:6,ftime:[6,11],ftl:[6,11,58],ftrap:[6,58],ftrapv:[6,11,57],ftree:6,ftrigraph:6,fuchsia:50,fulfil:33,full:[0,1,2,3,6,9,11,14,15,19,25,26,28,30,37,38,41,42,43,51,53,56,57,58],fulli:[0,1,2,11,15,20,25,30,36,37,40,45,52,58],fullloc:43,fullsourceloc:43,fun:[0,14,17,37,48,54,57],func:[1,6,25,27,47,58],function1:58,function_doing_unaligned_access:57,functioncal:3,functiondecl:[5,25,26,41],functiongroup:19,functionpoint:4,functionprototyp:41,functiontyp:30,fundament:[8,10,19,25,42],funderscor:6,funiqu:6,funit:6,funrol:6,funsaf:6,funsign:6,funwind:6,furnish:3,further:[1,2,3,11,17,18,25,30,32,33,35,41,42,53,58],furthermor:[1,2,10,33,46],fuse:[2,6,30,49,55],fusion:30,fusiong:30,futur:[1,11,19,20,25,34,39,45,46,47,53,54,58],fuzz:[36,47,57],fuzzer:36,fveclib:6,fvector:6,fverbos:6,fvisibl:[6,11,14,29,49],fwhole:[6,29,58],fwrapv:6,fwritabl:[6,11],fxrai:6,fxsr:6,fzero:6,fzvector:6,gain:[30,45],gamma:[25,58],gap:15,garbag:[2,3,4,30,46],gather:[6,44,49,58],gcc5:27,gcc:[1,3,4,6,14,16,24,25,27,30,38,42,45,51,55],gcc_version:58,gch:58,gcodeview:[6,58],gcolumn:6,gcov:[51,58],gdb:[25,58],gdwarf:[6,45],gemb:6,gen:[25,58],gener:[0,3,5,7,8,13,17,18,19,20,21,22,23,24,25,26,28,32,33,36,38,39,40,41,42,43,45,47,48,50,51,53,55],generalis:17,generated_declar:1,gentl:26,geoff:14,georg:46,gep:47,gerrit:21,get:[0,1,3,8,10,11,13,16,20,21,25,27,31,32,33,35,36,37,38,41,45,47,51,54,57,58],get_enqueued_local_s:58,get_local_s:58,get_max_sub_group_s:1,getactiontyp:9,getasidentifierinfo:25,getaspointertyp:25,getastcontext:43,getattr:25,getbegin:44,getbeginloc:45,getblockid:25,getc:38,getcanonicaldecl:33,getcharrang:44,getcommand:44,getcompil:[33,35],getcxxconstructornam:25,getcxxconversionfunctionnam:25,getcxxdestructornam:25,getcxxliteralidentifi:25,getcxxnametyp:25,getcxxoperatornam:25,getcxxoverloadedoper:25,getdeclcontext:25,getderiv:25,getdescript:44,getelem:53,getelemementptr:47,getendloc:45,getentri:25,getenv:39,getexit:25,getforloc:33,getfullloc:43,getgooglestyl:34,getlexicaldeclcontext:25,getllvmstyl:34,getlocend:45,getlocforendoftoken:25,getlocstart:[43,45],getmu:53,getnam:44,getnamekind:25,getnodea:33,getobjcselector:25,getprimarycontext:25,getqualifiednameasstr:43,getsema:25,getsourc:44,getsourcemanag:33,getsourcepathlist:[33,35],getsourcerang:25,getspellingcolumnnumb:43,getspellinglinenumb:43,getstartloc:45,getter:[2,3,6,30,53],gettranslationunitdecl:[26,43],gettyp:25,gettypenam:25,gfni:6,gfortran:6,gfull:[6,20],gfx900:58,ggdb0:6,ggdb1:6,ggdb2:6,ggdb3:6,ggdb:[6,58],ggnu:6,ginv:[6,45],git:[7,10,21,24,33],github:[0,21,24,31,33,37,47,54,58],gitweb:21,give:[1,2,6,10,19,20,25,26,30,33,35,40,45,56,58],given:[0,1,2,4,6,7,8,12,15,16,18,19,20,22,25,30,35,38,41,44,47,53,55,57,58],glibc:[1,17,25,46,58],gline:[6,11,58],glldb:[6,58],global:[0,2,3,4,6,7,11,15,19,25,38,39,40,41,43,44,45,46,50,54,58],globallayoutbuild:15,glut:2,gmarpon:21,gmlt:6,gmock:8,gmodul:[6,11],gninja:58,gno:6,gnu11:[11,30,58],gnu17:[11,58],gnu89:[6,11,58],gnu90:11,gnu99:[11,58],gnu:[6,8,11,16,19,25,27,30,38,51,58],gnu_inlin:19,gnueabi:16,gnueabihf:16,gnuinlineasm:38,gnustep:45,goal:[2,8,10,25],goe:[25,30,58],going:[2,8,25,33,45],gold:[14,49,51,52,55],good:[1,2,10,14,15,20,25,26,33,53,56],good_rect:39,googl:[0,7,8,31,34,37,47,53,54,58],googlecod:34,govern:25,gpopt:6,gpu:[6,58],gracefulli:25,gradual:38,grain:[6,19,25,30,57,58],grammar:[25,38],grammat:25,grant:3,granular:[23,51],graph:[2,25,28,41,47],great:[16,25,58],greater:[1,10,19,30,57],greatli:[2,25,42,58],grecord:6,green:[20,25,30,39],gregcal:58,grew:25,gritti:56,gross:25,group:[1,2,6,8,12,19,25,44,45,48,57],grow:[20,38,41],gs_rel:30,gsce:[6,58],gsplit:6,gstrict:6,gtest:8,guarante:[1,2,6,15,19,22,23,27,30,38,39,45,53,58],guard:[2,6,25,27,30,38,50,53,58],guard_vari:47,guess:[8,33],gui:[10,25,33,53],guid:[6,8,10,16,19,21,30,33,34,47,51,57],guidelin:[1,58],guse:6,gvsnb:20,hack:[14,25],had:[2,3,25,30,36,38,41,45,54,58],half:[25,52,58],halt:[1,58],hamper:18,hand:[2,14,16,18,19,20,25,33,35,36,39,43,45,57],handicap:42,handiwork:33,handl:[1,2,3,6,8,9,11,14,15,16,19,20,23,29,33,38,41,42,45,47,51,53,55,57,58],handlepragma:9,handler:[1,6,9,15,19,23,25,46],handlesimpleattribut:25,handletranslationunit:43,handleyourattr:25,handoff:53,happen:[0,1,2,10,11,15,16,19,25,38,45,58],hard:[1,16,25,28,33,34,37,38,45,53,58],harden:14,harder:[16,20],hardwar:[1,16,30,46,50,55,58,59],hardware_concurr:52,harmless:[30,55],has:[0,1,2,3,4,6,7,8,9,14,15,16,18,19,20,23,24,25,26,29,30,33,36,37,38,39,40,41,42,44,45,46,47,50,51,53,55,57,58],hasattr:25,hascondit:33,hascustompars:25,hash:[8,15,25,33,41],hasincr:33,hasiniti:33,haslh:33,hasloopinit:33,hasn:52,hasnam:32,hasoperatornam:33,hasrh:33,hassingledecl:33,hastyp:[30,33],hasunaryoperand:33,hatch:53,have:[0,1,2,3,6,7,8,9,11,14,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,33,35,36,38,39,41,44,45,46,47,50,51,53,55,56,57,58],haven:[1,2,58],haystack:30,hdf5:1,head:[7,21,25,58],header:[1,2,6,8,9,11,14,16,17,18,30,33,35,36,45,51,53,55,59],headerpad_max_install_nam:6,heap:[0,2,3,4,25,30,37,46,58],heavi:14,heavier:23,heavili:15,height:25,held:[1,2,4,19],hello:[3,4,22,25,36,39,41],help:[1,2,6,7,11,13,16,17,18,19,21,25,30,32,33,35,38,41,44,45,49,52,54,58],helper:[2,19,20,25],helperclass:19,helpmessag:[33,35],henc:[2,38,46],here:[0,1,2,8,10,16,19,20,24,25,30,31,38,39,44,45,48,53,57,58],herebi:3,heretofor:2,heurist:[1,6,30],hex:19,hexadecim:19,hexagonv4:6,hexagonv55:6,hexagonv5:6,hexagonv60:6,hexagonv62:6,hexagonv65:6,hhbebh:20,hidden:[1,6,7,13,14,19,29,41,49,58],hide:[1,19,46,53],hierarch:41,hierarchi:[2,15,26,29,32,41,45],high:[1,2,10,11,21,25,30,42,51,56,58],higher:[0,1,11,14,19,23,30,37,45,54,57,58],highest:15,highli:[11,58],highlight:[25,41,58],hijack:[15,46],hint:[1,6,8,10,21,36,58],hip:6,histor:[1,2,25,36,39,53],histori:[2,25,41],hit:24,hlt:23,hoc:2,hoist:25,hold:[1,2,3,4,11,15,19,20,25,41,53],holder:3,holist:2,holtgrew:21,home:[24,28,58],homogen:1,honeypot:1,honor:[2,6],hook:[2,43],hope:20,hopefulli:10,horizont:8,horrif:38,host:[2,6,11,16,25,52,58],hostnam:[51,58],hot:[1,6,48,58],hour:52,how:[1,2,3,5,6,8,9,10,11,13,15,16,17,18,20,21,28,29,30,33,35,36,38,39,41,51,53,55,56,59],howev:[0,1,2,3,8,10,14,16,20,25,30,36,38,41,42,44,45,47,50,51,52,53,55,58],htm:6,html:[1,6,8,25,27,34,51],http:[0,1,8,10,11,21,23,27,30,31,33,34,37,47,54,55,58],huge:[25,38],human:[25,32,58],hundr:[18,25,58],hurdl:45,hurt:30,hvx:[6,19],hw0:1,hw1:1,hw2:1,hw3:1,hw4:1,hw5:1,hwaddress:23,hwasan:23,hyper:52,hypothet:1,i128:58,i16:18,i32:18,i368:58,i386:[0,1,16,20,41,42],i486:11,i64:18,i686:58,iOS:[0,1,19,30,38,58],i_hold:3,i_label:17,iamcu:6,ibm:16,iboutletcollect:19,ibs_merg:8,ibs_preserv:8,ibs_regroup:8,ibt:1,ical:[6,48,58],icc:1,icf:[45,58],idea:[1,15,25,38],ideal:[2,10,23,25,41,42,53],ident:[1,6,14,19,25,30,58],identif:25,identifi:[1,2,6,8,15,18,21,25,26,30,33,38,42,43,44,53,58],identifierinfo:[25,41],identifierinfolookup:41,identifiert:41,idiom:25,idiraft:6,ids:32,idx:[39,47],iec:30,ieee:[30,58],ifcc:46,ifdef:[30,39,42,53],iff:[3,58],ifndef:[25,30,38,53],ifoo:[20,58],iframework:6,iframeworkwithsysroot:6,ifstmt:[24,25],ifunc:19,ignor:[0,1,2,3,6,8,11,14,16,23,25,30,33,36,38,45,48,58],ignoredattr:25,ignoringparenimpcast:33,iinclud:[9,35],ij_label:17,ijk_label:17,ill:[1,2,19,30,38,39],illeg:[1,19,25],illustr:[25,39,41,53,58],ilp:30,imacro:6,imag:[1,20,36,45,55],image2d_t:1,image_bas:6,imagea:1,imageb:1,imagin:[8,38],imaginari:30,imap:7,imbu:6,immedi:[0,1,2,6,14,15,25,30,33,41,42,49,53],immintrin:58,immut:[25,39],imp:53,impact:[25,36,38,52,57],imperfectli:2,implement:[1,2,4,6,8,9,14,15,17,21,23,30,33,34,35,36,38,39,40,41,43,44,45,46,50,51,52,53,55,57],impli:[1,2,3,6,8,20,29,33,38,41,45,58],implic:14,implicit:[1,2,6,11,25,27,32,33,38,45,57,58],implicitcastexpr:[24,26,33],implicitli:[1,2,4,6,14,18,19,25,28,30,38,39,55,58],importantli:[2,30],impos:2,imposs:[1,2,33,36],imprecis:2,improv:[1,2,3,6,11,15,21,30,38,39,41,42,46,52,56,58],imsvc:58,imultilib:6,inadequ:2,inadvis:51,inbranch:1,inc:3,incident:2,includ:[1,2,3,4,7,8,9,10,11,14,16,17,21,22,27,31,33,36,37,41,42,43,45,47,48,51,52,53,54,55,56,57,58],include_alia:19,include_next:[19,30,38],includeblock:8,includeblocksstyl:8,includecategori:8,includeismainregex:8,inclus:[6,19,25,38],incom:25,incompat:[1,2,36,38,45,51,57,58],incomplet:[2,30],inconclus:8,inconsist:[0,2],inconveni:2,incorpor:[2,30],incorrect:[1,19,25,30,36,57,58],incorrectli:19,incourag:33,increas:[0,2,8,14,15,19,23,37,40,46,58],increment:[2,6,30,33,45,47,51,53],incrementvari:33,incrementvarnam:33,incur:[19,20,42,50,58],incvar:33,incvarnam:33,indent:[8,58],indentbrac:8,indentcaselabel:8,indentppdirect:8,indentwidth:[7,8],indentwrappedfunctionnam:8,independ:[1,19,20,23,25,28,37,38,41,42,54,56],indetermin:1,index1:30,index2:30,index:[1,6,15,19,20,21,25,26,30,33,38,39,41,44,47,50,51,52,57,58,59],indic:[1,2,6,11,19,20,25,30,32,33,38,41,43,47,51,52,53,57,58],indirect:[1,3,6,19,25,45,46,47,48,57,58],indirectli:[1,2],indistinguish:25,individu:[1,6,8,11,30,44,46],induc:25,industri:53,inequ:19,ines:38,inescap:2,inf:[6,8,30,58],infeas:[1,2,23,38],infer:[4,6,14,29,38],infil:43,infin:[6,30],infinit:6,inflat:2,influenc:[2,58],info:[0,6,11,25,36,38,47,57],inform:[1,2,3,5,8,10,11,14,15,17,19,20,22,24,25,26,28,29,32,33,35,36,38,40,41,42,43,44,46,47,51,56],infrastructur:[10,20,21,24,25,45,56],infrequ:58,ing:41,ingroup:25,inhabit:41,inher:[2,4,11,25,28,38],inherit:[1,2,8,19,25,36,41,58],inheritableattr:25,inheritableparamattr:25,inhibit:[1,6,30],init:[0,1,6,30,33,47,53],init_arrai:6,init_seg:19,initi:[1,2,3,4,6,8,11,18,25,33,36,37,39,41,44,47,53,58],initialitz:2,initialize_vector:58,initializer1:8,initializer2:8,initializer_list:[19,30],initmystringvalu:1,initvar:33,initvarnam:33,initwithobject:30,initwithurl:39,inject:25,inlin:[0,1,6,8,11,14,23,25,27,36,37,38,45,51,55,58],inlinedfastcheck:15,inlineonli:8,innat:1,inner:[2,3,8,32,40],innermost:2,innerpoint:6,inplac:7,inprocess:20,input:[6,7,8,10,11,18,19,20,25,28,30,33,35,38,44,52,55,58],inputact:20,insecur:19,insensit:[8,55],insepar:45,insert:[1,2,6,7,8,15,18,25,30,32,39,46,47,58],insertvalu:18,insid:[0,1,8,15,19,20,24,25,29,30,35,36,39,41,58],inspect:[25,41,46],instal:[6,16,19,24,30,33,35,45,58],install_nam:6,instanc:[0,1,2,4,11,14,16,18,19,20,24,25,30,38,39,41,55,58],instancemethodpool:41,instances:19,instancesrespondtoselector:30,instancetyp:[6,30],instant:4,instantan:2,instanti:[1,2,25,30,41,51,58],instead:[1,2,6,7,8,11,14,15,17,18,19,20,23,24,25,26,30,38,39,42,44,45,46,47,51,52,53,55,57,58],instr:[6,51,58],instruct:[1,6,10,11,15,16,21,23,25,30,33,38,45,47,50,52,55,57,58],instrument:[1,6,14,15,17,18,21,37,46,50,54,55],insuffici:25,int128:6,int128_t:6,int32:8,int3:[15,30],int8_t:30,int8x8_t:30,int_max:[8,39],int_min:[39,57],intact:2,intargu:25,integ:[1,6,11,15,18,25,30,33,38,39,41,45,47,55,58],integerliter:[5,26,33,41],integr:[0,1,2,6,10,11,19,20,21,24,25,29,30,34,38,39,45,46,48,49,54,55,56,57,58,59],intel:[1,6,15,42,50,58],intel_sub_group_shuffl:58,intend:[1,2,4,10,17,19,20,22,24,25,30,33,36,38,39,41,50,52,53,58],intent:[1,2,19,25,45],intention:[2,10,45,55],inter:53,interact:[2,11,14,20,24,25,38,41,44],intercept:28,interceptor:37,interceptor_via_fun:0,interceptor_via_lib:0,interchang:[30,58],interconvers:2,interest:[13,16,21,25,32,33,36,41,42,43,58],interfac:[1,8,10,20,24,28,30,32,38,40,41,43,44,53,55,58,59],interfer:30,interleav:1,interleave_count:30,intermedi:[1,6,11,19,20,37,55],intern:[1,2,11,17,18,26,29,30,38,53,58,59],internal_linkag:19,internal_mpi_double_int:1,interoper:[2,38,55],interposit:0,interpret:[8,19,25,38,53],interrupt:[19,25],interrupte:19,interspers:2,interv:[6,30,38,52],interven:2,intervent:38,intptr_t:2,intra:53,intrin:19,intrins:[1,6,46,50,55],intro:58,introduc:[0,1,2,3,4,7,8,9,14,15,19,25,30,33,37,38,39,41,45,46,47,48,53,54,58],introduct:[2,10,33,41,56,59],intrus:[1,21],intvar:33,invalid:[0,1,2,5,8,15,25,26,36,45,52,57,58],invari:[2,6,20,30,58],invas:2,invers:6,invis:1,invoc:[1,2,4,6,19,20,24,37,42,44,45,58],invok:[1,2,3,7,11,18,19,22,24,25,44,55,58],involv:[1,2,20,25,29,38,39,42,55,57,58],invpcid:6,ioctl:1,ios:1,iosonli:6,iphon:11,iprefix:6,iquot:6,irel:28,irq:1,is_convertible_to:30,is_glob:30,is_inst:30,is_memb:30,is_paramet:30,is_thread_loc:30,is_union:30,is_wg_uniform:58,isa:[1,3,15,25,58],isatstartoflin:25,isbar:25,isdependenttyp:25,isderivedfrom:32,isdigit:1,isel:6,isequ:39,isfoo:25,isinteg:33,isl:8,isn:[1,2,18,19,20,25,33,45,58],iso9899:11,iso:[11,30,58],isol:[30,38,41,46],ispointertyp:25,issu:[1,3,6,10,15,17,18,21,23,25,30,36,45,53,55,58],istransparentcontext:25,istypedepend:25,isvalid:43,isvector:25,iswritteninmainfil:33,isysroot:[6,58],isystem:[6,58],itanium:[1,2,45,55],item:[1,7,8,17,18,25,58],iter:[19,25,30,33,41,56,58],itool:[9,35],its:[0,1,2,4,6,8,10,11,14,15,16,17,18,19,20,21,23,27,28,29,30,32,33,35,36,38,39,41,42,43,44,45,46,47,51,52,53,54,55,57,58],itself:[1,2,3,8,10,14,16,19,20,25,30,32,37,38,41,42,46,53,58],ivar:[2,6,30],ivfsoverlai:6,ivybridg:1,iwithprefix:6,iwithprefixbefor:6,iwithsysroot:6,j_label:17,jae:15,jai:14,jal:1,java:[7,8,55],javascript:[7,8],javascriptquot:8,javascriptquotestyl:8,javascriptwrapimport:8,jessevdk:21,jghqxi:20,jmp:[1,15],jne:[15,50],job:[6,20,25,52],john:57,join:[18,19],join_str:1,joinedarg:20,jom:[6,58],json:[8,24,35,51,59],jsqs_doubl:8,jsqs_leav:8,jsqs_singl:8,judg:[2,50],judgement:25,jump:[1,6,15,19,23],just:[0,2,4,7,15,20,24,25,30,32,33,34,37,38,39,41,42,45,46,47,50,53,58],justifi:2,k_label:17,kalign:15,kcc:47,kde:21,keep:[0,1,2,6,8,19,20,21,25,41,52,58],keep_private_extern:6,keepemptylinesatthestartofblock:8,kei:[1,4,7,8,19,20,23,25,28,30,39,52,53],kept:[2,4,8,10,15,20,25,38,57,58],kernel:[6,8,18,19,23,30,37,42,45,47,58],kerrorcodehack:30,kext:6,key1:8,key2:8,keyboard:7,keyword:[1,2,6,8,19,25,30,36,39,42,45,58],kfailedchecktarget:15,khrono:1,kind:[1,2,3,21,30,33,38,39,41,45,51,53,57,58],know:[2,15,16,20,21,25,30,33,47,51,53,55,57,58],knowingli:4,knowledg:[2,6,25,32,33,38,44,58],known:[1,3,6,11,15,16,17,18,19,20,25,30,36,37,39,45,48,54,55,57,58],krangebeg:15,kranges:15,kuznetsov:46,kw_for:25,label:[1,8,17,25],labelreturn:18,lack:[1,2,6,19,30,55],lai:[8,15],laid:[2,15,30,45],lambda:[2,8,36,58],langopt:[25,41],languag:[1,2,6,7,8,14,17,20,21,25,32,33,36,39,41,42,53,56,59],languagekind:8,languagestandard:8,lanugag:8,larg:[1,2,15,18,20,25,36,37,38,41,46,47,51,54,58],larger:[1,6,11,26,41,57],largest:[6,19,45],last:[1,2,4,6,8,11,16,19,20,24,25,30,33,41,47,57,58],laszlo:46,late:[2,58],latenc:[1,28,30],latent:2,later:[1,2,11,16,24,25,32,33,38,41,52,58],latest:[7,9,45,52],latom:55,latter:[25,38,45],launch:52,lax:[6,19],layer:[25,39,55],layout:[1,6,14,19,36,38,41,45,46,57,58],layout_compat:1,lazi:[24,41,42],lazili:[20,25,41],lazy_framework:6,lazy_librari:6,lbr:58,lclangbas:38,ld64:52,ldc1:6,ldd:58,ldp:50,ldr:[23,50],ldrb:23,ldrex:30,lea:15,lead:[0,2,4,8,19,25,37,38,39,41,42,45,53,54,58],leadingspac:25,leaf:[6,50,58],leak:[2,25,31,46,53],leaksanit:[0,59],learn:[21,32,43,44,56],least:[1,2,6,8,14,15,19,24,25,30,47,51,58],leav:[2,4,8,58],leewai:2,left:[1,2,8,19,25,33,39,41,43,47,52,57],leftmost:2,legaci:[1,6,11,19],legal:[1,2,4,6,39],legitim:2,len:1,lend:44,length:[1,6,7,8,11,25,30,45,57,58],lenient:1,less:[1,2,6,8,10,14,15,19,21,23,25,33,41,46,54,57],let:[7,9,15,24,25,26,33,35,43,47,55,58],letter:2,level:[1,2,8,9,10,11,19,20,21,25,29,32,38,41,45,47,48,51,55,56,57,58],lex:[25,34,38,42],lexer:[10,34,38,42],lexic:[4,41,42],lexicograph:[1,8,25],lhs:6,liabil:3,liabl:3,lib:[0,6,8,9,16,19,24,25,30,31,35,38,52,54,58],libasan:6,libastmatch:[32,59],libc:[11,15,19,30,31,37,54,58],libclang:[21,25,28,41],libclang_rt:[6,11,55],libcxx:16,libdl:15,liber:38,liberti:2,libformat:[7,8,59],libgcc:[6,11,16,55],libgfortran:6,libm:16,libomp:40,librari:[1,2,6,7,9,10,11,17,18,20,21,29,30,31,33,34,35,36,37,38,39,40,42,44,45,46,51,52,53,54,56,57,58],library_path:19,libreoffic:21,libsan:6,libstdc:[6,11,30,37,54],libsupport:25,libsystem:3,libtool:[5,10,28,32,43,44,59],libxml:16,libz:16,lies:33,life:14,lifecycl:[1,21],lifetim:[1,4,19,30,57,58],lift:[2,10,38,41],ligatti:14,lightli:2,lightweight:20,like:[0,1,2,4,6,8,11,15,16,17,18,19,20,25,26,30,32,33,35,36,37,38,39,41,43,44,45,47,48,50,53,54,55,56,57,58],likelihood:58,likewis:30,limit:[1,2,3,6,8,15,23,25,30,45,48,52,55,57],line:[0,1,2,5,7,8,10,11,12,20,22,24,25,26,28,29,30,33,35,37,39,41,42,43,44,46,48,49,50,51,54,55,57,59],linear:[1,19,38,41,42,50],linemark:[6,58],link:[0,1,6,11,14,15,16,20,23,24,29,30,31,36,37,39,40,43,45,46,47,50,51,52,54,55,57,58],linkag:[1,11,25,29],linker:[1,11,14,15,16,20,38,45,51,57,58],linkifi:25,linkonc:1,linkonce_odr:18,lint:56,linter:10,linti:21,linux:[0,8,16,17,18,23,28,31,37,40,46,47,54,57,58],lipo:20,list:[0,1,2,4,6,7,8,11,13,14,15,16,20,24,25,28,33,34,35,37,38,39,41,44,51,54,55,57,58,59],lit_test:54,liter:[1,2,3,6,8,11,25,33,38,42,45,58],littl:[2,15,20,25,33,41],live:[1,18,20,23,25,30,33,38,46,58],lk_cpp:8,lk_java:8,lk_javascript:8,lk_none:8,lk_objc:8,lk_proto:8,lk_tablegen:8,lk_textproto:8,lld:[36,52,55],lldb:58,lldltocach:52,lldltocachepolici:52,lldltojob:52,llvm:[0,1,2,5,6,7,8,10,11,14,15,16,18,20,21,23,28,30,33,34,35,36,37,39,40,41,43,45,47,54,57,59],llvm_build:33,llvm_clang_sourcemanager_h:41,llvm_link_compon:33,llvm_profile_fil:[6,51,58],llvmgold:52,load:[1,2,6,7,9,15,18,19,20,23,25,33,37,38,41,46,51,52,54,56,57,58],loadabl:58,loader:[8,19,23,58],loc:25,local:[0,2,3,4,6,7,11,14,24,25,27,36,38,40,41,44,46,50,58],local_funct:58,localiz:25,localrenam:44,locat:[0,1,2,4,6,7,8,11,15,16,19,20,22,24,25,32,33,35,38,39,41,43,44,45,46,52,57,58],lock:[1,19,23,51],lock_return:53,lockabl:53,lockandinit:53,locks_exclud:53,lockstep:1,log:[0,1,2,18,38,57],logic:[1,2,4,6,10,16,18,20,25,30,33,38,41,58],long_prefixed_uppercase_identifi:38,longcal:6,longer:[1,2,11,30,37,41,45,53,58],longfunct:8,longjmp:[46,51],look:[0,2,7,8,9,15,16,25,26,30,32,33,35,38,43,46,57,58],lookup:[2,15,19,25,41,58],lookup_result:25,lookupt:25,looooooooooongtyp:8,loooooooooooooooooooooongvari:8,loooooooooooooooooooooooooooooooongfunctiondeclar:8,loooooooooooooooooooooooooooooooooooooooongreturntyp:8,loop:[2,6,8,25,33,40,58],loopconvert:33,loopmatch:33,loopprint:33,loos:11,lose:[2,10,19],loss:57,lossi:[6,57,58],lost:32,lot:[1,2,16,25,53,54],low:[1,2,3,6,11,18,25,28,48,51,58],lower:[1,2,19,25,41,42,45,55,58],lowercas:2,lozano:14,ls_auto:8,ls_cpp03:8,ls_cpp11:8,lsan:31,lsan_opt:0,lsomelib:38,lsr:23,lsupc:55,ltmp0:15,ltmp1:15,ltmp2:15,lto:[1,6,11,14,15,52,58,59],lto_visibility_publ:29,lucki:38,lui:14,lvalu:[2,25,26,33,57,58],lvaluetorvalu:26,lwg:45,lwp:6,lzcnt:6,m16:[6,58],m32:[6,58],m3dnow:6,m3dnowa:6,m64:6,m80387:6,m_pi:39,mab:[6,19],mabi:6,mabical:[6,19],mac:[2,3,6,11,30,38,40,42],mach:[6,41],machin:[0,1,2,6,11,15,16,25,38,42,51,52,55,58],machineri:[2,25,38,42,58],macho:16,maco:[1,30],macosx10:58,macosx:[1,46],macosx_deployment_target:11,macro:[1,2,6,8,11,25,32,33,39,41,45,46,50,51,53],macroblockbegin:8,macroblockend:8,macronam:[11,38],mad:6,madd4:6,madd:6,made:[1,2,8,14,15,19,21,24,25,30,34,38,57,58],madx:6,mae:6,magic:[16,47,48],magnitud:[16,19],mai:[0,1,2,3,4,6,8,11,14,15,16,17,18,19,20,21,23,25,29,30,33,37,38,39,41,42,44,45,46,47,48,50,51,52,53,54,55,57,58],mail:[21,25,45,58],main2:1,main:[0,1,2,6,8,9,10,15,16,17,18,19,20,22,25,28,29,30,31,33,35,37,39,42,43,47,48,49,51,54,55,57,58],mainli:[42,46],maintain:[0,1,2,8,10,14,15,16,20,23,25,33,38,41,55],major:[1,8,19,20,23,25,30,36,38,41,51,58],make:[0,1,2,3,6,8,9,11,14,15,16,18,19,20,25,26,27,28,30,31,32,33,34,37,38,39,41,42,45,46,47,49,50,53,54,55,56,57,58],makefil:[16,24,28,35,58],malform:39,malign:6,malloc:[1,2,11,17,18,23,25,30,31,48],maltivec:[6,30],man:59,manag:[1,4,16,17,25,30,43],mandatori:2,mang:1,mangl:[1,15,36,38,45,48,58],mani:[1,2,3,6,10,11,14,15,16,19,20,25,26,28,30,33,36,38,41,43,52,53,58],manipul:[1,20,25,46],manner:[1,2,3,4,15,24,25,30,53],manual:[1,2,6,11,16,18,30,41,42,46,48,51,55,59],map:[0,1,6,7,8,15,19,20,25,30,37,39,41,42,45,51,54,56],mappabl:6,mappletvo:6,mappletvsimul:6,march:[6,11,15,45],mark:[1,2,4,6,29,30,39,46,51,54,58],marked_vari:3,marker:[2,3,6,25],market:[2,30],marketplac:58,markup:25,martin:[14,24,33],mask:[1,15,25],masm:6,mass:[2,39],massiv:2,match:[0,1,4,6,8,14,15,16,20,23,25,38,41,45,47,52,53,57,58,59],matchcallback:33,matcher:[26,44],matchfind:33,matchresult:33,materi:30,math:[1,6,11,19,30,38,40,58],mathemat:30,mathia:46,matmul:6,matter:[4,14,15,25,27,53,58],matur:53,mavx2:6,mavx512bitalg:6,mavx512bw:6,mavx512cd:6,mavx512dq:6,mavx512er:6,mavx512f:6,mavx512ifma:6,mavx512pf:6,mavx512vbmi2:6,mavx512vbmi:6,mavx512vl:6,mavx512vnni:6,mavx512vpopcntdq:6,mavx:6,max:[1,6,19,39,58],maxemptylinestokeep:8,maxim:25,maximum:[1,6,8,19,41,52,58],maxlen:1,may_throw:51,mayb:15,maybebindtotemporari:25,mbackchain:6,mbig:6,mbmi2:6,mbmi:6,mcheck:6,mcldemot:6,mclflushopt:6,mclwb:6,mclzero:6,mcmodel:6,mcmpb:6,mcompact:[6,19,58],mconsol:6,mcount:6,mcpu:[6,16,58],mcrbit:6,mcrc:[6,45],mcrypto:6,mcu:[6,58],mcx16:6,md5:15,mdd:58,mdefault:6,mdirect:6,mdll:6,mdoubl:6,mdsp:6,mdspr2:6,mdynam:6,meabi:6,mean:[0,1,2,3,6,8,11,16,18,19,20,23,25,30,36,37,38,39,42,45,48,50,53,54,58],meaning:[1,2,20,37,54,58],meaningless:19,meant:[1,2,25,30,38,41,51,58],measur:[14,46],measuretokenlength:25,mechan:[0,1,2,14,15,25,29,30,38,41,44,46,47,49,53],mediat:2,medit:25,meet:[1,2,6,25],mem:1,membed:6,member:[1,2,3,4,6,8,10,11,15,25,33,36,38,39,41,44,45,53,58],membership:2,memchr:30,memcmp:30,memcpi:[2,17,18],memop:6,memori:[1,3,4,6,15,17,20,21,25,31,40,42,46,50,52,54,56,57,58],memory_ord:30,memory_sanit:30,memory_scop:30,memorysanit:[1,6,30,47,48,58,59],memptr:6,memset:19,mention:[3,19,25,41,42,46,52,53,58],menu:7,merchant:3,mere:[1,2,20,25],merg:[2,3,6,8,11,19,20,25,30,41,45,51,52,58],merit:2,messag:[0,1,2,4,6,7,8,17,25,33,35,37,38,39,53,54,55],met:1,metaclass:2,metadata:[1,2,6,15,20,25,45],metal:16,method2:1,method:[1,3,4,6,9,20,25,30,33,36,43,45,53,57,58],methodgroup:19,mexcept:6,mexecut:6,mextern:6,mf16c:6,mfcall:[14,29],mfentri:6,mfix:6,mfloat128:6,mfloat:[6,16],mfma4:6,mfma:6,mfocrf:6,mfp32:6,mfp64:6,mfpmath:6,mfprnd:6,mfpu:[6,16],mfsgsbase:6,mfxsr:6,mgener:[6,58],mgfni:6,mginv:[6,45],mglobal:6,mgpopt:[6,19],mhard:6,mhtm:6,mhvx:[6,19],mhwdiv:[6,58],miamcu:[6,58],mice:25,micromip:6,microsoft:[1,6,11,14,19,25,30,36,38,41],middl:[8,19,25],mieee:6,might:[1,2,8,10,11,16,19,20,21,25,27,30,36,38,44,46,53,58],migrat:[1,2,4,6,10,53,56,58],mihai:14,mii:11,mildli:1,mileston:1,mimic:[1,58],mimplicit:6,min:[1,6,11,39],mincrement:6,mind:[0,25],mindirect:6,mingw32:36,mingw:45,minim:[6,15,38,41,54,58],minimum:[1,2,6,11,19,25,30,38,58],minor:[19,25,30,41,45,51],minsiz:1,minut:52,minvari:6,minvpcid:6,mio:[1,6],mip:[16,19,45],miphoneo:[1,6,11,30],miphonesimul:6,mips16:6,mips2:45,mips3:45,mipsr6:58,mirror:[33,50,58],mis:2,misalign:[19,57],misbehav:2,miscellan:45,misel:6,mislead:0,mismatch:[1,2,14,18,23,38],miss:[1,6,8,25,30,32,38,40,41,44,47,51,53,54,58],misspel:20,mistak:[25,39],mistaken:58,misus:19,misusag:21,mitig:[15,20,30,42],mix:[1,19,45],mkdir:[24,33],mke:29,mkernel:6,mldc1:6,mlinker:6,mlittl:6,mllvm:[6,30,52,58],mlocal:6,mlong:[1,6,19],mlongcal:6,mlwp:6,mlzcnt:6,mmaco:6,mmacosx:[1,6,11,30],mmadd4:6,mmap:42,mmapwriteexec:45,mmcu:6,mmd:6,mmemop:6,mmfcrf:6,mmfocrf:6,mmicromip:[1,6],mmmx:6,mmovb:6,mmovdir64b:6,mmovdiri:6,mmpx:6,mms:6,mmsa:6,mmt:6,mmwaitx:6,mmx:[1,6],mnan:[6,19],mno:[1,6,45],mnocrc:6,mnontrap:6,mnv:6,mnvj:6,mock:8,modal:25,mode:[1,2,6,7,8,10,14,15,19,25,26,28,30,31,33,35,37,38,45,51,52,55,57],model:[1,2,6,11,19,26,30,32,36,40,41,52,53,58],moder:11,modern:[2,6,16,21,25,30,36,39],modif:[6,19,30,38],modifi:[1,2,3,6,8,18,25,30,41,42,47,50,52,53,57,58],modul:[0,1,6,8,11,15,18,20,37,45,46,47,52,54,55,58,59],module_nam:47,module_priv:38,modulemap:38,modulo:[25,30],moment:[46,53,58],momit:6,monitor:[18,30],monolith:[11,15,20,52],month:30,more:[1,2,3,5,6,7,8,10,11,12,14,15,16,17,18,19,20,21,22,23,25,27,30,32,35,39,41,43,44,45,46,47,50,53,55,58],morehelp:[33,35],moreov:[2,15,38,39,53],moslib:6,most:[0,1,2,6,8,10,11,14,15,16,18,19,20,23,25,26,29,30,32,33,36,37,38,40,41,43,44,46,51,53,55,57,58],mostli:[1,2,18,20,23,25,36,58],motion:30,motiv:[1,10,20,42,58],mous:25,moutlin:[6,19],mov:[1,15,50],movab:15,movap:1,movb:6,movdir64b:6,movdiri:6,move:[0,1,2,3,4,6,22,25,39,46],movl:30,movt:6,movw:6,mozilla:[7,8,21],mpacket:6,mpascal:6,mpclmul:6,mpconfig:6,mpi:1,mpi_datatyp:1,mpi_datatype_double_int:1,mpi_datatype_int:1,mpi_datatype_nul:1,mpi_double_int:1,mpi_int:1,mpi_send:1,mpie:6,mpku:6,mpopcnt:6,mpopcntd:6,mpower8:6,mpower9:6,mprefer:6,mprefetchwt1:6,mprfchw:6,mptwrite:6,mpure:6,mpx:6,mqdsp6:6,mqpx:6,mrdpid:6,mrdrnd:6,mrdseed:6,mrecip:6,mred:6,mregparm:6,mrelax:6,mrestrict:6,mretpolin:6,mrtd:6,mrtm:6,ms_struct:19,msa:6,msahf:6,msan:37,msan_new_delet:37,msan_opt:37,msan_symbolizer_path:37,msbuild:58,msdn:1,msecur:6,msgx:6,msha:6,mshstk:6,msign:6,msimd128:6,msingl:6,msmall:6,msoft:6,msp430:[25,58],msp430interruptattr:25,msse2:6,msse3:6,msse4:6,msse4a:6,msse:6,mssse3:6,mstack:6,mstackrealign:6,msvc:[1,30,45,55,58,59],msy:58,mtbm:6,mtd:[29,58],mthread:6,mthumb:6,mtime:38,mtp:6,mtune:6,mtvo:[1,6],mu1:53,mu2:53,much:[2,4,6,10,11,16,20,23,25,41,45,53,58],multi:[1,6,19,25,41,42,53],multi_cpu:1,multi_modul:6,multibyt:58,multicor:42,multilin:8,multipl:[1,2,6,7,8,11,15,16,18,20,25,26,28,29,32,36,38,41,42,46,47,51,53,55,58],multiplex:25,multipli:30,multiply_defin:6,multiply_defined_unus:6,multithread:1,multitud:26,multivers:[1,45],munalign:6,municod:6,munl:53,must:[1,2,3,4,8,9,14,18,19,20,21,25,28,29,30,38,39,41,42,44,45,46,50,51,52,53,57,58],must_ab:1,must_be_nul:1,mut:53,mutabl:[2,25,39],mutablecopi:[1,2],mutat:[4,21],mutex:19,mutexlock:53,mutexunlock:53,mutual:[1,3,4],mv4:6,mv55:6,mv5:6,mv60:6,mv62:6,mv65:6,mvae:6,mvc:25,mvirt:[6,45],mvpclmulqdq:6,mvsx:6,mvx:6,mwaitpkg:6,mwaitx:6,mwarn:6,mwatcho:[1,6],mwatchsimul:6,mwbnoinvd:6,mwindow:6,mx32:6,mx87:6,mxgot:6,mxnack:6,mxop:6,mxsave:6,mxsavec:6,mxsaveopt:6,my_calloc:1,my_ext:58,my_fun:30,my_func:58,my_int_pair:1,my_malloc:1,my_memcpi:1,my_pair:1,my_program:47,my_sub_group_shuffl:58,my_t:58,myabort:30,myasan:0,myattribut:25,mybss:30,myclass:[32,53],myconst:39,mydata:30,myfoobar:[0,14,48],myframework:38,myframeworkcor:38,myfunct:8,myinclud:30,mylib:[25,38,58],mylocalnam:1,mylogg:38,mylsan:0,mymap:8,mynam:30,myobject:53,myplugin:9,myrodata:30,mysec:30,mysteri:[2,26],mystic:25,mytext:30,mytoolcategori:[33,35],myubsan:57,mzvector:6,n3421:10,n64:19,n_label:17,naiv:2,name:[0,1,2,3,6,7,8,9,11,12,14,15,16,17,18,20,24,26,27,28,33,38,39,41,43,44,45,47,48,49,53,54,55,57],nameddecl:25,nameofcfunctiontosuppress:0,nameofthelibrarytosuppress:0,namespac:[0,1,8,24,25,27,29,32,33,35,38,41,43],namespace2:0,namespacedecl:25,namespaceindent:8,namespaceindentationkind:8,nan:[6,25,58],narrow:[0,1,14,32,33],nasti:25,nativ:[0,11,16,17,18,37,45,50,52,54,55,58],natur:[1,2,25,41,42,58],navig:21,ndebug:[1,38],nearest:[19,25],nearli:[2,41],neatli:58,necess:[2,25],necessari:[1,2,3,14,15,17,18,20,21,25,33,36,38,45,53,55,58],necessarili:[25,28,30,56],need:[0,1,2,3,4,6,7,8,9,10,11,14,15,16,17,18,19,20,22,23,24,25,28,30,33,35,36,37,38,39,41,42,43,44,45,46,47,50,52,53,54,55,56,57,58],needl:30,needsclean:25,needstolock:53,neg:[6,8,25,57,58],negat:[1,6],neither:[1,2,25,30,33,39,57],neon:[16,19,30,38],neon_polyvector_typ:30,neon_vector_typ:30,nest:[4,6,8,25,30,32,38,40,42,58],nestednamespecifi:25,net:4,netbsd:[0,37,46,54,57],network:58,neutral:[20,55],never:[1,2,6,8,11,19,20,25,30,38,46,57,58],new_stat:1,new_valu:30,newastconsum:24,newbi:58,newer:[1,19,30,41,51],newest:30,newfrontendactionfactori:[33,35],newli:39,newlin:[8,25,58],newnameopt:44,newobject:39,newposit:39,newvalu:39,next:[1,2,6,7,8,15,25,30,32,33,35,38,39,41,43,44,45,51,52],ni_al:8,ni_inn:8,ni_non:8,nib:19,nice:[25,33,35],nicer:0,nil:[2,4,19,39],ninja:[28,33,58],nitti:56,nmake:[6,58],nmap:24,nmore:[33,35],no_address_safety_analysi:0,no_dead_strip_inits_and_term:6,no_sanit:14,no_sanitize_address:0,no_undeclared_includ:38,nobodi:58,nobuiltininc:[6,11,58],nocf_check:19,nocpp:6,nocudainc:6,nocudalib:6,node:[24,25,41,43,44,58],nodefaultlib:6,nodetyp:43,nodiscard:30,nodupfunc:1,noexcept:[1,19],nofixprebind:6,noinlin:[1,47,49],noisi:45,nolibc:6,nomin:18,nomultidef:6,non:[0,1,2,3,4,6,8,10,11,17,21,23,25,29,36,37,38,39,40,41,46,47,50,51,52,54,55,58],nonassign:8,nonatom:6,nonbitfield:25,noncopy:58,noncopyable2:58,none:[1,2,6,7,8,16,25,30,41,58],nonescapingfunc:1,nonetheless:2,nonfragil:[6,11],noninfring:3,nonliter:1,nonnul:57,nonport:6,nonscalar:19,nontrap:6,nontriv:2,nontrivi:2,nonumb:39,nonzero:[18,19,30],noopt:6,nopi:6,noprebind:6,nor:[1,2,16,30,38,39,53,57,58],noreturn:30,normal:[1,2,3,4,6,7,8,9,14,15,16,25,30,36,38,39,41,53,58],noseglinkedit:6,nostartfil:6,nostdinc:[6,11],nostdlib:6,nostdlibinc:[6,11],not_retain:19,notabl:[2,20,30],notat:[4,30,41],note:[0,1,2,3,4,6,7,8,9,10,11,13,14,15,25,26,30,32,33,38,39,44,51,52,53,58,59],note_ovl_candid:25,noth:[1,25,41],notic:[3,15,55],notifi:[25,41],notinbranch:1,notion:[25,38],noun:[32,33],nov:47,novic:2,now:[2,3,19,24,25,29,30,33,35,36,39,43,45,47,53],nrvo:1,ns_consum:[2,19,30],ns_consumes_self:[2,30],ns_designated_initi:6,ns_enum:6,ns_map_begin:8,ns_map_end:8,ns_nonatomic_iosonli:6,ns_option:6,ns_requires_sup:1,ns_returns_:19,ns_returns_autoreleas:[2,30],ns_returns_inner_point:6,ns_returns_not_retain:[1,2,30],ns_returns_retain:[1,2,30],ns_table_:8,ns_table_foo_end:8,ns_table_head:8,nsapp:39,nsarrai:[1,19,30,39],nsautoreleasepool:2,nscaseinsensitivesearch:30,nscol:39,nscompar:30,nscomparisonresult:30,nscopi:39,nsdate:39,nsdictionari:39,nsfoo:2,nsforcedorderingsearch:30,nslocal:30,nslog:[30,39],nsmakerang:30,nsmutablearrai:39,nsmutabledictionari:39,nsnumericsearch:30,nsobject:[2,19,30],nsprocessinfo:39,nsrang:30,nsrespond:1,nssomeclass:30,nsstring:[1,19,30,39],nsstringcompareopt:30,nsuinteg:39,nsunrel:30,nsurl:39,nsusernam:39,nsvalu:[1,39],nsview:1,nswidthinsensitivesearch:30,null_resett:19,nullabl:[19,57],nullptr:[15,19,24],num:[7,58],num_of_total_sampl:58,num_predef_type_id:41,num_sgpr:1,num_thread:40,num_vgpr:1,number:[1,2,6,8,11,14,18,19,20,21,23,25,32,35,37,38,39,41,44,47,49,52,54,55,58],number_of_sampl:58,numberwithbool:39,numberwithchar:39,numberwithdoubl:39,numberwithfloat:39,numberwithint:39,numberwithlong:39,numberwithlonglong:39,numberwithunsignedchar:39,numberwithunsignedint:39,numer:[6,19,25,30,39,41],nvcall:14,nvcc:[19,45],nvidia:[11,16,45,58],nvj:6,nvptx64:[45,58],nvptx:45,nvs:6,obei:[1,2,25,30,58],obj:[3,11,45,52,53],objc:[1,2,3,6,8,11,25,38,39,58],objc_:30,objc_arc:[2,30,38],objc_arc_field:30,objc_arc_weak:30,objc_arc_weak_reference_unavail:2,objc_array_liter:[30,39],objc_assign_weak:3,objc_bool:39,objc_box:39,objc_boxed_express:39,objc_boxed_nsvalue_express:39,objc_categori:30,objc_default_synthesize_properti:30,objc_dictionary_liter:[30,39],objc_fixed_enum:30,objc_include_path:11,objc_independent_class:19,objc_instancetyp:30,objc_interfac:30,objc_method:30,objc_method_famili:[2,30],objc_precise_lifetim:2,objc_properti:30,objc_protocol:30,objc_protocol_qualifier_mangl:30,objc_read_weak:3,objc_returns_inner_point:2,objc_subscript:[30,39],objcbinpackprotocollist:8,objcblockindentwidth:8,objcclass0:25,objcclass:25,objcinst:25,objcinstance0:25,objcmethodtosuppress:0,objcmt:6,objcmultiargselector:25,objconeargselector:25,objcplus_include_path:11,objcspaceafterproperti:8,objcspacebeforeprotocollist:8,objctyp:39,objczeroargselector:25,objdump:41,object:[1,6,7,8,10,13,14,15,21,23,25,28,29,31,33,37,41,42,46,51,52,53,55,57],object_getclass:19,object_setclass:19,objectatindex:39,objectatindexedsubscript:39,objectforkei:39,objectforkeyedsubscript:39,objectpoint:3,obscur:58,observ:[2,14,19,29],obsolet:[1,19],obtain:[3,15,25,42,55,58],obviou:[2,20,25],obvious:[2,25],occas:25,occasion:25,occupi:14,occur:[0,1,2,3,4,8,15,19,20,25,38,39,41,51,52,53,58],occurr:[2,8,44],octal:58,octob:46,odd:36,odr:[1,29,45],ofast:[6,11],ofe:1,off:[1,2,6,8,11,19,23,25,30,33,38,45,48,50,53,58],offend:30,offer:[2,10,33,47,57,58],offici:58,offlin:0,offload:[1,6,19,40,45],offset1:58,offset2:58,offset:[1,3,7,15,19,23,41,45,47,58],offseta1:58,offseta:58,offsetb1:58,offsetb:58,offsetn:58,often:[2,16,18,25,28,30,32,36,38,52,53,57,58],oilpan:46,okai:[1,25,33,53],old:[1,2,3,19,23,30,38,39,45],old_valu:30,older:[4,19,30,37,39,41,45,55,58],oldobject:39,oldvalu:2,om_abortonerror:30,om_invalid:30,om_norm:30,om_terrifi:30,omit:[0,1,4,6,16,25,30,37,38,55,57],omp:[19,40,58],ompt:40,onc:[0,6,11,16,20,25,30,33,35,38,41,44,47,51,58],one:[0,1,2,3,4,7,8,11,14,15,16,17,18,19,20,23,25,26,27,28,30,32,33,35,37,38,39,40,41,42,43,44,45,46,47,50,52,53,54,55,57,58],ones:[3,4,8,11,15,16,20,25,30,33,35,42,58],ongo:36,onli:[0,1,2,3,4,6,7,8,9,10,11,14,15,16,17,19,20,22,23,24,25,26,28,29,30,33,35,37,38,39,40,41,42,43,44,45,46,47,49,50,51,52,53,54,55,56,57,58],onlin:[0,6,26],onlinedoc:[1,27],onoperationdon:8,onto:[3,6,8,15,25,58],onward:[19,30,51,55,57,58],opaqu:[2,3,4,15,25,58],open:[1,2,8,24,39,52,58],openbsd:[45,57],opencl:[11,19,30,38],openenum:1,openflagenum:1,openmp:[1,6,59],oper:[0,1,2,3,6,7,8,10,15,17,18,20,21,24,25,27,33,37,38,39,41,42,44,45,46,50,51,53,54,55,57],operand:[1,6,8,18,25,30,33,39,47,55,58],operation:1,operationmod:30,operatorcallexpr:33,opportun:[2,20,30,38],oppos:8,ops:6,opt:[6,25,30,38,45,52,58],opt_i:20,optim:[0,1,3,4,11,14,18,25,29,37,38,41,45,47,50,52,55,57],optimis:45,option:[0,1,2,3,4,7,9,12,13,20,22,23,24,25,26,28,33,37,38,39,41,42,45,47,48,51,52,53,55,57,59],optionalrequiredopt:44,optioncategori:[33,35],optionrequir:44,optionspars:[33,35],optnon:30,orang:20,order:[1,2,3,8,11,15,16,18,20,25,27,29,31,33,34,36,37,38,39,41,45,47,53,55,58],ordin:25,ordinal0:25,ordinari:[1,53,58],org:[1,8,10,11,21,23,27,33,34,39,58],organ:[2,41],organization:10,orient:[1,10,46,51],origin:[1,2,3,6,14,17,18,19,20,23,25,30,38,41,42,53,57,58],orred:3,orthogon:3,os_log:19,os_trac:19,osdi:46,other:[0,1,2,3,6,8,10,11,14,15,16,17,18,19,20,22,23,24,26,27,29,30,32,33,36,37,38,39,40,41,42,45,47,50,51,52,53,54,56,57],othermethod:1,otherwis:[1,2,3,4,6,7,8,11,15,19,20,25,27,30,38,39,44,45,47,51,55,58],our:[1,15,21,25,26,33,35,36,38,43,51],ourselv:[2,33],out:[0,1,3,6,8,10,11,15,16,18,20,21,24,25,26,28,30,31,32,33,34,35,36,37,38,41,43,45,47,48,49,51,52,54,55,56,57,58],outdent:8,outer:[25,32],outermost:[2,32],outfit:33,outgo:25,outlin:[6,18,44],outliv:[2,4],output:[0,6,7,11,18,19,20,24,25,28,30,35,43,49,50,51,54,55],outsid:[2,8,15,25,29,30,38,39,46,53,56,58],over:[0,1,2,6,8,9,10,11,15,25,28,33,35,41,43,45,47,52,56,58],overal:[2,11,20,41,42],overflow:[6,8,11,23,30,45,46,50,58],overhead:[0,1,11,14,15,18,23,30,31,37,42,46,49,50,51,53,54,58],overlai:[6,47],overlap:15,overli:1,overload:[2,4,6,30,33,36,45],overloadable_unmark:1,overloadedoperatorkind:25,overnight:38,overrid:[1,2,6,8,9,14,38,41,44,58],overridden:[1,2,6,11,19,30,52,55,58],oversight:2,overview:[7,25,59],overwrit:[6,15,19,46,50,58],overwritten:[19,25],own:[1,2,6,8,10,14,15,16,17,18,19,20,21,23,25,30,33,36,39,41,47,52,53,58],owner:2,ownership:[25,30],ows:40,p0057:30,p0936r0:1,pack:[3,6,8,25,45,58],packag:[0,16,38],packet:6,pad:[6,19,58],page:[1,6,15,19,21,23,25,30,42,45,46,58,59],pagezero_s:6,pair:[2,3,4,6,7,18,19,25,30,33,39,47,52],palat:25,paper:[1,23,46],paraamet:1,paragraph:19,parallel:[1,2,6,30,40,42,58],param:[1,3,6,19,58],paramet:[1,4,7,8,9,16,17,18,20,24,25,28,32,33,35,36,39,47,57,58],parameter:19,parameter_list:4,paren:6,parenexpr:26,parent:[1,4,7,8,38],parenthes:[1,2,8,25,30,33,39,58],parenthesi:26,parmvar:26,parmvardecl:26,pars:[4,6,7,9,11,25,26,28,30,36,38,40,41,42,51,53,55],parsabl:58,parse_text_proto:8,parseabl:[6,11,58],parsearg:9,parseargumentsasunevalu:25,parsedattr:25,parsegnuattributearg:25,parsekind:25,parsemicrosoftdeclspec:25,parser:[11,21,36,58],parsingfilenam:25,parsingpreprocessordirect:25,part:[0,1,2,3,10,11,14,15,16,19,20,25,26,27,28,30,32,33,35,38,41,43,45,46,47,53,56,57,58],parti:[11,38,39,41,58],partial:[1,8,23,30,36,40,44],particular:[0,1,2,3,6,15,17,18,20,25,30,37,38,41,42,44,45,48,53,54,57,58],particularli:[1,16,20,36,38,41,55,57,58],partit:39,partli:19,pas_left:8,pas_middl:8,pas_right:8,pascal:[6,11],pass:[0,1,3,6,9,11,13,14,15,17,18,19,20,22,23,25,26,30,33,36,37,38,39,40,43,44,45,46,47,48,49,50,51,52,53,55,57,58],past:[2,25,38,45,51],patch:[1,8,30,51],path:[0,1,2,7,9,11,15,16,20,24,25,28,30,35,37,38,39,41,45,47,48,49,51,52,53,57,58],path_discrimin:58,pathcompon:39,pathnam:[6,58],pattern:[0,2,7,8,10,25,30,32,33,38,39,51,53,58],payer:46,pcdescr:47,pcflag:47,pch:[6,25,41,42,45,55],pchintern:38,pclmul:6,pcm:[38,55,58],pconfig:6,pcs_beg:47,pcs_end:47,pdb:[36,58],pdf:23,peculiar:2,pedant:[6,25,30,45,58],penalti:[1,2,8,15,19,45],penaltybreakassign:8,penaltybreakbeforefirstcallparamet:8,penaltybreakcom:8,penaltybreakfirstlessless:8,penaltybreakstr:8,penaltybreaktemplatedeclar:8,penaltyexcesscharact:8,penaltyreturntypeonitsownlin:8,pend:58,peopl:[8,16,21,24,25,33,58],per:[1,6,8,15,18,25,28,30,38,41,43,47,51,54,58],percent:[25,52],percentag:[51,52],perf:58,perfect:[0,37,46],perfectli:[2,25],perform:[0,1,2,3,4,6,10,11,15,16,18,20,21,25,30,31,37,38,39,40,41,44,45,50,52,53,54,55,57,58],performwith:2,perhap:[1,38],period:[15,25,38,51,53],permiss:[1,3,25],permit:[1,2,3,19,30,38,58],permut:30,persist:[1,21,38],person:[3,8],perspect:[18,25,38,41],pervas:2,peter:14,pfoo:11,pgo:51,phabric:21,phase:[1,2,11,20,25,31,52,58],phoni:6,php:58,phrase:[2,25],physic:[53,58],pic:[6,58],pick:[1,16,25,39,44,55,58],pid:[47,54,58],pidoubl:39,pie:[6,15,54],piec:[1,25,33,42,53,55,58],pifloat:39,pike:14,piovertwo:39,pipe:[1,6,20,25,45,58],pipelin:55,pitfal:1,pivot:46,pku:6,place:[1,2,3,6,7,8,14,15,16,18,19,25,30,38,39,41,48,51,53,55,58],placehold:[1,6,30],placement:[1,25,30,58],plai:1,plain:[1,25,45,54],plan:[34,38,42,54,56],platform:[1,10,11,15,16,19,20,29,30,36,41,45,50,55],platformtoolset:58,playstat:58,pleas:[1,9,11,14,17,21,25,30,39,41,42,45,46,51,55,58],plenti:8,plist:6,plop:8,plt:[6,15],plu:[11,25,27,54,58],plugin:[6,14,21,35,43,52,55,59],plural:25,pocl:58,pod:2,point:[0,1,2,6,7,8,14,15,16,18,21,25,28,31,33,35,37,38,39,43,45,51,53,57,58],pointe:[1,2,14,25,58],pointer:[0,1,3,4,6,8,15,18,20,23,25,30,36,37,39,46,53,57,58],pointeralign:8,pointeralignmentstyl:8,pointers_to_memb:36,pointertofunctionthatreturnsintwithchararg:4,pointertyp:[25,41],poison:[6,41,58],poison_in_dtor:37,poitner:1,polici:[14,52],polish:41,poll:25,pollut:25,poly8_t:30,poly8x16_t:30,polymorph:[6,14,15,30,32,58],pool:[18,30,51,58],poor:[2,38,58],poorli:2,pop:[2,4,19,30,41,50,58],pop_macro:19,popcnt:6,popcntd:6,popul:[3,20,41],popular:58,port:[0,30],portabl:[1,10,19,20,23,25,30,58],portion:[2,3,33,55],pose:18,posit:[0,1,2,6,7,19,30,35,37,39,41,45,53,54,57,58],posix:[6,8,55,58],possibl:[1,2,3,4,6,8,9,11,15,16,18,19,20,23,25,30,35,37,38,39,40,41,44,50,51,52,54,55,57,58],post:[2,33,52,58],potenti:[0,1,2,3,4,6,7,10,14,15,18,19,25,33,39,41,44,53,57,58],power8:6,power9:6,power:[1,2,10,19,25,30,33,43,56],powerpc64:58,powerpc:[20,25,42],ppc64:40,ppc:20,ppdirectiveindentstyl:8,ppdis_afterhash:8,ppdis_non:8,practic:[2,10,20,25,29,30,53,58],pragma:[2,6,8,25,36,38,40],pragmahandl:9,pragmahandlerregistri:9,pragmaintroducerkind:9,pragmatok:9,pre:[6,30,33,38,42],preambl:[1,41,55],prebind:6,prebind_all_twolevel_modul:6,prebuilt:[6,29,38],preced:[1,2,8,19,20,30,38,51,58],precis:[1,6,15,25,46,51,53,58],preclud:[2,14],precompil:[6,11,19,38,42,45,55,59],precondit:[2,32],predecessor:25,predefin:[7,8,11,19,25,39,41,45],predic:[25,32,58],predict:[15,30,50],prefer:[1,6,7,8,25,30,38,58],prefetchwt1:6,prefix:[1,6,7,8,9,16,18,23,27,30,33,38,39,41,42,47,58],preliminari:45,preload:6,prematur:19,prepar:[2,51],prepend:[18,45],preprocess:[6,11,19,20,25,30,38,42,58],preprocessor:[2,8,9,20,38,42,51,55,58],presenc:[1,2,3,25,30,38,51,53,58],present:[1,3,11,19,25,30,36,38,45,57,58],preserv:[1,2,6,8,18,19,25,58],press:[7,33],pressur:[23,30,42],pretend:[1,58],pretoken:[25,59],pretti:[16,24,25,36],prettifi:27,prevail:1,prevent:[0,1,2,5,6,15,19,25,30,46,52,53,58],previou:[1,2,11,19,24,25,33,35,38,44,45,52,54,58],previous:[0,2,18,19,25,39,45,53,58],prfchw:6,primari:[1,2,10,19,21,25,38,58],primarili:[1,2,10,25,38,41],primit:[2,19,44],principl:[2,3,14,20],print:[0,6,9,11,12,14,15,20,24,25,30,33,37,38,41,47,48,54,55,57,58],print_stacktrac:57,printabl:58,printer:[25,33],printf:[1,3,4,22,25,37,41,47],printfunctionnam:9,prior:[1,2,3,6,19,41,45,51,53,58],prioriti:[1,8],privaci:18,privat:[2,6,25,30,43,44,58],private_bundl:6,privatehead:38,privileg:[1,30],pro:56,probabilist:[23,46],probabl:[15,16,19,23,25,56],probe:[6,58],problem:[0,2,16,18,20,23,25,30,33,36,41,48,55,57,58],problemat:[1,54],proce:[2,41,43],procedur:[2,53],process:[0,1,2,5,6,7,9,10,11,15,18,20,24,25,28,30,31,32,35,38,42,47,49,51,54,58],processdeclattribut:25,processdeclattributelist:25,processinfo:39,processor:[1,11,30,42,50,58],prod:30,produc:[0,1,2,4,11,14,16,17,19,20,26,29,30,33,38,41,43,44,47,49,53,55,57,58],product:[1,20,25,33,39,57],prof:58,profdata:[6,51,58],profil:[6,19,25,33,42,49],profiledata:58,profit:30,profraw:[6,51,58],prog:[6,11],program:[0,1,2,3,4,6,7,8,10,11,14,15,16,17,18,19,24,25,29,30,31,32,33,35,36,37,38,39,41,42,43,45,46,49,50,52,53,54,55,56,57,58],programm:[1,2,4,16,25,30,38,39,53,57],progress:[0,2,17,25,30,36,42,52],prohibit:[2,8],project:[0,1,2,5,7,8,10,20,28,31,33,35,36,38,41,46,47,52,54,55,56,57,58],prolog:[21,50],prologu:[1,23,58],promis:[2,19,30,54,58],promot:[1,23,30,45,57,58],prompt:[19,58],prone:[2,10],propag:[1,2,17,19,25,45,51,58],proper:[25,30,31,57,58],properli:[1,2,15,25,45,52,58],properti:[1,3,4,6,8,14,29,33,58],proport:41,propos:[15,18,38,45,50],protect:[1,2,6,14,15,19,20,23,30,46,50,53,58],protector:[1,6,50],proto:8,protobuf:7,protocol:[1,2,6,8,21,39,45],prototyp:[1,3,30],provabl:[2,57],prove:[1,2,4,37,39],proven:30,provid:[1,2,3,4,6,8,9,10,14,15,16,17,18,19,20,21,24,25,29,30,32,33,35,36,38,39,41,42,43,44,45,46,47,48,50,51,53,54,55,56,57,58],provis:4,proviso:2,prune:[6,38,47],prune_aft:52,prune_interv:52,ps4:[11,19],pseudo:[21,38],pth:[25,59],pthread:[6,54],pthread_creat:54,pthread_join:54,pthread_t:54,ptr:[1,6,15,30,47],ptr_idx:1,ptr_kind:1,ptwrite:6,ptx:6,ptxa:[6,45],publicli:8,publish:3,pubnam:6,pull:38,punt:33,pure:[2,17,37],purpos:[0,1,3,6,12,20,21,23,25,37,38,41,46,50,54,58],push:[19,25,30,41,50,58],push_back:[35,44],push_macro:19,put:[2,6,7,8,16,19,24,25,28,30,33,53,58],pwd:[24,47],pyf:7,python:[7,21,28,56],q0btox:20,qconnectlint:21,qdsp6:6,qobject:21,qpx:6,qualif:4,qualifi:[1,14,21,24,25,38,41,43,57,58],qualiti:[1,20,58],qualtyp:41,quantiti:58,quarantin:23,queri:[1,2,20,25,30,32,38,41,44,58],question:[15,16,25,36,45,59],quick:[3,33,35,44],quickfix_titl:24,quickli:[2,18,20,25,30,32],quirk:33,quit:[2,38,58],qunus:[6,11,58],quot:[1,6,8,19,25,28,30,58],qvec:58,r10:50,r11:[1,50],r19:6,r284050:52,r298942:52,r600:58,race:[1,2,4,50,53,54,58],raii:53,rais:[2,23,30,39],ran:58,random:[23,25,46],rang:[1,6,7,8,11,15,21,25,33,34,39,44,55,57,58],ranges_for:8,rank:1,ranlib:52,rare:[1,2,20,25,46,58],rather:[1,2,4,6,15,19,20,25,30,33,38,41,50,53,55,58],raw:[8,19,25,41,42,45,51,58],rawstringformat:[8,45],rax:[15,50],rbx:15,rcx:[1,15,50],rdc:[6,45],rdi:15,rdpid:6,rdrnd:6,rdseed:6,rdx:[1,15],rdynam:6,reach:[2,9,19,26,30,33,38,41,57],reachabl:26,read:[0,1,2,3,6,7,11,15,16,19,23,25,28,33,34,35,37,39,41,42,47,50,52,53,58],read_onli:45,read_only_reloc:6,readabl:[32,37,58],reader:[33,53],readerlock:53,readertrylock:53,readerunlock:53,readi:24,readm:[9,21],readonli:[1,6,8,15],readwrit:[6,19],real:[0,2,6,19,20,25,30,33,35,37,38,54,58],realign:[1,6],realist:[23,38],realli:[2,3,8,20,25,58],realloc:6,reason:[0,1,2,3,18,20,23,25,30,37,38,53,54,56,58],reassoci:6,rebas:33,rebuild:[38,56],rebuildxxx:25,rebuilt:[38,58],recal:1,receiv:[1,2,19,29,30],recent:[2,15,24,25,33,41,45,52],recipi:2,reciproc:6,reclaim:2,recogn:[1,2,6,19,25,28,30,58],recommend:[0,1,2,14,15,30,38,58],recompil:[2,33,37,38,41],reconstruct:41,record1:30,record2:30,record:[6,8,15,19,25,30,36,41,42,58],recorddecl:[25,32],recordtofil:39,recov:[1,2,4,6,14,15,25,36,57,58],recover:57,recoveri:[4,6,25,36,58],rect:39,recurs:[6,25,26,33,38,58],recursiveastvisitor:[9,21,25,26,59],red:[6,25,30,39],redeclar:[1,41],redefin:38,redefine_extnam:19,redefinit:38,redirect:[1,15],redo:25,redon:42,reduc:[1,2,11,18,25,30,38,41,42,52,58],reduct:40,redund:[1,2,11,15,30,38,45,47,58],redundantli:45,redzon:[0,23],refactor:[10,21,26,56,59],refactoringact:44,refactoringactionrul:44,refactoringactionrulerequir:44,refactoringoptionsrequir:44,refactoringrulecontext:44,refcount:3,refer:[1,4,8,11,14,15,17,18,20,21,25,32,33,37,38,39,40,41,44,45,46,48,50,51,55,57,58,59],referenc:[3,4,11,14,19,25,29,33,38,41,42,58],reffer:58,reflect:[1,25,45,58],reflowcom:8,reformat:[8,10,34],refrain:2,reg:[6,58],regard:[1,25],regardless:[1,2,4,6,10,29,30,43,44,58],regehr:57,regener:58,regex:[7,8],region:[0,1,7,15,17,18,19,30,40,46,51],regist:[1,2,4,6,15,16,18,23,30,33,46,50,51,58],registr:2,registri:[1,9],regress:46,regroup:8,regular:[3,6,8,14,30,48,52,58],reinject:25,reinterpret:15,reinterpret_cast:[1,2,10,19,30],reject:[20,36,39],rel:[0,1,2,6,14,15,22,28,30,35,36,38,41,42,48,58],relat:[1,6,14,16,19,21,24,25,33,35,38,44,46,56,58],relationship:2,relax:[6,14,15,36,37],releas:[1,2,3,6,14,19,30,33,38,39,52,58,59],release_cap:53,release_shared_cap:53,relev:[15,16,25,29,30,43,55,58],reli:[1,2,14,15,23,30,33,36,38,39,46,53,58],reliabl:[2,58],reloc:[6,45,58],relocat:[6,45],remain:[1,2,25,30,33,38,45,46,53,58],remaind:[2,19],remap:6,remark:[2,6,19,25,58],rememb:[0,14,25],remov:[1,2,6,8,10,19,20,23,25,30,38,39,45,52,58],renam:[7,8,10,44,45,53],renameoccurr:44,render:[2,25,51],renderscript:1,rendit:58,reorder:[2,19,30,38],rep:6,repack:6,repars:[24,25,41],repeat:[1,25,32,38,58],repetit:25,replac:[1,2,7,11,15,18,19,25,30,34,37,38,39,44,53,58],replai:28,replic:30,report:[1,6,11,15,19,20,36,38,44,48,54],repositori:[9,10,24,33,35,38],repres:[1,2,3,4,6,15,19,20,25,30,32,33,39,41,42,44,47,57,58],represent:[1,2,6,19,25,38,41,45,55,57,58],reproduc:[11,19,58],reproduct:6,request:[1,2,4,6,18,19,58],requir:[1,2,3,4,6,14,16,18,20,23,24,25,28,29,30,33,36,37,39,40,41,42,45,46,47,50,52,55,57,58],requiredrefactoringopt:44,requires_cap:53,requires_shared_cap:53,rerol:6,rerun:[28,56],resembl:[26,32],reserv:[0,1,2,3,4,6,18,21,30,37,38,50,54],reset:[19,53],resid:[4,10,38,41,42,58],resolut:[1,2,6,19,45],resolv:[1,2,6,19,23,25,38,42,43,58],resort:30,resourc:[1,2,6,25,38,53],respect:[1,2,3,4,8,11,25,30,38,39,41,45,48,52,57,58],respondstoselector:30,respons:[1,2,11,15,20,25,30,35,40,41,44],rest:[2,3,10,25,41,47,58],restor:[1,2,33,45,46,58],restrict:[1,3,6,14,19,25,30,33,38,41,53,58],restructuredtext:25,result:[0,1,4,6,7,8,11,15,18,20,24,25,26,29,33,35,36,37,38,39,41,44,45,51,52,53,57,58],resum:30,ret:[15,18,23,30,50],ret_label:17,retag:23,retain:[1,3,4,6,8,25,42,51,58],retaincount:2,retpolin:6,retq:50,retriev:[18,25,30,32,35,42,43],retroact:2,return_void:19,returnfunctionptr:4,returnstmt:26,returntypebreakingstyl:8,reus:[2,25,51],rev:3,rev_i:30,rev_x:30,rev_z:30,revers:[30,41],revert:[7,30],review:[2,10],revis:[2,3,30,38,51,58],rewrit:[3,6,10,25,38],rewritten:[3,10,25,39,51],rex:25,rfg:15,rich:[25,58],richer:45,right:[1,2,3,8,16,19,20,25,32,33,38,45,47,57,59],rigor:32,rip:15,risc:[1,19],risk:[2,8,30,58],rizsotto:21,rnd:6,rob:2,robust:[21,38],rodata:[6,30],roeder:14,rol:15,role:[1,19,25],roll:2,root:[2,6,16,58],ropi:6,rotat:15,roughli:[20,23,25,42],round:[1,6,8],rout:15,routin:[1,2,3,20,34,41,53],rpass:[6,30,58],rpath:6,rprichard:21,rsp:50,rst:[3,25],rtag:21,rtbs_all:8,rtbs_alldefinit:8,rtbs_none:8,rtbs_toplevel:8,rtbs_topleveldefinit:8,rtd:6,rtlib:[6,11,55],rtm:6,rtti:[6,14,15,19,36,57,58],rule:[1,2,6,8,11,21,25,27,29,36,38,39,53,58],run:[0,1,4,6,7,10,11,14,16,18,19,20,24,25,28,30,31,33,37,42,43,47,50,54,55,56,57,58],runtim:[0,1,4,6,9,11,14,15,17,18,19,36,37,39,40,45,46,50,52,56,58],runtooloncod:[35,43],rvalu:[2,19,25],rwpi:6,safe:[1,2,6,19,30,36,42,45,53,58],safe_stack:30,safe_stat:1,safer:[2,16,39],safestack:[15,30,50,59],safeti:[2,23,30,39,59],sahf:6,sai:[2,24,25,38,58],said:[1,2,3,4,30,39],sake:45,same:[0,1,2,3,4,8,9,11,14,15,16,18,19,20,24,25,27,28,30,33,35,36,37,38,39,41,42,44,45,47,50,51,52,53,55,58],sampl:[1,6,35,44],sampleprofread:58,sampler:19,san:1,sandbox:0,sandybridg:1,sane:[2,6,38,58],sanit:[0,1,6,14,15,17,18,31,37,47,49,51,54,57,58,59],saniti:[25,45,53],sanitize_address:23,sanitize_hwaddress:23,sanitizer_stats_path:49,sanitizercoverag:[51,58,59],sanitizerstat:[58,59],sanstat:49,satisfi:[1,17,20,38,44],save:[1,2,6,7,11,15,20,30,41,46,50,58],sbpo_alwai:8,sbpo_controlstat:8,sbpo_nev:8,scaffold:33,scalabl:[38,42,52],scalar:[2,3,25,30,39],scale:18,scan:[2,11,45,52,58],scanf:[1,19],sce_orbis_sdk_dir:19,scenario:[2,29,58],scheme:[10,15,30,41,46,50,58],scope:[0,1,2,4,6,10,25,27,30,38,41,51,58],scoped_lock:53,scratch:[1,50],script:[0,6,47,58],scroll:33,sdata:6,sdc1:6,sdk:[1,30,58],seamlessli:2,search:[0,5,6,8,9,11,15,19,20,22,26,30,35,38,41,42,58,59],second:[1,2,3,4,6,7,8,14,19,20,25,30,33,36,38,39,44,47,49,52,53,58],secondari:2,secondid:33,secondvalueveryveryveryverylong:8,sectalign:6,sectcreat:6,section:[2,6,8,12,14,15,19,20,22,25,32,33,38,39,41,44,45,47,48,51,53,58],sectobjectsymbol:6,sectord:6,secur:[14,18,30,53,58],security_critical_appl:30,see:[0,1,2,3,5,6,8,9,10,14,15,20,21,22,23,25,26,27,28,30,32,33,35,36,38,39,41,42,44,45,46,47,48,50,52,53,55,57,58],seek:1,seem:[2,23],seen:[0,2,8,30,39,41],seg1addr:6,seg_addr_t:6,seg_addr_table_filenam:6,segaddr:6,segcreat:6,seglinkedit:6,segment:[1,19,42,46,50,58],segprot:6,segs_read_:6,segs_read_only_addr:6,segs_read_write_addr:6,seh:[6,36],sei:[1,53],sekar:46,sel_getnam:19,select:[1,6,7,9,19,20,25,38,39,51,55,57,58],select_ovl_candid:25,selector:[1,2,6,25,30,39,41,45],self:[4,8,25,30,37,45],sell:3,sema:41,semacodecomplet:25,semadeclattr:25,semahandl:25,semant:[1,6,11,14,21,24,27,30,36,40,41,50,53,55,56,58],semi:45,semicolon:[19,25],send:[2,19,21,30,39,49,58],sender:6,sens:[1,2,16,25,27,30,33,58],sensibl:[2,25,30],sensit:[1,18,25],sent:[2,4],sentinel:19,separ:[0,1,2,6,8,10,11,12,14,15,18,19,20,23,25,33,35,38,39,41,44,45,46,49,50,52,53,58],separatearg:20,seq:1,sequenc:[1,2,6,15,20,23,25,30,38,41,58],sequenti:[1,18,28,30,40,58],seri:[25,38,44,52],serial:[6,19,25,28,38,41,42,52],seriou:[2,41],serv:[2,10,20,21,25,33,41,42,53],server:[21,25,47],servic:[1,56],session:6,set:[0,1,2,3,4,6,7,8,10,11,14,15,16,18,19,20,21,24,25,27,29,30,33,35,37,38,39,40,41,44,45,47,49,51,52,53,54,55,56,57,58],setcompletionblock:8,setobject:39,setter:[2,3,6,30],setup:[5,6,10,15,16,35,45,59],setwidth:25,seven:20,sever:[1,2,4,7,8,12,15,19,25,29,30,33,41,42,44,55,57,58],sfs_all:8,sfs_empti:8,sfs_inlin:8,sfs_inlineonli:8,sfs_none:8,sgpr:1,sgx:6,sha:6,shadow:[17,18,19,23,30,46],shadowcallstack:59,shall:[1,2,3,18,38],share:[0,1,2,4,6,10,11,18,19,20,25,35,37,38,41,42,46,51,52,53,55,56,58],shared_lock_funct:53,shared_locks_requir:53,shared_object_with_vptr_failur:57,shared_trylock_funct:53,shell:[28,33,45,48,55],shell_error:24,shift:[2,25,41,57],ship:[3,22,51],shockingli:33,short__cal:1,shortcut:[7,38],shorten:2,shorter:[19,50],shortfunctionstyl:8,should:[0,1,2,3,4,6,8,10,11,14,16,17,19,20,22,24,25,28,30,33,36,37,38,39,41,44,45,46,47,50,51,53,54,55,57,58],shouldn:[18,25,38],show:[6,7,11,20,21,25,29,30,33,43,44,51,52,58],showinclud:58,shown:[2,20,30,44,58],shstk:6,shuffl:[30,58],shutdown:47,sibl:[0,6,37],side:[1,2,4,6,8,10,15,18,19,25,30,33,39,45,50,55,57,58],sigaltstack:46,sigil:2,sign:[2,6,11,25,30,39,48,57,58],signal:[2,6,21,23,46,49,57],signatur:[1,2,3,6,15,17,30,51,58],signed:19,signifi:2,signific:[2,6,8,19,20,23,45,58],significantli:[2,23,25,41],sigusr2:49,silenc:[1,58],silence_unsigned_overflow:57,silent:[1,2,24,30,45],silli:25,simd128:6,simd:[6,19,40,58],simdlen:1,similar:[1,2,4,7,8,10,14,15,19,23,25,30,35,37,38,41,42,44,47,51,52,53,58],similarli:[3,10,15,20,23,30,38,39,42,47,50,53,58],simpl:[2,8,9,16,18,19,23,25,26,28,30,33,36,38,39,41,42,44,47,49,56,58],simpler:[15,38],simplest:[3,21,33,51],simpli:[0,2,3,10,15,20,25,30,31,33,37,38,39,44,47,51,52,53,54,58],simplif:45,simplifi:[1,2,15,25,30,38,39,40],simplist:30,simt:[1,58],simul:[0,6],simultan:[2,52,53],sin:1,sinc:[1,2,3,6,16,20,21,23,25,28,30,33,38,39,41,42,45,46,47,53,58],sine:1,sinf:1,singl:[1,2,6,7,8,11,14,15,16,19,20,23,24,25,28,29,30,32,33,38,39,41,42,44,47,51,52,53,55,56,58],single_cpu:1,single_modul:6,sink:18,sinl:1,site:[1,7,14,25,45,46,49,58],situat:[2,58],size:[0,1,2,3,4,6,8,9,10,11,14,15,18,23,25,33,38,39,41,42,45,47,51,52,54,57],size_t:[1,6,17,18,30,38],sizeddealloc:58,sizeof:[1,3,4,17,19,25,30,47],sjlj:6,skim:33,skip:[2,7,19,42,45,51,55,58],slash:7,sled:6,slide:26,slightli:[23,37,38],sloc:[5,26],slot:[21,50,58],slow:[15,16,37],slowdown:[0,37,54],slower:16,slowpath:15,slp:6,sm_35:6,sm_60:45,small:[1,2,5,6,11,19,20,25,30,33,41,42,43,46,57],smaller:[0,2,11,15,19,23,25,45,51,57,58],smallest:7,smallestint:39,smart:53,smash:6,sn4rkf:20,snippet:[5,25,43,45],snowleopard:3,soft:[6,16],softwar:[3,6,15,16,21,23,38,46,53],sole:[1,2,25],solut:[2,25,28,33,58],solv:21,some:[0,1,2,6,8,9,10,14,15,16,18,19,20,21,23,25,26,29,30,32,33,34,36,37,38,39,40,41,42,43,44,45,46,47,48,50,52,53,54,55,57,58],some_directori:58,some_struct:1,some_union:1,somefunct:8,somelib:38,somelongfunct:8,somelooooooooooooooooongfunct:8,somemessag:3,someon:[2,38],someth:[1,2,3,16,20,21,25,30,32,33,58],sometim:[1,2,36,53,55,57,58],somewhat:[2,23,25,38,45],somewher:[8,11,25,47,58],song:46,soni:58,soon:[2,36,58],sophist:2,sorri:19,sort:[1,2,7,8,10,25,27,30,44,58],sortedarrayusingcompar:30,sortinclud:8,sortusingdeclar:8,sound:58,sourc:[0,1,2,3,6,7,8,9,10,11,14,16,17,18,21,22,23,24,25,27,28,29,30,32,33,34,35,37,38,39,42,43,44,45,47,48,54,55,57,58,59],sourcebasedcodecoverag:47,sourcebuff:25,sourcechangerefactoringrul:44,sourcemanag:[34,41],sourcemgr:34,sourcerang:44,sourcerangeselectionrequir:44,sourceweb:21,space:[0,6,8,14,15,18,19,23,25,28,30,37,41,45,49,52,54,57,58],spaceaftercstylecast:8,spaceaftertemplatekeyword:8,spacebeforeassignmentoper:8,spacebeforecpp11bracedlist:8,spacebeforectorinitializercolon:8,spacebeforeinheritancecolon:8,spacebeforeparen:8,spacebeforeparensopt:8,spacebeforerangebasedforloopcolon:8,spaceinemptyparenthes:8,spacesbeforetrailingcom:8,spacesinangl:8,spacesincontainerliter:8,spacesincstylecastparenthes:8,spacesinparenthes:8,spacesinsquarebracket:8,span:[6,8,51],sparc:[23,58],spars:[15,18,51],spawn:[38,58],speak:42,spec:[1,6,14,20],special:[0,1,3,8,11,14,15,16,17,18,20,25,28,30,37,40,41,51,53,54,56,57,58,59],special_sourc:48,specif:[1,2,6,7,8,10,11,14,15,17,18,19,20,21,24,25,26,29,32,33,34,35,36,38,39,40,41,42,43,44,45,46,48,51,53,55,56,57,59],specifi:[0,1,2,3,4,6,7,8,9,11,14,16,24,25,28,29,32,33,35,38,42,43,44,45,46,48,50,51,52,53,54,57,58],specul:[2,6,38],speed:[42,45,58],speedup:48,spell:[1,6,30,58],spent:58,spew:25,spill:[1,15,18,46],spir64:58,spir:58,splat:30,split:[1,2,6,8,30,38,45,47,58],splitemptyfunct:8,splitemptynamespac:8,splitemptyrecord:8,spmd:[1,40,58],spread:[11,16,58],spuriou:[2,53],sqrt:6,squar:[6,8,25,30,48],src:[0,1,3,14,17,37,48,54,55,57],src_label:17,src_vec:30,ssa:18,sse2:6,sse3:[6,16],sse4:[1,6,38],sse4a:6,sse:[1,6],ssse3:6,stabl:[15,22,38,56,58],stack:[0,1,2,3,4,6,11,15,25,30,37,38,41,42,48,51,54,55,58],stackrealign:6,stage:[2,25,33,42,54],stai:54,stale:6,stand:[7,10,25,31,32,41],standalon:[6,10,11,34,38,43,54,56,58],standard:[1,2,6,7,8,10,11,14,16,19,25,26,29,34,36,38,45,53,56,57],standpoint:41,stapl:25,starequ:25,start:[0,1,2,3,4,6,7,8,11,18,19,21,25,26,30,31,32,33,37,38,39,41,43,45,47,48,52,57,58],startoflin:25,startup:47,stat:[6,11,38,41,42,49,58],state:[0,1,2,11,18,19,20,25,30,38,41,42,55,58],statement:[2,3,4,8,26,30,33,47,51,58],statementmatch:33,static_assert:19,static_cast:[8,10,14,19,30],statist:[6,11,19,41,49,51,58],statu:[1,30,36,45],std:[1,2,6,8,9,10,11,14,25,27,29,30,34,35,38,43,44,45,52,58],stdafx:45,stdatom:30,stdc:[19,30],stdcall:6,stddef:35,stderr:[0,37,54,58],stdext:29,stdin:7,stdint:[30,47],stdio:[22,37,38,42,47],stdlib:[6,11,31,38,48,55],stdlibc:19,stdout:[6,7,24,58],stem:8,step:[0,1,2,6,19,20,21,24,25,28,31,32,35,37,38,43,44,51,52,55,56,58],stephen:14,still:[1,2,3,15,16,19,20,23,25,28,30,33,36,37,38,40,41,42,45,47,50,52,53,54,58],stmt:[25,26,33],stmtnode:25,stmtprinter:25,stmtprofil:25,stmtresult:25,stop:[2,8,11,19,20,25,41,43,47,55,58],storag:[1,3,11,15,18,25,30,38,58],store:[1,2,3,6,15,17,18,19,20,23,25,37,40,41,43,45,46,47,50,51,54,58],stp:50,str:[50,58],strai:[2,30],straightforward:[20,25,33,42],strang:25,strategi:[32,38,42],strbuf:1,strchr:[2,30],strcmp:30,stream:[10,25,34,42],strength:42,strengthen:15,stret:3,strex:30,strict:[1,2,6,11,30,45,58],strictli:[1,2,53,58],strictstr:58,strike:2,string1:8,string1rang:30,string2:8,string:[1,2,6,7,8,9,11,15,20,24,27,28,32,33,35,38,41,44,45,47,51,52,58],string_liter:25,stringargu:25,stringiz:25,stringref:[43,44],stringwithutf8str:39,strip:[2,6,7,47,57,58],strip_path_prefix:47,strive:44,strlen:[11,25,30],strncat:19,strncmp:[19,30,39],strnlen:1,strnlen_chk:1,strong:[2,3,4,6,19],stronger:[46,50,53],strongli:[1,19,53],stroustrup:8,struct:[0,1,3,6,8,15,18,25,27,29,30,36,38,39,41,49,58],structur:[2,3,6,8,14,17,19,20,25,32,36,41,42,44,45,51,53,58],studio:[8,19,38,45,58],style:[1,2,4,6,7,10,11,20,21,25,30,38,42,45,53,56,58,59],styleguid:34,sub:[1,2,15,16,25,30,33,38,39,41,51],sub_librari:6,sub_umbrella:6,subclass:[1,2,19,30,39,44],subcommand:44,subdirectori:[38,58],subexpr:25,subexpress:[25,41],subgroup:[1,58],subject:[1,2,3,4,19,38,55],subjectlist:25,sublicens:3,subminor:19,submodul:[19,41],subnam:38,subobject:[2,19],suboper:2,subprocess:[19,20],subq:50,subrecord:6,subscript:6,subsequ:[0,1,2,6,11,20,25,30],subset:[2,14,25,29,30,56,57,58],subsetsubject:25,substanti:3,substat:41,substitut:[2,4,19,25,27,36,42,49,58],substr:[2,24],subsum:[18,20],subtarget:1,subtask:20,subtl:[1,2,38],subtract:[19,30],subtyp:2,subvers:[10,30,33,45,55],subvert:14,subview:1,succe:[1,41,51],succeed:44,success:[1,20,53],successfulli:[1,2,6,36,44,58],successor:25,sudo:[24,33],suffer:[2,42,50],suffic:25,suffici:[1,2,15,58],suffix:[1,8,19,20,25,30,39],sugar:[1,2,21],suggest:[0,1,19,23,25,36,37,45,54],suit:[0,8,14,36,54,57],suitabl:[1,6,10,11,19,25,44,53,55,57,58],sum:[16,30,58],summar:3,summari:[3,6,11,12,31,51,52],sunk:1,superclass:[2,19,30],superset:[2,19,25],supertyp:2,superview:1,supervisor:1,superword:6,supp:[0,57],supplement:2,suppli:[3,4,8,30,38,54,55,58],support:[4,6,7,8,10,11,16,17,18,19,20,31,33,35,36,38,39,41,42,44,47,48,49,50,51,52,53,55,59],supportsapilevel:1,suppos:[1,3,15,19,33,38],suppress:[2,6,14,19,30,37,38,45,54,58],sure:[0,1,8,16,20,25,31,33,37,53,57,58],surfac:57,surpris:2,surrog:19,surround:[8,19],surviv:[1,2],suspend:30,suspici:[1,6,57,58],svn:[7,10,33,34,55],svr4:6,sw0:1,sw1:1,swap:[25,30],swapcontext:46,sweep:46,swi:1,swift:[1,16],swiftprotocol:1,swig:53,swizzl:30,symbol:[1,3,6,11,15,19,20,29,38,44,47,51,54,58],symbolnam:21,symcov:47,symlink:38,symmetr:1,symposium:46,sync:33,synchron:[2,4,8,25,54],synonym:[0,1,6,19],syntact:[1,2,7,24,25,56],syntax:[2,4,6,8,10,11,25,28,30,33,35,38,39,41,53,56,58],syntaxonlyact:[33,35],synthes:[2,3,6,19,25],synthesi:[2,30],sys:[16,38],sysroot:[6,16,58],system:[1,2,3,6,9,11,16,17,18,20,22,25,33,36,38,41,46,50,53,55,56],system_framework:30,system_head:[19,38,58],syzkal:47,szeker:46,tab:[7,8,58],tabl:[1,2,6,11,18,25,26,30,36,45,57,58],tablegen:[8,25],tabwidth:8,tag:[1,17,21,23,30,53,59],tail:[0,1,6,37],tailor:12,taint:23,take:[1,2,3,4,6,8,9,11,14,19,22,24,25,27,30,32,33,35,36,38,39,43,44,49,51,56,58],taken:[1,2,8,14,15,19,25,30,41,46,58],talk:[25,44],tamper:1,target:[3,8,15,23,24,25,26,29,38,40,41,45,50,55,56],target_link_librari:[33,43],targetaddr:15,targetinfo:[25,58],targetspecificattribut:25,task:[20,32,40,47],taskloop:40,tbaa:6,tbi:23,tblgen:[25,58],tbm:6,tbss:6,tc1:58,tc2:58,tc3:58,tdata:6,teach:[25,32,36],team:[40,45],teardown:2,technic:[1,2,14,38,58],techniqu:[15,25,41,45,58],technolog:[1,46,50],tell:[6,25,33,58],temp:[6,11,20],templat:[1,6,8,25,27,32,33,38,51,53,58],templateidannot:25,temporari:[2,6,11,20,30,58],tend:[2,38],tent:[19,25],terabyt:[0,37],term:[1,2,15,20,24,30,42,57],termin:[1,2,3,19,25,35,39,58],terminolog:53,ternari:[8,25],test:[0,1,2,8,10,15,20,24,25,26,27,30,33,35,36,38,39,41,42,45,46,53,54,57,58],testb:15,tested_st:1,testframework:30,testm:4,text:[1,6,7,8,19,25,27,30,33,35,38,44],textdiagnosticbuff:25,textdiagnosticprint:25,textproto:8,textsubstitut:25,textual:[25,38,55,58],tgsin:1,than:[0,1,2,4,6,8,11,14,15,16,20,21,23,25,29,30,32,33,37,38,39,40,41,46,47,50,53,54,55,56,57,58],thankfulli:33,the_new_extension_nam:58,thei:[1,2,3,4,6,8,10,11,14,15,16,20,21,25,27,29,30,32,33,35,36,37,38,39,41,44,45,48,51,53,55,56,58],theletterz:39,them:[1,2,3,4,6,10,14,15,16,20,22,24,25,30,32,33,35,38,39,41,42,43,44,45,46,47,51,53,55,58],themselv:[8,10,14,20,25,38,43,44],theoret:[2,42],theori:2,therefor:[1,2,15,25,29,30,38,39,41,46,54,58],thi:[0,1,3,4,6,7,8,9,10,11,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,36,37,38,39,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58],thin:[6,11,14,52,58],thing:[2,16,20,21,25,28,30,43,58],think:[8,25,30,53],thinlto:[6,11,59],third:[1,2,25,30,36,38,39,41,49],those:[1,2,4,6,7,8,9,10,14,15,17,20,25,30,32,33,36,38,40,41,42,45,47,53,55,58],though:[1,2,19,25,30,33,38,46,51,54,58],thousand:[18,32,58],thrash:1,thread1:54,thread:[0,2,4,6,11,19,30,36,38,40,46,48,50,52,58,59],thread_annotation_attribute__:53,thread_loc:6,thread_safety_analysis_mutex_h:53,thread_sanit:30,threadpriv:58,threadsaf:6,threadsafeinit:58,threadsanit:[1,6,30,48,58,59],threadsanitizercppmanu:54,three:[1,2,10,15,16,19,25,30,33,39,41,42,51,53,58],threshold:[6,58],thrice:30,through:[1,2,3,6,9,11,17,19,20,25,30,33,34,35,37,38,41,43,45,46,48,51,52,53,56,57,58],throughout:[38,41,58],thrown:[4,11,19],thu:[1,3,4,7,8,11,15,18,25,26,30,35,38,40,41,42,43,47,53],thumb:[6,16,58],thunk:6,thusli:3,tice:14,tidbit:30,tidi:1,tied:[1,2,30],tighten:2,tightli:[2,25,58],time:[0,1,2,4,6,11,14,15,16,18,20,25,26,28,29,30,31,32,33,35,36,37,38,39,41,42,44,45,47,48,49,50,51,52,53,54,55,57,58],timestamp:6,tini:41,tiny_rac:54,tip:35,titl:58,tls:[6,38,58],tls_model:[11,58],tmp:[11,20,47,51],tmpdir:11,to_glob:58,to_loc:58,to_priv:58,todai:[38,39],todo:[23,58],togeth:[0,2,7,8,11,15,19,20,25,29,30,37,38,45,47,51,54,55,57,58],toggl:35,toi:21,tok:25,token:[4,6,9,10,11,30,34,38,39,41,42,53,58],tokenkind:25,toler:[2,18],tolow:[17,18],tom:14,ton:25,too:[1,2,3,6,15,22,52,53,58],took:41,tool:[0,1,2,5,9,11,13,14,16,17,18,20,23,25,26,28,30,32,34,36,37,38,40,41,43,44,45,46,48,51,54,56,58],toolchain:[6,19,36,45,58,59],toolkit:10,toolset:58,top:[2,7,8,9,15,19,20,23,25,28,30,37,38,41,46,56,58],toplevel:[8,26,35],topleveldefinit:8,tort:3,total:[3,51,52,58],total_head_sampl:58,total_sampl:58,totyp:30,touch:7,tovalu:39,toyclangplugin:21,tparam:19,tr1:10,trace:[0,1,6,37,54,58],trace_pc_guard:47,track:[1,2,6,10,16,17,18,25,38,45,51,53,58],tracker:58,trade:[23,50],tradeoff:[15,29],tradit:[2,6,30,58],trail:[1,8,19,58],trait:58,transcendent:6,transfer:[2,15],transferfrom:53,transform:[2,6,10,25,32,36,44,52,58],transformxxx:25,transformyyi:25,transit:[1,3,25,38,41,53],translat:[0,1,2,3,6,11,14,17,18,26,28,29,30,32,33,35,38,39,40,41,43,44,45,53,58],translationunitdecl:[5,25,26,41],transpar:[1,11,19,41,42,52],transparent_union:19,trap:[6,15,19,23,50,57,58],travers:[25,26,33,41,43],traversedecl:43,treacher:2,tread:2,treat:[2,3,4,6,11,14,17,19,25,29,30,38,48,53,58],treatment:1,tree:[6,9,10,11,20,24,25,28,32,33,35,38,41,45,58],treetransform:25,tri:[1,2,20,21,25,27,53,58],triag:58,trick:[2,38],tricki:[25,58],trigger:[2,38,41,56],trigraph:[6,11,19,25,58],trim:57,trip:[1,30],tripl:[6,19,41,45,51,58],trivial:[1,2,17,19,25,30,33,38,40],trivial_abi:19,truct:3,trueconst:1,truenumb:39,truncat:[15,18,19,45,51,57],trunk:[10,30,34,55],trust:[2,15],truthi:1,try_acquire_cap:53,try_acquire_shared_cap:53,tryannotatecxxscopetoken:25,tryannotatetypeorscopetoken:25,trylock:53,tsan:54,tsan_interceptor:54,ttext:6,tune:[1,52,54],tupl:[1,58],turn:[0,2,3,6,11,19,20,25,26,30,33,38,45,46,48,53,58],tutori:[9,26,35,43,59],tvo:[1,30],tweak:[36,58],twice:[2,30],two:[1,2,4,6,8,9,14,15,16,18,19,20,25,26,29,30,33,34,35,38,39,40,41,44,46,48,51,53,57,58],twolevel_namespac:6,twolevel_namespace_hint:6,twophas:58,txt:[1,23,28,33,43,48,52,58],type1:30,type2:30,type3:30,type:[0,3,6,8,10,11,14,15,17,18,20,26,27,33,35,37,38,39,40,42,43,45,48,49,50,52,53,54,57,58],type_alia:30,type_express:4,type_idx:1,type_tag_idx:1,type_trait:[30,38],typeattr:25,typecheck:2,typedef:[1,2,4,25,30,38,39,58],typedefdecl:5,typedeftyp:25,typedev:6,typeid:19,typeinfo:15,typeloc:43,typenam:[1,8,19,25,30,36,51,58],typest:1,typic:[0,1,2,11,15,16,21,23,25,36,37,38,42,44,47,53,54,55,58],ubfx:23,ubsan:57,ubsan_opt:57,ubuntu:0,ucontext:46,ud2:[15,50],uglier:38,uint16_t:[30,47],uint32_t:[30,47],uint64:15,uint64_t:[30,47],uint8_t:[30,47],uint:7,uintptr_t:47,ulimit:[0,37,54],ultim:[2,11,25],umbrella:[6,44,53],umr2:37,umr:37,unabl:[1,19],unaccept:[2,50],unaffect:8,unalign:[6,19],unannot:[1,19],unari:[4,8,25,30,33],unaryoper:33,unavail:[1,38],unavoid:[0,2],unbalanc:2,unbeliev:58,unblock:0,unbound:25,unbridg:2,unchang:28,uncheck:15,unclear:1,uncommon:[2,25],uncomput:25,uncondit:[25,30],uncondition:30,unconsum:[1,19],uncontroversi:2,uncov:36,undeclar:[19,53],undef:[1,6,11,18,19,38,41],undefin:[1,2,3,6,11,14,18,30,38,58],undefinedbehaviorsanit:[58,59],undefinit:38,under:[0,1,2,3,4,6,7,14,15,17,18,19,21,25,34,37,38,39,44,45,46,48,50,52,53,54,55,58],undergo:[2,19,25],undergon:58,underli:[1,2,3,10,15,18,19,25,37,38,39,45,53,55,58],underneath:58,underscor:[1,2,6,30,58],understand:[2,8,11,16,20,21,25,32,33,37,41,49,51,53,58],underwai:45,undo:7,undocu:[25,58],unelabor:19,unescap:28,unevalu:[1,19,25],unexpect:[2,19],unexported_symbols_list:6,unfold:25,unforgiv:[2,25],unformatted_cod:8,unfortun:[1,2,25,33,38],unhandled_except:19,unicod:19,unifi:[7,19],uniform:[1,6,45],unimport:[1,38,58],uniniti:[1,2,3,14,37,58],uninstru:[15,17,37,47,50,51],uninstrument:17,unintend:38,unintent:57,unintention:2,unintrus:1,unintuit:1,union:[1,3,8,17,18,25,27,32,41,58],uniqu:[1,6,11,15,20,25,30,33,38,39,41,58],unique_ptr:[8,25,43,53],unit:[0,1,2,6,11,14,16,17,18,25,26,28,29,30,32,35,38,39,41,43,44,45,53,58],univers:[19,20,42],unix:[28,30,38],unknown:[1,15,16,17,38,58],unknownmemb:36,unknowntyp:36,unlabel:[17,18],unless:[1,2,3,8,14,17,19,25,30,38,44,50,52,53,57,58],unlik:[1,2,15,17,18,25,38,39,42,53,54,57,58],unlist:30,unlock:53,unlock_funct:53,unlucki:38,unmanag:2,unmark:1,unmodifi:58,unnam:[25,29,45],unnecessari:[1,2,19,20,41],unneed:21,unordered_map:10,unpack:16,unpleasantli:2,unpredict:[19,30,51],unprotect:46,unprototyp:1,unqualifi:[2,27,30,58],unreach:[6,19,57,58],unrealist:38,unrecogn:19,unreduc:26,unregist:2,unrel:[14,41],unrelatedcast:14,unresolv:15,unrol:[6,19,58],unroll_count:[1,30],unroot:2,unsaf:[2,6,30,46,53],unsafe_unretain:[2,19,30],unsafeincr:53,unsav:7,unsequenc:[2,19],unsign:[0,1,3,5,6,8,9,25,30,37,39,45,51,58],unsiz:30,unspecifi:[2,4,8,11,19,25,58],unstabl:14,unsuit:[14,55],unsupport:6,unsur:44,unten:2,untermin:19,until:[2,4,30,31,32,36,53,58],untransl:20,unus:[6,11,18,25,30,38,58],unusu:25,unwant:1,unwind:[1,2,6,11,30,51],unzip:16,upcom:40,updat:[2,4,8,11,17,25,40,41,44,51,53],upgrad:[1,25,45,51],upload:58,upon:[1,2,3,4,14,38,39,58],uppercas:2,upsid:20,upward:41,urg:1,usabl:[8,30,58],usag:[1,6,7,8,30,33,47],use:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,53,54,55,56,57,58],use_lbr:58,use_lock_style_thread_safety_attribut:53,use_multipli:30,used:[0,1,2,3,4,5,6,7,8,10,11,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58],useful:[1,2,3,10,11,21,24,25,30,33,37,38,41,44,47,57,58],useless:38,usenix:46,user:[1,2,5,6,8,9,10,11,14,17,18,20,21,22,23,25,26,28,32,36,38,39,40,41,42,43,44,45,47,48,52,53,59],userdata:18,userdefinedconvers:24,uses:[0,1,2,3,6,8,10,11,14,15,16,17,18,20,21,23,25,28,29,30,32,33,37,38,39,40,42,43,45,51,53,54,55,58],usetab:8,usetabstyl:8,using:[0,1,2,3,4,6,7,8,9,10,14,15,17,18,20,21,23,24,25,29,30,32,35,37,38,39,40,41,42,43,44,45,47,48,51,52,53,54,55,57,58,59],usr:[0,3,24,28,33,38,52,58],usual:[0,1,2,3,4,6,9,10,15,16,20,25,26,28,30,36,37,38,39,46,51,53,54,58],usualunaryconvers:25,ut_alwai:8,ut_forcontinuationandindent:8,ut_forindent:8,ut_nev:8,utf:[19,25,39,58],util:[1,2,8,25,41,42,51,52],uuid:[19,29],v4si:30,v6m:16,v7a:16,v7m:16,va_arg:19,va_list:1,va_start:[1,19],vae:6,vagu:2,val2:1,val3:1,val4:1,val:[1,30,45,47],valgrind:37,valid:[1,2,3,4,6,8,11,15,19,21,25,28,30,38,39,41,58],valu:[1,3,4,6,7,8,10,11,14,15,17,18,20,23,25,30,32,33,36,37,38,39,41,43,44,45,46,47,51,52,53,57],value1:8,value2:8,valuedecl:33,valuetyp:10,valuewithbyt:39,valuewithcgpoint:39,vardecl:[5,26,33,41],vari:[1,2,41,55,58],variabl:[0,6,8,11,15,18,21,24,25,26,33,36,37,40,41,45,46,49,51,52,57,58],variad:[1,4,25,32,39],variant:[15,17,23,25,38,58],variat:[4,30],varieti:[7,38,45,46,55,58],variou:[0,1,2,3,4,6,10,15,21,25,30,38,41,44,51,53,57],vast:[1,2,25,38],vcall:[14,29,48,49],vcvarsal:58,vec1:30,vec2:30,vec:19,vec_add:30,vec_step:19,vector4doubl:30,vector4float:30,vector4short:30,vector:[1,2,6,8,9,11,20,25,34,35,38,40,47,58],vector_s:19,vectorize_width:30,vend:38,vendor:[16,25,30,38,58],verbatim:[15,19,25],verbos:[6,7,10,11,38,55,57,58],veri:[1,2,4,10,20,25,30,31,33,37,38,41,47,50,51,53,57,58],verif:[15,46],verifi:[6,15,21,23,25,30,32,41,46],verifydiagnosticconsum:25,verifyintegerconstantexpress:25,versa:[2,4,18,23,41,53],version:[1,2,3,4,6,7,9,10,11,14,15,19,20,25,30,33,35,37,38,39,41,45,51,52,53,55,58],verylongimportsareannoi:8,veryveryveryveryverylongcom:8,veryveryveryveryveryveryveryveryveryveryverylongcom:8,veryveryveryveryveryveryveryveryveryveryverylongdescript:8,vfp:[1,19],vgpr:1,vi1:30,vi2:30,vi3:30,vi4:30,vi5:30,via:[1,2,3,4,6,7,9,11,14,15,16,19,20,25,26,30,38,39,42,43,45,52,53,54,55],viabl:[1,19,25,58],vice:[2,4,18,41,53],view:[12,25,39,41,42,51],vim:[24,33],vimrc:[7,24],violat:[1,2,11,14,15,25,29,30,38,45,53,57],virt:[6,30,45],virtual:[0,1,6,25,29,33,36,37,43,45,46,48,49,52,54,56,58],vise:23,visibl:[1,6,11,14,25,38,41,53,58,59],visit:[11,25,43],visitcxxrecorddecl:43,visitnodetyp:43,visitor:43,visual:[6,8,19,25,30,36,38,44,45,47,58],vital:58,vla:[57,58],vmb:58,vmg:58,vmm:58,vms:58,vmv:58,voidarg:4,voidblock:3,volatil:[2,6,25,30,37,41,58],volodymyr:46,volum:1,vote:30,vpclmulqdq:6,vprintf:1,vptr:[14,57,58],vsi:30,vsx:6,vtabl:[6,11,14,29,45,58],vtordisp:58,vulner:[6,14,46,50],wai:[1,2,6,7,8,9,15,16,18,19,24,25,26,27,28,29,30,32,33,35,38,39,40,41,45,46,48,51,53,56,58],wait:[19,53],waitpkg:6,walk:[25,48],walkthrough:[9,35],wall:[24,58],wambigu:58,want:[0,1,2,8,10,14,16,20,22,24,25,26,30,32,33,34,35,36,43,44,45,47,48,56,57,58],warn:[1,6,11,17,21,25,30,36,37,38,39,45,54,56],warn_:25,warn_attribute_wrong_decl_typ:25,warranti:3,wasn:[19,38],wast:55,watch:25,watchdog:23,watcho:[1,30],water:2,wave:1,wavefront:1,wbind:58,wbnoinvd:6,wcdicw:20,wchar:6,wchar_t:[6,30,38],wconfig:38,wconvers:45,wcschr:30,wcscmp:30,wcslen:30,wcsncmp:30,wdeprec:[6,30],wdocument:58,weak:[1,3,6,38],weak_framework:6,weak_import:1,weak_librari:6,weak_reference_mismatch:6,weaker:15,weakli:[1,30],weakrefer:30,web:[14,21,25,45,58],webkit:[7,8],websit:58,week:52,weigh:2,weight:[2,58],weird:25,welcom:[23,54],well:[1,2,3,4,7,8,10,11,14,15,16,19,20,25,30,34,36,38,39,41,42,44,51,52,55,56,57,58],went:37,were:[1,2,4,8,11,14,19,20,21,25,27,30,32,37,38,39,41,44,45,47,53,58],werror:58,weveryth:58,wextra:[45,58],wfoo:58,wformat:[1,30,58],wframe:6,wg21:[1,30],what:[1,2,6,13,15,16,20,25,30,32,33,35,36,38,53,57,58],whatev:[20,41,47,58],whatsload:6,whatsoev:2,when:[0,1,2,3,4,6,7,8,11,15,16,18,19,20,24,25,29,30,32,35,36,37,38,39,41,42,43,44,45,46,47,50,51,52,53,55,56,58],whenev:[1,2,3,8,19,25,33,41,53,58],where:[1,2,3,4,8,10,11,14,15,16,17,18,20,21,23,25,28,29,30,32,35,36,41,45,50,53,55,57,58],wherea:[1,2,14,16,18,30],wherev:[1,4,25,33,40],whether:[0,1,2,3,4,6,8,11,14,15,17,18,20,25,28,29,30,33,35,37,38,39,41,43,45,46,50,53,54,58],which:[0,1,2,3,5,6,7,8,9,10,11,12,14,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,33,35,36,38,39,41,42,43,44,45,46,48,50,51,52,53,55,56,57,58],white:6,whitelist:6,whitespac:[8,10,25,58],who:[1,2,10,26,30,33,38,58],whole:[1,6,15,26,29,38,45,52,58],whom:3,whose:[1,2,6,14,19,25,26,30,33,44,50,57,58],why:[1,2,25,33],whyload:6,wide:[1,15,19,36,38,45,51,55,58],wide_string_liter:25,widecharact:30,width:[1,6,8,30,57],wiki:[0,31,37,54,58],wild:8,wildcard:[0,38,48],willing:8,wimplicit:1,win32:[1,16],win:[2,11,58],wincomplet:38,window:[1,6,11,15,24,29,36,40,50,52,55],winmain:45,winx86_64abiinfo:58,wire:25,wish:[1,2,16,25,33,42,45,55],withdraw:53,withdrawimpl:53,within:[1,2,4,6,7,8,10,14,15,17,18,19,25,30,38,39,41,51,53,55,58],withnumb:1,without:[1,2,3,4,6,7,8,11,14,18,19,20,21,25,28,29,30,33,38,41,44,45,46,47,48,50,53,54,55,57,58],wlarg:6,wmain:45,wmemchr:30,wmemcmp:30,wmodul:38,wno:[6,19,45,58],wnonport:6,woboq:21,woboq_codebrows:21,won:[8,16,25,38,51],woption:58,word:[2,3,6,15,25,30,38,53,58],work:[0,1,2,3,6,7,8,10,11,14,15,16,17,19,20,24,25,26,28,29,30,32,33,35,36,37,38,39,41,42,44,45,46,47,48,50,51,53,54,55,58],workabl:2,workaround:[6,38,51,53],workflow:7,world:[2,3,4,16,22,25,36,37,38,41,58],worri:2,wors:2,worst:[2,15],worth:[20,25],would:[1,2,3,4,6,7,8,14,15,19,20,23,25,30,31,33,35,36,38,41,44,46,50,53,55,56,57,58],wouldn:33,wrap:[8,17,25,30,39,53],wrapper:[5,17,18,21,25,30],wrapv:6,writabl:[6,11,45],write:[1,2,3,6,7,11,17,19,20,21,24,25,30,33,34,36,37,38,39,41,42,46,49,50,51,53,54,56,58,59],write_onli:45,writer:[51,53],written:[1,2,7,19,21,25,26,30,32,36,38,39,41,45,47,48,49,51,55,58],wrl:36,wrong:[2,14,16,19,25,57,58],wrongli:29,wrote:[21,25],wrt:58,wself:45,wsystem:58,wthread:53,wtype:1,wundef:25,wunguard:30,wunus:1,wunused_macro:25,wwinmain:45,www:[1,23],x18:[6,50],x20:6,x29:50,x30:50,x64:[1,36,58],x86:[1,11,14,15,16,25,36,40,41,45,46,57],x86_64:[0,1,14,15,16,17,18,20,31,40,50,57,58],x86intrin:1,x86v7a:16,x87:6,x_label:17,xalancbmk:14,xanalyz:[6,11],xarch_:[6,20],xarch_i386:20,xassembl:[6,11],xclang:[6,9,22,25,26,45,58],xcode:[52,56],xcu:1,xcuda:6,xgot:6,xlinker:[6,11],xml:[7,34],xmm0:1,xmm5:1,xmm:1,xmmintrin:30,xnack:6,xop:[1,6],xopenmp:[6,45],xor:50,xpreprocessor:[6,11],xrai:[1,6],xsave:6,xsavec:6,xsaveopt:6,xxx:58,xyzw:30,yaml:[6,8,58],ycfoo:45,year:30,yes:30,yesnumb:39,yet:[0,1,2,14,19,25,36,38,40,41,46,54],yield:[2,25,38,42,58],ymm0:1,ymm5:1,ymm:1,you:[0,1,7,8,9,10,11,13,14,15,16,19,21,22,24,25,26,30,32,33,34,35,36,37,38,39,41,42,43,44,45,47,49,50,52,55,56,57,58],your:[0,1,7,8,9,10,11,14,16,21,22,24,25,26,30,31,33,35,36,37,38,39,41,44,45,50,54,55,57,58,59],yourattr:25,yourself:[0,26],yufoo:45,yyi:58,zero:[0,1,2,3,4,6,7,8,18,25,30,33,37,45,51,57,58],zip:16,zlib:19,zone:6,zvector:6,zzz:58},titles:["AddressSanitizer","Attributes in Clang","Objective-C Automatic Reference Counting (ARC)","Block Implementation Specification","Language Specification for Blocks","ClangCheck","Clang command line argument reference","ClangFormat","Clang-Format Style Options","Clang Plugins","Overview","clang - the Clang C, C++, and Objective-C compiler","diagtool - clang diagnostics tool","Clang \u201cman\u201d pages","Control Flow Integrity","Control Flow Integrity Design Documentation","Cross-compilation using Clang","DataFlowSanitizer","DataFlowSanitizer Design Document","Diagnostic flags in Clang","Driver Design & Internals","External Clang Examples","Frequently Asked Questions (FAQ)","Hardware-assisted AddressSanitizer Design Documentation","How To Setup Clang Tooling For LLVM","\u201cClang\u201d CFE Internals Manual","Introduction to the Clang AST","ABI tags","JSON Compilation Database Format Specification","LTO Visibility","Clang Language Extensions","LeakSanitizer","Matching the Clang AST","Tutorial for building tools using LibTooling and LibASTMatchers","LibFormat","LibTooling","MSVC compatibility","MemorySanitizer","Modules","Objective-C Literals","OpenMP Support","Precompiled Header and Modules Internals","Pretokenized Headers (PTH)","How to write RecursiveASTVisitor based ASTFrontendActions.","Clang\u2019s refactoring engine","Clang 7.0.0 Release Notes","SafeStack","SanitizerCoverage","Sanitizer special case list","SanitizerStats","ShadowCallStack","Source-based Code Coverage","ThinLTO","Thread Safety Analysis","ThreadSanitizer","Assembling a Complete Toolchain","Choosing the Right Interface for Your Application","UndefinedBehaviorSanitizer","Clang Compiler User\u2019s Manual","Welcome to Clang's documentation!"],titleterms:{"8bit":47,"break":19,"case":[15,18,19,48],"char":19,"class":[19,25,30],"const":[3,19],"default":[19,30,47],"enum":[19,39],"export":[38,51],"final":19,"float":[19,30],"function":[1,3,14,15,19,27,30,32],"goto":19,"import":[3,19,38],"int":19,"long":19,"new":[10,19,45],"null":19,"public":[14,19,46],"return":[2,15,19,30],"short":15,"static":[6,19,30,45,51,58],"super":19,"switch":19,"var":19,"void":[2,19],Adding:[8,25],For:24,Ones:15,PCs:47,The:[4,20,25,51,53,58],Use:[18,37,38],Using:[9,24,33,38,41,42,43,51,58,59],__attribute__:[0,1,3,37,46,50,54,57],__autoreleas:2,__block:[3,4],__builtin___get_unsafe_stack_bottom:46,__builtin___get_unsafe_stack_ptr:46,__builtin___get_unsafe_stack_start:46,__builtin___get_unsafe_stack_top:46,__builtin_addressof:30,__builtin_assum:30,__builtin_bitrevers:30,__builtin_canonic:30,__builtin_convertvector:30,__builtin_operator_delet:30,__builtin_operator_new:30,__builtin_readcyclecount:30,__builtin_shufflevector:30,__builtin_unpredict:30,__builtin_unreach:30,__c11_atom:30,__constant:1,__declspec:1,__fastcal:1,__gener:1,__global:1,__has_attribut:30,__has_builtin:30,__has_c_attribut:30,__has_cpp_attribut:30,__has_declspec_attribut:30,__has_extens:30,__has_featur:[0,30,37,46,50,54],__has_includ:30,__has_include_next:30,__has_warn:30,__is_identifi:30,__local:1,__multiple_inherit:1,__privat:1,__read_onli:1,__read_writ:1,__regcal:1,__single_inherti:1,__stdcall:1,__sync_swap:30,__thiscal:1,__vectorcal:1,__virtual_inherit:1,__weak:3,__write_onli:1,_fastcal:1,_nonnul:1,_noreturn:1,_null_unspecifi:1,_nullabl:1,_static_assert:30,_stdcall:1,_thiscal:1,_thread_loc:30,_vectorcal:1,aarch64:[6,30],abi:[16,17,18,27,30,36,55],abi_tag:1,about:[2,22,38],abs:19,absolut:19,access:[3,19,23,30,43],accessor:19,acquir:53,acquire_cap:1,acquire_shar:53,acquire_shared_cap:1,acquired_aft:53,acquired_befor:53,action:[6,44],activ:27,add:25,addit:[0,8,20,30,39,45,57],address:[0,1,19],address_sanit:0,address_spac:58,addresssanit:[0,23],after:[19,37],aggreg:30,aggress:19,algorithm:23,alia:[30,53],alias:19,align:[15,19,30],align_valu:1,alignof:19,all:[9,15,19,43,58],alloc:1,alloc_align:1,alloc_s:1,also:11,altern:28,ambigu:19,amd:1,amdgpu:6,amdgpu_flat_work_group_s:1,amdgpu_num_sgpr:1,amdgpu_num_vgpr:1,amdgpu_waves_per_eu:1,analysi:[19,30,53],analyz:[6,45,58],annot:[1,25],anon:19,anonym:19,api:[19,45,46,50],applic:56,approach:25,arc:2,architectur:[23,58],arg:19,argument:[2,6,18,19,20,25,30],argument_with_type_tag:1,arith:19,arithmet:[19,30],arm:[1,6,30,58],around:19,arrai:[19,30,39],artifici:1,ask:[22,53],asm:19,assemb:55,assembl:55,assert_cap:[1,53],assert_shared_cap:[1,53],assign:[19,30],assist:23,assume_align:1,ast:[25,26,32,33,41],ast_matcher_p:32,astconsum:43,astcontext:43,astfrontendact:43,atom:[19,30,55],attr:25,attribut:[1,19,23,25,30,38,45,58],audit:2,auto:[19,30],automat:[2,30],autoreleas:19,autoreleasepool:2,autosynthesi:[19,30],avail:[1,14,19,27,30,39,57],avr:1,backend:[19,52],background:[2,28],backward:15,bad:14,barrier:30,base:[19,30,32,43,51],basic:[13,25,33,42,52,53,58],bbedit:7,befor:19,behavior:[30,45],being:22,beta:19,between:58,binari:[19,30],bind:[19,32],bit:15,bitfield:19,blacklist:[0,14,37,54,57],block:[2,3,4,19,25,30,41],bodi:19,boilerpl:25,bool:[19,53],bootstrap:52,bound:19,box:39,brace:19,bridg:[2,19],bug:11,build:[0,19,24,28,33,37,49,54,57],builtin:[30,35,58],bzero:19,c11:30,cach:52,call:[1,14,15,19,50],callable_when:1,callsitetypeid:15,canon:25,capabl:53,captur:[19,30],carries_depend:1,cast:[2,14,19],categori:[19,58],caveat:39,cc1:[9,22],certain:2,cfe:25,cfg:25,cfi:[14,15],cfi_check:15,cfi_slowpath:15,cfstring:19,chain:41,chang:[19,25,45],charact:19,chariz:19,charsourcerang:25,check:[0,1,10,14,15,18,19,30,39,53,57],chk:19,choos:56,circular:19,clang:[1,6,8,9,10,11,12,13,16,19,21,22,24,25,26,30,32,33,41,42,44,45,52,55,56,58,59],clangcheck:5,clangformat:7,clangtool:[33,35],claus:19,cmake:24,cocoa:19,code:[0,8,11,19,35,37,51,57,58],code_seg:1,codegen:25,collect:51,combin:40,command:[6,9,13,19,38,58],comment:[19,58],common:35,compar:19,comparison:[19,23,50],compat:[19,20,36,46,50,51],compil:[0,6,11,16,20,28,38,45,51,55,58,59],complet:[19,55],complex:[19,30],complic:33,compon:19,compound:19,comprehens:45,compress:19,concaten:19,concept:[20,53],condit:[0,19,25],condition:53,config:19,configur:[8,38,57,58],conflict:[19,38],consist:18,constant:[1,19,25,30],constexpr:[19,30],constructor:[19,30,53],consum:[1,2],contain:[19,39],content:41,context:[2,25,26],contextu:30,control:[2,4,14,15,25,30,52,58],convent:[1,19],converg:[1,58],convers:[2,19,30],copi:[3,4,19],copyright:3,core:[10,19],coroutin:30,count:[2,19,30],counter:47,coverag:[47,51],cpp:19,cpu:[16,58],cpu_dispatch:1,cpu_specif:1,crash:58,creat:[32,33,35,43,44,51],creation:32,cross:[15,16],ctor:19,cuda:[40,45],current:[0,17,37,38,52,53,54,57,58],cycl:19,cygwin:58,darwin:58,data:[30,40,47,51],databas:28,dataflowsanit:[17,18],date:19,dealloc:2,debug:[6,58],debugg:[6,58],decai:19,decl:19,declar:[1,2,4,19,25,27,30,38,41],declspec:19,decltyp:30,decomposit:19,deduct:30,def:19,defin:[9,19,25,30],definit:19,deleg:30,delet:[19,30],depend:6,deploy:19,deprec:[1,19,30],derefer:19,deriv:32,descript:[11,12],design:[14,15,17,18,19,20,23,34,41,42,46,59],dest:2,destruct:37,destructor:[19,53],detect:[0,37],devic:40,diagnose_if:1,diagnost:[6,11,12,14,19,25,45,58],diagnosticconsum:25,diagtool:12,dictionari:39,differ:58,digit:30,dir:19,direct:[19,38,40],directori:[19,38,47],disabl:[0,8,19,30,57,58],disable_tail_cal:1,disallow:19,discard:19,discuss:39,displai:58,distinct:19,distribut:30,dll:19,dllexport:1,dllimport:[1,19],document:[2,15,18,23,25,59],dot:19,drawback:51,driver:[11,20,22,25],dso:15,dtor:19,dump:6,durat:2,dynam:[19,30],edg:[14,15,47],elem:19,elf:30,elimin:15,ellipsi:19,els:19,emac:7,emit:58,empti:19,empty_bas:1,enabl:[12,51,58],enable_if:1,encod:19,end:19,engin:44,entri:25,enum_extens:1,enumer:[2,30],environ:11,eof:19,equal:19,error:[0,22,23,57,58],escap:[3,19],evalu:19,evolut:2,examin:26,exampl:[8,17,21,29,39,48,50,57],except:[2,19,30,46],exclud:53,exclus:30,execut:[0,15,37,40],exist:19,exit:25,expans:19,experiment:24,explicit:[2,19,30],expr:19,express:[2,4,19,25,30,32,39,41],extend:30,extens:[2,3,4,19,25,30,58],extern:[0,19,21,37],external_source_symbol:1,extra:[10,19],fail:19,fallback:58,fallthrough:[1,19],famili:2,faq:22,far:1,fast:2,fastcal:1,featur:[19,20,30,36,40,45,58],fetch:19,field:[2,19],file:[6,19,25,30,38,41,58],filenam:19,find:12,first:35,fix:[19,25,30],flag:[6,19,30,45,53,58],flag_enum:1,flatten:1,flexibl:[19,20],flow:[4,14,15,25,47],fold:[19,25],force_align_arg_point:1,form:19,format:[1,8,10,19,25,28,45,47,48,51,58],fortran:6,forward:[14,15,19],found:19,fpu:16,framework:[19,30],frequent:[22,53],friend:19,from:[2,3,15,19],frontend:[25,55],frontendact:43,fsanit:14,func:19,futur:38,gcc:[19,20,58],gener:[1,2,6,11,14,15,16,30,58],get:[22,53],getter:19,global:[1,23,30],gnu:[1,55],goal:[15,20,48],gpopt:19,gpu:1,grammar:39,group:58,gsl:1,guarante:51,guard:[19,47],guarded_bi:53,guarded_var:53,guid:[53,58],half:30,handl:[25,37,46],hardwar:[15,23],header:[19,22,25,38,41,42,58],heap:23,held:53,helper:3,hexagon:6,high:3,hint:[25,30],histori:3,homoglyph:19,how:[0,24,25,32,37,43,44,49,54,57,58],html:19,hygien:19,iboutlet:19,ical:14,idea:10,identifi:[19,41],ifunc:1,ignor:19,imaginari:19,implement:[3,18,19,20,25,42,47,58],implicit:[19,30],improv:45,inaccess:19,includ:[6,19,25,30,35,38],incompat:19,incomplet:19,increment:[19,52],independ:[6,15,58],indic:59,indirect:[2,14,15],indirectli:15,individu:58,infer:[2,19,30],info:58,inform:[0,6,30,31,37,45,52,54,57,58],inherit:30,init:[2,19],init_seg:1,initi:[0,19,30,51],inlin:[15,19,30,47,53],insid:53,instanti:[19,36],instr:19,instrument:[0,23,47,51,57,58],integ:[19,57],integr:[7,14,15,28,41],intel_reqd_sub_group_s:1,intention:58,interfac:[2,18,19,25,34,42,56],interior:2,interleav:30,intermezzo:33,intern:[19,20,25,41,42,45],internal_linkag:1,interoper:30,interpret:51,interrupt:1,intrins:[19,30],introduct:[0,1,6,9,14,16,17,19,20,21,23,24,25,26,27,30,31,32,35,37,38,39,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58],introspect:19,invalid:19,invok:4,ios:19,isa:19,isel:19,iso:19,issu:[0,16,57],iter:2,its:[3,25],ivar:19,json:28,kernel:1,kind:[6,25],known:[2,46,53],label:[18,19],lambda:[19,30],languag:[4,11,19,30,38,45,55,58],larg:19,larger:19,layout:[3,15,18],layout_vers:1,lead:15,leaf:15,leak:[0,19],leaksanit:31,learn:[33,38],length:19,level:[3,6,30,42,46,50],lexer:25,lexic:[3,25,38,53],libastmatch:33,libatom:55,libc:[45,55],libclang:56,libcxxrt:55,libformat:34,libgcc_:55,librari:[0,14,15,16,19,25,55,59],libstdc:55,libsupc:55,libtool:[33,35,56],libunwind:55,lifetim:2,lifetimebound:1,limit:[0,19,37,40,46,51,53,54,58],line:[6,9,19,38,58],link:[35,38],linkag:19,linker:[6,30,52,55],list:[12,17,18,19,21,30,45,48],liter:[4,19,30,39],live:2,llvm:[24,25,51,52,55,58],load:30,local:[1,19,30],lock:53,logic:19,long_cal:1,lookup:36,loop:[1,19,30],low:[20,30,42,46,50],lto:29,lto_visibility_publ:1,lvalu:19,mac:58,macro:[19,30,38,58],major:45,make:24,man:13,manag:[2,6,18,41],mangl:[19,27,30],manual:[25,58],map:[38,58],mark:[3,19],match:[19,30,32,33],matcher:[32,33],max:30,mayb:19,maybe_unus:1,memaccess:19,member:[14,19,30],memcpi:19,memori:[0,2,18,19,23,30,35,37],memory_sanit:37,memorysanit:37,messag:[19,30,58],metadata:[41,58],method:[2,19,39,41],micromip:1,microsoft:58,min:30,min_vector_width:1,mingw32:58,mingw:58,minim:57,mip:[1,6],miscellan:2,mismatch:19,miss:[19,22],mode:[11,40,58],model:38,modifi:[19,45],modul:[19,30,38,41],modular:[19,38],more:[0,31,33,37,38,52,54,57],move:[19,30],ms_abi:1,msvc:36,multilib:16,multipl:[19,30],multipleincludeopt:25,multipli:25,multiprecis:30,multivers:19,mutabl:19,mutex:53,name:[19,25,30,32,36,58],namespac:[19,30],nan:19,nand:19,narrow:19,neg:[19,53],nest:[3,19],newlin:19,next:19,ninja:24,no_address_safety_analysi:1,no_caller_saved_regist:1,no_sanit:[0,1,37,46,50,54,57],no_sanitize_address:1,no_sanitize_memori:1,no_sanitize_thread:1,no_split_stack:1,no_stack_protector:1,no_thread_safety_analysi:53,noalia:1,nocf_check:1,node:[26,32,33],nodebug:1,nodiscard:1,nodupl:[1,58],noescap:[1,19],noexcept:30,nomicromip:1,non:[14,15,19,30,45],nonarc:19,noncopi:19,nonexist:19,nongnu:55,nonliter:19,nonnul:[1,19],nonunifi:19,noreturn:[1,19],nosvm:[1,58],not_tail_cal:1,note:[20,45],nothrow:1,nounrol:1,novtabl:1,nsnumber:39,nsobject:3,nullabl:1,nullptr:30,number:[15,30],objc:19,objc_autoreleas:2,objc_autoreleasepoolpop:2,objc_autoreleasepoolpush:2,objc_autoreleasereturnvalu:2,objc_box:1,objc_copyweak:2,objc_destroyweak:2,objc_initweak:2,objc_loadweak:2,objc_loadweakretain:2,objc_method_famili:1,objc_moveweak:2,objc_releas:2,objc_requires_sup:1,objc_retain:2,objc_retainautoreleas:2,objc_retainautoreleasedreturnvalu:2,objc_retainautoreleasereturnvalu:2,objc_retainblock:2,objc_runtime_nam:1,objc_runtime_vis:1,objc_storestrong:2,objc_storeweak:2,objc_subclassing_restrict:1,object:[2,3,4,11,19,20,30,38,39,45,58],obtain:33,offsetof:19,omit:19,omp:1,onc:[15,19],open:19,opencl:[1,6,45,58],opencl_unroll_hint:[1,58],openmp:[19,40,45,58],oper:[4,19,30,58],operand:[2,19],opt:19,optim:[2,6,15,19,30,42,58],option:[6,8,11,16,19,30,34,35,44,58],optnon:1,order:[0,19,30],org:55,organ:10,origin:37,other:[25,44,55,58],out:[2,19],output:[47,58],outsid:19,overflow:[19,57],overhead:20,overlap:19,overload:[1,19,25],overrid:[19,30],overview:[4,10,20],own:32,ownership:[2,19],pack:19,pad:15,page:[0,13,37],parallel:52,param:32,param_typest:1,paramet:[2,19,30,38],paramtyp:32,paren:19,parenthes:19,pars:[19,20,35,58],parser:25,partial:19,pass:2,pass_object_s:1,past:19,patch:7,path:[6,19],pathscal:55,pch:[19,58],pcs:1,pedant:19,per:19,perform:[14,19,46],performselector:19,philosophi:41,piec:8,pipelin:20,platform:[0,37,38,46,54,57,58],plu:19,plugin:[9,19,56],pluginastact:9,pod:19,point:[19,30,41,47],pointer:[2,14,19],pointer_with_type_tag:1,pool:[2,41],posit:15,power:15,powerpc:[6,58],pragma:[1,9,19,30,58],precis:[2,19,30],precompil:[25,41,58],preprocessor:[6,11,19,25,41],preserve_al:1,preserve_most:1,pretoken:42,primit:30,privaci:19,privat:[1,19,38,53],problem:38,produc:25,profil:[51,58],program:51,project:[21,51],promo:19,promot:19,propag:18,properti:[2,19,25,30],protector:19,protocol:[19,30],prototyp:19,prune:52,pseudo:19,pt_guarded_bi:53,pt_guarded_var:53,pth:42,ptr:19,pure:19,purpos:2,put:[9,35,43],qual:19,qualif:[2,19],qualifi:[2,4,19,30],qualtyp:25,question:[22,53],rang:[19,30],rational:2,raw:30,rcfi:15,read_onli:1,read_writ:1,reader:41,readonli:19,recompil:[0,57],recurs:19,recursiveastvisitor:43,redeclar:[19,25],redefin:19,redefinit:19,redund:19,refactor:44,refer:[2,3,6,19,30,53],reformat:7,regcal:1,regist:[9,19],regparm:1,reinterpret:19,relat:[2,20,23,30],relax:30,releas:[4,45,53],release_cap:1,release_shar:53,release_shared_cap:1,relocat:58,repeat:19,report:[0,23,37,47,51,57,58],represent:18,requir:[15,19,27,38,44,53],require_constant_initi:1,requires_shar:53,reserv:19,restrict:2,result:[2,19,30],retain:[2,19,30],retriev:33,return_cap:53,return_typest:1,returns_nonnul:1,revis:4,rgba:19,right:56,riscv:[1,6],rmodul:19,root:19,rpass:19,rremark:19,rsanit:19,rtti:30,rule:[19,30,44],run:[9,22,35,49,51,53],runtim:[2,3,30,51,55,57],rvalu:30,safe:46,safe_stack:46,safestack:46,safeti:[1,19,53],sampl:58,sancov:47,sanit:[19,45,48,55],sanitizercoverag:47,sanitizerstat:49,scalar:19,scheme:14,scope:[3,19,53],scoped_cap:53,script:7,seal:19,section:[1,30],secur:[19,46,50],see:11,segment:30,seh:19,sel:19,select:[11,30,44],selectani:1,selector:19,self:[2,19],sema:25,semant:[2,19,25,38],semi:19,separ:30,sequenc:19,set_typest:1,setjmp:46,setter:19,setup:24,sfina:30,shadow:[15,50],shadow_call_stack:50,shadowcallstack:50,share:[14,15,40],shift:19,short_cal:1,show:12,sign:19,signal:1,signatur:19,silenc:57,simd:1,simpl:20,site:15,size:[19,30,58],small:15,snippet:35,solv:38,some:[22,35],sourc:[19,41,51],sourceloc:25,sourcemanag:[25,43],sourcerang:25,space:1,spec:19,special:[2,19,48],specif:[3,4,16,28,30,58],specifi:[19,30],spell:[2,25],src:2,stack:[19,23,46,50,57],stage:[11,20],standalon:[7,35,40],standard:[30,55,58],start:53,stat:19,state:6,statement:[1,15,19,25,41],static_assert:30,statu:[0,17,37,52,54,57],std:19,stdarg:22,stdcall:1,stddef:22,step:33,storag:[2,4,19],store:30,strict:14,string:[19,25,30,39,53],strip:15,strlcat:19,strongli:30,struct:[2,19],structur:[38,39],studio:7,style:[8,19,34,39],subclass:25,subcommand:12,subject:[25,30],submodul:38,subscript:[19,30,39],subsystem:25,support:[0,1,2,3,14,15,23,25,28,30,37,40,45,46,54,57,58],suppress:[0,1,57],suspici:19,swift_context:1,swift_error_result:1,swift_indirect_result:1,swiftcal:1,symbol:[0,37,57],sync:19,synopsi:[11,12],syntax:[1,19],synthesi:19,sysroot:19,system:[19,24,28,30,58],tabl:[15,41,47,59],tag:[19,27],taint:18,target:[1,6,11,16,19,30,58],templat:[2,19,30,36],tempor:30,temporari:19,terminolog:58,test_typest:1,text:58,than:19,thi:[2,19,45],thinlto:52,thiscal:1,thread:[1,53,54],thread_loc:30,thread_sanit:54,threadsanit:54,through:18,tidi:10,time:19,tls_model:1,togeth:[9,35,43],token:[19,25],tokenlex:25,too:19,tool:[7,10,12,21,24,33,35,47,55,59],toolchain:[16,20,55],trace:[47,57],track:37,tradeoff:42,trail:[15,30],trait:30,translat:[19,20,25],transpar:25,transparent_union:1,transpos:19,trap:14,tree:12,tripl:16,trivial_abi:1,try_acquir:53,try_acquire_cap:1,try_acquire_shar:53,try_acquire_shared_cap:1,tune:[6,58],tutori:33,type:[1,2,4,19,25,30,32,41,44],type_tag_for_datatyp:1,typedef:19,ubsan:45,umbrella:[19,38],unavail:[2,19,30],uncaptur:19,undefin:[19,45,57],undefinedbehaviorsanit:57,underli:30,unhandl:19,unicod:30,unifi:20,unimpl:53,uniniti:19,union:[2,19,30],unit:19,unknown:19,unnam:[19,30],unprofil:19,unqualifi:19,unrel:19,unrestrict:30,unretain:2,unrol:[1,30],unsaf:19,unsign:[19,57],unsupport:[19,58],unus:[1,19,20],unwind:55,usag:[0,17,19,31,37,46,48,50,52,54,57,58],use:19,user:[19,30,58],uses:19,using:[16,19,33],valu:[2,19,58],vararg:19,variabl:[1,2,3,4,19,27,30],variad:[19,30],variadicdyncastallofmatch:32,variou:58,vbase:19,vector:[15,19,30],vectorcal:1,verbos:19,via:58,vim:7,virtual:[14,15,19],visibl:[19,29],visual:7,volatil:[19,57],vptr:19,vtabl:19,w64:58,wabi:19,wabsolut:19,wabstract:19,waddress:19,waggreg:19,wall:19,walloca:19,wambigu:19,wanalyz:19,wanonym:19,warc:19,wargument:19,warn:[12,19,20,53,58],warn_unused_result:1,warrai:19,wasm:19,wassign:19,wassum:19,wat:19,watimport:19,watom:19,wattribut:19,wauto:19,wavail:19,wbackend:19,wbackslash:19,wbad:19,wbinari:19,wbind:19,wbitfield:19,wbitwis:19,wblock:19,wbool:19,wbrace:19,wbridg:19,wbuiltin:19,wc11:19,wc99:19,wcast:19,wcfstring:19,wchar:19,wcl4:19,wclang:19,wclass:19,wcomma:19,wcomment:19,wcompar:19,wcomplex:19,wcondit:19,wconfig:19,wconstant:19,wconstexpr:19,wconsum:19,wconvers:19,wcoroutin:19,wcover:19,wcpp:19,wcstring:19,wctor:19,wcuda:19,wcustom:19,wdangl:19,wdate:19,wdealloc:19,wdebug:19,wdeclar:19,wdeleg:19,wdelet:19,wdeprec:19,wdirect:19,wdisabl:19,wdiscard:19,wdistribut:19,wdiv:19,wdivis:19,wdll:19,wdllexport:19,wdllimport:19,wdocument:19,wdollar:19,wdoubl:19,wduplic:19,wdynam:19,weak:[2,19,30],webassembl:6,weffc:19,weird:22,wembed:19,wempti:19,wencod:19,wendif:19,wenum:19,wexcept:19,wexit:19,wexpans:19,wexperiment:19,wexplicit:19,wextern:19,wextra:19,wfallback:19,wflag:19,wflexibl:19,wfloat:19,wfor:19,wformat:19,wfour:19,wframe:19,wframework:19,wfunction:19,wfutur:19,wgcc:19,wglobal:19,wgnu:19,what:45,wheader:19,where:38,whitespac:19,widiomat:19,width:19,wignor:19,wimplicit:19,wimplicitli:19,wimport:19,winaccess:19,winclud:19,wincompat:19,wincomplet:19,winconsist:19,wincrement:19,windependentclass:19,window:[45,58],winfinit:19,winit:19,winiti:19,winject:19,winlin:19,winstanti:19,wint:19,winteg:19,winvalid:19,within:3,without:51,wjump:19,wkeyword:19,wknr:19,wlanguag:19,wlarg:19,wliblto:19,wliter:19,wlocal:19,wlogic:19,wlong:19,wloop:19,wmacro:19,wmain:19,wmalform:19,wmani:19,wmax:19,wmemset:19,wmemsiz:19,wmethod:19,wmicrosoft:19,wmismatch:19,wmiss:19,wmodul:19,wmost:19,wmove:19,wmsvc:19,wmultichar:19,wmultipl:19,wnarrow:19,wnest:19,wnew:19,wnewlin:19,wnoexcept:19,wnon:19,wnonnul:19,wnonport:19,wnontrivi:19,wnsconsum:19,wnsobject:19,wnsreturn:19,wnull:19,wnullabl:19,wobjc:19,wodr:19,wold:19,wopencl:19,wopenmp:19,woption:19,worder:19,work:23,workflow:51,wout:19,wover:19,woverflow:19,woverlength:19,woverload:19,woverrid:19,wpack:19,wpad:19,wparenthes:19,wpartial:19,wpass:19,wpch:19,wpedant:19,wpessim:19,wpointer:19,wpotenti:19,wpragma:19,wpredefin:19,wprivat:19,wprofil:19,wproperti:19,wprotocol:19,wqualifi:19,wquot:19,wrang:19,wreadonli:19,wreceiv:19,wredeclar:19,wredund:19,wregist:19,wreinterpret:19,wreorder:19,wrequir:19,wreserv:19,wretain:19,wreturn:19,writabl:[0,19,37],write:[9,32,35,43],write_onli:1,writeback:2,wsection:19,wselector:19,wself:19,wsemicolon:19,wsentinel:19,wsequenc:19,wserial:19,wshadow:19,wshift:19,wshorten:19,wsign:19,wsizeof:19,wslash:19,wsometim:19,wsourc:19,wspir:19,wstack:19,wstatic:19,wstdlibcxx:19,wstrict:19,wstring:19,wstrlcpy:19,wstrncat:19,wsuper:19,wsuspici:19,wswitch:19,wsync:19,wsynth:19,wtautolog:19,wtent:19,wthread:19,wtrigraph:19,wtype:19,wtypedef:19,wtypenam:19,wunabl:19,wunavail:19,wundeclar:19,wundef:19,wundefin:19,wunevalu:19,wunguard:19,wunicod:19,wuniniti:19,wunknown:19,wunnam:19,wunneed:19,wunreach:19,wunsequenc:19,wunsupport:19,wunus:19,wuse:19,wuser:19,wvararg:19,wvariad:19,wvec:19,wvector:19,wvex:19,wvisibl:19,wvla:19,wvoid:19,wvolatil:19,wweak:19,wwritabl:19,wwrite:19,wzero:19,x86:[6,30,58],xray_always_instru:1,xray_log_arg:1,xray_never_instru:1,y2k:19,yet:58,your:[32,56],zero:[15,19]}})
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/AtomLLD.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/AtomLLD.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/AtomLLD.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/AtomLLD.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,209 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>ATOM-based lld — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Linker Design" href="design.html" />
+    <link rel="prev" title="The ELF, COFF and Wasm Linkers" href="NewLLD.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="design.html" title="Linker Design"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="NewLLD.html" title="The ELF, COFF and Wasm Linkers"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">ATOM-based lld</a><ul>
+<li><a class="reference internal" href="#why-a-new-linker">Why a new linker?</a></li>
+<li><a class="reference internal" href="#contents">Contents</a></li>
+<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="NewLLD.html"
+                        title="previous chapter">The ELF, COFF and Wasm Linkers</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="design.html"
+                        title="next chapter">Linker Design</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/AtomLLD.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="atom-based-lld">
+<h1>ATOM-based lld<a class="headerlink" href="#atom-based-lld" title="Permalink to this headline">¶</a></h1>
+<p>Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see <a class="reference internal" href="index.html"><span class="doc">LLD - The LLVM Linker</span></a>.</p>
+<p>ATOM-based lld is a new set of modular code for creating linker tools.
+Currently it supports Mach-O.</p>
+<ul class="simple">
+<li>End-User Features:<ul>
+<li>Compatible with existing linker options</li>
+<li>Reads standard Object Files</li>
+<li>Writes standard Executable Files</li>
+<li>Remove clang’s reliance on “the system linker”</li>
+<li>Uses the LLVM <a class="reference external" href="http://llvm.org/docs/DeveloperPolicy.html#license">“UIUC” BSD-Style license</a>.</li>
+</ul>
+</li>
+<li>Applications:<ul>
+<li>Modular design</li>
+<li>Support cross linking</li>
+<li>Easy to add new CPU support</li>
+<li>Can be built as static tool or library</li>
+</ul>
+</li>
+<li>Design and Implementation:<ul>
+<li>Extensive unit tests</li>
+<li>Internal linker model can be dumped/read to textual format</li>
+<li>Additional linking features can be plugged in as “passes”</li>
+<li>OS specific and CPU specific code factored out</li>
+</ul>
+</li>
+</ul>
+<div class="section" id="why-a-new-linker">
+<h2>Why a new linker?<a class="headerlink" href="#why-a-new-linker" title="Permalink to this headline">¶</a></h2>
+<p>The fact that clang relies on whatever linker tool you happen to have installed
+means that clang has been very conservative adopting features which require a
+recent linker.</p>
+<p>In the same way that the MC layer of LLVM has removed clang’s reliance on the
+system assembler tool, the lld project will remove clang’s reliance on the
+system linker tool.</p>
+</div>
+<div class="section" id="contents">
+<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="design.html">Linker Design</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="design.html#introduction">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#atom-model">Atom Model</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#file-model">File Model</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#linking-steps">Linking Steps</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#lld-file-representations">lld::File representations</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#testing">Testing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#design-issues">Design Issues</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting Started: Building and Running lld</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="getting_started.html#building-lld">Building lld</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="development.html">Development</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="development.html#creating-a-reader">Creating a Reader</a></li>
+<li class="toctree-l2"><a class="reference internal" href="development.html#modifying-the-driver">Modifying the Driver</a></li>
+<li class="toctree-l2"><a class="reference internal" href="development.html#debugging">Debugging</a></li>
+<li class="toctree-l2"><a class="reference internal" href="development.html#documentation">Documentation</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="open_projects.html">Open Projects</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="open_projects.html#include-lld-core">include/lld/Core</a></li>
+<li class="toctree-l2"><a class="reference internal" href="open_projects.html#documentation-todos">Documentation TODOs</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="sphinx_intro.html">Sphinx Introduction for LLVM Developers</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="sphinx_intro.html#quickstart">Quickstart</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sphinx_intro.html#learning-more">Learning More</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sphinx_intro.html#installing-sphinx-in-a-virtual-environment">Installing Sphinx in a Virtual Environment</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="indices-and-tables">
+<h2>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></li>
+<li><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="design.html" title="Linker Design"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="NewLLD.html" title="The ELF, COFF and Wasm Linkers"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/Driver.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/Driver.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/Driver.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/Driver.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,217 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Driver — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Open Projects" href="open_projects.html" />
+    <link rel="prev" title="Developing lld Readers" href="Readers.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="open_projects.html" title="Open Projects"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Readers.html" title="Developing lld Readers"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" >ATOM-based lld</a> »</li>
+          <li class="nav-item nav-item-2"><a href="development.html" accesskey="U">Development</a> »</li> 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Driver</a><ul>
+<li><a class="reference internal" href="#introduction">Introduction</a></li>
+<li><a class="reference internal" href="#overview">Overview</a><ul>
+<li><a class="reference internal" href="#flavors">Flavors</a><ul>
+<li><a class="reference internal" href="#selecting-a-flavor">Selecting a Flavor</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a class="reference internal" href="#adding-an-option-to-an-existing-flavor">Adding an Option to an existing Flavor</a></li>
+<li><a class="reference internal" href="#adding-a-flavor">Adding a Flavor</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="Readers.html"
+                        title="previous chapter">Developing lld Readers</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="open_projects.html"
+                        title="next chapter">Open Projects</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/Driver.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="driver">
+<h1>Driver<a class="headerlink" href="#driver" title="Permalink to this headline">¶</a></h1>
+<p>Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see <a class="reference internal" href="index.html"><span class="doc">LLD - The LLVM Linker</span></a>.</p>
+<div class="contents local topic" id="contents">
+<ul class="simple">
+<li><a class="reference internal" href="#introduction" id="id1">Introduction</a></li>
+<li><a class="reference internal" href="#overview" id="id2">Overview</a><ul>
+<li><a class="reference internal" href="#flavors" id="id3">Flavors</a><ul>
+<li><a class="reference internal" href="#selecting-a-flavor" id="id4">Selecting a Flavor</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a class="reference internal" href="#adding-an-option-to-an-existing-flavor" id="id5">Adding an Option to an existing Flavor</a></li>
+<li><a class="reference internal" href="#adding-a-flavor" id="id6">Adding a Flavor</a></li>
+</ul>
+</div>
+<div class="section" id="introduction">
+<h2><a class="toc-backref" href="#id1">Introduction</a><a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
+<p>This document describes the lld driver. The purpose of this document is to
+describe both the motivation and design goals for the driver, as well as details
+of the internal implementation.</p>
+</div>
+<div class="section" id="overview">
+<h2><a class="toc-backref" href="#id2">Overview</a><a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
+<p>The lld driver is designed to support a number of different command line
+interfaces. The main interfaces we plan to support are binutils’ ld, Apple’s
+ld, and Microsoft’s link.exe.</p>
+<div class="section" id="flavors">
+<h3><a class="toc-backref" href="#id3">Flavors</a><a class="headerlink" href="#flavors" title="Permalink to this headline">¶</a></h3>
+<p>Each of these different interfaces is referred to as a flavor. There is also an
+extra flavor “core” which is used to exercise the core functionality of the
+linker it the test suite.</p>
+<ul class="simple">
+<li>gnu</li>
+<li>darwin</li>
+<li>link</li>
+<li>core</li>
+</ul>
+<div class="section" id="selecting-a-flavor">
+<h4><a class="toc-backref" href="#id4">Selecting a Flavor</a><a class="headerlink" href="#selecting-a-flavor" title="Permalink to this headline">¶</a></h4>
+<p>There are two different ways to tell lld which flavor to be. They are checked in
+order, so the second overrides the first. The first is to symlink <strong class="program">lld</strong>
+as <strong class="program">lld-{flavor}</strong> or just <strong class="program">{flavor}</strong>. You can also specify
+it as the first command line argument using <code class="docutils literal notranslate"><span class="pre">-flavor</span></code>:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ lld -flavor gnu
+</pre></div>
+</div>
+<p>There is a shortcut for <code class="docutils literal notranslate"><span class="pre">-flavor</span> <span class="pre">core</span></code> as <code class="docutils literal notranslate"><span class="pre">-core</span></code>.</p>
+</div>
+</div>
+</div>
+<div class="section" id="adding-an-option-to-an-existing-flavor">
+<h2><a class="toc-backref" href="#id5">Adding an Option to an existing Flavor</a><a class="headerlink" href="#adding-an-option-to-an-existing-flavor" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic simple">
+<li>Add the option to the desired <code class="file docutils literal notranslate"><span class="pre">lib/Driver/</span><em><span class="pre">flavor</span></em><span class="pre">Options.td</span></code>.</li>
+<li>Add to <code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld::FlavorLinkingContext</span></code> a getter and setter method
+for the option.</li>
+<li>Modify <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lld::FlavorDriver::parse()</span></code> in :file:
+<cite>lib/Driver/{Flavor}Driver.cpp</cite> to call the targetInfo setter
+for corresponding to the option.</li>
+<li>Modify {Flavor}Reader and {Flavor}Writer to use the new targtInfo option.</li>
+</ol>
+</div>
+<div class="section" id="adding-a-flavor">
+<h2><a class="toc-backref" href="#id6">Adding a Flavor</a><a class="headerlink" href="#adding-a-flavor" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic simple">
+<li>Add an entry for the flavor in <code class="file docutils literal notranslate"><span class="pre">include/lld/Common/Driver.h</span></code> to
+<code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld::UniversalDriver::Flavor</span></code>.</li>
+<li>Add an entry in <code class="file docutils literal notranslate"><span class="pre">lib/Driver/UniversalDriver.cpp</span></code> to
+<code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lld::Driver::strToFlavor()</span></code> and
+<code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">lld::UniversalDriver::link()</span></code>.
+This allows the flavor to be selected via symlink and <cite>-flavor</cite>.</li>
+<li>Add a tablegen file called <code class="file docutils literal notranslate"><span class="pre">lib/Driver/</span><em><span class="pre">flavor</span></em><span class="pre">Options.td</span></code> that
+describes the options. If the options are a superset of another driver, that
+driver’s td file can simply be included. The <code class="file docutils literal notranslate"><em><span class="pre">flavor</span></em><span class="pre">Options.td</span></code> file
+must also be added to <code class="file docutils literal notranslate"><span class="pre">lib/Driver/CMakeLists.txt</span></code>.</li>
+<li>Add a <code class="docutils literal notranslate"><span class="pre">{flavor}Driver</span></code> as a subclass of <code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld::Driver</span></code>
+in <code class="file docutils literal notranslate"><span class="pre">lib/Driver/</span><em><span class="pre">flavor</span></em><span class="pre">Driver.cpp</span></code>.</li>
+</ol>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="open_projects.html" title="Open Projects"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="Readers.html" title="Developing lld Readers"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" >ATOM-based lld</a> »</li>
+          <li class="nav-item nav-item-2"><a href="development.html" >Development</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/NewLLD.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/NewLLD.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/NewLLD.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/NewLLD.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,399 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>The ELF, COFF and Wasm Linkers — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="ATOM-based lld" href="AtomLLD.html" />
+    <link rel="prev" title="LLD - The LLVM Linker" href="index.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="AtomLLD.html" title="ATOM-based lld"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="LLD - The LLVM Linker"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">The ELF, COFF and Wasm Linkers</a><ul>
+<li><a class="reference internal" href="#the-elf-linker-as-a-library">The ELF Linker as a Library</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#design">Design</a><ul>
+<li><a class="reference internal" href="#key-concepts">Key Concepts</a></li>
+<li><a class="reference internal" href="#numbers-you-want-to-know">Numbers You Want to Know</a></li>
+<li><a class="reference internal" href="#important-data-structures">Important Data Structures</a></li>
+<li><a class="reference internal" href="#link-time-optimization">Link-Time Optimization</a></li>
+<li><a class="reference internal" href="#glossary">Glossary</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="index.html"
+                        title="previous chapter">LLD - The LLVM Linker</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="AtomLLD.html"
+                        title="next chapter">ATOM-based lld</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/NewLLD.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="the-elf-coff-and-wasm-linkers">
+<h1>The ELF, COFF and Wasm Linkers<a class="headerlink" href="#the-elf-coff-and-wasm-linkers" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="the-elf-linker-as-a-library">
+<h2>The ELF Linker as a Library<a class="headerlink" href="#the-elf-linker-as-a-library" title="Permalink to this headline">¶</a></h2>
+<p>You can embed LLD to your program by linking against it and calling the linker’s
+entry point function lld::elf::link.</p>
+<p>The current policy is that it is your reponsibility to give trustworthy object
+files. The function is guaranteed to return as long as you do not pass corrupted
+or malicious object files. A corrupted file could cause a fatal error or SEGV.
+That being said, you don’t need to worry too much about it if you create object
+files in the usual way and give them to the linker. It is naturally expected to
+work, or otherwise it’s a linker’s bug.</p>
+</div>
+</div>
+<div class="section" id="design">
+<h1>Design<a class="headerlink" href="#design" title="Permalink to this headline">¶</a></h1>
+<p>We will describe the design of the linkers in the rest of the document.</p>
+<div class="section" id="key-concepts">
+<h2>Key Concepts<a class="headerlink" href="#key-concepts" title="Permalink to this headline">¶</a></h2>
+<p>Linkers are fairly large pieces of software.
+There are many design choices you have to make to create a complete linker.</p>
+<p>This is a list of design choices we’ve made for ELF and COFF LLD.
+We believe that these high-level design choices achieved a right balance
+between speed, simplicity and extensibility.</p>
+<ul>
+<li><p class="first">Implement as native linkers</p>
+<p>We implemented the linkers as native linkers for each file format.</p>
+<p>The linkers share the same design but share very little code.
+Sharing code makes sense if the benefit is worth its cost.
+In our case, the object formats are different enough that we thought the layer
+to abstract the differences wouldn’t be worth its complexity and run-time
+cost.  Elimination of the abstract layer has greatly simplified the
+implementation.</p>
+</li>
+<li><p class="first">Speed by design</p>
+<p>One of the most important things in archiving high performance is to
+do less rather than do it efficiently.
+Therefore, the high-level design matters more than local optimizations.
+Since we are trying to create a high-performance linker,
+it is very important to keep the design as efficient as possible.</p>
+<p>Broadly speaking, we do not do anything until we have to do it.
+For example, we do not read section contents or relocations
+until we need them to continue linking.
+When we need to do some costly operation (such as looking up
+a hash table for each symbol), we do it only once.
+We obtain a handler (which is typically just a pointer to actual data)
+on the first operation and use it throughout the process.</p>
+</li>
+<li><p class="first">Efficient archive file handling</p>
+<p>LLD’s handling of archive files (the files with “.a” file extension) is
+different from the traditional Unix linkers and similar to Windows linkers.
+We’ll describe how the traditional Unix linker handles archive files, what the
+problem is, and how LLD approached the problem.</p>
+<p>The traditional Unix linker maintains a set of undefined symbols during
+linking.  The linker visits each file in the order as they appeared in the
+command line until the set becomes empty. What the linker would do depends on
+file type.</p>
+<ul class="simple">
+<li>If the linker visits an object file, the linker links object files to the
+result, and undefined symbols in the object file are added to the set.</li>
+<li>If the linker visits an archive file, it checks for the archive file’s
+symbol table and extracts all object files that have definitions for any
+symbols in the set.</li>
+</ul>
+<p>This algorithm sometimes leads to a counter-intuitive behavior.  If you give
+archive files before object files, nothing will happen because when the linker
+visits archives, there is no undefined symbols in the set.  As a result, no
+files are extracted from the first archive file, and the link is done at that
+point because the set is empty after it visits one file.</p>
+<p>You can fix the problem by reordering the files,
+but that cannot fix the issue of mutually-dependent archive files.</p>
+<p>Linking mutually-dependent archive files is tricky.  You may specify the same
+archive file multiple times to let the linker visit it more than once.  Or,
+you may use the special command line options, <cite>–start-group</cite> and
+<cite>–end-group</cite>, to let the linker loop over the files between the options until
+no new symbols are added to the set.</p>
+<p>Visiting the same archive files multiple makes the linker slower.</p>
+<p>Here is how LLD approaches the problem. Instead of memorizing only undefined
+symbols, we program LLD so that it memorizes all symbols.  When it sees an
+undefined symbol that can be resolved by extracting an object file from an
+archive file it previously visited, it immediately extracts the file and link
+it.  It is doable because LLD does not forget symbols it have seen in archive
+files.</p>
+<p>We believe that the LLD’s way is efficient and easy to justify.</p>
+<p>The semantics of LLD’s archive handling is different from the traditional
+Unix’s.  You can observe it if you carefully craft archive files to exploit
+it.  However, in reality, we don’t know any program that cannot link with our
+algorithm so far, so it’s not going to cause trouble.</p>
+</li>
+</ul>
+</div>
+<div class="section" id="numbers-you-want-to-know">
+<h2>Numbers You Want to Know<a class="headerlink" href="#numbers-you-want-to-know" title="Permalink to this headline">¶</a></h2>
+<p>To give you intuition about what kinds of data the linker is mainly working on,
+I’ll give you the list of objects and their numbers LLD has to read and process
+in order to link a very large executable. In order to link Chrome with debug
+info, which is roughly 2 GB in output size, LLD reads</p>
+<ul class="simple">
+<li>17,000 files,</li>
+<li>1,800,000 sections,</li>
+<li>6,300,000 symbols, and</li>
+<li>13,000,000 relocations.</li>
+</ul>
+<p>LLD produces the 2 GB executable in 15 seconds.</p>
+<p>These numbers vary depending on your program, but in general,
+you have a lot of relocations and symbols for each file.
+If your program is written in C++, symbol names are likely to be
+pretty long because of name mangling.</p>
+<p>It is important to not waste time on relocations and symbols.</p>
+<p>In the above case, the total amount of symbol strings is 450 MB,
+and inserting all of them to a hash table takes 1.5 seconds.
+Therefore, if you causally add a hash table lookup for each symbol,
+it would slow down the linker by 10%. So, don’t do that.</p>
+<p>On the other hand, you don’t have to pursue efficiency
+when handling files.</p>
+</div>
+<div class="section" id="important-data-structures">
+<h2>Important Data Structures<a class="headerlink" href="#important-data-structures" title="Permalink to this headline">¶</a></h2>
+<p>We will describe the key data structures in LLD in this section.  The linker can
+be understood as the interactions between them.  Once you understand their
+functions, the code of the linker should look obvious to you.</p>
+<ul>
+<li><p class="first">Symbol</p>
+<p>This class represents a symbol.
+They are created for symbols in object files or archive files.
+The linker creates linker-defined symbols as well.</p>
+<p>There are basically three types of Symbols: Defined, Undefined, or Lazy.</p>
+<ul class="simple">
+<li>Defined symbols are for all symbols that are considered as “resolved”,
+including real defined symbols, COMDAT symbols, common symbols,
+absolute symbols, linker-created symbols, etc.</li>
+<li>Undefined symbols represent undefined symbols, which need to be replaced by
+Defined symbols by the resolver until the link is complete.</li>
+<li>Lazy symbols represent symbols we found in archive file headers
+which can turn into Defined if we read archieve members.</li>
+</ul>
+<p>There’s only one Symbol instance for each unique symbol name. This uniqueness
+is guaranteed by the symbol table. As the resolver reads symbols from input
+files, it replaces an existing Symbol with the “best” Symbol for its symbol
+name using the placement new.</p>
+<p>The above mechanism allows you to use pointers to Symbols as a very cheap way
+to access name resolution results. Assume for example that you have a pointer
+to an undefined symbol before name resolution. If the symbol is resolved to a
+defined symbol by the resolver, the pointer will “automatically” point to the
+defined symbol, because the undefined symbol the pointer pointed to will have
+been replaced by the defined symbol in-place.</p>
+</li>
+<li><p class="first">SymbolTable</p>
+<p>SymbolTable is basically a hash table from strings to Symbols
+with logic to resolve symbol conflicts. It resolves conflicts by symbol type.</p>
+<ul class="simple">
+<li>If we add Defined and Undefined symbols, the symbol table will keep the
+former.</li>
+<li>If we add Defined and Lazy symbols, it will keep the former.</li>
+<li>If we add Lazy and Undefined, it will keep the former,
+but it will also trigger the Lazy symbol to load the archive member
+to actually resolve the symbol.</li>
+</ul>
+</li>
+<li><p class="first">Chunk (COFF specific)</p>
+<p>Chunk represents a chunk of data that will occupy space in an output.
+Each regular section becomes a chunk.
+Chunks created for common or BSS symbols are not backed by sections.
+The linker may create chunks to append additional data to an output as well.</p>
+<p>Chunks know about their size, how to copy their data to mmap’ed outputs,
+and how to apply relocations to them.
+Specifically, section-based chunks know how to read relocation tables
+and how to apply them.</p>
+</li>
+<li><p class="first">InputSection (ELF specific)</p>
+<p>Since we have less synthesized data for ELF, we don’t abstract slices of
+input files as Chunks for ELF. Instead, we directly use the input section
+as an internal data type.</p>
+<p>InputSection knows about their size and how to copy themselves to
+mmap’ed outputs, just like COFF Chunks.</p>
+</li>
+<li><p class="first">OutputSection</p>
+<p>OutputSection is a container of InputSections (ELF) or Chunks (COFF).
+An InputSection or Chunk belongs to at most one OutputSection.</p>
+</li>
+</ul>
+<p>There are mainly three actors in this linker.</p>
+<ul>
+<li><p class="first">InputFile</p>
+<p>InputFile is a superclass of file readers.
+We have a different subclass for each input file type,
+such as regular object file, archive file, etc.
+They are responsible for creating and owning Symbols and InputSections/Chunks.</p>
+</li>
+<li><p class="first">Writer</p>
+<p>The writer is responsible for writing file headers and InputSections/Chunks to
+a file.  It creates OutputSections, put all InputSections/Chunks into them,
+assign unique, non-overlapping addresses and file offsets to them, and then
+write them down to a file.</p>
+</li>
+<li><p class="first">Driver</p>
+<p>The linking process is driven by the driver. The driver:</p>
+<ul class="simple">
+<li>processes command line options,</li>
+<li>creates a symbol table,</li>
+<li>creates an InputFile for each input file and puts all symbols within into
+the symbol table,</li>
+<li>checks if there’s no remaining undefined symbols,</li>
+<li>creates a writer,</li>
+<li>and passes the symbol table to the writer to write the result to a file.</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="link-time-optimization">
+<h2>Link-Time Optimization<a class="headerlink" href="#link-time-optimization" title="Permalink to this headline">¶</a></h2>
+<p>LTO is implemented by handling LLVM bitcode files as object files.
+The linker resolves symbols in bitcode files normally. If all symbols
+are successfully resolved, it then runs LLVM passes
+with all bitcode files to convert them to one big regular ELF/COFF file.
+Finally, the linker replaces bitcode symbols with ELF/COFF symbols,
+so that they are linked as if they were in the native format from the beginning.</p>
+<p>The details are described in this document.
+<a class="reference external" href="http://llvm.org/docs/LinkTimeOptimization.html">http://llvm.org/docs/LinkTimeOptimization.html</a></p>
+</div>
+<div class="section" id="glossary">
+<h2>Glossary<a class="headerlink" href="#glossary" title="Permalink to this headline">¶</a></h2>
+<ul>
+<li><p class="first">RVA (COFF)</p>
+<p>Short for Relative Virtual Address.</p>
+<p>Windows executables or DLLs are not position-independent; they are
+linked against a fixed address called an image base. RVAs are
+offsets from an image base.</p>
+<p>Default image bases are 0x140000000 for executables and 0x18000000
+for DLLs. For example, when we are creating an executable, we assume
+that the executable will be loaded at address 0x140000000 by the
+loader, so we apply relocations accordingly. Result texts and data
+will contain raw absolute addresses.</p>
+</li>
+<li><p class="first">VA</p>
+<p>Short for Virtual Address. For COFF, it is equivalent to RVA + image base.</p>
+</li>
+<li><p class="first">Base relocations (COFF)</p>
+<p>Relocation information for the loader. If the loader decides to map
+an executable or a DLL to a different address than their image
+bases, it fixes up binaries using information contained in the base
+relocation table. A base relocation table consists of a list of
+locations containing addresses. The loader adds a difference between
+RVA and actual load address to all locations listed there.</p>
+<p>Note that this run-time relocation mechanism is much simpler than ELF.
+There’s no PLT or GOT. Images are relocated as a whole just
+by shifting entire images in memory by some offsets. Although doing
+this breaks text sharing, I think this mechanism is not actually bad
+on today’s computers.</p>
+</li>
+<li><p class="first">ICF</p>
+<p>Short for Identical COMDAT Folding (COFF) or Identical Code Folding (ELF).</p>
+<p>ICF is an optimization to reduce output size by merging read-only sections
+by not only their names but by their contents. If two read-only sections
+happen to have the same metadata, actual contents and relocations,
+they are merged by ICF. It is known as an effective technique,
+and it usually reduces C++ program’s size by a few percent or more.</p>
+<p>Note that this is not an entirely sound optimization. C/C++ require
+different functions have different addresses. If a program depends on
+that property, it would fail at runtime.</p>
+<p>On Windows, that’s not really an issue because MSVC link.exe enabled
+the optimization by default. As long as your program works
+with the linker’s default settings, your program should be safe with ICF.</p>
+<p>On Unix, your program is generally not guaranteed to be safe with ICF,
+although large programs happen to work correctly.
+LLD works fine with ICF for example.</p>
+</li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="AtomLLD.html" title="ATOM-based lld"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="LLD - The LLVM Linker"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/Readers.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/Readers.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/Readers.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/Readers.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,290 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Developing lld Readers — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Driver" href="Driver.html" />
+    <link rel="prev" title="Development" href="development.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Driver.html" title="Driver"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="development.html" title="Development"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" >ATOM-based lld</a> »</li>
+          <li class="nav-item nav-item-2"><a href="development.html" accesskey="U">Development</a> »</li> 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Developing lld Readers</a><ul>
+<li><a class="reference internal" href="#introduction">Introduction</a></li>
+<li><a class="reference internal" href="#where-to-start">Where to start</a></li>
+<li><a class="reference internal" href="#readers-are-factories">Readers are factories</a></li>
+<li><a class="reference internal" href="#memory-ownership">Memory Ownership</a></li>
+<li><a class="reference internal" href="#making-atoms">Making Atoms</a></li>
+<li><a class="reference internal" href="#performance">Performance</a></li>
+<li><a class="reference internal" href="#testing">Testing</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="development.html"
+                        title="previous chapter">Development</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="Driver.html"
+                        title="next chapter">Driver</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/Readers.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="developing-lld-readers">
+<span id="readers"></span><h1>Developing lld Readers<a class="headerlink" href="#developing-lld-readers" title="Permalink to this headline">¶</a></h1>
+<p>Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see <a class="reference internal" href="index.html"><span class="doc">LLD - The LLVM Linker</span></a>.</p>
+<div class="section" id="introduction">
+<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
+<p>The purpose of a “Reader” is to take an object file in a particular format
+and create an <code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld::File</span></code> (which is a graph of Atoms)
+representing the object file.  A Reader inherits from
+<code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld::Reader</span></code> which lives in
+<code class="file docutils literal notranslate"><span class="pre">include/lld/Core/Reader.h</span></code> and
+<code class="file docutils literal notranslate"><span class="pre">lib/Core/Reader.cpp</span></code>.</p>
+<p>The Reader infrastructure for an object format <code class="docutils literal notranslate"><span class="pre">Foo</span></code> requires the
+following pieces in order to fit into lld:</p>
+<p><code class="file docutils literal notranslate"><span class="pre">include/lld/ReaderWriter/ReaderFoo.h</span></code></p>
+<blockquote>
+<div><dl class="class">
+<dt id="_CPPv316ReaderOptionsFoo">
+<span id="_CPPv216ReaderOptionsFoo"></span><span id="ReaderOptionsFoo"></span><em class="property">class </em><code class="descname">ReaderOptionsFoo</code> : <em class="property">public</em> ReaderOptions<a class="headerlink" href="#_CPPv316ReaderOptionsFoo" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>This Options class is the only way to configure how the Reader will
+parse any file into an <code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld::Reader</span></code> object.  This class
+should be declared in the <code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld</span></code> namespace.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="_CPPv315createReaderFooR16ReaderOptionsFoo">
+<span id="_CPPv215createReaderFooR16ReaderOptionsFoo"></span><span id="createReaderFoo__ReaderOptionsFooR"></span>Reader *<code class="descname">createReaderFoo</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv316ReaderOptionsFoo" title="ReaderOptionsFoo">ReaderOptionsFoo</a> &<em>reader</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv315createReaderFooR16ReaderOptionsFoo" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>This factory function configures and create the Reader. This function
+should be declared in the <code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld</span></code> namespace.</p>
+</dd></dl>
+
+</div></blockquote>
+<p><code class="file docutils literal notranslate"><span class="pre">lib/ReaderWriter/Foo/ReaderFoo.cpp</span></code></p>
+<blockquote>
+<div><dl class="class">
+<dt id="_CPPv39ReaderFoo">
+<span id="_CPPv29ReaderFoo"></span><span id="ReaderFoo"></span><em class="property">class </em><code class="descname">ReaderFoo</code> : <em class="property">public</em> Reader<a class="headerlink" href="#_CPPv39ReaderFoo" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>This is the concrete Reader class which can be called to parse
+object files. It should be declared in an anonymous namespace or
+if there is shared code with the <code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld::WriterFoo</span></code> you
+can make a nested namespace (e.g. <code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">lld::foo</span></code>).</p>
+</dd></dl>
+
+</div></blockquote>
+<p>You may have noticed that <a class="reference internal" href="#_CPPv39ReaderFoo" title="ReaderFoo"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">ReaderFoo</span></code></a> is not declared in the
+<code class="docutils literal notranslate"><span class="pre">.h</span></code> file. An important design aspect of lld is that all Readers are
+created <em>only</em> through an object-format-specific
+<a class="reference internal" href="#_CPPv315createReaderFooR16ReaderOptionsFoo" title="createReaderFoo"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">createReaderFoo()</span></code></a> factory function. The creation of the Reader is
+parametrized through a <a class="reference internal" href="#_CPPv316ReaderOptionsFoo" title="ReaderOptionsFoo"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">ReaderOptionsFoo</span></code></a> class. This options
+class is the one-and-only way to control how the Reader operates when
+parsing an input file into an Atom graph. For instance, you may want the
+Reader to only accept certain architectures. The options class can be
+instantiated from command line options or be programmatically configured.</p>
+</div>
+<div class="section" id="where-to-start">
+<h2>Where to start<a class="headerlink" href="#where-to-start" title="Permalink to this headline">¶</a></h2>
+<p>The lld project already has a skeleton of source code for Readers for
+<code class="docutils literal notranslate"><span class="pre">ELF</span></code>, <code class="docutils literal notranslate"><span class="pre">PECOFF</span></code>, <code class="docutils literal notranslate"><span class="pre">MachO</span></code>, and lld’s native <code class="docutils literal notranslate"><span class="pre">YAML</span></code> graph format.
+If your file format is a variant of one of those, you should modify the
+existing Reader to support your variant. This is done by customizing the Options
+class for the Reader and making appropriate changes to the <code class="docutils literal notranslate"><span class="pre">.cpp</span></code> file to
+interpret those options and act accordingly.</p>
+<p>If your object file format is not a variant of any existing Reader, you’ll need
+to create a new Reader subclass with the organization described above.</p>
+</div>
+<div class="section" id="readers-are-factories">
+<h2>Readers are factories<a class="headerlink" href="#readers-are-factories" title="Permalink to this headline">¶</a></h2>
+<p>The linker will usually only instantiate your Reader once.  That one Reader will
+have its loadFile() method called many times with different input files.
+To support multithreaded linking, the Reader may be parsing multiple input
+files in parallel. Therefore, there should be no parsing state in you Reader
+object.  Any parsing state should be in ivars of your File subclass or in
+some temporary object.</p>
+<p>The key method to implement in a reader is:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">virtual</span> <span class="n">error_code</span> <span class="n">loadFile</span><span class="p">(</span><span class="n">LinkerInput</span> <span class="o">&</span><span class="nb">input</span><span class="p">,</span>
+                            <span class="n">std</span><span class="p">::</span><span class="n">vector</span><span class="o"><</span><span class="n">std</span><span class="p">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="n">File</span><span class="o">>></span> <span class="o">&</span><span class="n">result</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>It takes a memory buffer (which contains the contents of the object file
+being read) and returns an instantiated lld::File object which is
+a collection of Atoms. The result is a vector of File pointers (instead of
+simple a File pointer) because some file formats allow multiple object
+“files” to be encoded in one file system file.</p>
+</div>
+<div class="section" id="memory-ownership">
+<h2>Memory Ownership<a class="headerlink" href="#memory-ownership" title="Permalink to this headline">¶</a></h2>
+<p>Atoms are always owned by their File object. During core linking when Atoms
+are coalesced or stripped away, core linking does not delete them.
+Core linking just removes those unused Atoms from its internal list.
+The destructor of a File object is responsible for deleting all Atoms it
+owns, and if ownership of the MemoryBuffer was passed to it, the File
+destructor needs to delete that too.</p>
+</div>
+<div class="section" id="making-atoms">
+<h2>Making Atoms<a class="headerlink" href="#making-atoms" title="Permalink to this headline">¶</a></h2>
+<p>The internal model of lld is purely Atom based.  But most object files do not
+have an explicit concept of Atoms, instead most have “sections”. The way
+to think of this is that a section is just a list of Atoms with common
+attributes.</p>
+<p>The first step in parsing section-based object files is to cleave each
+section into a list of Atoms. The technique may vary by section type. For
+code sections (e.g. .text), there are usually symbols at the start of each
+function. Those symbol addresses are the points at which the section is
+cleaved into discrete Atoms.  Some file formats (like ELF) also include the
+length of each symbol in the symbol table. Otherwise, the length of each
+Atom is calculated to run to the start of the next symbol or the end of the
+section.</p>
+<p>Other sections types can be implicitly cleaved. For instance c-string literals
+or unwind info (e.g. .eh_frame) can be cleaved by having the Reader look at
+the content of the section.  It is important to cleave sections into Atoms
+to remove false dependencies. For instance the .eh_frame section often
+has no symbols, but contains “pointers” to the functions for which it
+has unwind info.  If the .eh_frame section was not cleaved (but left as one
+big Atom), there would always be a reference (from the eh_frame Atom) to
+each function.  So the linker would be unable to coalesce or dead stripped
+away the function atoms.</p>
+<p>The lld Atom model also requires that a reference to an undefined symbol be
+modeled as a Reference to an UndefinedAtom. So the Reader also needs to
+create an UndefinedAtom for each undefined symbol in the object file.</p>
+<p>Once all Atoms have been created, the second step is to create References
+(recall that Atoms are “nodes” and References are “edges”). Most References
+are created by looking at the “relocation records” in the object file. If
+a function contains a call to “malloc”, there is usually a relocation record
+specifying the address in the section and the symbol table index. Your
+Reader will need to convert the address to an Atom and offset and the symbol
+table index into a target Atom. If “malloc” is not defined in the object file,
+the target Atom of the Reference will be an UndefinedAtom.</p>
+</div>
+<div class="section" id="performance">
+<h2>Performance<a class="headerlink" href="#performance" title="Permalink to this headline">¶</a></h2>
+<p>Once you have the above working to parse an object file into Atoms and
+References, you’ll want to look at performance.  Some techniques that can
+help performance are:</p>
+<ul class="simple">
+<li>Use llvm::BumpPtrAllocator or pre-allocate one big vector<Reference> and then
+just have each atom point to its subrange of References in that vector.
+This can be faster that allocating each Reference as separate object.</li>
+<li>Pre-scan the symbol table and determine how many atoms are in each section
+then allocate space for all the Atom objects at once.</li>
+<li>Don’t copy symbol names or section content to each Atom, instead use
+StringRef and ArrayRef in each Atom to point to its name and content in the
+MemoryBuffer.</li>
+</ul>
+</div>
+<div class="section" id="testing">
+<h2>Testing<a class="headerlink" href="#testing" title="Permalink to this headline">¶</a></h2>
+<p>We are still working on infrastructure to test Readers. The issue is that
+you don’t want to check in binary files to the test suite. And the tools
+for creating your object file from assembly source may not be available on
+every OS.</p>
+<p>We are investigating a way to use YAML to describe the section, symbols,
+and content of a file. Then have some code which will write out an object
+file from that YAML description.</p>
+<p>Once that is in place, you can write test cases that contain section/symbols
+YAML and is run through the linker to produce Atom/References based YAML which
+is then run through FileCheck to verify the Atoms and References are as
+expected.</p>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="Driver.html" title="Driver"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="development.html" title="Development"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" >ATOM-based lld</a> »</li>
+          <li class="nav-item nav-item-2"><a href="development.html" >Development</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/ReleaseNotes.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/ReleaseNotes.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/ReleaseNotes.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/ReleaseNotes.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,165 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>LLD 8.0.0 Release Notes — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="prev" title="Windows support" href="windows_support.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="windows_support.html" title="Windows support"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">LLD 8.0.0 Release Notes</a><ul>
+<li><a class="reference internal" href="#introduction">Introduction</a></li>
+<li><a class="reference internal" href="#non-comprehensive-list-of-changes-in-this-release">Non-comprehensive list of changes in this release</a><ul>
+<li><a class="reference internal" href="#elf-improvements">ELF Improvements</a></li>
+<li><a class="reference internal" href="#coff-improvements">COFF Improvements</a></li>
+<li><a class="reference internal" href="#macho-improvements">MachO Improvements</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="windows_support.html"
+                        title="previous chapter">Windows support</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/ReleaseNotes.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="lld-8-0-0-release-notes">
+<h1>LLD 8.0.0 Release Notes<a class="headerlink" href="#lld-8-0-0-release-notes" title="Permalink to this headline">¶</a></h1>
+<div class="contents local topic" id="contents">
+<ul class="simple">
+<li><a class="reference internal" href="#introduction" id="id1">Introduction</a></li>
+<li><a class="reference internal" href="#non-comprehensive-list-of-changes-in-this-release" id="id2">Non-comprehensive list of changes in this release</a><ul>
+<li><a class="reference internal" href="#elf-improvements" id="id3">ELF Improvements</a></li>
+<li><a class="reference internal" href="#coff-improvements" id="id4">COFF Improvements</a></li>
+<li><a class="reference internal" href="#macho-improvements" id="id5">MachO Improvements</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="admonition warning">
+<p class="first admonition-title">Warning</p>
+<p class="last">These are in-progress notes for the upcoming LLVM 8.0.0 release.
+Release notes for previous releases can be found on
+<a class="reference external" href="http://releases.llvm.org/download.html">the Download Page</a>.</p>
+</div>
+<div class="section" id="introduction">
+<h2><a class="toc-backref" href="#id1">Introduction</a><a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
+<p>This document contains the release notes for the lld linker, release 8.0.0.
+Here we describe the status of lld, including major improvements
+from the previous release. All lld releases may be downloaded
+from the <a class="reference external" href="http://llvm.org/releases/">LLVM releases web site</a>.</p>
+</div>
+<div class="section" id="non-comprehensive-list-of-changes-in-this-release">
+<h2><a class="toc-backref" href="#id2">Non-comprehensive list of changes in this release</a><a class="headerlink" href="#non-comprehensive-list-of-changes-in-this-release" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="elf-improvements">
+<h3><a class="toc-backref" href="#id3">ELF Improvements</a><a class="headerlink" href="#elf-improvements" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Item 1.</li>
+</ul>
+</div>
+<div class="section" id="coff-improvements">
+<h3><a class="toc-backref" href="#id4">COFF Improvements</a><a class="headerlink" href="#coff-improvements" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Item 1.</li>
+</ul>
+</div>
+<div class="section" id="macho-improvements">
+<h3><a class="toc-backref" href="#id5">MachO Improvements</a><a class="headerlink" href="#macho-improvements" title="Permalink to this headline">¶</a></h3>
+<ul class="simple">
+<li>Item 1.</li>
+</ul>
+</div>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="windows_support.html" title="Windows support"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/WebAssembly.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/WebAssembly.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/WebAssembly.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/WebAssembly.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,153 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>WebAssembly lld port — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Windows support" href="windows_support.html" />
+    <link rel="prev" title="Sphinx Introduction for LLVM Developers" href="sphinx_intro.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="windows_support.html" title="Windows support"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="sphinx_intro.html" title="Sphinx Introduction for LLVM Developers"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">WebAssembly lld port</a><ul>
+<li><a class="reference internal" href="#object-file-format">Object file format</a></li>
+<li><a class="reference internal" href="#missing-features">Missing features</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="sphinx_intro.html"
+                        title="previous chapter">Sphinx Introduction for LLVM Developers</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="windows_support.html"
+                        title="next chapter">Windows support</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/WebAssembly.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="webassembly-lld-port">
+<h1>WebAssembly lld port<a class="headerlink" href="#webassembly-lld-port" title="Permalink to this headline">¶</a></h1>
+<p>Note: The WebAssembly port is still a work in progress and is be lacking
+certain features.</p>
+<p>The WebAssembly version of lld takes WebAssembly binaries as inputs and produces
+a WebAssembly binary as its output.  For the most part this port tried to mimic
+the behaviour of traditional ELF linkers and specifically the ELF lld port.
+Where possible that command line flags and the semantics should be the same.</p>
+<div class="section" id="object-file-format">
+<h2>Object file format<a class="headerlink" href="#object-file-format" title="Permalink to this headline">¶</a></h2>
+<p>The format the input object files that lld expects is specified as part of the
+the WebAssembly tool conventions
+<a class="reference external" href="https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md">https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md</a>.</p>
+<p>This is object format that the llvm will produce when run with the
+<code class="docutils literal notranslate"><span class="pre">wasm32-unknown-unknown</span></code> target.  To build llvm with WebAssembly support
+currently requires enabling the experimental backed using
+<code class="docutils literal notranslate"><span class="pre">-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly</span></code>.</p>
+</div>
+<div class="section" id="missing-features">
+<h2>Missing features<a class="headerlink" href="#missing-features" title="Permalink to this headline">¶</a></h2>
+<p>There are several key features that are not yet implement in the WebAssembly
+ports:</p>
+<ul class="simple">
+<li>COMDAT support.  This means that support for C++ is still very limited.</li>
+<li>Function stripping.  Currently there is no support for <code class="docutils literal notranslate"><span class="pre">--gc-sections</span></code> so
+functions and data from a given object will linked as a unit.</li>
+<li>Section start/end symbols.  The synthetic symbols that mark the start and
+of data regions are not yet created in the output file.</li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="windows_support.html" title="Windows support"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="sphinx_intro.html" title="Sphinx Introduction for LLVM Developers"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/_images/hello.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_images/hello.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_images/hello.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/AtomLLD.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/AtomLLD.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/AtomLLD.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/AtomLLD.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,62 @@
+ATOM-based lld
+==============
+
+Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see :doc:`index`.
+
+ATOM-based lld is a new set of modular code for creating linker tools.
+Currently it supports Mach-O.
+
+* End-User Features:
+
+  * Compatible with existing linker options
+  * Reads standard Object Files
+  * Writes standard Executable Files
+  * Remove clang's reliance on "the system linker"
+  * Uses the LLVM `"UIUC" BSD-Style license`__.
+
+* Applications:
+
+  * Modular design
+  * Support cross linking
+  * Easy to add new CPU support
+  * Can be built as static tool or library
+
+* Design and Implementation:
+
+  * Extensive unit tests
+  * Internal linker model can be dumped/read to textual format
+  * Additional linking features can be plugged in as "passes"
+  * OS specific and CPU specific code factored out
+
+Why a new linker?
+-----------------
+
+The fact that clang relies on whatever linker tool you happen to have installed
+means that clang has been very conservative adopting features which require a
+recent linker.
+
+In the same way that the MC layer of LLVM has removed clang's reliance on the
+system assembler tool, the lld project will remove clang's reliance on the
+system linker tool.
+
+
+Contents
+--------
+
+.. toctree::
+   :maxdepth: 2
+
+   design
+   getting_started
+   development
+   open_projects
+   sphinx_intro
+
+Indices and tables
+------------------
+
+* :ref:`genindex`
+* :ref:`search`
+
+__ http://llvm.org/docs/DeveloperPolicy.html#license

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/Driver.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/Driver.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/Driver.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/Driver.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,82 @@
+======
+Driver
+======
+
+Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see :doc:`index`.
+
+.. contents::
+   :local:
+
+Introduction
+============
+
+This document describes the lld driver. The purpose of this document is to
+describe both the motivation and design goals for the driver, as well as details
+of the internal implementation.
+
+Overview
+========
+
+The lld driver is designed to support a number of different command line
+interfaces. The main interfaces we plan to support are binutils' ld, Apple's
+ld, and Microsoft's link.exe.
+
+Flavors
+-------
+
+Each of these different interfaces is referred to as a flavor. There is also an
+extra flavor "core" which is used to exercise the core functionality of the
+linker it the test suite.
+
+* gnu
+* darwin
+* link
+* core
+
+Selecting a Flavor
+^^^^^^^^^^^^^^^^^^
+
+There are two different ways to tell lld which flavor to be. They are checked in
+order, so the second overrides the first. The first is to symlink :program:`lld`
+as :program:`lld-{flavor}` or just :program:`{flavor}`. You can also specify
+it as the first command line argument using ``-flavor``::
+
+  $ lld -flavor gnu
+
+There is a shortcut for ``-flavor core`` as ``-core``.
+
+
+Adding an Option to an existing Flavor
+======================================
+
+#. Add the option to the desired :file:`lib/Driver/{flavor}Options.td`.
+
+#. Add to :cpp:class:`lld::FlavorLinkingContext` a getter and setter method
+   for the option.
+
+#. Modify :cpp:func:`lld::FlavorDriver::parse` in :file:
+   `lib/Driver/{Flavor}Driver.cpp` to call the targetInfo setter
+   for corresponding to the option.
+
+#. Modify {Flavor}Reader and {Flavor}Writer to use the new targtInfo option.
+
+
+Adding a Flavor
+===============
+
+#. Add an entry for the flavor in :file:`include/lld/Common/Driver.h` to
+   :cpp:class:`lld::UniversalDriver::Flavor`.
+
+#. Add an entry in :file:`lib/Driver/UniversalDriver.cpp` to
+   :cpp:func:`lld::Driver::strToFlavor` and
+   :cpp:func:`lld::UniversalDriver::link`.
+   This allows the flavor to be selected via symlink and `-flavor`.
+
+#. Add a tablegen file called :file:`lib/Driver/{flavor}Options.td` that
+   describes the options. If the options are a superset of another driver, that
+   driver's td file can simply be included. The :file:`{flavor}Options.td` file
+   must also be added to :file:`lib/Driver/CMakeLists.txt`.
+
+#. Add a ``{flavor}Driver`` as a subclass of :cpp:class:`lld::Driver`
+   in :file:`lib/Driver/{flavor}Driver.cpp`.

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/NewLLD.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/NewLLD.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/NewLLD.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/NewLLD.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,309 @@
+The ELF, COFF and Wasm Linkers
+==============================
+
+The ELF Linker as a Library
+---------------------------
+
+You can embed LLD to your program by linking against it and calling the linker's
+entry point function lld::elf::link.
+
+The current policy is that it is your reponsibility to give trustworthy object
+files. The function is guaranteed to return as long as you do not pass corrupted
+or malicious object files. A corrupted file could cause a fatal error or SEGV.
+That being said, you don't need to worry too much about it if you create object
+files in the usual way and give them to the linker. It is naturally expected to
+work, or otherwise it's a linker's bug.
+
+Design
+======
+
+We will describe the design of the linkers in the rest of the document.
+
+Key Concepts
+------------
+
+Linkers are fairly large pieces of software.
+There are many design choices you have to make to create a complete linker.
+
+This is a list of design choices we've made for ELF and COFF LLD.
+We believe that these high-level design choices achieved a right balance
+between speed, simplicity and extensibility.
+
+* Implement as native linkers
+
+  We implemented the linkers as native linkers for each file format.
+
+  The linkers share the same design but share very little code.
+  Sharing code makes sense if the benefit is worth its cost.
+  In our case, the object formats are different enough that we thought the layer
+  to abstract the differences wouldn't be worth its complexity and run-time
+  cost.  Elimination of the abstract layer has greatly simplified the
+  implementation.
+
+* Speed by design
+
+  One of the most important things in archiving high performance is to
+  do less rather than do it efficiently.
+  Therefore, the high-level design matters more than local optimizations.
+  Since we are trying to create a high-performance linker,
+  it is very important to keep the design as efficient as possible.
+
+  Broadly speaking, we do not do anything until we have to do it.
+  For example, we do not read section contents or relocations
+  until we need them to continue linking.
+  When we need to do some costly operation (such as looking up
+  a hash table for each symbol), we do it only once.
+  We obtain a handler (which is typically just a pointer to actual data)
+  on the first operation and use it throughout the process.
+
+* Efficient archive file handling
+
+  LLD's handling of archive files (the files with ".a" file extension) is
+  different from the traditional Unix linkers and similar to Windows linkers.
+  We'll describe how the traditional Unix linker handles archive files, what the
+  problem is, and how LLD approached the problem.
+
+  The traditional Unix linker maintains a set of undefined symbols during
+  linking.  The linker visits each file in the order as they appeared in the
+  command line until the set becomes empty. What the linker would do depends on
+  file type.
+
+  - If the linker visits an object file, the linker links object files to the
+    result, and undefined symbols in the object file are added to the set.
+
+  - If the linker visits an archive file, it checks for the archive file's
+    symbol table and extracts all object files that have definitions for any
+    symbols in the set.
+
+  This algorithm sometimes leads to a counter-intuitive behavior.  If you give
+  archive files before object files, nothing will happen because when the linker
+  visits archives, there is no undefined symbols in the set.  As a result, no
+  files are extracted from the first archive file, and the link is done at that
+  point because the set is empty after it visits one file.
+
+  You can fix the problem by reordering the files,
+  but that cannot fix the issue of mutually-dependent archive files.
+
+  Linking mutually-dependent archive files is tricky.  You may specify the same
+  archive file multiple times to let the linker visit it more than once.  Or,
+  you may use the special command line options, `--start-group` and
+  `--end-group`, to let the linker loop over the files between the options until
+  no new symbols are added to the set.
+
+  Visiting the same archive files multiple makes the linker slower.
+
+  Here is how LLD approaches the problem. Instead of memorizing only undefined
+  symbols, we program LLD so that it memorizes all symbols.  When it sees an
+  undefined symbol that can be resolved by extracting an object file from an
+  archive file it previously visited, it immediately extracts the file and link
+  it.  It is doable because LLD does not forget symbols it have seen in archive
+  files.
+
+  We believe that the LLD's way is efficient and easy to justify.
+
+  The semantics of LLD's archive handling is different from the traditional
+  Unix's.  You can observe it if you carefully craft archive files to exploit
+  it.  However, in reality, we don't know any program that cannot link with our
+  algorithm so far, so it's not going to cause trouble.
+
+Numbers You Want to Know
+------------------------
+
+To give you intuition about what kinds of data the linker is mainly working on,
+I'll give you the list of objects and their numbers LLD has to read and process
+in order to link a very large executable. In order to link Chrome with debug
+info, which is roughly 2 GB in output size, LLD reads
+
+- 17,000 files,
+- 1,800,000 sections,
+- 6,300,000 symbols, and
+- 13,000,000 relocations.
+
+LLD produces the 2 GB executable in 15 seconds.
+
+These numbers vary depending on your program, but in general,
+you have a lot of relocations and symbols for each file.
+If your program is written in C++, symbol names are likely to be
+pretty long because of name mangling.
+
+It is important to not waste time on relocations and symbols.
+
+In the above case, the total amount of symbol strings is 450 MB,
+and inserting all of them to a hash table takes 1.5 seconds.
+Therefore, if you causally add a hash table lookup for each symbol,
+it would slow down the linker by 10%. So, don't do that.
+
+On the other hand, you don't have to pursue efficiency
+when handling files.
+
+Important Data Structures
+-------------------------
+
+We will describe the key data structures in LLD in this section.  The linker can
+be understood as the interactions between them.  Once you understand their
+functions, the code of the linker should look obvious to you.
+
+* Symbol
+
+  This class represents a symbol.
+  They are created for symbols in object files or archive files.
+  The linker creates linker-defined symbols as well.
+
+  There are basically three types of Symbols: Defined, Undefined, or Lazy.
+
+  - Defined symbols are for all symbols that are considered as "resolved",
+    including real defined symbols, COMDAT symbols, common symbols,
+    absolute symbols, linker-created symbols, etc.
+  - Undefined symbols represent undefined symbols, which need to be replaced by
+    Defined symbols by the resolver until the link is complete.
+  - Lazy symbols represent symbols we found in archive file headers
+    which can turn into Defined if we read archieve members.
+
+  There's only one Symbol instance for each unique symbol name. This uniqueness
+  is guaranteed by the symbol table. As the resolver reads symbols from input
+  files, it replaces an existing Symbol with the "best" Symbol for its symbol
+  name using the placement new.
+
+  The above mechanism allows you to use pointers to Symbols as a very cheap way
+  to access name resolution results. Assume for example that you have a pointer
+  to an undefined symbol before name resolution. If the symbol is resolved to a
+  defined symbol by the resolver, the pointer will "automatically" point to the
+  defined symbol, because the undefined symbol the pointer pointed to will have
+  been replaced by the defined symbol in-place.
+
+* SymbolTable
+
+  SymbolTable is basically a hash table from strings to Symbols
+  with logic to resolve symbol conflicts. It resolves conflicts by symbol type.
+
+  - If we add Defined and Undefined symbols, the symbol table will keep the
+    former.
+  - If we add Defined and Lazy symbols, it will keep the former.
+  - If we add Lazy and Undefined, it will keep the former,
+    but it will also trigger the Lazy symbol to load the archive member
+    to actually resolve the symbol.
+
+* Chunk (COFF specific)
+
+  Chunk represents a chunk of data that will occupy space in an output.
+  Each regular section becomes a chunk.
+  Chunks created for common or BSS symbols are not backed by sections.
+  The linker may create chunks to append additional data to an output as well.
+
+  Chunks know about their size, how to copy their data to mmap'ed outputs,
+  and how to apply relocations to them.
+  Specifically, section-based chunks know how to read relocation tables
+  and how to apply them.
+
+* InputSection (ELF specific)
+
+  Since we have less synthesized data for ELF, we don't abstract slices of
+  input files as Chunks for ELF. Instead, we directly use the input section
+  as an internal data type.
+
+  InputSection knows about their size and how to copy themselves to
+  mmap'ed outputs, just like COFF Chunks.
+
+* OutputSection
+
+  OutputSection is a container of InputSections (ELF) or Chunks (COFF).
+  An InputSection or Chunk belongs to at most one OutputSection.
+
+There are mainly three actors in this linker.
+
+* InputFile
+
+  InputFile is a superclass of file readers.
+  We have a different subclass for each input file type,
+  such as regular object file, archive file, etc.
+  They are responsible for creating and owning Symbols and InputSections/Chunks.
+
+* Writer
+
+  The writer is responsible for writing file headers and InputSections/Chunks to
+  a file.  It creates OutputSections, put all InputSections/Chunks into them,
+  assign unique, non-overlapping addresses and file offsets to them, and then
+  write them down to a file.
+
+* Driver
+
+  The linking process is driven by the driver. The driver:
+
+  - processes command line options,
+  - creates a symbol table,
+  - creates an InputFile for each input file and puts all symbols within into
+    the symbol table,
+  - checks if there's no remaining undefined symbols,
+  - creates a writer,
+  - and passes the symbol table to the writer to write the result to a file.
+
+Link-Time Optimization
+----------------------
+
+LTO is implemented by handling LLVM bitcode files as object files.
+The linker resolves symbols in bitcode files normally. If all symbols
+are successfully resolved, it then runs LLVM passes
+with all bitcode files to convert them to one big regular ELF/COFF file.
+Finally, the linker replaces bitcode symbols with ELF/COFF symbols,
+so that they are linked as if they were in the native format from the beginning.
+
+The details are described in this document.
+http://llvm.org/docs/LinkTimeOptimization.html
+
+Glossary
+--------
+
+* RVA (COFF)
+
+  Short for Relative Virtual Address.
+
+  Windows executables or DLLs are not position-independent; they are
+  linked against a fixed address called an image base. RVAs are
+  offsets from an image base.
+
+  Default image bases are 0x140000000 for executables and 0x18000000
+  for DLLs. For example, when we are creating an executable, we assume
+  that the executable will be loaded at address 0x140000000 by the
+  loader, so we apply relocations accordingly. Result texts and data
+  will contain raw absolute addresses.
+
+* VA
+
+  Short for Virtual Address. For COFF, it is equivalent to RVA + image base.
+
+* Base relocations (COFF)
+
+  Relocation information for the loader. If the loader decides to map
+  an executable or a DLL to a different address than their image
+  bases, it fixes up binaries using information contained in the base
+  relocation table. A base relocation table consists of a list of
+  locations containing addresses. The loader adds a difference between
+  RVA and actual load address to all locations listed there.
+
+  Note that this run-time relocation mechanism is much simpler than ELF.
+  There's no PLT or GOT. Images are relocated as a whole just
+  by shifting entire images in memory by some offsets. Although doing
+  this breaks text sharing, I think this mechanism is not actually bad
+  on today's computers.
+
+* ICF
+
+  Short for Identical COMDAT Folding (COFF) or Identical Code Folding (ELF).
+
+  ICF is an optimization to reduce output size by merging read-only sections
+  by not only their names but by their contents. If two read-only sections
+  happen to have the same metadata, actual contents and relocations,
+  they are merged by ICF. It is known as an effective technique,
+  and it usually reduces C++ program's size by a few percent or more.
+
+  Note that this is not an entirely sound optimization. C/C++ require
+  different functions have different addresses. If a program depends on
+  that property, it would fail at runtime.
+
+  On Windows, that's not really an issue because MSVC link.exe enabled
+  the optimization by default. As long as your program works
+  with the linker's default settings, your program should be safe with ICF.
+
+  On Unix, your program is generally not guaranteed to be safe with ICF,
+  although large programs happen to work correctly.
+  LLD works fine with ICF for example.

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/Readers.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/Readers.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/Readers.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/Readers.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,174 @@
+.. _Readers:
+
+Developing lld Readers
+======================
+
+Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see :doc:`index`.
+
+Introduction
+------------
+
+The purpose of a "Reader" is to take an object file in a particular format
+and create an `lld::File`:cpp:class: (which is a graph of Atoms)
+representing the object file.  A Reader inherits from
+`lld::Reader`:cpp:class: which lives in
+:file:`include/lld/Core/Reader.h` and
+:file:`lib/Core/Reader.cpp`.
+
+The Reader infrastructure for an object format ``Foo`` requires the
+following pieces in order to fit into lld:
+
+:file:`include/lld/ReaderWriter/ReaderFoo.h`
+
+   .. cpp:class:: ReaderOptionsFoo : public ReaderOptions
+
+      This Options class is the only way to configure how the Reader will
+      parse any file into an `lld::Reader`:cpp:class: object.  This class
+      should be declared in the `lld`:cpp:class: namespace.
+
+   .. cpp:function:: Reader *createReaderFoo(ReaderOptionsFoo &reader)
+
+      This factory function configures and create the Reader. This function
+      should be declared in the `lld`:cpp:class: namespace.
+
+:file:`lib/ReaderWriter/Foo/ReaderFoo.cpp`
+
+   .. cpp:class:: ReaderFoo : public Reader
+
+      This is the concrete Reader class which can be called to parse
+      object files. It should be declared in an anonymous namespace or
+      if there is shared code with the `lld::WriterFoo`:cpp:class: you
+      can make a nested namespace (e.g. `lld::foo`:cpp:class:).
+
+You may have noticed that :cpp:class:`ReaderFoo` is not declared in the
+``.h`` file. An important design aspect of lld is that all Readers are
+created *only* through an object-format-specific
+:cpp:func:`createReaderFoo` factory function. The creation of the Reader is
+parametrized through a :cpp:class:`ReaderOptionsFoo` class. This options
+class is the one-and-only way to control how the Reader operates when
+parsing an input file into an Atom graph. For instance, you may want the
+Reader to only accept certain architectures. The options class can be
+instantiated from command line options or be programmatically configured.
+
+Where to start
+--------------
+
+The lld project already has a skeleton of source code for Readers for
+``ELF``, ``PECOFF``, ``MachO``, and lld's native ``YAML`` graph format.
+If your file format is a variant of one of those, you should modify the
+existing Reader to support your variant. This is done by customizing the Options
+class for the Reader and making appropriate changes to the ``.cpp`` file to
+interpret those options and act accordingly.
+
+If your object file format is not a variant of any existing Reader, you'll need
+to create a new Reader subclass with the organization described above.
+
+Readers are factories
+---------------------
+
+The linker will usually only instantiate your Reader once.  That one Reader will
+have its loadFile() method called many times with different input files.
+To support multithreaded linking, the Reader may be parsing multiple input
+files in parallel. Therefore, there should be no parsing state in you Reader
+object.  Any parsing state should be in ivars of your File subclass or in
+some temporary object.
+
+The key method to implement in a reader is::
+
+  virtual error_code loadFile(LinkerInput &input,
+                              std::vector<std::unique_ptr<File>> &result);
+
+It takes a memory buffer (which contains the contents of the object file
+being read) and returns an instantiated lld::File object which is
+a collection of Atoms. The result is a vector of File pointers (instead of
+simple a File pointer) because some file formats allow multiple object
+"files" to be encoded in one file system file.
+
+
+Memory Ownership
+----------------
+
+Atoms are always owned by their File object. During core linking when Atoms
+are coalesced or stripped away, core linking does not delete them.
+Core linking just removes those unused Atoms from its internal list.
+The destructor of a File object is responsible for deleting all Atoms it
+owns, and if ownership of the MemoryBuffer was passed to it, the File
+destructor needs to delete that too.
+
+Making Atoms
+------------
+
+The internal model of lld is purely Atom based.  But most object files do not
+have an explicit concept of Atoms, instead most have "sections". The way
+to think of this is that a section is just a list of Atoms with common
+attributes.
+
+The first step in parsing section-based object files is to cleave each
+section into a list of Atoms. The technique may vary by section type. For
+code sections (e.g. .text), there are usually symbols at the start of each
+function. Those symbol addresses are the points at which the section is
+cleaved into discrete Atoms.  Some file formats (like ELF) also include the
+length of each symbol in the symbol table. Otherwise, the length of each
+Atom is calculated to run to the start of the next symbol or the end of the
+section.
+
+Other sections types can be implicitly cleaved. For instance c-string literals
+or unwind info (e.g. .eh_frame) can be cleaved by having the Reader look at
+the content of the section.  It is important to cleave sections into Atoms
+to remove false dependencies. For instance the .eh_frame section often
+has no symbols, but contains "pointers" to the functions for which it
+has unwind info.  If the .eh_frame section was not cleaved (but left as one
+big Atom), there would always be a reference (from the eh_frame Atom) to
+each function.  So the linker would be unable to coalesce or dead stripped
+away the function atoms.
+
+The lld Atom model also requires that a reference to an undefined symbol be
+modeled as a Reference to an UndefinedAtom. So the Reader also needs to
+create an UndefinedAtom for each undefined symbol in the object file.
+
+Once all Atoms have been created, the second step is to create References
+(recall that Atoms are "nodes" and References are "edges"). Most References
+are created by looking at the "relocation records" in the object file. If
+a function contains a call to "malloc", there is usually a relocation record
+specifying the address in the section and the symbol table index. Your
+Reader will need to convert the address to an Atom and offset and the symbol
+table index into a target Atom. If "malloc" is not defined in the object file,
+the target Atom of the Reference will be an UndefinedAtom.
+
+
+Performance
+-----------
+Once you have the above working to parse an object file into Atoms and
+References, you'll want to look at performance.  Some techniques that can
+help performance are:
+
+* Use llvm::BumpPtrAllocator or pre-allocate one big vector<Reference> and then
+  just have each atom point to its subrange of References in that vector.
+  This can be faster that allocating each Reference as separate object.
+* Pre-scan the symbol table and determine how many atoms are in each section
+  then allocate space for all the Atom objects at once.
+* Don't copy symbol names or section content to each Atom, instead use
+  StringRef and ArrayRef in each Atom to point to its name and content in the
+  MemoryBuffer.
+
+
+Testing
+-------
+
+We are still working on infrastructure to test Readers. The issue is that
+you don't want to check in binary files to the test suite. And the tools
+for creating your object file from assembly source may not be available on
+every OS.
+
+We are investigating a way to use YAML to describe the section, symbols,
+and content of a file. Then have some code which will write out an object
+file from that YAML description.
+
+Once that is in place, you can write test cases that contain section/symbols
+YAML and is run through the linker to produce Atom/References based YAML which
+is then run through FileCheck to verify the Atoms and References are as
+expected.
+
+
+

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/ReleaseNotes.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/ReleaseNotes.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/ReleaseNotes.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/ReleaseNotes.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,37 @@
+=======================
+LLD 8.0.0 Release Notes
+=======================
+
+.. contents::
+    :local:
+
+.. warning::
+   These are in-progress notes for the upcoming LLVM 8.0.0 release.
+   Release notes for previous releases can be found on
+   `the Download Page <http://releases.llvm.org/download.html>`_.
+
+Introduction
+============
+
+This document contains the release notes for the lld linker, release 8.0.0.
+Here we describe the status of lld, including major improvements
+from the previous release. All lld releases may be downloaded
+from the `LLVM releases web site <http://llvm.org/releases/>`_.
+
+Non-comprehensive list of changes in this release
+=================================================
+
+ELF Improvements
+----------------
+
+* Item 1.
+
+COFF Improvements
+-----------------
+
+* Item 1.
+
+MachO Improvements
+------------------
+
+* Item 1.

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/WebAssembly.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/WebAssembly.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/WebAssembly.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/WebAssembly.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,36 @@
+WebAssembly lld port
+====================
+
+Note: The WebAssembly port is still a work in progress and is be lacking
+certain features.
+
+The WebAssembly version of lld takes WebAssembly binaries as inputs and produces
+a WebAssembly binary as its output.  For the most part this port tried to mimic
+the behaviour of traditional ELF linkers and specifically the ELF lld port.
+Where possible that command line flags and the semantics should be the same.
+
+
+Object file format
+------------------
+
+The format the input object files that lld expects is specified as part of the
+the WebAssembly tool conventions
+https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md.
+
+This is object format that the llvm will produce when run with the
+``wasm32-unknown-unknown`` target.  To build llvm with WebAssembly support
+currently requires enabling the experimental backed using
+``-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly``.
+
+
+Missing features
+----------------
+
+There are several key features that are not yet implement in the WebAssembly
+ports:
+
+- COMDAT support.  This means that support for C++ is still very limited.
+- Function stripping.  Currently there is no support for ``--gc-sections`` so
+  functions and data from a given object will linked as a unit.
+- Section start/end symbols.  The synthetic symbols that mark the start and
+  of data regions are not yet created in the output file.

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/design.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/design.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/design.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/design.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,421 @@
+.. _design:
+
+Linker Design
+=============
+
+Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see :doc:`index`.
+
+Introduction
+------------
+
+lld is a new generation of linker.  It is not "section" based like traditional
+linkers which mostly just interlace sections from multiple object files into the
+output file.  Instead, lld is based on "Atoms".  Traditional section based
+linking work well for simple linking, but their model makes advanced linking
+features difficult to implement.  Features like dead code stripping, reordering
+functions for locality, and C++ coalescing require the linker to work at a finer
+grain.
+
+An atom is an indivisible chunk of code or data.  An atom has a set of
+attributes, such as: name, scope, content-type, alignment, etc.  An atom also
+has a list of References.  A Reference contains: a kind, an optional offset, an
+optional addend, and an optional target atom.
+
+The Atom model allows the linker to use standard graph theory models for linking
+data structures.  Each atom is a node, and each Reference is an edge.  The
+feature of dead code stripping is implemented by following edges to mark all
+live atoms, and then delete the non-live atoms.
+
+
+Atom Model
+----------
+
+An atom is an indivisible chunk of code or data.  Typically each user written
+function or global variable is an atom.  In addition, the compiler may emit
+other atoms, such as for literal c-strings or floating point constants, or for
+runtime data structures like dwarf unwind info or pointers to initializers.
+
+A simple "hello world" object file would be modeled like this:
+
+.. image:: hello.png
+
+There are three atoms: main, a proxy for printf, and an anonymous atom
+containing the c-string literal "hello world".  The Atom "main" has two
+references. One is the call site for the call to printf, and the other is a
+reference for the instruction that loads the address of the c-string literal.
+
+There are only four different types of atoms:
+
+	* DefinedAtom
+		95% of all atoms.  This is a chunk of code or data
+
+	* UndefinedAtom
+	   This is a place holder in object files for a reference to some atom
+	   outside the translation unit.During core linking it is usually replaced
+	   by (coalesced into) another Atom.
+
+	* SharedLibraryAtom
+		If a required symbol name turns out to be defined in a dynamic shared
+		library (and not some object file).  A SharedLibraryAtom is the
+		placeholder Atom used to represent that fact.
+
+		It is similar to an UndefinedAtom, but it also tracks information
+		about the associated shared library.
+
+	* AbsoluteAtom
+		This is for embedded support where some stuff is implemented in ROM at
+		some fixed address.  This atom has no content.  It is just an address
+		that the Writer needs to fix up any references to point to.
+
+
+File Model
+----------
+
+The linker views the input files as basically containers of Atoms and
+References, and just a few attributes of their own.  The linker works with three
+kinds of files: object files, static libraries, and dynamic shared libraries.
+Each kind of file has reader object which presents the file in the model
+expected by the linker.
+
+Object File
+~~~~~~~~~~~
+
+An object file is just a container of atoms.  When linking an object file, a
+reader is instantiated which parses the object file and instantiates a set of
+atoms representing all content in the .o file.  The linker adds all those atoms
+to a master graph.
+
+Static Library (Archive)
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+This is the traditional unix static archive which is just a collection of object
+files with a "table of contents". When linking with a static library, by default
+nothing is added to the master graph of atoms. Instead, if after merging all
+atoms from object files into a master graph, if any "undefined" atoms are left
+remaining in the master graph, the linker reads the table of contents for each
+static library to see if any have the needed definitions. If so, the set of
+atoms from the specified object file in the static library is added to the
+master graph of atoms.
+
+Dynamic Library (Shared Object)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Dynamic libraries are different than object files and static libraries in that
+they don't directly add any content.  Their purpose is to check at build time
+that the remaining undefined references can be resolved at runtime, and provide
+a list of dynamic libraries (SO_NEEDED) that will be needed at runtime.  The way
+this is modeled in the linker is that a dynamic library contributes no atoms to
+the initial graph of atoms.  Instead, (like static libraries) if there are
+"undefined" atoms in the master graph of all atoms, then each dynamic library is
+checked to see if exports the required symbol. If so, a "shared library" atom is
+instantiated by the by the reader which the linker uses to replace the
+"undefined" atom.
+
+Linking Steps
+-------------
+
+Through the use of abstract Atoms, the core of linking is architecture
+independent and file format independent.  All command line parsing is factored
+out into a separate "options" abstraction which enables the linker to be driven
+with different command line sets.
+
+The overall steps in linking are:
+
+  #. Command line processing
+
+  #. Parsing input files
+
+  #. Resolving
+
+  #. Passes/Optimizations
+
+  #. Generate output file
+
+The Resolving and Passes steps are done purely on the master graph of atoms, so
+they have no notion of file formats such as mach-o or ELF.
+
+
+Input Files
+~~~~~~~~~~~
+
+Existing developer tools using different file formats for object files.
+A goal of lld is to be file format independent.  This is done
+through a plug-in model for reading object files. The lld::Reader is the base
+class for all object file readers.  A Reader follows the factory method pattern.
+A Reader instantiates an lld::File object (which is a graph of Atoms) from a
+given object file (on disk or in-memory).
+
+Every Reader subclass defines its own "options" class (for instance the mach-o
+Reader defines the class ReaderOptionsMachO).  This options class is the
+one-and-only way to control how the Reader operates when parsing an input file
+into an Atom graph.  For instance, you may want the Reader to only accept
+certain architectures.  The options class can be instantiated from command
+line options, or it can be subclassed and the ivars programmatically set.
+
+Resolving
+~~~~~~~~~
+
+The resolving step takes all the atoms' graphs from each object file and
+combines them into one master object graph.  Unfortunately, it is not as simple
+as appending the atom list from each file into one big list.  There are many
+cases where atoms need to be coalesced.  That is, two or more atoms need to be
+coalesced into one atom.  This is necessary to support: C language "tentative
+definitions", C++ weak symbols for templates and inlines defined in headers,
+replacing undefined atoms with actual definition atoms, and for merging copies
+of constants like c-strings and floating point constants.
+
+The linker support coalescing by-name and by-content. By-name is used for
+tentative definitions and weak symbols.  By-content is used for constant data
+that can be merged.
+
+The resolving process maintains some global linking "state", including a "symbol
+table" which is a map from llvm::StringRef to lld::Atom*.  With these data
+structures, the linker iterates all atoms in all input files. For each atom, it
+checks if the atom is named and has a global or hidden scope.  If so, the atom
+is added to the symbol table map.  If there already is a matching atom in that
+table, that means the current atom needs to be coalesced with the found atom, or
+it is a multiple definition error.
+
+When all initial input file atoms have been processed by the resolver, a scan is
+made to see if there are any undefined atoms in the graph.  If there are, the
+linker scans all libraries (both static and dynamic) looking for definitions to
+replace the undefined atoms.  It is an error if any undefined atoms are left
+remaining.
+
+Dead code stripping (if requested) is done at the end of resolving.  The linker
+does a simple mark-and-sweep. It starts with "root" atoms (like "main" in a main
+executable) and follows each references and marks each Atom that it visits as
+"live".  When done, all atoms not marked "live" are removed.
+
+The result of the Resolving phase is the creation of an lld::File object.  The
+goal is that the lld::File model is **the** internal representation
+throughout the linker. The file readers parse (mach-o, ELF, COFF) into an
+lld::File.  The file writers (mach-o, ELF, COFF) taken an lld::File and produce
+their file kind, and every Pass only operates on an lld::File.  This is not only
+a simpler, consistent model, but it enables the state of the linker to be dumped
+at any point in the link for testing purposes.
+
+
+Passes
+~~~~~~
+
+The Passes step is an open ended set of routines that each get a change to
+modify or enhance the current lld::File object. Some example Passes are:
+
+  * stub (PLT) generation
+
+  * GOT instantiation
+
+  * order_file optimization
+
+  * branch island generation
+
+  * branch shim generation
+
+  * Objective-C optimizations (Darwin specific)
+
+  * TLV instantiation (Darwin specific)
+
+  * DTrace probe processing (Darwin specific)
+
+  * compact unwind encoding (Darwin specific)
+
+
+Some of these passes are specific to Darwin's runtime environments.  But many of
+the passes are applicable to any OS (such as generating branch island for out of
+range branch instructions).
+
+The general structure of a pass is to iterate through the atoms in the current
+lld::File object, inspecting each atom and doing something.  For instance, the
+stub pass, looks for call sites to shared library atoms (e.g. call to printf).
+It then instantiates a "stub" atom (PLT entry) and a "lazy pointer" atom for
+each proxy atom needed, and these new atoms are added to the current lld::File
+object.  Next, all the noted call sites to shared library atoms have their
+References altered to point to the stub atom instead of the shared library atom.
+
+
+Generate Output File
+~~~~~~~~~~~~~~~~~~~~
+
+Once the passes are done, the output file writer is given current lld::File
+object.  The writer's job is to create the executable content file wrapper and
+place the content of the atoms into it.
+
+lld uses a plug-in model for writing output files. All concrete writers (e.g.
+ELF, mach-o, etc) are subclasses of the lld::Writer class.
+
+Unlike the Reader class which has just one method to instantiate an lld::File,
+the Writer class has multiple methods.  The crucial method is to generate the
+output file, but there are also methods which allow the Writer to contribute
+Atoms to the resolver and specify passes to run.
+
+An example of contributing
+atoms is that if the Writer knows a main executable is being linked and such
+an executable requires a specially named entry point (e.g. "_main"), the Writer
+can add an UndefinedAtom with that special name to the resolver.  This will
+cause the resolver to issue an error if that symbol is not defined.
+
+Sometimes a Writer supports lazily created symbols, such as names for the start
+of sections. To support this, the Writer can create a File object which vends
+no initial atoms, but does lazily supply atoms by name as needed.
+
+Every Writer subclass defines its own "options" class (for instance the mach-o
+Writer defines the class WriterOptionsMachO).  This options class is the
+one-and-only way to control how the Writer operates when producing an output
+file from an Atom graph.  For instance, you may want the Writer to optimize
+the output for certain OS versions, or strip local symbols, etc. The options
+class can be instantiated from command line options, or it can be subclassed
+and the ivars programmatically set.
+
+
+lld::File representations
+-------------------------
+
+Just as LLVM has three representations of its IR model, lld has two
+representations of its File/Atom/Reference model:
+
+ * In memory, abstract C++ classes (lld::Atom, lld::Reference, and lld::File).
+
+ * textual (in YAML)
+
+
+Textual representations in YAML
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In designing a textual format we want something easy for humans to read and easy
+for the linker to parse.  Since an atom has lots of attributes most of which are
+usually just the default, we should define default values for every attribute so
+that those can be omitted from the text representation.  Here is the atoms for a
+simple hello world program expressed in YAML::
+
+  target-triple:   x86_64-apple-darwin11
+
+  atoms:
+      - name:    _main
+        scope:   global
+        type:    code
+        content: [ 55, 48, 89, e5, 48, 8d, 3d, 00, 00, 00, 00, 30, c0, e8, 00, 00,
+                   00, 00, 31, c0, 5d, c3 ]
+        fixups:
+        - offset: 07
+          kind:   pcrel32
+          target: 2
+        - offset: 0E
+          kind:   call32
+          target: _fprintf
+
+      - type:    c-string
+        content: [ 73, 5A, 00 ]
+
+  ...
+
+The biggest use for the textual format will be writing test cases.  Writing test
+cases in C is problematic because the compiler may vary its output over time for
+its own optimization reasons which my inadvertently disable or break the linker
+feature trying to be tested. By writing test cases in the linkers own textual
+format, we can exactly specify every attribute of every atom and thus target
+specific linker logic.
+
+The textual/YAML format follows the ReaderWriter patterns used in lld. The lld
+library comes with the classes: ReaderYAML and WriterYAML.
+
+
+Testing
+-------
+
+The lld project contains a test suite which is being built up as new code is
+added to lld.  All new lld functionality should have a tests added to the test
+suite.  The test suite is `lit <http://llvm.org/cmds/lit.html/>`_ driven.  Each
+test is a text file with comments telling lit how to run the test and check the
+result To facilitate testing, the lld project builds a tool called lld-core.
+This tool reads a YAML file (default from stdin), parses it into one or more
+lld::File objects in memory and then feeds those lld::File objects to the
+resolver phase.
+
+
+Resolver testing
+~~~~~~~~~~~~~~~~
+
+Basic testing is the "core linking" or resolving phase.  That is where the
+linker merges object files.  All test cases are written in YAML.  One feature of
+YAML is that it allows multiple "documents" to be encoding in one YAML stream.
+That means one text file can appear to the linker as multiple .o files - the
+normal case for the linker.
+
+Here is a simple example of a core linking test case. It checks that an
+undefined atom from one file will be replaced by a definition from another
+file::
+
+  # RUN: lld-core %s | FileCheck %s
+
+  #
+  # Test that undefined atoms are replaced with defined atoms.
+  #
+
+  ---
+  atoms:
+      - name:              foo
+        definition:        undefined
+  ---
+  atoms:
+      - name:              foo
+        scope:             global
+        type:              code
+  ...
+
+  # CHECK:       name:       foo
+  # CHECK:       scope:      global
+  # CHECK:       type:       code
+  # CHECK-NOT:   name:       foo
+  # CHECK:       ...
+
+
+Passes testing
+~~~~~~~~~~~~~~
+
+Since Passes just operate on an lld::File object, the lld-core tool has the
+option to run a particular pass (after resolving).  Thus, you can write a YAML
+test case with carefully crafted input to exercise areas of a Pass and the check
+the resulting lld::File object as represented in YAML.
+
+
+Design Issues
+-------------
+
+There are a number of open issues in the design of lld.  The plan is to wait and
+make these design decisions when we need to.
+
+
+Debug Info
+~~~~~~~~~~
+
+Currently, the lld model says nothing about debug info.  But the most popular
+debug format is DWARF and there is some impedance mismatch with the lld model
+and DWARF.  In lld there are just Atoms and only Atoms that need to be in a
+special section at runtime have an associated section.  Also, Atoms do not have
+addresses.  The way DWARF is spec'ed different parts of DWARF are supposed to go
+into specially named sections and the DWARF references function code by address.
+
+CPU and OS specific functionality
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Currently, lld has an abstract "Platform" that deals with any CPU or OS specific
+differences in linking.  We just keep adding virtual methods to the base
+Platform class as we find linking areas that might need customization.  At some
+point we'll need to structure this better.
+
+
+File Attributes
+~~~~~~~~~~~~~~~
+
+Currently, lld::File just has a path and a way to iterate its atoms. We will
+need to add more attributes on a File.  For example, some equivalent to the
+target triple.  There is also a number of cached or computed attributes that
+could make various Passes more efficient.  For instance, on Darwin there are a
+number of Objective-C optimizations that can be done by a Pass.  But it would
+improve the plain C case if the Objective-C optimization Pass did not have to
+scan all atoms looking for any Objective-C data structures.  This could be done
+if the lld::File object had an attribute that said if the file had any
+Objective-C data in it. The Resolving phase would then be required to "merge"
+that attribute as object files are added.

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/development.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/development.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/development.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/development.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,45 @@
+.. _development:
+
+Development
+===========
+
+Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see :doc:`index`.
+
+lld is developed as part of the `LLVM <http://llvm.org>`_ project.
+
+Creating a Reader
+-----------------
+
+See the :ref:`Creating a Reader <Readers>` guide.
+
+
+Modifying the Driver
+--------------------
+
+See :doc:`Driver`.
+
+
+Debugging
+---------
+
+You can run lld with ``-mllvm -debug`` command line options to enable debugging
+printouts. If you want to enable debug information for some specific pass, you
+can run it with ``-mllvm '-debug-only=<pass>'``, where pass is a name used in
+the ``DEBUG_WITH_TYPE()`` macro.
+
+
+
+Documentation
+-------------
+
+The project documentation is written in reStructuredText and generated using the
+`Sphinx <http://sphinx.pocoo.org/>`_ documentation generator. For more
+information on writing documentation for the project, see the
+:ref:`sphinx_intro`.
+
+.. toctree::
+   :hidden:
+
+   Readers
+   Driver

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/getting_started.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/getting_started.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/getting_started.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/getting_started.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,106 @@
+.. _getting_started:
+
+Getting Started: Building and Running lld
+=========================================
+
+This page gives you the shortest path to checking out and building lld. If you
+run into problems, please file bugs in the `LLVM Bugzilla`__
+
+__ http://llvm.org/bugs/
+
+Building lld
+------------
+
+On Unix-like Systems
+~~~~~~~~~~~~~~~~~~~~
+
+1. Get the required tools.
+
+  * `CMake 2.8`_\+.
+  * make (or any build system CMake supports).
+  * `Clang 3.1`_\+ or GCC 4.7+ (C++11 support is required).
+
+    * If using Clang, you will also need `libc++`_.
+  * `Python 2.4`_\+ (not 3.x) for running tests.
+
+.. _CMake 2.8: http://www.cmake.org/cmake/resources/software.html
+.. _Clang 3.1: http://clang.llvm.org/
+.. _libc++: http://libcxx.llvm.org/
+.. _Python 2.4: http://python.org/download/
+
+2. Check out LLVM::
+
+     $ cd path/to/llvm-project
+     $ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
+
+3. Check out lld::
+
+     $ cd llvm/tools
+     $ svn co http://llvm.org/svn/llvm-project/lld/trunk lld
+
+  * lld can also be checked out to ``path/to/llvm-project`` and built as an external
+    project.
+
+4. Build LLVM and lld::
+
+     $ cd path/to/llvm-build/llvm (out of source build required)
+     $ cmake -G "Unix Makefiles" path/to/llvm-project/llvm
+     $ make
+
+  * If you want to build with clang and it is not the default compiler or
+    it is installed in an alternate location, you'll need to tell the cmake tool
+    the location of the C and C++ compiler via CMAKE_C_COMPILER and
+    CMAKE_CXX_COMPILER. For example::
+
+        $ cmake -DCMAKE_CXX_COMPILER=/path/to/clang++ -DCMAKE_C_COMPILER=/path/to/clang ...
+
+5. Test::
+
+     $ make check-lld
+
+Using Visual Studio
+~~~~~~~~~~~~~~~~~~~
+
+#. Get the required tools.
+
+  * `CMake 2.8`_\+.
+  * `Visual Studio 12 (2013) or later`_ (required for C++11 support)
+  * `Python 2.4`_\+ (not 3.x) for running tests.
+
+.. _CMake 2.8: http://www.cmake.org/cmake/resources/software.html
+.. _Visual Studio 12 (2013) or later: http://www.microsoft.com/visualstudio/11/en-us
+.. _Python 2.4: http://python.org/download/
+
+#. Check out LLVM::
+
+     $ cd path/to/llvm-project
+     $ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
+
+#. Check out lld::
+
+     $ cd llvm/tools
+     $ svn co http://llvm.org/svn/llvm-project/lld/trunk lld
+
+  * lld can also be checked out to ``path/to/llvm-project`` and built as an external
+    project.
+
+#. Generate Visual Studio project files::
+
+     $ cd path/to/llvm-build/llvm (out of source build required)
+     $ cmake -G "Visual Studio 11" path/to/llvm-project/llvm
+
+#. Build
+
+  * Open LLVM.sln in Visual Studio.
+  * Build the ``ALL_BUILD`` target.
+
+#. Test
+
+  * Build the ``lld-test`` target.
+
+More Information
+~~~~~~~~~~~~~~~~
+
+For more information on using CMake see the `LLVM CMake guide`_.
+
+.. _LLVM CMake guide: http://llvm.org/docs/CMake.html

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/index.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/index.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/index.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/index.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,178 @@
+LLD - The LLVM Linker
+=====================
+
+LLD is a linker from the LLVM project. That is a drop-in replacement
+for system linkers and runs much faster than them. It also provides
+features that are useful for toolchain developers.
+
+The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS) and
+WebAssembly in descending order of completeness. Internally, LLD consists of
+several different linkers. The ELF port is the one that will be described in
+this document. The PE/COFF port is complete, including
+Windows debug info (PDB) support. The WebAssembly port is still a work in
+progress (See :doc:`WebAssembly`).  The Mach-O port is built based on a
+different architecture than the others. For the details about Mach-O, please
+read :doc:`AtomLLD`.
+
+Features
+--------
+
+- LLD is a drop-in replacement for the GNU linkers. That accepts the
+  same command line arguments and linker scripts as GNU.
+
+  We are currently working closely with the FreeBSD project to make
+  LLD default system linker in future versions of the operating
+  system, so we are serious about addressing compatibility issues. As
+  of February 2017, LLD is able to link the entire FreeBSD/amd64 base
+  system including the kernel. With a few work-in-progress patches it
+  can link approximately 95% of the ports collection on AMD64. For the
+  details, see `FreeBSD quarterly status report
+  <https://www.freebsd.org/news/status/report-2016-10-2016-12.html#Using-LLVM%27s-LLD-Linker-as-FreeBSD%27s-System-Linker>`_.
+
+- LLD is very fast. When you link a large program on a multicore
+  machine, you can expect that LLD runs more than twice as fast as GNU
+  gold linker. Your milage may vary, though.
+
+- It supports various CPUs/ABIs including x86-64, x86, x32, AArch64,
+  ARM, MIPS 32/64 big/little-endian, PowerPC, PowerPC 64 and AMDGPU.
+  Among these, x86-64 is the most well-supported target and have
+  reached production quality. AArch64 and MIPS seem decent too. x86
+  should be OK but not well tested yet. ARM support is being developed
+  actively.
+
+- It is always a cross-linker, meaning that it always supports all the
+  above targets however it was built. In fact, we don't provide a
+  build-time option to enable/disable each target. This should make it
+  easy to use our linker as part of a cross-compile toolchain.
+
+- You can embed LLD to your program to eliminate dependency to
+  external linkers. All you have to do is to construct object files
+  and command line arguments just like you would do to invoke an
+  external linker and then call the linker's main function,
+  ``lld::elf::link``, from your code.
+
+- It is small. We are using LLVM libObject library to read from object
+  files, so it is not completely a fair comparison, but as of February
+  2017, LLD/ELF consists only of 21k lines of C++ code while GNU gold
+  consists of 198k lines of C++ code.
+
+- Link-time optimization (LTO) is supported by default. Essentially,
+  all you have to do to do LTO is to pass the ``-flto`` option to clang.
+  Then clang creates object files not in the native object file format
+  but in LLVM bitcode format. LLD reads bitcode object files, compile
+  them using LLVM and emit an output file. Because in this way LLD can
+  see the entire program, it can do the whole program optimization.
+
+- Some very old features for ancient Unix systems (pre-90s or even
+  before that) have been removed. Some default settings have been
+  tuned for the 21st century. For example, the stack is marked as
+  non-executable by default to tighten security.
+
+Performance
+-----------
+
+This is a link time comparison on a 2-socket 20-core 40-thread Xeon
+E5-2680 2.80 GHz machine with an SSD drive. We ran gold and lld with
+or without multi-threading support. To disable multi-threading, we
+added ``-no-threads`` to the command lines.
+
+============  ===========  ============  ====================  ==================  ===============  =============
+Program       Output size  GNU ld        GNU gold w/o threads  GNU gold w/threads  lld w/o threads  lld w/threads
+ffmpeg dbg    92 MiB       1.72s         1.16s                 1.01s               0.60s            0.35s
+mysqld dbg    154 MiB      8.50s         2.96s                 2.68s               1.06s            0.68s
+clang dbg     1.67 GiB     104.03s       34.18s                23.49s              14.82s           5.28s
+chromium dbg  1.14 GiB     209.05s [1]_  64.70s                60.82s              27.60s           16.70s
+============  ===========  ============  ====================  ==================  ===============  =============
+
+As you can see, lld is significantly faster than GNU linkers.
+Note that this is just a benchmark result of our environment.
+Depending on number of available cores, available amount of memory or
+disk latency/throughput, your results may vary.
+
+.. [1] Since GNU ld doesn't support the ``-icf=all`` and
+       ``-gdb-index`` options, we removed them from the command line
+       for GNU ld. GNU ld would have been slower than this if it had
+       these options.
+
+Build
+-----
+
+If you have already checked out LLVM using SVN, you can check out LLD
+under ``tools`` directory just like you probably did for clang. For the
+details, see `Getting Started with the LLVM System
+<http://llvm.org/docs/GettingStarted.html>`_.
+
+If you haven't checkout out LLVM, the easiest way to build LLD is to
+checkout the entire LLVM projects/sub-projects from a git mirror and
+build that tree. You need `cmake` and of course a C++ compiler.
+
+.. code-block:: console
+
+  $ git clone https://github.com/llvm-project/llvm-project-20170507 llvm-project
+  $ mkdir build
+  $ cd build
+  $ cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=lld -DCMAKE_INSTALL_PREFIX=/usr/local ../llvm-project/llvm
+  $ make install
+
+Using LLD
+---------
+
+LLD is installed as ``ld.lld``. On Unix, linkers are invoked by
+compiler drivers, so you are not expected to use that command
+directly. There are a few ways to tell compiler drivers to use ld.lld
+instead of the default linker.
+
+The easiest way to do that is to overwrite the default linker. After
+installing LLD to somewhere on your disk, you can create a symbolic
+link by doing ``ln -s /path/to/ld.lld /usr/bin/ld`` so that
+``/usr/bin/ld`` is resolved to LLD.
+
+If you don't want to change the system setting, you can use clang's
+``-fuse-ld`` option. In this way, you want to set ``-fuse-ld=lld`` to
+LDFLAGS when building your programs.
+
+LLD leaves its name and version number to a ``.comment`` section in an
+output. If you are in doubt whether you are successfully using LLD or
+not, run ``readelf --string-dump .comment <output-file>`` and examine the
+output. If the string "Linker: LLD" is included in the output, you are
+using LLD.
+
+History
+-------
+
+Here is a brief project history of the ELF and COFF ports.
+
+- May 2015: We decided to rewrite the COFF linker and did that.
+  Noticed that the new linker is much faster than the MSVC linker.
+
+- July 2015: The new ELF port was developed based on the COFF linker
+  architecture.
+
+- September 2015: The first patches to support MIPS and AArch64 landed.
+
+- October 2015: Succeeded to self-host the ELF port. We have noticed
+  that the linker was faster than the GNU linkers, but we weren't sure
+  at the time if we would be able to keep the gap as we would add more
+  features to the linker.
+
+- July 2016: Started working on improving the linker script support.
+
+- December 2016: Succeeded to build the entire FreeBSD base system
+  including the kernel. We had widen the performance gap against the
+  GNU linkers.
+
+Internals
+---------
+
+For the internals of the linker, please read :doc:`NewLLD`. It is a bit
+outdated but the fundamental concepts remain valid. We'll update the
+document soon.
+
+.. toctree::
+   :maxdepth: 1
+
+   NewLLD
+   AtomLLD
+   WebAssembly
+   windows_support
+   ReleaseNotes

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/open_projects.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/open_projects.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/open_projects.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/open_projects.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,11 @@
+.. _open_projects:
+
+Open Projects
+=============
+
+.. include:: ../include/lld/Core/TODO.txt
+
+Documentation TODOs
+~~~~~~~~~~~~~~~~~~~
+
+.. todolist::

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/sphinx_intro.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/sphinx_intro.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/sphinx_intro.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/sphinx_intro.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,127 @@
+.. _sphinx_intro:
+
+Sphinx Introduction for LLVM Developers
+=======================================
+
+This document is intended as a short and simple introduction to the Sphinx
+documentation generation system for LLVM developers.
+
+Quickstart
+----------
+
+To get started writing documentation, you will need to:
+
+ 1. Have the Sphinx tools :ref:`installed <installing_sphinx>`.
+
+ 2. Understand how to :ref:`build the documentation
+    <building_the_documentation>`.
+
+ 3. Start :ref:`writing documentation <writing_documentation>`!
+
+.. _installing_sphinx:
+
+Installing Sphinx
+~~~~~~~~~~~~~~~~~
+
+You should be able to install Sphinx using the standard Python package
+installation tool ``easy_install``, as follows::
+
+  $ sudo easy_install sphinx
+  Searching for sphinx
+  Reading http://pypi.python.org/simple/sphinx/
+  Reading http://sphinx.pocoo.org/
+  Best match: Sphinx 1.1.3
+  ... more lines here ..
+
+If you do not have root access (or otherwise want to avoid installing Sphinx in
+system directories) see the section on :ref:`installing_sphinx_in_a_venv` .
+
+If you do not have the ``easy_install`` tool on your system, you should be able
+to install it using:
+
+  Linux
+    Use your distribution's standard package management tool to install it,
+    i.e., ``apt-get install easy_install`` or ``yum install easy_install``.
+
+  Mac OS X
+    All modern Mac OS X systems come with ``easy_install`` as part of the base
+    system.
+
+  Windows
+    See the `setuptools <http://pypi.python.org/pypi/setuptools>`_ package web
+    page for instructions.
+
+
+.. _building_the_documentation:
+
+Building the documentation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In order to build the documentation need to add ``-DLLVM_ENABLE_SPHINX=ON`` to
+your ``cmake`` command.  Once you do this you can build the docs using
+``docs-lld-html`` build (``ninja`` or ``make``) target.
+
+That build target will invoke ``sphinx-build`` with the appropriate options for
+the project, and generate the HTML documentation in a ``tools/lld/docs/html``
+subdirectory.
+
+.. _writing_documentation:
+
+Writing documentation
+~~~~~~~~~~~~~~~~~~~~~
+
+The documentation itself is written in the reStructuredText (ReST) format, and
+Sphinx defines additional tags to support features like cross-referencing.
+
+The ReST format itself is organized around documents mostly being readable
+plaintext documents. You should generally be able to write new documentation
+easily just by following the style of the existing documentation.
+
+If you want to understand the formatting of the documents more, the best place
+to start is Sphinx's own `ReST Primer <http://sphinx.pocoo.org/rest.html>`_.
+
+
+Learning More
+-------------
+
+If you want to learn more about the Sphinx system, the best place to start is
+the Sphinx documentation itself, available `here
+<http://sphinx.pocoo.org/contents.html>`_.
+
+
+.. _installing_sphinx_in_a_venv:
+
+Installing Sphinx in a Virtual Environment
+------------------------------------------
+
+Most Python developers prefer to work with tools inside a *virtualenv* (virtual
+environment) instance, which functions as an application sandbox. This avoids
+polluting your system installation with different packages used by various
+projects (and ensures that dependencies for different packages don't conflict
+with one another). Of course, you need to first have the virtualenv software
+itself which generally would be installed at the system level::
+
+  $ sudo easy_install virtualenv
+
+but after that you no longer need to install additional packages in the system
+directories.
+
+Once you have the *virtualenv* tool itself installed, you can create a
+virtualenv for Sphinx using::
+
+  $ virtualenv ~/my-sphinx-install
+  New python executable in /Users/dummy/my-sphinx-install/bin/python
+  Installing setuptools............done.
+  Installing pip...............done.
+
+  $ ~/my-sphinx-install/bin/easy_install sphinx
+  ... install messages here ...
+
+and from now on you can "activate" the *virtualenv* using::
+
+  $ source ~/my-sphinx-install/bin/activate
+
+which will change your PATH to ensure the sphinx-build tool from inside the
+virtual environment will be used. See the `virtualenv website
+<http://www.virtualenv.org/en/latest/index.html>`_ for more information on using
+virtual environments.

Added: www-releases/trunk/7.0.1/tools/lld/docs/_sources/windows_support.rst.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_sources/windows_support.rst.txt?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_sources/windows_support.rst.txt (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_sources/windows_support.rst.txt Fri Dec 21 13:53:02 2018
@@ -0,0 +1,97 @@
+.. raw:: html
+
+  <style type="text/css">
+    .none { background-color: #FFCCCC }
+    .partial { background-color: #FFFF99 }
+    .good { background-color: #CCFF99 }
+  </style>
+
+.. role:: none
+.. role:: partial
+.. role:: good
+
+===============
+Windows support
+===============
+
+LLD supports Windows operating system. When invoked as ``lld-link.exe`` or with
+``-flavor link``, the driver for Windows operating system is used to parse
+command line options, and it drives further linking processes. LLD accepts
+almost all command line options that the linker shipped with Microsoft Visual
+C++ (link.exe) supports.
+
+The current status is that LLD can link itself on Windows x86/x64
+using Visual C++ 2013 as the compiler.
+
+Development status
+==================
+
+Driver
+  :good:`Mostly done`. Some exotic command line options that are not usually
+  used for application develompent, such as ``/DRIVER``, are not supported.
+
+Linking against DLL
+  :good:`Done`. LLD can read import libraries needed to link against DLL. Both
+  export-by-name and export-by-ordinal are supported.
+
+Linking against static library
+  :good:`Done`. The format of static library (.lib) on Windows is actually the
+  same as on Unix (.a). LLD can read it.
+
+Creating DLL
+  :good:`Done`. LLD creates a DLL if ``/DLL`` option is given. Exported
+  functions can be specified either via command line (``/EXPORT``) or via
+  module-definition file (.def). Both export-by-name and export-by-ordinal are
+  supported.
+
+Windows resource files support
+  :good:`Done`. If an ``.res`` file is given, LLD converts the file to a COFF
+  file using LLVM's Object library.
+
+Safe Structured Exception Handler (SEH)
+  :good:`Done` for both x86 and x64.
+
+Module-definition file
+  :partial:`Partially done`. LLD currently recognizes these directives:
+  ``EXPORTS``, ``HEAPSIZE``, ``STACKSIZE``, ``NAME``, and ``VERSION``.
+
+Debug info
+  :good:`Done`.  LLD can emit PDBs that are at parity with those generated by
+  link.exe.  However, LLD does not support /DEBUG:FASTLINK.
+
+
+Downloading LLD
+===============
+
+The Windows version of LLD is included in the `pre-built binaries of LLVM's
+releases <https://releases.llvm.org/download.html>`_ and in the `LLVM Snapshot
+Builds <https://llvm.org/builds/>`_.
+
+Building LLD
+============
+
+Using Visual Studio IDE/MSBuild
+-------------------------------
+
+1. Check out LLVM and LLD from the LLVM SVN repository (or Git mirror),
+#. run ``cmake -G "Visual Studio 12" <llvm-source-dir>`` from VS command prompt,
+#. open LLVM.sln with Visual Studio, and
+#. build ``lld`` target in ``lld executables`` folder
+
+Alternatively, you can use msbuild if you don't like to work in an IDE::
+
+  msbuild LLVM.sln /m /target:"lld executables\lld"
+
+MSBuild.exe had been shipped as a component of the .NET framework, but since
+2013 it's part of Visual Studio. You can find it at "C:\\Program Files
+(x86)\\msbuild".
+
+You can build LLD as a 64 bit application. To do that, open VS2013 x64 command
+prompt and run cmake for "Visual Studio 12 Win64" target.
+
+Using Ninja
+-----------
+
+1. Check out LLVM and LLD from the LLVM SVN repository (or Git mirror),
+#. run ``cmake -G ninja <llvm-source-dir>`` from VS command prompt,
+#. run ``ninja lld``

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/ajax-loader.gif
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/ajax-loader.gif?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/ajax-loader.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/basic.css
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/basic.css?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/basic.css (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/basic.css Fri Dec 21 13:53:02 2018
@@ -0,0 +1,665 @@
+/*
+ * basic.css
+ * ~~~~~~~~~
+ *
+ * Sphinx stylesheet -- basic theme.
+ *
+ * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+    clear: both;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+    width: 100%;
+    font-size: 90%;
+}
+
+div.related h3 {
+    display: none;
+}
+
+div.related ul {
+    margin: 0;
+    padding: 0 0 0 10px;
+    list-style: none;
+}
+
+div.related li {
+    display: inline;
+}
+
+div.related li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+    padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+    float: left;
+    width: 230px;
+    margin-left: -100%;
+    font-size: 90%;
+    word-wrap: break-word;
+    overflow-wrap : break-word;
+}
+
+div.sphinxsidebar ul {
+    list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+    margin-left: 20px;
+    list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+    margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+div.sphinxsidebar #searchbox input[type="text"] {
+    float: left;
+    width: 80%;
+    padding: 0.25em;
+    box-sizing: border-box;
+}
+
+div.sphinxsidebar #searchbox input[type="submit"] {
+    float: left;
+    width: 20%;
+    border-left: none;
+    padding: 0.25em;
+    box-sizing: border-box;
+}
+
+
+img {
+    border: 0;
+    max-width: 100%;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+    width: 90%;
+    margin-left: auto;
+    margin-right: auto;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 1.3em;
+}
+
+span.linkdescr {
+    font-style: italic;
+    padding-top: 5px;
+    font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable {
+    width: 100%;
+}
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable ul {
+    margin-top: 0;
+    margin-bottom: 0;
+    list-style-type: none;
+}
+
+table.indextable > tbody > tr > td > ul {
+    padding-left: 0em;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+div.modindex-jumpbox {
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+    margin: 1em 0 1em 0;
+    padding: 0.4em;
+}
+
+div.genindex-jumpbox {
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+    margin: 1em 0 1em 0;
+    padding: 0.4em;
+}
+
+/* -- domain module index --------------------------------------------------- */
+
+table.modindextable td {
+    padding: 2px;
+    border-collapse: collapse;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+div.body {
+    min-width: 450px;
+    max-width: 800px;
+}
+
+div.body p, div.body dd, div.body li, div.body blockquote {
+    -moz-hyphens: auto;
+    -ms-hyphens: auto;
+    -webkit-hyphens: auto;
+    hyphens: auto;
+}
+
+a.headerlink {
+    visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink,
+caption:hover > a.headerlink,
+p.caption:hover > a.headerlink,
+div.code-block-caption:hover > a.headerlink {
+    visibility: visible;
+}
+
+div.body p.caption {
+    text-align: inherit;
+}
+
+div.body td {
+    text-align: left;
+}
+
+.first {
+    margin-top: 0 !important;
+}
+
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+img.align-left, .figure.align-left, object.align-left {
+    clear: left;
+    float: left;
+    margin-right: 1em;
+}
+
+img.align-right, .figure.align-right, object.align-right {
+    clear: right;
+    float: right;
+    margin-left: 1em;
+}
+
+img.align-center, .figure.align-center, object.align-center {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.align-left {
+    text-align: left;
+}
+
+.align-center {
+    text-align: center;
+}
+
+.align-right {
+    text-align: right;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+    margin: 0 0 0.5em 1em;
+    border: 1px solid #ddb;
+    padding: 7px 7px 0 7px;
+    background-color: #ffe;
+    width: 40%;
+    float: right;
+}
+
+p.sidebar-title {
+    font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+    border: 1px solid #ccc;
+    padding: 7px 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 1.1em;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+p.admonition-title {
+    margin: 0px 10px 5px 0px;
+    font-weight: bold;
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+    border: 0;
+    border-collapse: collapse;
+}
+
+table.align-center {
+    margin-left: auto;
+    margin-right: auto;
+}
+
+table caption span.caption-number {
+    font-style: italic;
+}
+
+table caption span.caption-text {
+}
+
+table.docutils td, table.docutils th {
+    padding: 1px 8px 1px 5px;
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 1px solid #aaa;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+table.citation {
+    border-left: solid 1px gray;
+    margin-left: 1px;
+}
+
+table.citation td {
+    border-bottom: none;
+}
+
+/* -- figures --------------------------------------------------------------- */
+
+div.figure {
+    margin: 0.5em;
+    padding: 0.5em;
+}
+
+div.figure p.caption {
+    padding: 0.3em;
+}
+
+div.figure p.caption span.caption-number {
+    font-style: italic;
+}
+
+div.figure p.caption span.caption-text {
+}
+
+/* -- field list styles ----------------------------------------------------- */
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+.field-list ul {
+    margin: 0;
+    padding-left: 1em;
+}
+
+.field-list p {
+    margin: 0;
+}
+
+.field-name {
+    -moz-hyphens: manual;
+    -ms-hyphens: manual;
+    -webkit-hyphens: manual;
+    hyphens: manual;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+ol.arabic {
+    list-style: decimal;
+}
+
+ol.loweralpha {
+    list-style: lower-alpha;
+}
+
+ol.upperalpha {
+    list-style: upper-alpha;
+}
+
+ol.lowerroman {
+    list-style: lower-roman;
+}
+
+ol.upperroman {
+    list-style: upper-roman;
+}
+
+dl {
+    margin-bottom: 15px;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+dt:target, span.highlighted {
+    background-color: #fbe54e;
+}
+
+rect.highlighted {
+    fill: #fbe54e;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 1.1em;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.sig-paren {
+    font-size: larger;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+.footnote:target  {
+    background-color: #ffa;
+}
+
+.line-block {
+    display: block;
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+
+.line-block .line-block {
+    margin-top: 0;
+    margin-bottom: 0;
+    margin-left: 1.5em;
+}
+
+.guilabel, .menuselection {
+    font-family: sans-serif;
+}
+
+.accelerator {
+    text-decoration: underline;
+}
+
+.classifier {
+    font-style: oblique;
+}
+
+abbr, acronym {
+    border-bottom: dotted 1px;
+    cursor: help;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+    overflow: auto;
+    overflow-y: hidden;  /* fixes display issues on Chrome browsers */
+}
+
+span.pre {
+    -moz-hyphens: none;
+    -ms-hyphens: none;
+    -webkit-hyphens: none;
+    hyphens: none;
+}
+
+td.linenos pre {
+    padding: 5px 0px;
+    border: 0;
+    background-color: transparent;
+    color: #aaa;
+}
+
+table.highlighttable {
+    margin-left: 0.5em;
+}
+
+table.highlighttable td {
+    padding: 0 0.5em 0 0.5em;
+}
+
+div.code-block-caption {
+    padding: 2px 5px;
+    font-size: small;
+}
+
+div.code-block-caption code {
+    background-color: transparent;
+}
+
+div.code-block-caption + div > div.highlight > pre {
+    margin-top: 0;
+}
+
+div.code-block-caption span.caption-number {
+    padding: 0.1em 0.3em;
+    font-style: italic;
+}
+
+div.code-block-caption span.caption-text {
+}
+
+div.literal-block-wrapper {
+    padding: 1em 1em 0;
+}
+
+div.literal-block-wrapper div.highlight {
+    margin: 0;
+}
+
+code.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+code.descclassname {
+    background-color: transparent;
+}
+
+code.xref, a code {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
+    background-color: transparent;
+}
+
+.viewcode-link {
+    float: right;
+}
+
+.viewcode-back {
+    float: right;
+    font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+    margin: -1px -10px;
+    padding: 0 10px;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+    vertical-align: middle;
+}
+
+div.body div.math p {
+    text-align: center;
+}
+
+span.eqno {
+    float: right;
+}
+
+span.eqno a.headerlink {
+    position: relative;
+    left: 0px;
+    z-index: 1;
+}
+
+div.math:hover a.headerlink {
+    visibility: visible;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+ at media print {
+    div.document,
+    div.documentwrapper,
+    div.bodywrapper {
+        margin: 0 !important;
+        width: 100%;
+    }
+
+    div.sphinxsidebar,
+    div.related,
+    div.footer,
+    #top-link {
+        display: none;
+    }
+}
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/comment-bright.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/comment-bright.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/comment-bright.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/comment-close.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/comment-close.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/comment-close.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/comment.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/comment.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/comment.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/contents.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/contents.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/contents.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/doctools.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/doctools.js?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/doctools.js (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/doctools.js Fri Dec 21 13:53:02 2018
@@ -0,0 +1,313 @@
+/*
+ * doctools.js
+ * ~~~~~~~~~~~
+ *
+ * Sphinx JavaScript utilities for all documentation.
+ *
+ * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/**
+ * select a different prefix for underscore
+ */
+$u = _.noConflict();
+
+/**
+ * make the code below compatible with browsers without
+ * an installed firebug like debugger
+if (!window.console || !console.firebug) {
+  var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
+    "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
+    "profile", "profileEnd"];
+  window.console = {};
+  for (var i = 0; i < names.length; ++i)
+    window.console[names[i]] = function() {};
+}
+ */
+
+/**
+ * small helper function to urldecode strings
+ */
+jQuery.urldecode = function(x) {
+  return decodeURIComponent(x).replace(/\+/g, ' ');
+};
+
+/**
+ * small helper function to urlencode strings
+ */
+jQuery.urlencode = encodeURIComponent;
+
+/**
+ * This function returns the parsed url parameters of the
+ * current request. Multiple values per key are supported,
+ * it will always return arrays of strings for the value parts.
+ */
+jQuery.getQueryParameters = function(s) {
+  if (typeof s === 'undefined')
+    s = document.location.search;
+  var parts = s.substr(s.indexOf('?') + 1).split('&');
+  var result = {};
+  for (var i = 0; i < parts.length; i++) {
+    var tmp = parts[i].split('=', 2);
+    var key = jQuery.urldecode(tmp[0]);
+    var value = jQuery.urldecode(tmp[1]);
+    if (key in result)
+      result[key].push(value);
+    else
+      result[key] = [value];
+  }
+  return result;
+};
+
+/**
+ * highlight a given string on a jquery object by wrapping it in
+ * span elements with the given class name.
+ */
+jQuery.fn.highlightText = function(text, className) {
+  function highlight(node, addItems) {
+    if (node.nodeType === 3) {
+      var val = node.nodeValue;
+      var pos = val.toLowerCase().indexOf(text);
+      if (pos >= 0 &&
+          !jQuery(node.parentNode).hasClass(className) &&
+          !jQuery(node.parentNode).hasClass("nohighlight")) {
+        var span;
+        var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
+        if (isInSVG) {
+          span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
+        } else {
+          span = document.createElement("span");
+          span.className = className;
+        }
+        span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+        node.parentNode.insertBefore(span, node.parentNode.insertBefore(
+          document.createTextNode(val.substr(pos + text.length)),
+          node.nextSibling));
+        node.nodeValue = val.substr(0, pos);
+        if (isInSVG) {
+          var bbox = span.getBBox();
+          var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+       	  rect.x.baseVal.value = bbox.x;
+          rect.y.baseVal.value = bbox.y;
+          rect.width.baseVal.value = bbox.width;
+          rect.height.baseVal.value = bbox.height;
+          rect.setAttribute('class', className);
+          var parentOfText = node.parentNode.parentNode;
+          addItems.push({
+              "parent": node.parentNode,
+              "target": rect});
+        }
+      }
+    }
+    else if (!jQuery(node).is("button, select, textarea")) {
+      jQuery.each(node.childNodes, function() {
+        highlight(this, addItems);
+      });
+    }
+  }
+  var addItems = [];
+  var result = this.each(function() {
+    highlight(this, addItems);
+  });
+  for (var i = 0; i < addItems.length; ++i) {
+    jQuery(addItems[i].parent).before(addItems[i].target);
+  }
+  return result;
+};
+
+/*
+ * backward compatibility for jQuery.browser
+ * This will be supported until firefox bug is fixed.
+ */
+if (!jQuery.browser) {
+  jQuery.uaMatch = function(ua) {
+    ua = ua.toLowerCase();
+
+    var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
+      /(webkit)[ \/]([\w.]+)/.exec(ua) ||
+      /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
+      /(msie) ([\w.]+)/.exec(ua) ||
+      ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
+      [];
+
+    return {
+      browser: match[ 1 ] || "",
+      version: match[ 2 ] || "0"
+    };
+  };
+  jQuery.browser = {};
+  jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
+}
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+var Documentation = {
+
+  init : function() {
+    this.fixFirefoxAnchorBug();
+    this.highlightSearchWords();
+    this.initIndexTable();
+    
+  },
+
+  /**
+   * i18n support
+   */
+  TRANSLATIONS : {},
+  PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
+  LOCALE : 'unknown',
+
+  // gettext and ngettext don't access this so that the functions
+  // can safely bound to a different name (_ = Documentation.gettext)
+  gettext : function(string) {
+    var translated = Documentation.TRANSLATIONS[string];
+    if (typeof translated === 'undefined')
+      return string;
+    return (typeof translated === 'string') ? translated : translated[0];
+  },
+
+  ngettext : function(singular, plural, n) {
+    var translated = Documentation.TRANSLATIONS[singular];
+    if (typeof translated === 'undefined')
+      return (n == 1) ? singular : plural;
+    return translated[Documentation.PLURALEXPR(n)];
+  },
+
+  addTranslations : function(catalog) {
+    for (var key in catalog.messages)
+      this.TRANSLATIONS[key] = catalog.messages[key];
+    this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
+    this.LOCALE = catalog.locale;
+  },
+
+  /**
+   * add context elements like header anchor links
+   */
+  addContextElements : function() {
+    $('div[id] > :header:first').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this headline')).
+      appendTo(this);
+    });
+    $('dt[id]').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this definition')).
+      appendTo(this);
+    });
+  },
+
+  /**
+   * workaround a firefox stupidity
+   * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
+   */
+  fixFirefoxAnchorBug : function() {
+    if (document.location.hash && $.browser.mozilla)
+      window.setTimeout(function() {
+        document.location.href += '';
+      }, 10);
+  },
+
+  /**
+   * highlight the search words provided in the url in the text
+   */
+  highlightSearchWords : function() {
+    var params = $.getQueryParameters();
+    var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
+    if (terms.length) {
+      var body = $('div.body');
+      if (!body.length) {
+        body = $('body');
+      }
+      window.setTimeout(function() {
+        $.each(terms, function() {
+          body.highlightText(this.toLowerCase(), 'highlighted');
+        });
+      }, 10);
+      $('<p class="highlight-link"><a href="javascript:Documentation.' +
+        'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
+          .appendTo($('#searchbox'));
+    }
+  },
+
+  /**
+   * init the domain index toggle buttons
+   */
+  initIndexTable : function() {
+    var togglers = $('img.toggler').click(function() {
+      var src = $(this).attr('src');
+      var idnum = $(this).attr('id').substr(7);
+      $('tr.cg-' + idnum).toggle();
+      if (src.substr(-9) === 'minus.png')
+        $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
+      else
+        $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
+    }).css('display', '');
+    if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
+        togglers.click();
+    }
+  },
+
+  /**
+   * helper function to hide the search marks again
+   */
+  hideSearchWords : function() {
+    $('#searchbox .highlight-link').fadeOut(300);
+    $('span.highlighted').removeClass('highlighted');
+  },
+
+  /**
+   * make the url absolute
+   */
+  makeURL : function(relativeURL) {
+    return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
+  },
+
+  /**
+   * get the current relative url
+   */
+  getCurrentURL : function() {
+    var path = document.location.pathname;
+    var parts = path.split(/\//);
+    $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
+      if (this === '..')
+        parts.pop();
+    });
+    var url = parts.join('/');
+    return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
+  },
+
+  initOnKeyListeners: function() {
+    $(document).keyup(function(event) {
+      var activeElementType = document.activeElement.tagName;
+      // don't navigate when in search box or textarea
+      if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') {
+        switch (event.keyCode) {
+          case 37: // left
+            var prevHref = $('link[rel="prev"]').prop('href');
+            if (prevHref) {
+              window.location.href = prevHref;
+              return false;
+            }
+          case 39: // right
+            var nextHref = $('link[rel="next"]').prop('href');
+            if (nextHref) {
+              window.location.href = nextHref;
+              return false;
+            }
+        }
+      }
+    });
+  }
+};
+
+// quick alias for translations
+_ = Documentation.gettext;
+
+$(document).ready(function() {
+  Documentation.init();
+});
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/documentation_options.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/documentation_options.js?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/documentation_options.js (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/documentation_options.js Fri Dec 21 13:53:02 2018
@@ -0,0 +1,9 @@
+var DOCUMENTATION_OPTIONS = {
+    URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
+    VERSION: '8',
+    LANGUAGE: 'None',
+    COLLAPSE_INDEX: false,
+    FILE_SUFFIX: '.html',
+    HAS_SOURCE: true,
+    SOURCELINK_SUFFIX: '.txt'
+};
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/down-pressed.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/down-pressed.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/down-pressed.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/down.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/down.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/down.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/favicon.ico
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/favicon.ico?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/favicon.ico
------------------------------------------------------------------------------
    svn:mime-type = image/x-icon

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/file.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/file.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/file.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/jquery-3.2.1.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/jquery-3.2.1.js?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/jquery-3.2.1.js (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/jquery-3.2.1.js Fri Dec 21 13:53:02 2018
@@ -0,0 +1,10253 @@
+/*!
+ * jQuery JavaScript Library v3.2.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2017-03-20T18:59Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+
+
+	function DOMEval( code, doc ) {
+		doc = doc || document;
+
+		var script = doc.createElement( "script" );
+
+		script.text = code;
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.2.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+	// Matches dashed string for camelizing
+	rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g,
+
+	// Used by jQuery.camelCase as callback to replace()
+	fcamelCase = function( all, letter ) {
+		return letter.toUpperCase();
+	};
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isFunction: function( obj ) {
+		return jQuery.type( obj ) === "function";
+	},
+
+	isWindow: function( obj ) {
+		return obj != null && obj === obj.window;
+	},
+
+	isNumeric: function( obj ) {
+
+		// As of jQuery 3.0, isNumeric is limited to
+		// strings and numbers (primitives or objects)
+		// that can be coerced to finite numbers (gh-2662)
+		var type = jQuery.type( obj );
+		return ( type === "number" || type === "string" ) &&
+
+			// parseFloat NaNs numeric-cast false positives ("")
+			// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+			// subtraction forces infinities to NaN
+			!isNaN( obj - parseFloat( obj ) );
+	},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	type: function( obj ) {
+		if ( obj == null ) {
+			return obj + "";
+		}
+
+		// Support: Android <=2.3 only (functionish RegExp)
+		return typeof obj === "object" || typeof obj === "function" ?
+			class2type[ toString.call( obj ) ] || "object" :
+			typeof obj;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	// Convert dashed to camelCase; used by the css and data modules
+	// Support: IE <=9 - 11, Edge 12 - 13
+	// Microsoft forgot to hump their vendor prefix (#9572)
+	camelCase: function( string ) {
+		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// Bind a function to a context, optionally partially applying any
+	// arguments.
+	proxy: function( fn, context ) {
+		var tmp, args, proxy;
+
+		if ( typeof context === "string" ) {
+			tmp = fn[ context ];
+			context = fn;
+			fn = tmp;
+		}
+
+		// Quick check to determine if target is callable, in the spec
+		// this throws a TypeError, but we will just return undefined.
+		if ( !jQuery.isFunction( fn ) ) {
+			return undefined;
+		}
+
+		// Simulated bind
+		args = slice.call( arguments, 2 );
+		proxy = function() {
+			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+		};
+
+		// Set the guid of unique handler to the same of original handler, so it can be removed
+		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+		return proxy;
+	},
+
+	now: Date.now,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = jQuery.type( obj );
+
+	if ( type === "function" || jQuery.isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( jQuery.isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Simple selector that can be filtered directly, removing non-Elements
+	if ( risSimple.test( qualifier ) ) {
+		return jQuery.filter( qualifier, elements, not );
+	}
+
+	// Complex selector, compare the two sets, removing non-Elements
+	qualifier = jQuery.filter( qualifier, elements );
+	return jQuery.grep( elements, function( elem ) {
+		return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
+	} );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( jQuery.isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( jQuery.isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( jQuery.isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && jQuery.isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( jQuery.isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								jQuery.isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								jQuery.isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								jQuery.isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( jQuery.type( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !jQuery.isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ jQuery.camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( jQuery.camelCase );
+			} else {
+				key = jQuery.camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = jQuery.camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted,
+		scale = 1,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		do {
+
+			// If previous iteration zeroed out, double until we get *something*.
+			// Use string for doubling so we don't accidentally see scale as unchanged below
+			scale = scale || ".5";
+
+			// Adjust and apply
+			initialInUnit = initialInUnit / scale;
+			jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Update scale, tolerating zero or NaN from tween.cur()
+		// Break the loop if scale is unchanged or perfect, or if we've just had enough.
+		} while (
+			scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+		);
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( jQuery.type( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: jQuery.isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || jQuery.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rscriptTypeMasked = /^true\/(.*)/,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( ">tbody", elem )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	var match = rscriptTypeMasked.exec( elem.type );
+
+	if ( match ) {
+		elem.type = match[ 1 ];
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		isFunction = jQuery.isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( isFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( isFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rmargin = ( /^margin/ );
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		div.style.cssText =
+			"box-sizing:border-box;" +
+			"position:relative;display:block;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"top:1%;width:50%";
+		div.innerHTML = "";
+		documentElement.appendChild( container );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = divStyle.marginLeft === "2px";
+		boxSizingReliableVal = divStyle.width === "4px";
+
+		// Support: Android 4.0 - 4.3 only
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.marginRight = "50%";
+		pixelMarginRightVal = divStyle.marginRight === "4px";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+		"padding:0;margin-top:1px;position:absolute";
+	container.appendChild( div );
+
+	jQuery.extend( support, {
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelMarginRight: function() {
+			computeStyleTests();
+			return pixelMarginRightVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+	var i,
+		val = 0;
+
+	// If we already have the right measurement, avoid augmentation
+	if ( extra === ( isBorderBox ? "border" : "content" ) ) {
+		i = 4;
+
+	// Otherwise initialize for horizontal or vertical properties
+	} else {
+		i = name === "width" ? 1 : 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin, so add it if we want it
+		if ( extra === "margin" ) {
+			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+		}
+
+		if ( isBorderBox ) {
+
+			// border-box includes padding, so remove it if we want content
+			if ( extra === "content" ) {
+				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// At this point, extra isn't border nor margin, so remove border
+			if ( extra !== "margin" ) {
+				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		} else {
+
+			// At this point, extra isn't content, so add padding
+			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// At this point, extra isn't content nor padding, so add border
+			if ( extra !== "padding" ) {
+				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+	// Start with computed style
+	var valueIsBorderBox,
+		styles = getStyles( elem ),
+		val = curCSS( elem, name, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+	// Computed unit is not pixels. Stop here and return.
+	if ( rnumnonpx.test( val ) ) {
+		return val;
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = isBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ name ] );
+
+	// Fall back to offsetWidth/Height when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	if ( val === "auto" ) {
+		val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
+	}
+
+	// Normalize "", auto, and prepare for extra
+	val = parseFloat( val ) || 0;
+
+	// Use the active box-sizing model to add/subtract irrelevant styles
+	return ( val +
+		augmentWidthOrHeight(
+			elem,
+			name,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {
+		"float": "cssFloat"
+	},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = jQuery.camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = jQuery.camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+	jQuery.cssHooks[ name ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, name, extra );
+						} ) :
+						getWidthOrHeight( elem, name, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = extra && getStyles( elem ),
+				subtract = extra && augmentWidthOrHeight(
+					elem,
+					name,
+					extra,
+					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+					styles
+				);
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ name ] = value;
+				value = jQuery.css( elem, name );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( !rmargin.test( prefix ) ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, inProgress,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+function schedule() {
+	if ( inProgress ) {
+		if ( document.hidden === false && window.requestAnimationFrame ) {
+			window.requestAnimationFrame( schedule );
+		} else {
+			window.setTimeout( schedule, jQuery.fx.interval );
+		}
+
+		jQuery.fx.tick();
+	}
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = jQuery.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+		isBox = "width" in props || "height" in props,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHiddenWithinTree( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Queue-skipping animations hijack the fx hooks
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Detect show/hide animations
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.test( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// Pretend to be hidden if this is a "show" and
+				// there is still data from a stopped show/hide
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+
+				// Ignore all other no-op show/hide data
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	// Bail out if this is a no-op like .hide().hide()
+	propTween = !jQuery.isEmptyObject( props );
+	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+		return;
+	}
+
+	// Restrict "overflow" and "display" styles during box animations
+	if ( isBox && elem.nodeType === 1 ) {
+
+		// Support: IE <=9 - 11, Edge 12 - 13
+		// Record all 3 overflow attributes because IE does not infer the shorthand
+		// from identically-valued overflowX and overflowY
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Identify a display type, preferring old show/hide data over the CSS cascade
+		restoreDisplay = dataShow && dataShow.display;
+		if ( restoreDisplay == null ) {
+			restoreDisplay = dataPriv.get( elem, "display" );
+		}
+		display = jQuery.css( elem, "display" );
+		if ( display === "none" ) {
+			if ( restoreDisplay ) {
+				display = restoreDisplay;
+			} else {
+
+				// Get nonempty value(s) by temporarily forcing visibility
+				showHide( [ elem ], true );
+				restoreDisplay = elem.style.display || restoreDisplay;
+				display = jQuery.css( elem, "display" );
+				showHide( [ elem ] );
+			}
+		}
+
+		// Animate inline elements as inline-block
+		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+			if ( jQuery.css( elem, "float" ) === "none" ) {
+
+				// Restore the original display value at the end of pure show/hide animations
+				if ( !propTween ) {
+					anim.done( function() {
+						style.display = restoreDisplay;
+					} );
+					if ( restoreDisplay == null ) {
+						display = style.display;
+						restoreDisplay = display === "none" ? "" : display;
+					}
+				}
+				style.display = "inline-block";
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// Implement show/hide animations
+	propTween = false;
+	for ( prop in orig ) {
+
+		// General show/hide setup for this element animation
+		if ( !propTween ) {
+			if ( dataShow ) {
+				if ( "hidden" in dataShow ) {
+					hidden = dataShow.hidden;
+				}
+			} else {
+				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+			}
+
+			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+			if ( toggle ) {
+				dataShow.hidden = !hidden;
+			}
+
+			// Show elements before animating them
+			if ( hidden ) {
+				showHide( [ elem ], true );
+			}
+
+			/* eslint-disable no-loop-func */
+
+			anim.done( function() {
+
+			/* eslint-enable no-loop-func */
+
+				// The final step of a "hide" animation is actually hiding the element
+				if ( !hidden ) {
+					showHide( [ elem ] );
+				}
+				dataPriv.remove( elem, "fxshow" );
+				for ( prop in orig ) {
+					jQuery.style( elem, prop, orig[ prop ] );
+				}
+			} );
+		}
+
+		// Per-property setup
+		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+		if ( !( prop in dataShow ) ) {
+			dataShow[ prop ] = propTween.start;
+			if ( hidden ) {
+				propTween.end = propTween.start;
+				propTween.start = 0;
+			}
+		}
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = jQuery.camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( Array.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3 only
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			// If there's more to do, yield
+			if ( percent < 1 && length ) {
+				return remaining;
+			}
+
+			// If this was an empty animation, synthesize a final progress notification
+			if ( !length ) {
+				deferred.notifyWith( elem, [ animation, 1, 0 ] );
+			}
+
+			// Resolve the animation and report its conclusion
+			deferred.resolveWith( elem, [ animation ] );
+			return false;
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( jQuery.isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					jQuery.proxy( result.stop, result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( jQuery.isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	// Attach callbacks from options
+	animation
+		.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( jQuery.isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnothtmlwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			jQuery.isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+	};
+
+	// Go to the end state if fx are off
+	if ( jQuery.fx.off ) {
+		opt.duration = 0;
+
+	} else {
+		if ( typeof opt.duration !== "number" ) {
+			if ( opt.duration in jQuery.fx.speeds ) {
+				opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+			} else {
+				opt.duration = jQuery.fx.speeds._default;
+			}
+		}
+	}
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( jQuery.isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = jQuery.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Run the timer and safely remove it when done (allowing for external removal)
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( inProgress ) {
+		return;
+	}
+
+	inProgress = true;
+	schedule();
+};
+
+jQuery.fx.stop = function() {
+	inProgress = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( typeof value === "string" && value ) {
+			classes = value.match( rnothtmlwhite ) || [];
+
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		if ( typeof value === "string" && value ) {
+			classes = value.match( rnothtmlwhite ) || [];
+
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value;
+
+		if ( typeof stateVal === "boolean" && type === "string" ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( type === "string" ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = value.match( rnothtmlwhite ) || [];
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, isFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		isFunction = jQuery.isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( isFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+					elem[ type ]();
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+support.focusin = "onfocusin" in window;
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = jQuery.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = jQuery.isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+var
+	r20 = /%20/g,
+	rhash = /#.*$/,
+	rantiCache = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+		if ( jQuery.isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": JSON.parse,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// uncached part of the url
+			uncached,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( completed ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return completed ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( completed == null ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
+							for ( code in map ) {
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 13
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( completed ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
+			// If data is available, append data to url
+			if ( s.data ) {
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add or update anti-cache param if needed
+			if ( s.cache === false ) {
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
+
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
+
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				completed = false;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
+					throw e;
+				}
+
+				// Propagate others as results
+				done( -1, e );
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Ignore repeat invocations
+			if ( completed ) {
+				return;
+			}
+
+			completed = true;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( jQuery.isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		cache: true,
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( jQuery.isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var isFunction = jQuery.isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE <=9 only
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE <=9 only
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE <=9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = callback( "error" );
+
+				// Support: IE 9 only
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+	if ( s.crossDomain ) {
+		s.contents.script = false;
+	}
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( jQuery.isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( jQuery.isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var doc, docElem, rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		rect = elem.getBoundingClientRect();
+
+		doc = elem.ownerDocument;
+		docElem = doc.documentElement;
+		win = doc.defaultView;
+
+		return {
+			top: rect.top + win.pageYOffset - docElem.clientTop,
+			left: rect.left + win.pageXOffset - docElem.clientLeft
+		};
+	},
+
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+		// because it is its only offset parent
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume getBoundingClientRect is there when computed position is fixed
+			offset = elem.getBoundingClientRect();
+
+		} else {
+
+			// Get *real* offsetParent
+			offsetParent = this.offsetParent();
+
+			// Get correct offsets
+			offset = this.offset();
+			if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
+				parentOffset = offsetParent.offset();
+			}
+
+			// Add offsetParent borders
+			parentOffset = {
+				top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
+				left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
+			};
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( jQuery.isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( jQuery.isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/jquery.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/jquery.js?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/jquery.js (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/jquery.js Fri Dec 21 13:53:02 2018
@@ -0,0 +1,4 @@
+/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
+a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
+null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/llvm.css
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/llvm.css?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/llvm.css (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/llvm.css Fri Dec 21 13:53:02 2018
@@ -0,0 +1,345 @@
+/*
+ * sphinxdoc.css_t
+ * ~~~~~~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- sphinxdoc theme.  Originally created by
+ * Armin Ronacher for Werkzeug.
+ *
+ * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+ at import url("basic.css");
+
+/* -- page layout ----------------------------------------------------------- */
+
+body {
+    font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
+                 'Verdana', sans-serif;
+    font-size: 14px;
+    letter-spacing: -0.01em;
+    line-height: 150%;
+    text-align: center;
+    background-color: #BFD1D4;
+    color: black;
+    padding: 0;
+    border: 1px solid #aaa;
+
+    margin: 0px 80px 0px 80px;
+    min-width: 740px;
+}
+
+div.logo {
+    background-color: white;
+    text-align: left;
+    padding: 10px 10px 15px 15px;
+}
+
+div.document {
+    background-color: white;
+    text-align: left;
+    background-image: url(contents.png);
+    background-repeat: repeat-x;
+}
+
+div.bodywrapper {
+    margin: 0 240px 0 0;
+    border-right: 1px solid #ccc;
+}
+
+div.body {
+    margin: 0;
+    padding: 0.5em 20px 20px 20px;
+}
+
+div.related {
+    font-size: 1em;
+}
+
+div.related ul {
+    background-image: url(navigation.png);
+    height: 2em;
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+}
+
+div.related ul li {
+    margin: 0;
+    padding: 0;
+    height: 2em;
+    float: left;
+}
+
+div.related ul li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+div.related ul li a {
+    margin: 0;
+    padding: 0 5px 0 5px;
+    line-height: 1.75em;
+    color: #EE9816;
+}
+
+div.related ul li a:hover {
+    color: #3CA8E7;
+}
+
+div.sphinxsidebarwrapper {
+    padding: 0;
+}
+
+div.sphinxsidebar {
+    margin: 0;
+    padding: 0.5em 15px 15px 0;
+    width: 210px;
+    float: right;
+    font-size: 1em;
+    text-align: left;
+}
+
+div.sphinxsidebar h3, div.sphinxsidebar h4 {
+    margin: 1em 0 0.5em 0;
+    font-size: 1em;
+    padding: 0.1em 0 0.1em 0.5em;
+    color: white;
+    border: 1px solid #86989B;
+    background-color: #AFC1C4;
+}
+
+div.sphinxsidebar h3 a {
+    color: white;
+}
+
+div.sphinxsidebar ul {
+    padding-left: 1.5em;
+    margin-top: 7px;
+    padding: 0;
+    line-height: 130%;
+}
+
+div.sphinxsidebar ul ul {
+    margin-left: 20px;
+}
+
+div.footer {
+    background-color: #E3EFF1;
+    color: #86989B;
+    padding: 3px 8px 3px 0;
+    clear: both;
+    font-size: 0.8em;
+    text-align: right;
+}
+
+div.footer a {
+    color: #86989B;
+    text-decoration: underline;
+}
+
+/* -- body styles ----------------------------------------------------------- */
+
+p {
+    margin: 0.8em 0 0.5em 0;
+}
+
+a {
+    color: #CA7900;
+    text-decoration: none;
+}
+
+a:hover {
+    color: #2491CF;
+}
+
+div.body a {
+    text-decoration: underline;
+}
+
+h1 {
+    margin: 0;
+    padding: 0.7em 0 0.3em 0;
+    font-size: 1.5em;
+    color: #11557C;
+}
+
+h2 {
+    margin: 1.3em 0 0.2em 0;
+    font-size: 1.35em;
+    padding: 0;
+}
+
+h3 {
+    margin: 1em 0 -0.3em 0;
+    font-size: 1.2em;
+}
+
+div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a {
+    color: black!important;
+}
+
+h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
+    display: none;
+    margin: 0 0 0 0.3em;
+    padding: 0 0.2em 0 0.2em;
+    color: #aaa!important;
+}
+
+h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
+h5:hover a.anchor, h6:hover a.anchor {
+    display: inline;
+}
+
+h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
+h5 a.anchor:hover, h6 a.anchor:hover {
+    color: #777;
+    background-color: #eee;
+}
+
+a.headerlink {
+    color: #c60f0f!important;
+    font-size: 1em;
+    margin-left: 6px;
+    padding: 0 4px 0 4px;
+    text-decoration: none!important;
+}
+
+a.headerlink:hover {
+    background-color: #ccc;
+    color: white!important;
+}
+
+cite, code, tt {
+    font-family: 'Consolas', 'Deja Vu Sans Mono',
+                 'Bitstream Vera Sans Mono', monospace;
+    font-size: 0.95em;
+    letter-spacing: 0.01em;
+}
+
+tt {
+    background-color: #f2f2f2;
+    border-bottom: 1px solid #ddd;
+    color: #333;
+}
+
+tt.descname, tt.descclassname, tt.xref {
+    border: 0;
+}
+
+hr {
+    border: 1px solid #abc;
+    margin: 2em;
+}
+
+a tt {
+    border: 0;
+    color: #CA7900;
+}
+
+a tt:hover {
+    color: #2491CF;
+}
+
+pre {
+    font-family: 'Consolas', 'Deja Vu Sans Mono',
+                 'Bitstream Vera Sans Mono', monospace;
+    font-size: 0.95em;
+    letter-spacing: 0.015em;
+    line-height: 120%;
+    padding: 0.5em;
+    border: 1px solid #ccc;
+    background-color: #f8f8f8;
+}
+
+pre a {
+    color: inherit;
+    text-decoration: underline;
+}
+
+td.linenos pre {
+    padding: 0.5em 0;
+}
+
+div.quotebar {
+    background-color: #f8f8f8;
+    max-width: 250px;
+    float: right;
+    padding: 2px 7px;
+    border: 1px solid #ccc;
+}
+
+div.topic {
+    background-color: #f8f8f8;
+}
+
+table {
+    border-collapse: collapse;
+    margin: 0 -0.5em 0 -0.5em;
+}
+
+table td, table th {
+    padding: 0.2em 0.5em 0.2em 0.5em;
+}
+
+div.admonition, div.warning {
+    font-size: 0.9em;
+    margin: 1em 0 1em 0;
+    border: 1px solid #86989B;
+    background-color: #f7f7f7;
+    padding: 0;
+}
+
+div.admonition p, div.warning p {
+    margin: 0.5em 1em 0.5em 1em;
+    padding: 0;
+}
+
+div.admonition pre, div.warning pre {
+    margin: 0.4em 1em 0.4em 1em;
+}
+
+div.admonition p.admonition-title,
+div.warning p.admonition-title {
+    margin: 0;
+    padding: 0.1em 0 0.1em 0.5em;
+    color: white;
+    border-bottom: 1px solid #86989B;
+    font-weight: bold;
+    background-color: #AFC1C4;
+}
+
+div.warning {
+    border: 1px solid #940000;
+}
+
+div.warning p.admonition-title {
+    background-color: #CF0000;
+    border-bottom-color: #940000;
+}
+
+div.admonition ul, div.admonition ol,
+div.warning ul, div.warning ol {
+    margin: 0.1em 0.5em 0.5em 3em;
+    padding: 0;
+}
+
+div.versioninfo {
+    margin: 1em 0 0 0;
+    border: 1px solid #ccc;
+    background-color: #DDEAF0;
+    padding: 8px;
+    line-height: 1.3em;
+    font-size: 0.9em;
+}
+
+.viewcode-back {
+    font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
+                 'Verdana', sans-serif;
+}
+
+div.viewcode-block:target {
+    background-color: #f4debf;
+    border-top: 1px solid #ac9;
+    border-bottom: 1px solid #ac9;
+}

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/logo.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/logo.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/logo.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/minus.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/minus.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/minus.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/navigation.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/navigation.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/navigation.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/plus.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/plus.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/plus.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/pygments.css
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/pygments.css?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/pygments.css (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/pygments.css Fri Dec 21 13:53:02 2018
@@ -0,0 +1,69 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight  { background: #f0f0f0; }
+.highlight .c { color: #60a0b0; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #007020; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
+.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #007020 } /* Comment.Preproc */
+.highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
+.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #007020 } /* Keyword.Pseudo */
+.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #902000 } /* Keyword.Type */
+.highlight .m { color: #40a070 } /* Literal.Number */
+.highlight .s { color: #4070a0 } /* Literal.String */
+.highlight .na { color: #4070a0 } /* Name.Attribute */
+.highlight .nb { color: #007020 } /* Name.Builtin */
+.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.highlight .no { color: #60add5 } /* Name.Constant */
+.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #007020 } /* Name.Exception */
+.highlight .nf { color: #06287e } /* Name.Function */
+.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
+.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #bb60d5 } /* Name.Variable */
+.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mb { color: #40a070 } /* Literal.Number.Bin */
+.highlight .mf { color: #40a070 } /* Literal.Number.Float */
+.highlight .mh { color: #40a070 } /* Literal.Number.Hex */
+.highlight .mi { color: #40a070 } /* Literal.Number.Integer */
+.highlight .mo { color: #40a070 } /* Literal.Number.Oct */
+.highlight .sa { color: #4070a0 } /* Literal.String.Affix */
+.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
+.highlight .sc { color: #4070a0 } /* Literal.String.Char */
+.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */
+.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
+.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.highlight .sx { color: #c65d09 } /* Literal.String.Other */
+.highlight .sr { color: #235388 } /* Literal.String.Regex */
+.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
+.highlight .ss { color: #517918 } /* Literal.String.Symbol */
+.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.highlight .fm { color: #06287e } /* Name.Function.Magic */
+.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
+.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
+.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
+.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/searchtools.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/searchtools.js?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/searchtools.js (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/searchtools.js Fri Dec 21 13:53:02 2018
@@ -0,0 +1,761 @@
+/*
+ * searchtools.js_t
+ * ~~~~~~~~~~~~~~~~
+ *
+ * Sphinx JavaScript utilities for the full-text search.
+ *
+ * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+
+/* Non-minified version JS is _stemmer.js if file is provided */ 
+/**
+ * Porter Stemmer
+ */
+var Stemmer = function() {
+
+  var step2list = {
+    ational: 'ate',
+    tional: 'tion',
+    enci: 'ence',
+    anci: 'ance',
+    izer: 'ize',
+    bli: 'ble',
+    alli: 'al',
+    entli: 'ent',
+    eli: 'e',
+    ousli: 'ous',
+    ization: 'ize',
+    ation: 'ate',
+    ator: 'ate',
+    alism: 'al',
+    iveness: 'ive',
+    fulness: 'ful',
+    ousness: 'ous',
+    aliti: 'al',
+    iviti: 'ive',
+    biliti: 'ble',
+    logi: 'log'
+  };
+
+  var step3list = {
+    icate: 'ic',
+    ative: '',
+    alize: 'al',
+    iciti: 'ic',
+    ical: 'ic',
+    ful: '',
+    ness: ''
+  };
+
+  var c = "[^aeiou]";          // consonant
+  var v = "[aeiouy]";          // vowel
+  var C = c + "[^aeiouy]*";    // consonant sequence
+  var V = v + "[aeiou]*";      // vowel sequence
+
+  var mgr0 = "^(" + C + ")?" + V + C;                      // [C]VC... is m>0
+  var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$";    // [C]VC[V] is m=1
+  var mgr1 = "^(" + C + ")?" + V + C + V + C;              // [C]VCVC... is m>1
+  var s_v   = "^(" + C + ")?" + v;                         // vowel in stem
+
+  this.stemWord = function (w) {
+    var stem;
+    var suffix;
+    var firstch;
+    var origword = w;
+
+    if (w.length < 3)
+      return w;
+
+    var re;
+    var re2;
+    var re3;
+    var re4;
+
+    firstch = w.substr(0,1);
+    if (firstch == "y")
+      w = firstch.toUpperCase() + w.substr(1);
+
+    // Step 1a
+    re = /^(.+?)(ss|i)es$/;
+    re2 = /^(.+?)([^s])s$/;
+
+    if (re.test(w))
+      w = w.replace(re,"$1$2");
+    else if (re2.test(w))
+      w = w.replace(re2,"$1$2");
+
+    // Step 1b
+    re = /^(.+?)eed$/;
+    re2 = /^(.+?)(ed|ing)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      re = new RegExp(mgr0);
+      if (re.test(fp[1])) {
+        re = /.$/;
+        w = w.replace(re,"");
+      }
+    }
+    else if (re2.test(w)) {
+      var fp = re2.exec(w);
+      stem = fp[1];
+      re2 = new RegExp(s_v);
+      if (re2.test(stem)) {
+        w = stem;
+        re2 = /(at|bl|iz)$/;
+        re3 = new RegExp("([^aeiouylsz])\\1$");
+        re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+        if (re2.test(w))
+          w = w + "e";
+        else if (re3.test(w)) {
+          re = /.$/;
+          w = w.replace(re,"");
+        }
+        else if (re4.test(w))
+          w = w + "e";
+      }
+    }
+
+    // Step 1c
+    re = /^(.+?)y$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(s_v);
+      if (re.test(stem))
+        w = stem + "i";
+    }
+
+    // Step 2
+    re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      suffix = fp[2];
+      re = new RegExp(mgr0);
+      if (re.test(stem))
+        w = stem + step2list[suffix];
+    }
+
+    // Step 3
+    re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      suffix = fp[2];
+      re = new RegExp(mgr0);
+      if (re.test(stem))
+        w = stem + step3list[suffix];
+    }
+
+    // Step 4
+    re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+    re2 = /^(.+?)(s|t)(ion)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(mgr1);
+      if (re.test(stem))
+        w = stem;
+    }
+    else if (re2.test(w)) {
+      var fp = re2.exec(w);
+      stem = fp[1] + fp[2];
+      re2 = new RegExp(mgr1);
+      if (re2.test(stem))
+        w = stem;
+    }
+
+    // Step 5
+    re = /^(.+?)e$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(mgr1);
+      re2 = new RegExp(meq1);
+      re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+      if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
+        w = stem;
+    }
+    re = /ll$/;
+    re2 = new RegExp(mgr1);
+    if (re.test(w) && re2.test(w)) {
+      re = /.$/;
+      w = w.replace(re,"");
+    }
+
+    // and turn initial Y back to y
+    if (firstch == "y")
+      w = firstch.toLowerCase() + w.substr(1);
+    return w;
+  }
+}
+
+
+
+/**
+ * Simple result scoring code.
+ */
+var Scorer = {
+  // Implement the following function to further tweak the score for each result
+  // The function takes a result array [filename, title, anchor, descr, score]
+  // and returns the new score.
+  /*
+  score: function(result) {
+    return result[4];
+  },
+  */
+
+  // query matches the full name of an object
+  objNameMatch: 11,
+  // or matches in the last dotted part of the object name
+  objPartialMatch: 6,
+  // Additive scores depending on the priority of the object
+  objPrio: {0:  15,   // used to be importantResults
+            1:  5,   // used to be objectResults
+            2: -5},  // used to be unimportantResults
+  //  Used when the priority is not in the mapping.
+  objPrioDefault: 0,
+
+  // query found in title
+  title: 15,
+  // query found in terms
+  term: 5
+};
+
+
+
+
+
+var splitChars = (function() {
+    var result = {};
+    var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
+         1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
+         2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
+         2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
+         3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
+         3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
+         4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
+         8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
+         11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
+         43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
+    var i, j, start, end;
+    for (i = 0; i < singles.length; i++) {
+        result[singles[i]] = true;
+    }
+    var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
+         [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
+         [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
+         [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
+         [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
+         [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
+         [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
+         [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
+         [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
+         [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
+         [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
+         [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
+         [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
+         [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
+         [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
+         [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
+         [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
+         [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
+         [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
+         [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
+         [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
+         [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
+         [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
+         [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
+         [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
+         [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
+         [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
+         [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
+         [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
+         [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
+         [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
+         [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
+         [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
+         [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
+         [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
+         [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
+         [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
+         [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
+         [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
+         [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
+         [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
+         [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
+         [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
+         [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
+         [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
+         [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
+         [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
+         [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
+         [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
+    for (i = 0; i < ranges.length; i++) {
+        start = ranges[i][0];
+        end = ranges[i][1];
+        for (j = start; j <= end; j++) {
+            result[j] = true;
+        }
+    }
+    return result;
+})();
+
+function splitQuery(query) {
+    var result = [];
+    var start = -1;
+    for (var i = 0; i < query.length; i++) {
+        if (splitChars[query.charCodeAt(i)]) {
+            if (start !== -1) {
+                result.push(query.slice(start, i));
+                start = -1;
+            }
+        } else if (start === -1) {
+            start = i;
+        }
+    }
+    if (start !== -1) {
+        result.push(query.slice(start));
+    }
+    return result;
+}
+
+
+
+
+/**
+ * Search Module
+ */
+var Search = {
+
+  _index : null,
+  _queued_query : null,
+  _pulse_status : -1,
+
+  init : function() {
+      var params = $.getQueryParameters();
+      if (params.q) {
+          var query = params.q[0];
+          $('input[name="q"]')[0].value = query;
+          this.performSearch(query);
+      }
+  },
+
+  loadIndex : function(url) {
+    $.ajax({type: "GET", url: url, data: null,
+            dataType: "script", cache: true,
+            complete: function(jqxhr, textstatus) {
+              if (textstatus != "success") {
+                document.getElementById("searchindexloader").src = url;
+              }
+            }});
+  },
+
+  setIndex : function(index) {
+    var q;
+    this._index = index;
+    if ((q = this._queued_query) !== null) {
+      this._queued_query = null;
+      Search.query(q);
+    }
+  },
+
+  hasIndex : function() {
+      return this._index !== null;
+  },
+
+  deferQuery : function(query) {
+      this._queued_query = query;
+  },
+
+  stopPulse : function() {
+      this._pulse_status = 0;
+  },
+
+  startPulse : function() {
+    if (this._pulse_status >= 0)
+        return;
+    function pulse() {
+      var i;
+      Search._pulse_status = (Search._pulse_status + 1) % 4;
+      var dotString = '';
+      for (i = 0; i < Search._pulse_status; i++)
+        dotString += '.';
+      Search.dots.text(dotString);
+      if (Search._pulse_status > -1)
+        window.setTimeout(pulse, 500);
+    }
+    pulse();
+  },
+
+  /**
+   * perform a search for something (or wait until index is loaded)
+   */
+  performSearch : function(query) {
+    // create the required interface elements
+    this.out = $('#search-results');
+    this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
+    this.dots = $('<span></span>').appendTo(this.title);
+    this.status = $('<p style="display: none"></p>').appendTo(this.out);
+    this.output = $('<ul class="search"/>').appendTo(this.out);
+
+    $('#search-progress').text(_('Preparing search...'));
+    this.startPulse();
+
+    // index already loaded, the browser was quick!
+    if (this.hasIndex())
+      this.query(query);
+    else
+      this.deferQuery(query);
+  },
+
+  /**
+   * execute search (requires search index to be loaded)
+   */
+  query : function(query) {
+    var i;
+    var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
+
+    // stem the searchterms and add them to the correct list
+    var stemmer = new Stemmer();
+    var searchterms = [];
+    var excluded = [];
+    var hlterms = [];
+    var tmp = splitQuery(query);
+    var objectterms = [];
+    for (i = 0; i < tmp.length; i++) {
+      if (tmp[i] !== "") {
+          objectterms.push(tmp[i].toLowerCase());
+      }
+
+      if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) ||
+          tmp[i] === "") {
+        // skip this "word"
+        continue;
+      }
+      // stem the word
+      var word = stemmer.stemWord(tmp[i].toLowerCase());
+      // prevent stemmer from cutting word smaller than two chars
+      if(word.length < 3 && tmp[i].length >= 3) {
+        word = tmp[i];
+      }
+      var toAppend;
+      // select the correct list
+      if (word[0] == '-') {
+        toAppend = excluded;
+        word = word.substr(1);
+      }
+      else {
+        toAppend = searchterms;
+        hlterms.push(tmp[i].toLowerCase());
+      }
+      // only add if not already in the list
+      if (!$u.contains(toAppend, word))
+        toAppend.push(word);
+    }
+    var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
+
+    // console.debug('SEARCH: searching for:');
+    // console.info('required: ', searchterms);
+    // console.info('excluded: ', excluded);
+
+    // prepare search
+    var terms = this._index.terms;
+    var titleterms = this._index.titleterms;
+
+    // array of [filename, title, anchor, descr, score]
+    var results = [];
+    $('#search-progress').empty();
+
+    // lookup as object
+    for (i = 0; i < objectterms.length; i++) {
+      var others = [].concat(objectterms.slice(0, i),
+                             objectterms.slice(i+1, objectterms.length));
+      results = results.concat(this.performObjectSearch(objectterms[i], others));
+    }
+
+    // lookup as search terms in fulltext
+    results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
+
+    // let the scorer override scores with a custom scoring function
+    if (Scorer.score) {
+      for (i = 0; i < results.length; i++)
+        results[i][4] = Scorer.score(results[i]);
+    }
+
+    // now sort the results by score (in opposite order of appearance, since the
+    // display function below uses pop() to retrieve items) and then
+    // alphabetically
+    results.sort(function(a, b) {
+      var left = a[4];
+      var right = b[4];
+      if (left > right) {
+        return 1;
+      } else if (left < right) {
+        return -1;
+      } else {
+        // same score: sort alphabetically
+        left = a[1].toLowerCase();
+        right = b[1].toLowerCase();
+        return (left > right) ? -1 : ((left < right) ? 1 : 0);
+      }
+    });
+
+    // for debugging
+    //Search.lastresults = results.slice();  // a copy
+    //console.info('search results:', Search.lastresults);
+
+    // print the results
+    var resultCount = results.length;
+    function displayNextItem() {
+      // results left, load the summary and display it
+      if (results.length) {
+        var item = results.pop();
+        var listItem = $('<li style="display:none"></li>');
+        if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') {
+          // dirhtml builder
+          var dirname = item[0] + '/';
+          if (dirname.match(/\/index\/$/)) {
+            dirname = dirname.substring(0, dirname.length-6);
+          } else if (dirname == 'index/') {
+            dirname = '';
+          }
+          listItem.append($('<a/>').attr('href',
+            DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
+            highlightstring + item[2]).html(item[1]));
+        } else {
+          // normal html builders
+          listItem.append($('<a/>').attr('href',
+            item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
+            highlightstring + item[2]).html(item[1]));
+        }
+        if (item[3]) {
+          listItem.append($('<span> (' + item[3] + ')</span>'));
+          Search.output.append(listItem);
+          listItem.slideDown(5, function() {
+            displayNextItem();
+          });
+        } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
+          var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX;
+          if (suffix === undefined) {
+            suffix = '.txt';
+          }
+          $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix),
+                  dataType: "text",
+                  complete: function(jqxhr, textstatus) {
+                    var data = jqxhr.responseText;
+                    if (data !== '' && data !== undefined) {
+                      listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
+                    }
+                    Search.output.append(listItem);
+                    listItem.slideDown(5, function() {
+                      displayNextItem();
+                    });
+                  }});
+        } else {
+          // no source available, just display title
+          Search.output.append(listItem);
+          listItem.slideDown(5, function() {
+            displayNextItem();
+          });
+        }
+      }
+      // search finished, update title and status message
+      else {
+        Search.stopPulse();
+        Search.title.text(_('Search Results'));
+        if (!resultCount)
+          Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
+        else
+            Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
+        Search.status.fadeIn(500);
+      }
+    }
+    displayNextItem();
+  },
+
+  /**
+   * search for object names
+   */
+  performObjectSearch : function(object, otherterms) {
+    var filenames = this._index.filenames;
+    var docnames = this._index.docnames;
+    var objects = this._index.objects;
+    var objnames = this._index.objnames;
+    var titles = this._index.titles;
+
+    var i;
+    var results = [];
+
+    for (var prefix in objects) {
+      for (var name in objects[prefix]) {
+        var fullname = (prefix ? prefix + '.' : '') + name;
+        if (fullname.toLowerCase().indexOf(object) > -1) {
+          var score = 0;
+          var parts = fullname.split('.');
+          // check for different match types: exact matches of full name or
+          // "last name" (i.e. last dotted part)
+          if (fullname == object || parts[parts.length - 1] == object) {
+            score += Scorer.objNameMatch;
+          // matches in last name
+          } else if (parts[parts.length - 1].indexOf(object) > -1) {
+            score += Scorer.objPartialMatch;
+          }
+          var match = objects[prefix][name];
+          var objname = objnames[match[1]][2];
+          var title = titles[match[0]];
+          // If more than one term searched for, we require other words to be
+          // found in the name/title/description
+          if (otherterms.length > 0) {
+            var haystack = (prefix + ' ' + name + ' ' +
+                            objname + ' ' + title).toLowerCase();
+            var allfound = true;
+            for (i = 0; i < otherterms.length; i++) {
+              if (haystack.indexOf(otherterms[i]) == -1) {
+                allfound = false;
+                break;
+              }
+            }
+            if (!allfound) {
+              continue;
+            }
+          }
+          var descr = objname + _(', in ') + title;
+
+          var anchor = match[3];
+          if (anchor === '')
+            anchor = fullname;
+          else if (anchor == '-')
+            anchor = objnames[match[1]][1] + '-' + fullname;
+          // add custom score for some objects according to scorer
+          if (Scorer.objPrio.hasOwnProperty(match[2])) {
+            score += Scorer.objPrio[match[2]];
+          } else {
+            score += Scorer.objPrioDefault;
+          }
+          results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]);
+        }
+      }
+    }
+
+    return results;
+  },
+
+  /**
+   * search for full-text terms in the index
+   */
+  performTermsSearch : function(searchterms, excluded, terms, titleterms) {
+    var docnames = this._index.docnames;
+    var filenames = this._index.filenames;
+    var titles = this._index.titles;
+
+    var i, j, file;
+    var fileMap = {};
+    var scoreMap = {};
+    var results = [];
+
+    // perform the search on the required terms
+    for (i = 0; i < searchterms.length; i++) {
+      var word = searchterms[i];
+      var files = [];
+      var _o = [
+        {files: terms[word], score: Scorer.term},
+        {files: titleterms[word], score: Scorer.title}
+      ];
+
+      // no match but word was a required one
+      if ($u.every(_o, function(o){return o.files === undefined;})) {
+        break;
+      }
+      // found search word in contents
+      $u.each(_o, function(o) {
+        var _files = o.files;
+        if (_files === undefined)
+          return
+
+        if (_files.length === undefined)
+          _files = [_files];
+        files = files.concat(_files);
+
+        // set score for the word in each file to Scorer.term
+        for (j = 0; j < _files.length; j++) {
+          file = _files[j];
+          if (!(file in scoreMap))
+            scoreMap[file] = {}
+          scoreMap[file][word] = o.score;
+        }
+      });
+
+      // create the mapping
+      for (j = 0; j < files.length; j++) {
+        file = files[j];
+        if (file in fileMap)
+          fileMap[file].push(word);
+        else
+          fileMap[file] = [word];
+      }
+    }
+
+    // now check if the files don't contain excluded terms
+    for (file in fileMap) {
+      var valid = true;
+
+      // check if all requirements are matched
+      if (fileMap[file].length != searchterms.length)
+          continue;
+
+      // ensure that none of the excluded terms is in the search result
+      for (i = 0; i < excluded.length; i++) {
+        if (terms[excluded[i]] == file ||
+            titleterms[excluded[i]] == file ||
+            $u.contains(terms[excluded[i]] || [], file) ||
+            $u.contains(titleterms[excluded[i]] || [], file)) {
+          valid = false;
+          break;
+        }
+      }
+
+      // if we have still a valid result we can add it to the result list
+      if (valid) {
+        // select one (max) score for the file.
+        // for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
+        var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
+        results.push([docnames[file], titles[file], '', null, score, filenames[file]]);
+      }
+    }
+    return results;
+  },
+
+  /**
+   * helper function to return a node containing the
+   * search summary for a given text. keywords is a list
+   * of stemmed words, hlwords is the list of normal, unstemmed
+   * words. the first one is used to find the occurrence, the
+   * latter for highlighting it.
+   */
+  makeSearchSummary : function(text, keywords, hlwords) {
+    var textLower = text.toLowerCase();
+    var start = 0;
+    $.each(keywords, function() {
+      var i = textLower.indexOf(this.toLowerCase());
+      if (i > -1)
+        start = i;
+    });
+    start = Math.max(start - 120, 0);
+    var excerpt = ((start > 0) ? '...' : '') +
+      $.trim(text.substr(start, 240)) +
+      ((start + 240 - text.length) ? '...' : '');
+    var rv = $('<div class="context"></div>').text(excerpt);
+    $.each(hlwords, function() {
+      rv = rv.highlightText(this, 'highlighted');
+    });
+    return rv;
+  }
+};
+
+$(document).ready(function() {
+  Search.init();
+});
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/underscore-1.3.1.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/underscore-1.3.1.js?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/underscore-1.3.1.js (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/underscore-1.3.1.js Fri Dec 21 13:53:02 2018
@@ -0,0 +1,999 @@
+//     Underscore.js 1.3.1
+//     (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
+//     Underscore is freely distributable under the MIT license.
+//     Portions of Underscore are inspired or borrowed from Prototype,
+//     Oliver Steele's Functional, and John Resig's Micro-Templating.
+//     For all details and documentation:
+//     http://documentcloud.github.com/underscore
+
+(function() {
+
+  // Baseline setup
+  // --------------
+
+  // Establish the root object, `window` in the browser, or `global` on the server.
+  var root = this;
+
+  // Save the previous value of the `_` variable.
+  var previousUnderscore = root._;
+
+  // Establish the object that gets returned to break out of a loop iteration.
+  var breaker = {};
+
+  // Save bytes in the minified (but not gzipped) version:
+  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
+
+  // Create quick reference variables for speed access to core prototypes.
+  var slice            = ArrayProto.slice,
+      unshift          = ArrayProto.unshift,
+      toString         = ObjProto.toString,
+      hasOwnProperty   = ObjProto.hasOwnProperty;
+
+  // All **ECMAScript 5** native function implementations that we hope to use
+  // are declared here.
+  var
+    nativeForEach      = ArrayProto.forEach,
+    nativeMap          = ArrayProto.map,
+    nativeReduce       = ArrayProto.reduce,
+    nativeReduceRight  = ArrayProto.reduceRight,
+    nativeFilter       = ArrayProto.filter,
+    nativeEvery        = ArrayProto.every,
+    nativeSome         = ArrayProto.some,
+    nativeIndexOf      = ArrayProto.indexOf,
+    nativeLastIndexOf  = ArrayProto.lastIndexOf,
+    nativeIsArray      = Array.isArray,
+    nativeKeys         = Object.keys,
+    nativeBind         = FuncProto.bind;
+
+  // Create a safe reference to the Underscore object for use below.
+  var _ = function(obj) { return new wrapper(obj); };
+
+  // Export the Underscore object for **Node.js**, with
+  // backwards-compatibility for the old `require()` API. If we're in
+  // the browser, add `_` as a global object via a string identifier,
+  // for Closure Compiler "advanced" mode.
+  if (typeof exports !== 'undefined') {
+    if (typeof module !== 'undefined' && module.exports) {
+      exports = module.exports = _;
+    }
+    exports._ = _;
+  } else {
+    root['_'] = _;
+  }
+
+  // Current version.
+  _.VERSION = '1.3.1';
+
+  // Collection Functions
+  // --------------------
+
+  // The cornerstone, an `each` implementation, aka `forEach`.
+  // Handles objects with the built-in `forEach`, arrays, and raw objects.
+  // Delegates to **ECMAScript 5**'s native `forEach` if available.
+  var each = _.each = _.forEach = function(obj, iterator, context) {
+    if (obj == null) return;
+    if (nativeForEach && obj.forEach === nativeForEach) {
+      obj.forEach(iterator, context);
+    } else if (obj.length === +obj.length) {
+      for (var i = 0, l = obj.length; i < l; i++) {
+        if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
+      }
+    } else {
+      for (var key in obj) {
+        if (_.has(obj, key)) {
+          if (iterator.call(context, obj[key], key, obj) === breaker) return;
+        }
+      }
+    }
+  };
+
+  // Return the results of applying the iterator to each element.
+  // Delegates to **ECMAScript 5**'s native `map` if available.
+  _.map = _.collect = function(obj, iterator, context) {
+    var results = [];
+    if (obj == null) return results;
+    if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
+    each(obj, function(value, index, list) {
+      results[results.length] = iterator.call(context, value, index, list);
+    });
+    if (obj.length === +obj.length) results.length = obj.length;
+    return results;
+  };
+
+  // **Reduce** builds up a single result from a list of values, aka `inject`,
+  // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
+  _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
+    var initial = arguments.length > 2;
+    if (obj == null) obj = [];
+    if (nativeReduce && obj.reduce === nativeReduce) {
+      if (context) iterator = _.bind(iterator, context);
+      return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
+    }
+    each(obj, function(value, index, list) {
+      if (!initial) {
+        memo = value;
+        initial = true;
+      } else {
+        memo = iterator.call(context, memo, value, index, list);
+      }
+    });
+    if (!initial) throw new TypeError('Reduce of empty array with no initial value');
+    return memo;
+  };
+
+  // The right-associative version of reduce, also known as `foldr`.
+  // Delegates to **ECMAScript 5**'s native `reduceRight` if available.
+  _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
+    var initial = arguments.length > 2;
+    if (obj == null) obj = [];
+    if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
+      if (context) iterator = _.bind(iterator, context);
+      return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
+    }
+    var reversed = _.toArray(obj).reverse();
+    if (context && !initial) iterator = _.bind(iterator, context);
+    return initial ? _.reduce(reversed, iterator, memo, context) : _.reduce(reversed, iterator);
+  };
+
+  // Return the first value which passes a truth test. Aliased as `detect`.
+  _.find = _.detect = function(obj, iterator, context) {
+    var result;
+    any(obj, function(value, index, list) {
+      if (iterator.call(context, value, index, list)) {
+        result = value;
+        return true;
+      }
+    });
+    return result;
+  };
+
+  // Return all the elements that pass a truth test.
+  // Delegates to **ECMAScript 5**'s native `filter` if available.
+  // Aliased as `select`.
+  _.filter = _.select = function(obj, iterator, context) {
+    var results = [];
+    if (obj == null) return results;
+    if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
+    each(obj, function(value, index, list) {
+      if (iterator.call(context, value, index, list)) results[results.length] = value;
+    });
+    return results;
+  };
+
+  // Return all the elements for which a truth test fails.
+  _.reject = function(obj, iterator, context) {
+    var results = [];
+    if (obj == null) return results;
+    each(obj, function(value, index, list) {
+      if (!iterator.call(context, value, index, list)) results[results.length] = value;
+    });
+    return results;
+  };
+
+  // Determine whether all of the elements match a truth test.
+  // Delegates to **ECMAScript 5**'s native `every` if available.
+  // Aliased as `all`.
+  _.every = _.all = function(obj, iterator, context) {
+    var result = true;
+    if (obj == null) return result;
+    if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
+    each(obj, function(value, index, list) {
+      if (!(result = result && iterator.call(context, value, index, list))) return breaker;
+    });
+    return result;
+  };
+
+  // Determine if at least one element in the object matches a truth test.
+  // Delegates to **ECMAScript 5**'s native `some` if available.
+  // Aliased as `any`.
+  var any = _.some = _.any = function(obj, iterator, context) {
+    iterator || (iterator = _.identity);
+    var result = false;
+    if (obj == null) return result;
+    if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
+    each(obj, function(value, index, list) {
+      if (result || (result = iterator.call(context, value, index, list))) return breaker;
+    });
+    return !!result;
+  };
+
+  // Determine if a given value is included in the array or object using `===`.
+  // Aliased as `contains`.
+  _.include = _.contains = function(obj, target) {
+    var found = false;
+    if (obj == null) return found;
+    if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
+    found = any(obj, function(value) {
+      return value === target;
+    });
+    return found;
+  };
+
+  // Invoke a method (with arguments) on every item in a collection.
+  _.invoke = function(obj, method) {
+    var args = slice.call(arguments, 2);
+    return _.map(obj, function(value) {
+      return (_.isFunction(method) ? method || value : value[method]).apply(value, args);
+    });
+  };
+
+  // Convenience version of a common use case of `map`: fetching a property.
+  _.pluck = function(obj, key) {
+    return _.map(obj, function(value){ return value[key]; });
+  };
+
+  // Return the maximum element or (element-based computation).
+  _.max = function(obj, iterator, context) {
+    if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
+    if (!iterator && _.isEmpty(obj)) return -Infinity;
+    var result = {computed : -Infinity};
+    each(obj, function(value, index, list) {
+      var computed = iterator ? iterator.call(context, value, index, list) : value;
+      computed >= result.computed && (result = {value : value, computed : computed});
+    });
+    return result.value;
+  };
+
+  // Return the minimum element (or element-based computation).
+  _.min = function(obj, iterator, context) {
+    if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
+    if (!iterator && _.isEmpty(obj)) return Infinity;
+    var result = {computed : Infinity};
+    each(obj, function(value, index, list) {
+      var computed = iterator ? iterator.call(context, value, index, list) : value;
+      computed < result.computed && (result = {value : value, computed : computed});
+    });
+    return result.value;
+  };
+
+  // Shuffle an array.
+  _.shuffle = function(obj) {
+    var shuffled = [], rand;
+    each(obj, function(value, index, list) {
+      if (index == 0) {
+        shuffled[0] = value;
+      } else {
+        rand = Math.floor(Math.random() * (index + 1));
+        shuffled[index] = shuffled[rand];
+        shuffled[rand] = value;
+      }
+    });
+    return shuffled;
+  };
+
+  // Sort the object's values by a criterion produced by an iterator.
+  _.sortBy = function(obj, iterator, context) {
+    return _.pluck(_.map(obj, function(value, index, list) {
+      return {
+        value : value,
+        criteria : iterator.call(context, value, index, list)
+      };
+    }).sort(function(left, right) {
+      var a = left.criteria, b = right.criteria;
+      return a < b ? -1 : a > b ? 1 : 0;
+    }), 'value');
+  };
+
+  // Groups the object's values by a criterion. Pass either a string attribute
+  // to group by, or a function that returns the criterion.
+  _.groupBy = function(obj, val) {
+    var result = {};
+    var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; };
+    each(obj, function(value, index) {
+      var key = iterator(value, index);
+      (result[key] || (result[key] = [])).push(value);
+    });
+    return result;
+  };
+
+  // Use a comparator function to figure out at what index an object should
+  // be inserted so as to maintain order. Uses binary search.
+  _.sortedIndex = function(array, obj, iterator) {
+    iterator || (iterator = _.identity);
+    var low = 0, high = array.length;
+    while (low < high) {
+      var mid = (low + high) >> 1;
+      iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid;
+    }
+    return low;
+  };
+
+  // Safely convert anything iterable into a real, live array.
+  _.toArray = function(iterable) {
+    if (!iterable)                return [];
+    if (iterable.toArray)         return iterable.toArray();
+    if (_.isArray(iterable))      return slice.call(iterable);
+    if (_.isArguments(iterable))  return slice.call(iterable);
+    return _.values(iterable);
+  };
+
+  // Return the number of elements in an object.
+  _.size = function(obj) {
+    return _.toArray(obj).length;
+  };
+
+  // Array Functions
+  // ---------------
+
+  // Get the first element of an array. Passing **n** will return the first N
+  // values in the array. Aliased as `head`. The **guard** check allows it to work
+  // with `_.map`.
+  _.first = _.head = function(array, n, guard) {
+    return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
+  };
+
+  // Returns everything but the last entry of the array. Especcialy useful on
+  // the arguments object. Passing **n** will return all the values in
+  // the array, excluding the last N. The **guard** check allows it to work with
+  // `_.map`.
+  _.initial = function(array, n, guard) {
+    return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
+  };
+
+  // Get the last element of an array. Passing **n** will return the last N
+  // values in the array. The **guard** check allows it to work with `_.map`.
+  _.last = function(array, n, guard) {
+    if ((n != null) && !guard) {
+      return slice.call(array, Math.max(array.length - n, 0));
+    } else {
+      return array[array.length - 1];
+    }
+  };
+
+  // Returns everything but the first entry of the array. Aliased as `tail`.
+  // Especially useful on the arguments object. Passing an **index** will return
+  // the rest of the values in the array from that index onward. The **guard**
+  // check allows it to work with `_.map`.
+  _.rest = _.tail = function(array, index, guard) {
+    return slice.call(array, (index == null) || guard ? 1 : index);
+  };
+
+  // Trim out all falsy values from an array.
+  _.compact = function(array) {
+    return _.filter(array, function(value){ return !!value; });
+  };
+
+  // Return a completely flattened version of an array.
+  _.flatten = function(array, shallow) {
+    return _.reduce(array, function(memo, value) {
+      if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value));
+      memo[memo.length] = value;
+      return memo;
+    }, []);
+  };
+
+  // Return a version of the array that does not contain the specified value(s).
+  _.without = function(array) {
+    return _.difference(array, slice.call(arguments, 1));
+  };
+
+  // Produce a duplicate-free version of the array. If the array has already
+  // been sorted, you have the option of using a faster algorithm.
+  // Aliased as `unique`.
+  _.uniq = _.unique = function(array, isSorted, iterator) {
+    var initial = iterator ? _.map(array, iterator) : array;
+    var result = [];
+    _.reduce(initial, function(memo, el, i) {
+      if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) {
+        memo[memo.length] = el;
+        result[result.length] = array[i];
+      }
+      return memo;
+    }, []);
+    return result;
+  };
+
+  // Produce an array that contains the union: each distinct element from all of
+  // the passed-in arrays.
+  _.union = function() {
+    return _.uniq(_.flatten(arguments, true));
+  };
+
+  // Produce an array that contains every item shared between all the
+  // passed-in arrays. (Aliased as "intersect" for back-compat.)
+  _.intersection = _.intersect = function(array) {
+    var rest = slice.call(arguments, 1);
+    return _.filter(_.uniq(array), function(item) {
+      return _.every(rest, function(other) {
+        return _.indexOf(other, item) >= 0;
+      });
+    });
+  };
+
+  // Take the difference between one array and a number of other arrays.
+  // Only the elements present in just the first array will remain.
+  _.difference = function(array) {
+    var rest = _.flatten(slice.call(arguments, 1));
+    return _.filter(array, function(value){ return !_.include(rest, value); });
+  };
+
+  // Zip together multiple lists into a single array -- elements that share
+  // an index go together.
+  _.zip = function() {
+    var args = slice.call(arguments);
+    var length = _.max(_.pluck(args, 'length'));
+    var results = new Array(length);
+    for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
+    return results;
+  };
+
+  // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
+  // we need this function. Return the position of the first occurrence of an
+  // item in an array, or -1 if the item is not included in the array.
+  // Delegates to **ECMAScript 5**'s native `indexOf` if available.
+  // If the array is large and already in sort order, pass `true`
+  // for **isSorted** to use binary search.
+  _.indexOf = function(array, item, isSorted) {
+    if (array == null) return -1;
+    var i, l;
+    if (isSorted) {
+      i = _.sortedIndex(array, item);
+      return array[i] === item ? i : -1;
+    }
+    if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
+    for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i;
+    return -1;
+  };
+
+  // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
+  _.lastIndexOf = function(array, item) {
+    if (array == null) return -1;
+    if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
+    var i = array.length;
+    while (i--) if (i in array && array[i] === item) return i;
+    return -1;
+  };
+
+  // Generate an integer Array containing an arithmetic progression. A port of
+  // the native Python `range()` function. See
+  // [the Python documentation](http://docs.python.org/library/functions.html#range).
+  _.range = function(start, stop, step) {
+    if (arguments.length <= 1) {
+      stop = start || 0;
+      start = 0;
+    }
+    step = arguments[2] || 1;
+
+    var len = Math.max(Math.ceil((stop - start) / step), 0);
+    var idx = 0;
+    var range = new Array(len);
+
+    while(idx < len) {
+      range[idx++] = start;
+      start += step;
+    }
+
+    return range;
+  };
+
+  // Function (ahem) Functions
+  // ------------------
+
+  // Reusable constructor function for prototype setting.
+  var ctor = function(){};
+
+  // Create a function bound to a given object (assigning `this`, and arguments,
+  // optionally). Binding with arguments is also known as `curry`.
+  // Delegates to **ECMAScript 5**'s native `Function.bind` if available.
+  // We check for `func.bind` first, to fail fast when `func` is undefined.
+  _.bind = function bind(func, context) {
+    var bound, args;
+    if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
+    if (!_.isFunction(func)) throw new TypeError;
+    args = slice.call(arguments, 2);
+    return bound = function() {
+      if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
+      ctor.prototype = func.prototype;
+      var self = new ctor;
+      var result = func.apply(self, args.concat(slice.call(arguments)));
+      if (Object(result) === result) return result;
+      return self;
+    };
+  };
+
+  // Bind all of an object's methods to that object. Useful for ensuring that
+  // all callbacks defined on an object belong to it.
+  _.bindAll = function(obj) {
+    var funcs = slice.call(arguments, 1);
+    if (funcs.length == 0) funcs = _.functions(obj);
+    each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
+    return obj;
+  };
+
+  // Memoize an expensive function by storing its results.
+  _.memoize = function(func, hasher) {
+    var memo = {};
+    hasher || (hasher = _.identity);
+    return function() {
+      var key = hasher.apply(this, arguments);
+      return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
+    };
+  };
+
+  // Delays a function for the given number of milliseconds, and then calls
+  // it with the arguments supplied.
+  _.delay = function(func, wait) {
+    var args = slice.call(arguments, 2);
+    return setTimeout(function(){ return func.apply(func, args); }, wait);
+  };
+
+  // Defers a function, scheduling it to run after the current call stack has
+  // cleared.
+  _.defer = function(func) {
+    return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
+  };
+
+  // Returns a function, that, when invoked, will only be triggered at most once
+  // during a given window of time.
+  _.throttle = function(func, wait) {
+    var context, args, timeout, throttling, more;
+    var whenDone = _.debounce(function(){ more = throttling = false; }, wait);
+    return function() {
+      context = this; args = arguments;
+      var later = function() {
+        timeout = null;
+        if (more) func.apply(context, args);
+        whenDone();
+      };
+      if (!timeout) timeout = setTimeout(later, wait);
+      if (throttling) {
+        more = true;
+      } else {
+        func.apply(context, args);
+      }
+      whenDone();
+      throttling = true;
+    };
+  };
+
+  // Returns a function, that, as long as it continues to be invoked, will not
+  // be triggered. The function will be called after it stops being called for
+  // N milliseconds.
+  _.debounce = function(func, wait) {
+    var timeout;
+    return function() {
+      var context = this, args = arguments;
+      var later = function() {
+        timeout = null;
+        func.apply(context, args);
+      };
+      clearTimeout(timeout);
+      timeout = setTimeout(later, wait);
+    };
+  };
+
+  // Returns a function that will be executed at most one time, no matter how
+  // often you call it. Useful for lazy initialization.
+  _.once = function(func) {
+    var ran = false, memo;
+    return function() {
+      if (ran) return memo;
+      ran = true;
+      return memo = func.apply(this, arguments);
+    };
+  };
+
+  // Returns the first function passed as an argument to the second,
+  // allowing you to adjust arguments, run code before and after, and
+  // conditionally execute the original function.
+  _.wrap = function(func, wrapper) {
+    return function() {
+      var args = [func].concat(slice.call(arguments, 0));
+      return wrapper.apply(this, args);
+    };
+  };
+
+  // Returns a function that is the composition of a list of functions, each
+  // consuming the return value of the function that follows.
+  _.compose = function() {
+    var funcs = arguments;
+    return function() {
+      var args = arguments;
+      for (var i = funcs.length - 1; i >= 0; i--) {
+        args = [funcs[i].apply(this, args)];
+      }
+      return args[0];
+    };
+  };
+
+  // Returns a function that will only be executed after being called N times.
+  _.after = function(times, func) {
+    if (times <= 0) return func();
+    return function() {
+      if (--times < 1) { return func.apply(this, arguments); }
+    };
+  };
+
+  // Object Functions
+  // ----------------
+
+  // Retrieve the names of an object's properties.
+  // Delegates to **ECMAScript 5**'s native `Object.keys`
+  _.keys = nativeKeys || function(obj) {
+    if (obj !== Object(obj)) throw new TypeError('Invalid object');
+    var keys = [];
+    for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key;
+    return keys;
+  };
+
+  // Retrieve the values of an object's properties.
+  _.values = function(obj) {
+    return _.map(obj, _.identity);
+  };
+
+  // Return a sorted list of the function names available on the object.
+  // Aliased as `methods`
+  _.functions = _.methods = function(obj) {
+    var names = [];
+    for (var key in obj) {
+      if (_.isFunction(obj[key])) names.push(key);
+    }
+    return names.sort();
+  };
+
+  // Extend a given object with all the properties in passed-in object(s).
+  _.extend = function(obj) {
+    each(slice.call(arguments, 1), function(source) {
+      for (var prop in source) {
+        obj[prop] = source[prop];
+      }
+    });
+    return obj;
+  };
+
+  // Fill in a given object with default properties.
+  _.defaults = function(obj) {
+    each(slice.call(arguments, 1), function(source) {
+      for (var prop in source) {
+        if (obj[prop] == null) obj[prop] = source[prop];
+      }
+    });
+    return obj;
+  };
+
+  // Create a (shallow-cloned) duplicate of an object.
+  _.clone = function(obj) {
+    if (!_.isObject(obj)) return obj;
+    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
+  };
+
+  // Invokes interceptor with the obj, and then returns obj.
+  // The primary purpose of this method is to "tap into" a method chain, in
+  // order to perform operations on intermediate results within the chain.
+  _.tap = function(obj, interceptor) {
+    interceptor(obj);
+    return obj;
+  };
+
+  // Internal recursive comparison function.
+  function eq(a, b, stack) {
+    // Identical objects are equal. `0 === -0`, but they aren't identical.
+    // See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal.
+    if (a === b) return a !== 0 || 1 / a == 1 / b;
+    // A strict comparison is necessary because `null == undefined`.
+    if (a == null || b == null) return a === b;
+    // Unwrap any wrapped objects.
+    if (a._chain) a = a._wrapped;
+    if (b._chain) b = b._wrapped;
+    // Invoke a custom `isEqual` method if one is provided.
+    if (a.isEqual && _.isFunction(a.isEqual)) return a.isEqual(b);
+    if (b.isEqual && _.isFunction(b.isEqual)) return b.isEqual(a);
+    // Compare `[[Class]]` names.
+    var className = toString.call(a);
+    if (className != toString.call(b)) return false;
+    switch (className) {
+      // Strings, numbers, dates, and booleans are compared by value.
+      case '[object String]':
+        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
+        // equivalent to `new String("5")`.
+        return a == String(b);
+      case '[object Number]':
+        // `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for
+        // other numeric values.
+        return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);
+      case '[object Date]':
+      case '[object Boolean]':
+        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
+        // millisecond representations. Note that invalid dates with millisecond representations
+        // of `NaN` are not equivalent.
+        return +a == +b;
+      // RegExps are compared by their source patterns and flags.
+      case '[object RegExp]':
+        return a.source == b.source &&
+               a.global == b.global &&
+               a.multiline == b.multiline &&
+               a.ignoreCase == b.ignoreCase;
+    }
+    if (typeof a != 'object' || typeof b != 'object') return false;
+    // Assume equality for cyclic structures. The algorithm for detecting cyclic
+    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
+    var length = stack.length;
+    while (length--) {
+      // Linear search. Performance is inversely proportional to the number of
+      // unique nested structures.
+      if (stack[length] == a) return true;
+    }
+    // Add the first object to the stack of traversed objects.
+    stack.push(a);
+    var size = 0, result = true;
+    // Recursively compare objects and arrays.
+    if (className == '[object Array]') {
+      // Compare array lengths to determine if a deep comparison is necessary.
+      size = a.length;
+      result = size == b.length;
+      if (result) {
+        // Deep compare the contents, ignoring non-numeric properties.
+        while (size--) {
+          // Ensure commutative equality for sparse arrays.
+          if (!(result = size in a == size in b && eq(a[size], b[size], stack))) break;
+        }
+      }
+    } else {
+      // Objects with different constructors are not equivalent.
+      if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) return false;
+      // Deep compare objects.
+      for (var key in a) {
+        if (_.has(a, key)) {
+          // Count the expected number of properties.
+          size++;
+          // Deep compare each member.
+          if (!(result = _.has(b, key) && eq(a[key], b[key], stack))) break;
+        }
+      }
+      // Ensure that both objects contain the same number of properties.
+      if (result) {
+        for (key in b) {
+          if (_.has(b, key) && !(size--)) break;
+        }
+        result = !size;
+      }
+    }
+    // Remove the first object from the stack of traversed objects.
+    stack.pop();
+    return result;
+  }
+
+  // Perform a deep comparison to check if two objects are equal.
+  _.isEqual = function(a, b) {
+    return eq(a, b, []);
+  };
+
+  // Is a given array, string, or object empty?
+  // An "empty" object has no enumerable own-properties.
+  _.isEmpty = function(obj) {
+    if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
+    for (var key in obj) if (_.has(obj, key)) return false;
+    return true;
+  };
+
+  // Is a given value a DOM element?
+  _.isElement = function(obj) {
+    return !!(obj && obj.nodeType == 1);
+  };
+
+  // Is a given value an array?
+  // Delegates to ECMA5's native Array.isArray
+  _.isArray = nativeIsArray || function(obj) {
+    return toString.call(obj) == '[object Array]';
+  };
+
+  // Is a given variable an object?
+  _.isObject = function(obj) {
+    return obj === Object(obj);
+  };
+
+  // Is a given variable an arguments object?
+  _.isArguments = function(obj) {
+    return toString.call(obj) == '[object Arguments]';
+  };
+  if (!_.isArguments(arguments)) {
+    _.isArguments = function(obj) {
+      return !!(obj && _.has(obj, 'callee'));
+    };
+  }
+
+  // Is a given value a function?
+  _.isFunction = function(obj) {
+    return toString.call(obj) == '[object Function]';
+  };
+
+  // Is a given value a string?
+  _.isString = function(obj) {
+    return toString.call(obj) == '[object String]';
+  };
+
+  // Is a given value a number?
+  _.isNumber = function(obj) {
+    return toString.call(obj) == '[object Number]';
+  };
+
+  // Is the given value `NaN`?
+  _.isNaN = function(obj) {
+    // `NaN` is the only value for which `===` is not reflexive.
+    return obj !== obj;
+  };
+
+  // Is a given value a boolean?
+  _.isBoolean = function(obj) {
+    return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
+  };
+
+  // Is a given value a date?
+  _.isDate = function(obj) {
+    return toString.call(obj) == '[object Date]';
+  };
+
+  // Is the given value a regular expression?
+  _.isRegExp = function(obj) {
+    return toString.call(obj) == '[object RegExp]';
+  };
+
+  // Is a given value equal to null?
+  _.isNull = function(obj) {
+    return obj === null;
+  };
+
+  // Is a given variable undefined?
+  _.isUndefined = function(obj) {
+    return obj === void 0;
+  };
+
+  // Has own property?
+  _.has = function(obj, key) {
+    return hasOwnProperty.call(obj, key);
+  };
+
+  // Utility Functions
+  // -----------------
+
+  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
+  // previous owner. Returns a reference to the Underscore object.
+  _.noConflict = function() {
+    root._ = previousUnderscore;
+    return this;
+  };
+
+  // Keep the identity function around for default iterators.
+  _.identity = function(value) {
+    return value;
+  };
+
+  // Run a function **n** times.
+  _.times = function (n, iterator, context) {
+    for (var i = 0; i < n; i++) iterator.call(context, i);
+  };
+
+  // Escape a string for HTML interpolation.
+  _.escape = function(string) {
+    return (''+string).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, '&#x27;').replace(/\//g,'&#x2F;');
+  };
+
+  // Add your own custom functions to the Underscore object, ensuring that
+  // they're correctly added to the OOP wrapper as well.
+  _.mixin = function(obj) {
+    each(_.functions(obj), function(name){
+      addToWrapper(name, _[name] = obj[name]);
+    });
+  };
+
+  // Generate a unique integer id (unique within the entire client session).
+  // Useful for temporary DOM ids.
+  var idCounter = 0;
+  _.uniqueId = function(prefix) {
+    var id = idCounter++;
+    return prefix ? prefix + id : id;
+  };
+
+  // By default, Underscore uses ERB-style template delimiters, change the
+  // following template settings to use alternative delimiters.
+  _.templateSettings = {
+    evaluate    : /<%([\s\S]+?)%>/g,
+    interpolate : /<%=([\s\S]+?)%>/g,
+    escape      : /<%-([\s\S]+?)%>/g
+  };
+
+  // When customizing `templateSettings`, if you don't want to define an
+  // interpolation, evaluation or escaping regex, we need one that is
+  // guaranteed not to match.
+  var noMatch = /.^/;
+
+  // Within an interpolation, evaluation, or escaping, remove HTML escaping
+  // that had been previously added.
+  var unescape = function(code) {
+    return code.replace(/\\\\/g, '\\').replace(/\\'/g, "'");
+  };
+
+  // JavaScript micro-templating, similar to John Resig's implementation.
+  // Underscore templating handles arbitrary delimiters, preserves whitespace,
+  // and correctly escapes quotes within interpolated code.
+  _.template = function(str, data) {
+    var c  = _.templateSettings;
+    var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' +
+      'with(obj||{}){__p.push(\'' +
+      str.replace(/\\/g, '\\\\')
+         .replace(/'/g, "\\'")
+         .replace(c.escape || noMatch, function(match, code) {
+           return "',_.escape(" + unescape(code) + "),'";
+         })
+         .replace(c.interpolate || noMatch, function(match, code) {
+           return "'," + unescape(code) + ",'";
+         })
+         .replace(c.evaluate || noMatch, function(match, code) {
+           return "');" + unescape(code).replace(/[\r\n\t]/g, ' ') + ";__p.push('";
+         })
+         .replace(/\r/g, '\\r')
+         .replace(/\n/g, '\\n')
+         .replace(/\t/g, '\\t')
+         + "');}return __p.join('');";
+    var func = new Function('obj', '_', tmpl);
+    if (data) return func(data, _);
+    return function(data) {
+      return func.call(this, data, _);
+    };
+  };
+
+  // Add a "chain" function, which will delegate to the wrapper.
+  _.chain = function(obj) {
+    return _(obj).chain();
+  };
+
+  // The OOP Wrapper
+  // ---------------
+
+  // If Underscore is called as a function, it returns a wrapped object that
+  // can be used OO-style. This wrapper holds altered versions of all the
+  // underscore functions. Wrapped objects may be chained.
+  var wrapper = function(obj) { this._wrapped = obj; };
+
+  // Expose `wrapper.prototype` as `_.prototype`
+  _.prototype = wrapper.prototype;
+
+  // Helper function to continue chaining intermediate results.
+  var result = function(obj, chain) {
+    return chain ? _(obj).chain() : obj;
+  };
+
+  // A method to easily add functions to the OOP wrapper.
+  var addToWrapper = function(name, func) {
+    wrapper.prototype[name] = function() {
+      var args = slice.call(arguments);
+      unshift.call(args, this._wrapped);
+      return result(func.apply(_, args), this._chain);
+    };
+  };
+
+  // Add all of the Underscore functions to the wrapper object.
+  _.mixin(_);
+
+  // Add all mutator Array functions to the wrapper.
+  each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
+    var method = ArrayProto[name];
+    wrapper.prototype[name] = function() {
+      var wrapped = this._wrapped;
+      method.apply(wrapped, arguments);
+      var length = wrapped.length;
+      if ((name == 'shift' || name == 'splice') && length === 0) delete wrapped[0];
+      return result(wrapped, this._chain);
+    };
+  });
+
+  // Add all accessor Array functions to the wrapper.
+  each(['concat', 'join', 'slice'], function(name) {
+    var method = ArrayProto[name];
+    wrapper.prototype[name] = function() {
+      return result(method.apply(this._wrapped, arguments), this._chain);
+    };
+  });
+
+  // Start chaining a wrapped Underscore object.
+  wrapper.prototype.chain = function() {
+    this._chain = true;
+    return this;
+  };
+
+  // Extracts the result from a wrapped and chained object.
+  wrapper.prototype.value = function() {
+    return this._wrapped;
+  };
+
+}).call(this);

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/underscore.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/underscore.js?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/underscore.js (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/underscore.js Fri Dec 21 13:53:02 2018
@@ -0,0 +1,31 @@
+// Underscore.js 1.3.1
+// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
+// Underscore is freely distributable under the MIT license.
+// Portions of Underscore are inspired or borrowed from Prototype,
+// Oliver Steele's Functional, and John Resig's Micro-Templating.
+// For all details and documentation:
+// http://documentcloud.github.com/underscore
+(function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
+c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,
+h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each=
+b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a==
+null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=
+function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e=
+e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
+function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a,computed:b})});
+return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,
+c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest=
+b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];return d},[]);
+return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,
+d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};
+var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,
+c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c));g?h=true:
+a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};
+b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments,
+1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};
+b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};
+b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.mixin=function(a){j(b.functions(a),
+function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+
+u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]=
+function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=
+true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/up-pressed.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/up-pressed.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/up-pressed.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/up.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/up.png?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/_static/up.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: www-releases/trunk/7.0.1/tools/lld/docs/_static/websupport.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/_static/websupport.js?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/_static/websupport.js (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/_static/websupport.js Fri Dec 21 13:53:02 2018
@@ -0,0 +1,808 @@
+/*
+ * websupport.js
+ * ~~~~~~~~~~~~~
+ *
+ * sphinx.websupport utilities for all documentation.
+ *
+ * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+(function($) {
+  $.fn.autogrow = function() {
+    return this.each(function() {
+    var textarea = this;
+
+    $.fn.autogrow.resize(textarea);
+
+    $(textarea)
+      .focus(function() {
+        textarea.interval = setInterval(function() {
+          $.fn.autogrow.resize(textarea);
+        }, 500);
+      })
+      .blur(function() {
+        clearInterval(textarea.interval);
+      });
+    });
+  };
+
+  $.fn.autogrow.resize = function(textarea) {
+    var lineHeight = parseInt($(textarea).css('line-height'), 10);
+    var lines = textarea.value.split('\n');
+    var columns = textarea.cols;
+    var lineCount = 0;
+    $.each(lines, function() {
+      lineCount += Math.ceil(this.length / columns) || 1;
+    });
+    var height = lineHeight * (lineCount + 1);
+    $(textarea).css('height', height);
+  };
+})(jQuery);
+
+(function($) {
+  var comp, by;
+
+  function init() {
+    initEvents();
+    initComparator();
+  }
+
+  function initEvents() {
+    $(document).on("click", 'a.comment-close', function(event) {
+      event.preventDefault();
+      hide($(this).attr('id').substring(2));
+    });
+    $(document).on("click", 'a.vote', function(event) {
+      event.preventDefault();
+      handleVote($(this));
+    });
+    $(document).on("click", 'a.reply', function(event) {
+      event.preventDefault();
+      openReply($(this).attr('id').substring(2));
+    });
+    $(document).on("click", 'a.close-reply', function(event) {
+      event.preventDefault();
+      closeReply($(this).attr('id').substring(2));
+    });
+    $(document).on("click", 'a.sort-option', function(event) {
+      event.preventDefault();
+      handleReSort($(this));
+    });
+    $(document).on("click", 'a.show-proposal', function(event) {
+      event.preventDefault();
+      showProposal($(this).attr('id').substring(2));
+    });
+    $(document).on("click", 'a.hide-proposal', function(event) {
+      event.preventDefault();
+      hideProposal($(this).attr('id').substring(2));
+    });
+    $(document).on("click", 'a.show-propose-change', function(event) {
+      event.preventDefault();
+      showProposeChange($(this).attr('id').substring(2));
+    });
+    $(document).on("click", 'a.hide-propose-change', function(event) {
+      event.preventDefault();
+      hideProposeChange($(this).attr('id').substring(2));
+    });
+    $(document).on("click", 'a.accept-comment', function(event) {
+      event.preventDefault();
+      acceptComment($(this).attr('id').substring(2));
+    });
+    $(document).on("click", 'a.delete-comment', function(event) {
+      event.preventDefault();
+      deleteComment($(this).attr('id').substring(2));
+    });
+    $(document).on("click", 'a.comment-markup', function(event) {
+      event.preventDefault();
+      toggleCommentMarkupBox($(this).attr('id').substring(2));
+    });
+  }
+
+  /**
+   * Set comp, which is a comparator function used for sorting and
+   * inserting comments into the list.
+   */
+  function setComparator() {
+    // If the first three letters are "asc", sort in ascending order
+    // and remove the prefix.
+    if (by.substring(0,3) == 'asc') {
+      var i = by.substring(3);
+      comp = function(a, b) { return a[i] - b[i]; };
+    } else {
+      // Otherwise sort in descending order.
+      comp = function(a, b) { return b[by] - a[by]; };
+    }
+
+    // Reset link styles and format the selected sort option.
+    $('a.sel').attr('href', '#').removeClass('sel');
+    $('a.by' + by).removeAttr('href').addClass('sel');
+  }
+
+  /**
+   * Create a comp function. If the user has preferences stored in
+   * the sortBy cookie, use those, otherwise use the default.
+   */
+  function initComparator() {
+    by = 'rating'; // Default to sort by rating.
+    // If the sortBy cookie is set, use that instead.
+    if (document.cookie.length > 0) {
+      var start = document.cookie.indexOf('sortBy=');
+      if (start != -1) {
+        start = start + 7;
+        var end = document.cookie.indexOf(";", start);
+        if (end == -1) {
+          end = document.cookie.length;
+          by = unescape(document.cookie.substring(start, end));
+        }
+      }
+    }
+    setComparator();
+  }
+
+  /**
+   * Show a comment div.
+   */
+  function show(id) {
+    $('#ao' + id).hide();
+    $('#ah' + id).show();
+    var context = $.extend({id: id}, opts);
+    var popup = $(renderTemplate(popupTemplate, context)).hide();
+    popup.find('textarea[name="proposal"]').hide();
+    popup.find('a.by' + by).addClass('sel');
+    var form = popup.find('#cf' + id);
+    form.submit(function(event) {
+      event.preventDefault();
+      addComment(form);
+    });
+    $('#s' + id).after(popup);
+    popup.slideDown('fast', function() {
+      getComments(id);
+    });
+  }
+
+  /**
+   * Hide a comment div.
+   */
+  function hide(id) {
+    $('#ah' + id).hide();
+    $('#ao' + id).show();
+    var div = $('#sc' + id);
+    div.slideUp('fast', function() {
+      div.remove();
+    });
+  }
+
+  /**
+   * Perform an ajax request to get comments for a node
+   * and insert the comments into the comments tree.
+   */
+  function getComments(id) {
+    $.ajax({
+     type: 'GET',
+     url: opts.getCommentsURL,
+     data: {node: id},
+     success: function(data, textStatus, request) {
+       var ul = $('#cl' + id);
+       var speed = 100;
+       $('#cf' + id)
+         .find('textarea[name="proposal"]')
+         .data('source', data.source);
+
+       if (data.comments.length === 0) {
+         ul.html('<li>No comments yet.</li>');
+         ul.data('empty', true);
+       } else {
+         // If there are comments, sort them and put them in the list.
+         var comments = sortComments(data.comments);
+         speed = data.comments.length * 100;
+         appendComments(comments, ul);
+         ul.data('empty', false);
+       }
+       $('#cn' + id).slideUp(speed + 200);
+       ul.slideDown(speed);
+     },
+     error: function(request, textStatus, error) {
+       showError('Oops, there was a problem retrieving the comments.');
+     },
+     dataType: 'json'
+    });
+  }
+
+  /**
+   * Add a comment via ajax and insert the comment into the comment tree.
+   */
+  function addComment(form) {
+    var node_id = form.find('input[name="node"]').val();
+    var parent_id = form.find('input[name="parent"]').val();
+    var text = form.find('textarea[name="comment"]').val();
+    var proposal = form.find('textarea[name="proposal"]').val();
+
+    if (text == '') {
+      showError('Please enter a comment.');
+      return;
+    }
+
+    // Disable the form that is being submitted.
+    form.find('textarea,input').attr('disabled', 'disabled');
+
+    // Send the comment to the server.
+    $.ajax({
+      type: "POST",
+      url: opts.addCommentURL,
+      dataType: 'json',
+      data: {
+        node: node_id,
+        parent: parent_id,
+        text: text,
+        proposal: proposal
+      },
+      success: function(data, textStatus, error) {
+        // Reset the form.
+        if (node_id) {
+          hideProposeChange(node_id);
+        }
+        form.find('textarea')
+          .val('')
+          .add(form.find('input'))
+          .removeAttr('disabled');
+	var ul = $('#cl' + (node_id || parent_id));
+        if (ul.data('empty')) {
+          $(ul).empty();
+          ul.data('empty', false);
+        }
+        insertComment(data.comment);
+        var ao = $('#ao' + node_id);
+        ao.find('img').attr({'src': opts.commentBrightImage});
+        if (node_id) {
+          // if this was a "root" comment, remove the commenting box
+          // (the user can get it back by reopening the comment popup)
+          $('#ca' + node_id).slideUp();
+        }
+      },
+      error: function(request, textStatus, error) {
+        form.find('textarea,input').removeAttr('disabled');
+        showError('Oops, there was a problem adding the comment.');
+      }
+    });
+  }
+
+  /**
+   * Recursively append comments to the main comment list and children
+   * lists, creating the comment tree.
+   */
+  function appendComments(comments, ul) {
+    $.each(comments, function() {
+      var div = createCommentDiv(this);
+      ul.append($(document.createElement('li')).html(div));
+      appendComments(this.children, div.find('ul.comment-children'));
+      // To avoid stagnating data, don't store the comments children in data.
+      this.children = null;
+      div.data('comment', this);
+    });
+  }
+
+  /**
+   * After adding a new comment, it must be inserted in the correct
+   * location in the comment tree.
+   */
+  function insertComment(comment) {
+    var div = createCommentDiv(comment);
+
+    // To avoid stagnating data, don't store the comments children in data.
+    comment.children = null;
+    div.data('comment', comment);
+
+    var ul = $('#cl' + (comment.node || comment.parent));
+    var siblings = getChildren(ul);
+
+    var li = $(document.createElement('li'));
+    li.hide();
+
+    // Determine where in the parents children list to insert this comment.
+    for(var i=0; i < siblings.length; i++) {
+      if (comp(comment, siblings[i]) <= 0) {
+        $('#cd' + siblings[i].id)
+          .parent()
+          .before(li.html(div));
+        li.slideDown('fast');
+        return;
+      }
+    }
+
+    // If we get here, this comment rates lower than all the others,
+    // or it is the only comment in the list.
+    ul.append(li.html(div));
+    li.slideDown('fast');
+  }
+
+  function acceptComment(id) {
+    $.ajax({
+      type: 'POST',
+      url: opts.acceptCommentURL,
+      data: {id: id},
+      success: function(data, textStatus, request) {
+        $('#cm' + id).fadeOut('fast');
+        $('#cd' + id).removeClass('moderate');
+      },
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem accepting the comment.');
+      }
+    });
+  }
+
+  function deleteComment(id) {
+    $.ajax({
+      type: 'POST',
+      url: opts.deleteCommentURL,
+      data: {id: id},
+      success: function(data, textStatus, request) {
+        var div = $('#cd' + id);
+        if (data == 'delete') {
+          // Moderator mode: remove the comment and all children immediately
+          div.slideUp('fast', function() {
+            div.remove();
+          });
+          return;
+        }
+        // User mode: only mark the comment as deleted
+        div
+          .find('span.user-id:first')
+          .text('[deleted]').end()
+          .find('div.comment-text:first')
+          .text('[deleted]').end()
+          .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id +
+                ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id)
+          .remove();
+        var comment = div.data('comment');
+        comment.username = '[deleted]';
+        comment.text = '[deleted]';
+        div.data('comment', comment);
+      },
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem deleting the comment.');
+      }
+    });
+  }
+
+  function showProposal(id) {
+    $('#sp' + id).hide();
+    $('#hp' + id).show();
+    $('#pr' + id).slideDown('fast');
+  }
+
+  function hideProposal(id) {
+    $('#hp' + id).hide();
+    $('#sp' + id).show();
+    $('#pr' + id).slideUp('fast');
+  }
+
+  function showProposeChange(id) {
+    $('#pc' + id).hide();
+    $('#hc' + id).show();
+    var textarea = $('#pt' + id);
+    textarea.val(textarea.data('source'));
+    $.fn.autogrow.resize(textarea[0]);
+    textarea.slideDown('fast');
+  }
+
+  function hideProposeChange(id) {
+    $('#hc' + id).hide();
+    $('#pc' + id).show();
+    var textarea = $('#pt' + id);
+    textarea.val('').removeAttr('disabled');
+    textarea.slideUp('fast');
+  }
+
+  function toggleCommentMarkupBox(id) {
+    $('#mb' + id).toggle();
+  }
+
+  /** Handle when the user clicks on a sort by link. */
+  function handleReSort(link) {
+    var classes = link.attr('class').split(/\s+/);
+    for (var i=0; i<classes.length; i++) {
+      if (classes[i] != 'sort-option') {
+	by = classes[i].substring(2);
+      }
+    }
+    setComparator();
+    // Save/update the sortBy cookie.
+    var expiration = new Date();
+    expiration.setDate(expiration.getDate() + 365);
+    document.cookie= 'sortBy=' + escape(by) +
+                     ';expires=' + expiration.toUTCString();
+    $('ul.comment-ul').each(function(index, ul) {
+      var comments = getChildren($(ul), true);
+      comments = sortComments(comments);
+      appendComments(comments, $(ul).empty());
+    });
+  }
+
+  /**
+   * Function to process a vote when a user clicks an arrow.
+   */
+  function handleVote(link) {
+    if (!opts.voting) {
+      showError("You'll need to login to vote.");
+      return;
+    }
+
+    var id = link.attr('id');
+    if (!id) {
+      // Didn't click on one of the voting arrows.
+      return;
+    }
+    // If it is an unvote, the new vote value is 0,
+    // Otherwise it's 1 for an upvote, or -1 for a downvote.
+    var value = 0;
+    if (id.charAt(1) != 'u') {
+      value = id.charAt(0) == 'u' ? 1 : -1;
+    }
+    // The data to be sent to the server.
+    var d = {
+      comment_id: id.substring(2),
+      value: value
+    };
+
+    // Swap the vote and unvote links.
+    link.hide();
+    $('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id)
+      .show();
+
+    // The div the comment is displayed in.
+    var div = $('div#cd' + d.comment_id);
+    var data = div.data('comment');
+
+    // If this is not an unvote, and the other vote arrow has
+    // already been pressed, unpress it.
+    if ((d.value !== 0) && (data.vote === d.value * -1)) {
+      $('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide();
+      $('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show();
+    }
+
+    // Update the comments rating in the local data.
+    data.rating += (data.vote === 0) ? d.value : (d.value - data.vote);
+    data.vote = d.value;
+    div.data('comment', data);
+
+    // Change the rating text.
+    div.find('.rating:first')
+      .text(data.rating + ' point' + (data.rating == 1 ? '' : 's'));
+
+    // Send the vote information to the server.
+    $.ajax({
+      type: "POST",
+      url: opts.processVoteURL,
+      data: d,
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem casting that vote.');
+      }
+    });
+  }
+
+  /**
+   * Open a reply form used to reply to an existing comment.
+   */
+  function openReply(id) {
+    // Swap out the reply link for the hide link
+    $('#rl' + id).hide();
+    $('#cr' + id).show();
+
+    // Add the reply li to the children ul.
+    var div = $(renderTemplate(replyTemplate, {id: id})).hide();
+    $('#cl' + id)
+      .prepend(div)
+      // Setup the submit handler for the reply form.
+      .find('#rf' + id)
+      .submit(function(event) {
+        event.preventDefault();
+        addComment($('#rf' + id));
+        closeReply(id);
+      })
+      .find('input[type=button]')
+      .click(function() {
+        closeReply(id);
+      });
+    div.slideDown('fast', function() {
+      $('#rf' + id).find('textarea').focus();
+    });
+  }
+
+  /**
+   * Close the reply form opened with openReply.
+   */
+  function closeReply(id) {
+    // Remove the reply div from the DOM.
+    $('#rd' + id).slideUp('fast', function() {
+      $(this).remove();
+    });
+
+    // Swap out the hide link for the reply link
+    $('#cr' + id).hide();
+    $('#rl' + id).show();
+  }
+
+  /**
+   * Recursively sort a tree of comments using the comp comparator.
+   */
+  function sortComments(comments) {
+    comments.sort(comp);
+    $.each(comments, function() {
+      this.children = sortComments(this.children);
+    });
+    return comments;
+  }
+
+  /**
+   * Get the children comments from a ul. If recursive is true,
+   * recursively include childrens' children.
+   */
+  function getChildren(ul, recursive) {
+    var children = [];
+    ul.children().children("[id^='cd']")
+      .each(function() {
+        var comment = $(this).data('comment');
+        if (recursive)
+          comment.children = getChildren($(this).find('#cl' + comment.id), true);
+        children.push(comment);
+      });
+    return children;
+  }
+
+  /** Create a div to display a comment in. */
+  function createCommentDiv(comment) {
+    if (!comment.displayed && !opts.moderator) {
+      return $('<div class="moderate">Thank you!  Your comment will show up '
+               + 'once it is has been approved by a moderator.</div>');
+    }
+    // Prettify the comment rating.
+    comment.pretty_rating = comment.rating + ' point' +
+      (comment.rating == 1 ? '' : 's');
+    // Make a class (for displaying not yet moderated comments differently)
+    comment.css_class = comment.displayed ? '' : ' moderate';
+    // Create a div for this comment.
+    var context = $.extend({}, opts, comment);
+    var div = $(renderTemplate(commentTemplate, context));
+
+    // If the user has voted on this comment, highlight the correct arrow.
+    if (comment.vote) {
+      var direction = (comment.vote == 1) ? 'u' : 'd';
+      div.find('#' + direction + 'v' + comment.id).hide();
+      div.find('#' + direction + 'u' + comment.id).show();
+    }
+
+    if (opts.moderator || comment.text != '[deleted]') {
+      div.find('a.reply').show();
+      if (comment.proposal_diff)
+        div.find('#sp' + comment.id).show();
+      if (opts.moderator && !comment.displayed)
+        div.find('#cm' + comment.id).show();
+      if (opts.moderator || (opts.username == comment.username))
+        div.find('#dc' + comment.id).show();
+    }
+    return div;
+  }
+
+  /**
+   * A simple template renderer. Placeholders such as <%id%> are replaced
+   * by context['id'] with items being escaped. Placeholders such as <#id#>
+   * are not escaped.
+   */
+  function renderTemplate(template, context) {
+    var esc = $(document.createElement('div'));
+
+    function handle(ph, escape) {
+      var cur = context;
+      $.each(ph.split('.'), function() {
+        cur = cur[this];
+      });
+      return escape ? esc.text(cur || "").html() : cur;
+    }
+
+    return template.replace(/<([%#])([\w\.]*)\1>/g, function() {
+      return handle(arguments[2], arguments[1] == '%' ? true : false);
+    });
+  }
+
+  /** Flash an error message briefly. */
+  function showError(message) {
+    $(document.createElement('div')).attr({'class': 'popup-error'})
+      .append($(document.createElement('div'))
+               .attr({'class': 'error-message'}).text(message))
+      .appendTo('body')
+      .fadeIn("slow")
+      .delay(2000)
+      .fadeOut("slow");
+  }
+
+  /** Add a link the user uses to open the comments popup. */
+  $.fn.comment = function() {
+    return this.each(function() {
+      var id = $(this).attr('id').substring(1);
+      var count = COMMENT_METADATA[id];
+      var title = count + ' comment' + (count == 1 ? '' : 's');
+      var image = count > 0 ? opts.commentBrightImage : opts.commentImage;
+      var addcls = count == 0 ? ' nocomment' : '';
+      $(this)
+        .append(
+          $(document.createElement('a')).attr({
+            href: '#',
+            'class': 'sphinx-comment-open' + addcls,
+            id: 'ao' + id
+          })
+            .append($(document.createElement('img')).attr({
+              src: image,
+              alt: 'comment',
+              title: title
+            }))
+            .click(function(event) {
+              event.preventDefault();
+              show($(this).attr('id').substring(2));
+            })
+        )
+        .append(
+          $(document.createElement('a')).attr({
+            href: '#',
+            'class': 'sphinx-comment-close hidden',
+            id: 'ah' + id
+          })
+            .append($(document.createElement('img')).attr({
+              src: opts.closeCommentImage,
+              alt: 'close',
+              title: 'close'
+            }))
+            .click(function(event) {
+              event.preventDefault();
+              hide($(this).attr('id').substring(2));
+            })
+        );
+    });
+  };
+
+  var opts = {
+    processVoteURL: '/_process_vote',
+    addCommentURL: '/_add_comment',
+    getCommentsURL: '/_get_comments',
+    acceptCommentURL: '/_accept_comment',
+    deleteCommentURL: '/_delete_comment',
+    commentImage: '/static/_static/comment.png',
+    closeCommentImage: '/static/_static/comment-close.png',
+    loadingImage: '/static/_static/ajax-loader.gif',
+    commentBrightImage: '/static/_static/comment-bright.png',
+    upArrow: '/static/_static/up.png',
+    downArrow: '/static/_static/down.png',
+    upArrowPressed: '/static/_static/up-pressed.png',
+    downArrowPressed: '/static/_static/down-pressed.png',
+    voting: false,
+    moderator: false
+  };
+
+  if (typeof COMMENT_OPTIONS != "undefined") {
+    opts = jQuery.extend(opts, COMMENT_OPTIONS);
+  }
+
+  var popupTemplate = '\
+    <div class="sphinx-comments" id="sc<%id%>">\
+      <p class="sort-options">\
+        Sort by:\
+        <a href="#" class="sort-option byrating">best rated</a>\
+        <a href="#" class="sort-option byascage">newest</a>\
+        <a href="#" class="sort-option byage">oldest</a>\
+      </p>\
+      <div class="comment-header">Comments</div>\
+      <div class="comment-loading" id="cn<%id%>">\
+        loading comments... <img src="<%loadingImage%>" alt="" /></div>\
+      <ul id="cl<%id%>" class="comment-ul"></ul>\
+      <div id="ca<%id%>">\
+      <p class="add-a-comment">Add a comment\
+        (<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\
+      <div class="comment-markup-box" id="mb<%id%>">\
+        reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \
+        <code>``code``</code>, \
+        code blocks: <code>::</code> and an indented block after blank line</div>\
+      <form method="post" id="cf<%id%>" class="comment-form" action="">\
+        <textarea name="comment" cols="80"></textarea>\
+        <p class="propose-button">\
+          <a href="#" id="pc<%id%>" class="show-propose-change">\
+            Propose a change ▹\
+          </a>\
+          <a href="#" id="hc<%id%>" class="hide-propose-change">\
+            Propose a change ▿\
+          </a>\
+        </p>\
+        <textarea name="proposal" id="pt<%id%>" cols="80"\
+                  spellcheck="false"></textarea>\
+        <input type="submit" value="Add comment" />\
+        <input type="hidden" name="node" value="<%id%>" />\
+        <input type="hidden" name="parent" value="" />\
+      </form>\
+      </div>\
+    </div>';
+
+  var commentTemplate = '\
+    <div id="cd<%id%>" class="sphinx-comment<%css_class%>">\
+      <div class="vote">\
+        <div class="arrow">\
+          <a href="#" id="uv<%id%>" class="vote" title="vote up">\
+            <img src="<%upArrow%>" />\
+          </a>\
+          <a href="#" id="uu<%id%>" class="un vote" title="vote up">\
+            <img src="<%upArrowPressed%>" />\
+          </a>\
+        </div>\
+        <div class="arrow">\
+          <a href="#" id="dv<%id%>" class="vote" title="vote down">\
+            <img src="<%downArrow%>" id="da<%id%>" />\
+          </a>\
+          <a href="#" id="du<%id%>" class="un vote" title="vote down">\
+            <img src="<%downArrowPressed%>" />\
+          </a>\
+        </div>\
+      </div>\
+      <div class="comment-content">\
+        <p class="tagline comment">\
+          <span class="user-id"><%username%></span>\
+          <span class="rating"><%pretty_rating%></span>\
+          <span class="delta"><%time.delta%></span>\
+        </p>\
+        <div class="comment-text comment"><#text#></div>\
+        <p class="comment-opts comment">\
+          <a href="#" class="reply hidden" id="rl<%id%>">reply ▹</a>\
+          <a href="#" class="close-reply" id="cr<%id%>">reply ▿</a>\
+          <a href="#" id="sp<%id%>" class="show-proposal">proposal ▹</a>\
+          <a href="#" id="hp<%id%>" class="hide-proposal">proposal ▿</a>\
+          <a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\
+          <span id="cm<%id%>" class="moderation hidden">\
+            <a href="#" id="ac<%id%>" class="accept-comment">accept</a>\
+          </span>\
+        </p>\
+        <pre class="proposal" id="pr<%id%>">\
+<#proposal_diff#>\
+        </pre>\
+          <ul class="comment-children" id="cl<%id%>"></ul>\
+        </div>\
+        <div class="clearleft"></div>\
+      </div>\
+    </div>';
+
+  var replyTemplate = '\
+    <li>\
+      <div class="reply-div" id="rd<%id%>">\
+        <form id="rf<%id%>">\
+          <textarea name="comment" cols="80"></textarea>\
+          <input type="submit" value="Add reply" />\
+          <input type="button" value="Cancel" />\
+          <input type="hidden" name="parent" value="<%id%>" />\
+          <input type="hidden" name="node" value="" />\
+        </form>\
+      </div>\
+    </li>';
+
+  $(document).ready(function() {
+    init();
+  });
+})(jQuery);
+
+$(document).ready(function() {
+  // add comment anchors for all paragraphs that are commentable
+  $('.sphinx-has-comment').comment();
+
+  // highlight search words in search results
+  $("div.context").each(function() {
+    var params = $.getQueryParameters();
+    var terms = (params.q) ? params.q[0].split(/\s+/) : [];
+    var result = $(this);
+    $.each(terms, function() {
+      result.highlightText(this.toLowerCase(), 'highlighted');
+    });
+  });
+
+  // directly open comment window if requested
+  var anchor = document.location.hash;
+  if (anchor.substring(0, 9) == '#comment-') {
+    $('#ao' + anchor.substring(9)).click();
+    document.location.hash = '#s' + anchor.substring(9);
+  }
+});

Added: www-releases/trunk/7.0.1/tools/lld/docs/design.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/design.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/design.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/design.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,526 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Linker Design — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Getting Started: Building and Running lld" href="getting_started.html" />
+    <link rel="prev" title="ATOM-based lld" href="AtomLLD.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="getting_started.html" title="Getting Started: Building and Running lld"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="AtomLLD.html" title="ATOM-based lld"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" accesskey="U">ATOM-based lld</a> »</li> 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Linker Design</a><ul>
+<li><a class="reference internal" href="#introduction">Introduction</a></li>
+<li><a class="reference internal" href="#atom-model">Atom Model</a></li>
+<li><a class="reference internal" href="#file-model">File Model</a><ul>
+<li><a class="reference internal" href="#object-file">Object File</a></li>
+<li><a class="reference internal" href="#static-library-archive">Static Library (Archive)</a></li>
+<li><a class="reference internal" href="#dynamic-library-shared-object">Dynamic Library (Shared Object)</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#linking-steps">Linking Steps</a><ul>
+<li><a class="reference internal" href="#input-files">Input Files</a></li>
+<li><a class="reference internal" href="#resolving">Resolving</a></li>
+<li><a class="reference internal" href="#passes">Passes</a></li>
+<li><a class="reference internal" href="#generate-output-file">Generate Output File</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#lld-file-representations">lld::File representations</a><ul>
+<li><a class="reference internal" href="#textual-representations-in-yaml">Textual representations in YAML</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#testing">Testing</a><ul>
+<li><a class="reference internal" href="#resolver-testing">Resolver testing</a></li>
+<li><a class="reference internal" href="#passes-testing">Passes testing</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#design-issues">Design Issues</a><ul>
+<li><a class="reference internal" href="#debug-info">Debug Info</a></li>
+<li><a class="reference internal" href="#cpu-and-os-specific-functionality">CPU and OS specific functionality</a></li>
+<li><a class="reference internal" href="#file-attributes">File Attributes</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="AtomLLD.html"
+                        title="previous chapter">ATOM-based lld</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="getting_started.html"
+                        title="next chapter">Getting Started: Building and Running lld</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/design.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="linker-design">
+<span id="design"></span><h1>Linker Design<a class="headerlink" href="#linker-design" title="Permalink to this headline">¶</a></h1>
+<p>Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see <a class="reference internal" href="index.html"><span class="doc">LLD - The LLVM Linker</span></a>.</p>
+<div class="section" id="introduction">
+<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
+<p>lld is a new generation of linker.  It is not “section” based like traditional
+linkers which mostly just interlace sections from multiple object files into the
+output file.  Instead, lld is based on “Atoms”.  Traditional section based
+linking work well for simple linking, but their model makes advanced linking
+features difficult to implement.  Features like dead code stripping, reordering
+functions for locality, and C++ coalescing require the linker to work at a finer
+grain.</p>
+<p>An atom is an indivisible chunk of code or data.  An atom has a set of
+attributes, such as: name, scope, content-type, alignment, etc.  An atom also
+has a list of References.  A Reference contains: a kind, an optional offset, an
+optional addend, and an optional target atom.</p>
+<p>The Atom model allows the linker to use standard graph theory models for linking
+data structures.  Each atom is a node, and each Reference is an edge.  The
+feature of dead code stripping is implemented by following edges to mark all
+live atoms, and then delete the non-live atoms.</p>
+</div>
+<div class="section" id="atom-model">
+<h2>Atom Model<a class="headerlink" href="#atom-model" title="Permalink to this headline">¶</a></h2>
+<p>An atom is an indivisible chunk of code or data.  Typically each user written
+function or global variable is an atom.  In addition, the compiler may emit
+other atoms, such as for literal c-strings or floating point constants, or for
+runtime data structures like dwarf unwind info or pointers to initializers.</p>
+<p>A simple “hello world” object file would be modeled like this:</p>
+<img alt="_images/hello.png" src="_images/hello.png" />
+<p>There are three atoms: main, a proxy for printf, and an anonymous atom
+containing the c-string literal “hello world”.  The Atom “main” has two
+references. One is the call site for the call to printf, and the other is a
+reference for the instruction that loads the address of the c-string literal.</p>
+<p>There are only four different types of atoms:</p>
+<blockquote>
+<div><ul>
+<li><dl class="first docutils">
+<dt>DefinedAtom</dt>
+<dd><p class="first last">95% of all atoms.  This is a chunk of code or data</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>UndefinedAtom</dt>
+<dd><p class="first last">This is a place holder in object files for a reference to some atom
+outside the translation unit.During core linking it is usually replaced
+by (coalesced into) another Atom.</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>SharedLibraryAtom</dt>
+<dd><p class="first">If a required symbol name turns out to be defined in a dynamic shared
+library (and not some object file).  A SharedLibraryAtom is the
+placeholder Atom used to represent that fact.</p>
+<p class="last">It is similar to an UndefinedAtom, but it also tracks information
+about the associated shared library.</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt>AbsoluteAtom</dt>
+<dd><p class="first last">This is for embedded support where some stuff is implemented in ROM at
+some fixed address.  This atom has no content.  It is just an address
+that the Writer needs to fix up any references to point to.</p>
+</dd>
+</dl>
+</li>
+</ul>
+</div></blockquote>
+</div>
+<div class="section" id="file-model">
+<h2>File Model<a class="headerlink" href="#file-model" title="Permalink to this headline">¶</a></h2>
+<p>The linker views the input files as basically containers of Atoms and
+References, and just a few attributes of their own.  The linker works with three
+kinds of files: object files, static libraries, and dynamic shared libraries.
+Each kind of file has reader object which presents the file in the model
+expected by the linker.</p>
+<div class="section" id="object-file">
+<h3>Object File<a class="headerlink" href="#object-file" title="Permalink to this headline">¶</a></h3>
+<p>An object file is just a container of atoms.  When linking an object file, a
+reader is instantiated which parses the object file and instantiates a set of
+atoms representing all content in the .o file.  The linker adds all those atoms
+to a master graph.</p>
+</div>
+<div class="section" id="static-library-archive">
+<h3>Static Library (Archive)<a class="headerlink" href="#static-library-archive" title="Permalink to this headline">¶</a></h3>
+<p>This is the traditional unix static archive which is just a collection of object
+files with a “table of contents”. When linking with a static library, by default
+nothing is added to the master graph of atoms. Instead, if after merging all
+atoms from object files into a master graph, if any “undefined” atoms are left
+remaining in the master graph, the linker reads the table of contents for each
+static library to see if any have the needed definitions. If so, the set of
+atoms from the specified object file in the static library is added to the
+master graph of atoms.</p>
+</div>
+<div class="section" id="dynamic-library-shared-object">
+<h3>Dynamic Library (Shared Object)<a class="headerlink" href="#dynamic-library-shared-object" title="Permalink to this headline">¶</a></h3>
+<p>Dynamic libraries are different than object files and static libraries in that
+they don’t directly add any content.  Their purpose is to check at build time
+that the remaining undefined references can be resolved at runtime, and provide
+a list of dynamic libraries (SO_NEEDED) that will be needed at runtime.  The way
+this is modeled in the linker is that a dynamic library contributes no atoms to
+the initial graph of atoms.  Instead, (like static libraries) if there are
+“undefined” atoms in the master graph of all atoms, then each dynamic library is
+checked to see if exports the required symbol. If so, a “shared library” atom is
+instantiated by the by the reader which the linker uses to replace the
+“undefined” atom.</p>
+</div>
+</div>
+<div class="section" id="linking-steps">
+<h2>Linking Steps<a class="headerlink" href="#linking-steps" title="Permalink to this headline">¶</a></h2>
+<p>Through the use of abstract Atoms, the core of linking is architecture
+independent and file format independent.  All command line parsing is factored
+out into a separate “options” abstraction which enables the linker to be driven
+with different command line sets.</p>
+<p>The overall steps in linking are:</p>
+<blockquote>
+<div><ol class="arabic simple">
+<li>Command line processing</li>
+<li>Parsing input files</li>
+<li>Resolving</li>
+<li>Passes/Optimizations</li>
+<li>Generate output file</li>
+</ol>
+</div></blockquote>
+<p>The Resolving and Passes steps are done purely on the master graph of atoms, so
+they have no notion of file formats such as mach-o or ELF.</p>
+<div class="section" id="input-files">
+<h3>Input Files<a class="headerlink" href="#input-files" title="Permalink to this headline">¶</a></h3>
+<p>Existing developer tools using different file formats for object files.
+A goal of lld is to be file format independent.  This is done
+through a plug-in model for reading object files. The lld::Reader is the base
+class for all object file readers.  A Reader follows the factory method pattern.
+A Reader instantiates an lld::File object (which is a graph of Atoms) from a
+given object file (on disk or in-memory).</p>
+<p>Every Reader subclass defines its own “options” class (for instance the mach-o
+Reader defines the class ReaderOptionsMachO).  This options class is the
+one-and-only way to control how the Reader operates when parsing an input file
+into an Atom graph.  For instance, you may want the Reader to only accept
+certain architectures.  The options class can be instantiated from command
+line options, or it can be subclassed and the ivars programmatically set.</p>
+</div>
+<div class="section" id="resolving">
+<h3>Resolving<a class="headerlink" href="#resolving" title="Permalink to this headline">¶</a></h3>
+<p>The resolving step takes all the atoms’ graphs from each object file and
+combines them into one master object graph.  Unfortunately, it is not as simple
+as appending the atom list from each file into one big list.  There are many
+cases where atoms need to be coalesced.  That is, two or more atoms need to be
+coalesced into one atom.  This is necessary to support: C language “tentative
+definitions”, C++ weak symbols for templates and inlines defined in headers,
+replacing undefined atoms with actual definition atoms, and for merging copies
+of constants like c-strings and floating point constants.</p>
+<p>The linker support coalescing by-name and by-content. By-name is used for
+tentative definitions and weak symbols.  By-content is used for constant data
+that can be merged.</p>
+<p>The resolving process maintains some global linking “state”, including a “symbol
+table” which is a map from llvm::StringRef to lld::Atom*.  With these data
+structures, the linker iterates all atoms in all input files. For each atom, it
+checks if the atom is named and has a global or hidden scope.  If so, the atom
+is added to the symbol table map.  If there already is a matching atom in that
+table, that means the current atom needs to be coalesced with the found atom, or
+it is a multiple definition error.</p>
+<p>When all initial input file atoms have been processed by the resolver, a scan is
+made to see if there are any undefined atoms in the graph.  If there are, the
+linker scans all libraries (both static and dynamic) looking for definitions to
+replace the undefined atoms.  It is an error if any undefined atoms are left
+remaining.</p>
+<p>Dead code stripping (if requested) is done at the end of resolving.  The linker
+does a simple mark-and-sweep. It starts with “root” atoms (like “main” in a main
+executable) and follows each references and marks each Atom that it visits as
+“live”.  When done, all atoms not marked “live” are removed.</p>
+<p>The result of the Resolving phase is the creation of an lld::File object.  The
+goal is that the lld::File model is <strong>the</strong> internal representation
+throughout the linker. The file readers parse (mach-o, ELF, COFF) into an
+lld::File.  The file writers (mach-o, ELF, COFF) taken an lld::File and produce
+their file kind, and every Pass only operates on an lld::File.  This is not only
+a simpler, consistent model, but it enables the state of the linker to be dumped
+at any point in the link for testing purposes.</p>
+</div>
+<div class="section" id="passes">
+<h3>Passes<a class="headerlink" href="#passes" title="Permalink to this headline">¶</a></h3>
+<p>The Passes step is an open ended set of routines that each get a change to
+modify or enhance the current lld::File object. Some example Passes are:</p>
+<blockquote>
+<div><ul class="simple">
+<li>stub (PLT) generation</li>
+<li>GOT instantiation</li>
+<li>order_file optimization</li>
+<li>branch island generation</li>
+<li>branch shim generation</li>
+<li>Objective-C optimizations (Darwin specific)</li>
+<li>TLV instantiation (Darwin specific)</li>
+<li>DTrace probe processing (Darwin specific)</li>
+<li>compact unwind encoding (Darwin specific)</li>
+</ul>
+</div></blockquote>
+<p>Some of these passes are specific to Darwin’s runtime environments.  But many of
+the passes are applicable to any OS (such as generating branch island for out of
+range branch instructions).</p>
+<p>The general structure of a pass is to iterate through the atoms in the current
+lld::File object, inspecting each atom and doing something.  For instance, the
+stub pass, looks for call sites to shared library atoms (e.g. call to printf).
+It then instantiates a “stub” atom (PLT entry) and a “lazy pointer” atom for
+each proxy atom needed, and these new atoms are added to the current lld::File
+object.  Next, all the noted call sites to shared library atoms have their
+References altered to point to the stub atom instead of the shared library atom.</p>
+</div>
+<div class="section" id="generate-output-file">
+<h3>Generate Output File<a class="headerlink" href="#generate-output-file" title="Permalink to this headline">¶</a></h3>
+<p>Once the passes are done, the output file writer is given current lld::File
+object.  The writer’s job is to create the executable content file wrapper and
+place the content of the atoms into it.</p>
+<p>lld uses a plug-in model for writing output files. All concrete writers (e.g.
+ELF, mach-o, etc) are subclasses of the lld::Writer class.</p>
+<p>Unlike the Reader class which has just one method to instantiate an lld::File,
+the Writer class has multiple methods.  The crucial method is to generate the
+output file, but there are also methods which allow the Writer to contribute
+Atoms to the resolver and specify passes to run.</p>
+<p>An example of contributing
+atoms is that if the Writer knows a main executable is being linked and such
+an executable requires a specially named entry point (e.g. “_main”), the Writer
+can add an UndefinedAtom with that special name to the resolver.  This will
+cause the resolver to issue an error if that symbol is not defined.</p>
+<p>Sometimes a Writer supports lazily created symbols, such as names for the start
+of sections. To support this, the Writer can create a File object which vends
+no initial atoms, but does lazily supply atoms by name as needed.</p>
+<p>Every Writer subclass defines its own “options” class (for instance the mach-o
+Writer defines the class WriterOptionsMachO).  This options class is the
+one-and-only way to control how the Writer operates when producing an output
+file from an Atom graph.  For instance, you may want the Writer to optimize
+the output for certain OS versions, or strip local symbols, etc. The options
+class can be instantiated from command line options, or it can be subclassed
+and the ivars programmatically set.</p>
+</div>
+</div>
+<div class="section" id="lld-file-representations">
+<h2>lld::File representations<a class="headerlink" href="#lld-file-representations" title="Permalink to this headline">¶</a></h2>
+<p>Just as LLVM has three representations of its IR model, lld has two
+representations of its File/Atom/Reference model:</p>
+<blockquote>
+<div><ul class="simple">
+<li>In memory, abstract C++ classes (lld::Atom, lld::Reference, and lld::File).</li>
+<li>textual (in YAML)</li>
+</ul>
+</div></blockquote>
+<div class="section" id="textual-representations-in-yaml">
+<h3>Textual representations in YAML<a class="headerlink" href="#textual-representations-in-yaml" title="Permalink to this headline">¶</a></h3>
+<p>In designing a textual format we want something easy for humans to read and easy
+for the linker to parse.  Since an atom has lots of attributes most of which are
+usually just the default, we should define default values for every attribute so
+that those can be omitted from the text representation.  Here is the atoms for a
+simple hello world program expressed in YAML:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">target</span><span class="o">-</span><span class="n">triple</span><span class="p">:</span>   <span class="n">x86_64</span><span class="o">-</span><span class="n">apple</span><span class="o">-</span><span class="n">darwin11</span>
+
+<span class="n">atoms</span><span class="p">:</span>
+    <span class="o">-</span> <span class="n">name</span><span class="p">:</span>    <span class="n">_main</span>
+      <span class="n">scope</span><span class="p">:</span>   <span class="k">global</span>
+      <span class="nb">type</span><span class="p">:</span>    <span class="n">code</span>
+      <span class="n">content</span><span class="p">:</span> <span class="p">[</span> <span class="mi">55</span><span class="p">,</span> <span class="mi">48</span><span class="p">,</span> <span class="mi">89</span><span class="p">,</span> <span class="n">e5</span><span class="p">,</span> <span class="mi">48</span><span class="p">,</span> <span class="mi">8</span><span class="n">d</span><span class="p">,</span> <span class="mi">3</span><span class="n">d</span><span class="p">,</span> <span class="mi">00</span><span class="p">,</span> <span class="mi">00</span><span class="p">,</span> <span class="mi">00</span><span class="p">,</span> <span class="mi">00</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="n">c0</span><span class="p">,</span> <span class="n">e8</span><span class="p">,</span> <span class="mi">00</span><span class="p">,</span> <span class="mi">00</span><span class="p">,</span>
+                 <span class="mi">00</span><span class="p">,</span> <span class="mi">00</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class="n">c0</span><span class="p">,</span> <span class="mi">5</span><span class="n">d</span><span class="p">,</span> <span class="n">c3</span> <span class="p">]</span>
+      <span class="n">fixups</span><span class="p">:</span>
+      <span class="o">-</span> <span class="n">offset</span><span class="p">:</span> <span class="mi">07</span>
+        <span class="n">kind</span><span class="p">:</span>   <span class="n">pcrel32</span>
+        <span class="n">target</span><span class="p">:</span> <span class="mi">2</span>
+      <span class="o">-</span> <span class="n">offset</span><span class="p">:</span> <span class="mi">0</span><span class="n">E</span>
+        <span class="n">kind</span><span class="p">:</span>   <span class="n">call32</span>
+        <span class="n">target</span><span class="p">:</span> <span class="n">_fprintf</span>
+
+    <span class="o">-</span> <span class="nb">type</span><span class="p">:</span>    <span class="n">c</span><span class="o">-</span><span class="n">string</span>
+      <span class="n">content</span><span class="p">:</span> <span class="p">[</span> <span class="mi">73</span><span class="p">,</span> <span class="mi">5</span><span class="n">A</span><span class="p">,</span> <span class="mi">00</span> <span class="p">]</span>
+
+<span class="o">...</span>
+</pre></div>
+</div>
+<p>The biggest use for the textual format will be writing test cases.  Writing test
+cases in C is problematic because the compiler may vary its output over time for
+its own optimization reasons which my inadvertently disable or break the linker
+feature trying to be tested. By writing test cases in the linkers own textual
+format, we can exactly specify every attribute of every atom and thus target
+specific linker logic.</p>
+<p>The textual/YAML format follows the ReaderWriter patterns used in lld. The lld
+library comes with the classes: ReaderYAML and WriterYAML.</p>
+</div>
+</div>
+<div class="section" id="testing">
+<h2>Testing<a class="headerlink" href="#testing" title="Permalink to this headline">¶</a></h2>
+<p>The lld project contains a test suite which is being built up as new code is
+added to lld.  All new lld functionality should have a tests added to the test
+suite.  The test suite is <a class="reference external" href="http://llvm.org/cmds/lit.html/">lit</a> driven.  Each
+test is a text file with comments telling lit how to run the test and check the
+result To facilitate testing, the lld project builds a tool called lld-core.
+This tool reads a YAML file (default from stdin), parses it into one or more
+lld::File objects in memory and then feeds those lld::File objects to the
+resolver phase.</p>
+<div class="section" id="resolver-testing">
+<h3>Resolver testing<a class="headerlink" href="#resolver-testing" title="Permalink to this headline">¶</a></h3>
+<p>Basic testing is the “core linking” or resolving phase.  That is where the
+linker merges object files.  All test cases are written in YAML.  One feature of
+YAML is that it allows multiple “documents” to be encoding in one YAML stream.
+That means one text file can appear to the linker as multiple .o files - the
+normal case for the linker.</p>
+<p>Here is a simple example of a core linking test case. It checks that an
+undefined atom from one file will be replaced by a definition from another
+file:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># RUN: lld-core %s | FileCheck %s</span>
+
+<span class="c1">#</span>
+<span class="c1"># Test that undefined atoms are replaced with defined atoms.</span>
+<span class="c1">#</span>
+
+<span class="o">---</span>
+<span class="n">atoms</span><span class="p">:</span>
+    <span class="o">-</span> <span class="n">name</span><span class="p">:</span>              <span class="n">foo</span>
+      <span class="n">definition</span><span class="p">:</span>        <span class="n">undefined</span>
+<span class="o">---</span>
+<span class="n">atoms</span><span class="p">:</span>
+    <span class="o">-</span> <span class="n">name</span><span class="p">:</span>              <span class="n">foo</span>
+      <span class="n">scope</span><span class="p">:</span>             <span class="k">global</span>
+      <span class="nb">type</span><span class="p">:</span>              <span class="n">code</span>
+<span class="o">...</span>
+
+<span class="c1"># CHECK:       name:       foo</span>
+<span class="c1"># CHECK:       scope:      global</span>
+<span class="c1"># CHECK:       type:       code</span>
+<span class="c1"># CHECK-NOT:   name:       foo</span>
+<span class="c1"># CHECK:       ...</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="passes-testing">
+<h3>Passes testing<a class="headerlink" href="#passes-testing" title="Permalink to this headline">¶</a></h3>
+<p>Since Passes just operate on an lld::File object, the lld-core tool has the
+option to run a particular pass (after resolving).  Thus, you can write a YAML
+test case with carefully crafted input to exercise areas of a Pass and the check
+the resulting lld::File object as represented in YAML.</p>
+</div>
+</div>
+<div class="section" id="design-issues">
+<h2>Design Issues<a class="headerlink" href="#design-issues" title="Permalink to this headline">¶</a></h2>
+<p>There are a number of open issues in the design of lld.  The plan is to wait and
+make these design decisions when we need to.</p>
+<div class="section" id="debug-info">
+<h3>Debug Info<a class="headerlink" href="#debug-info" title="Permalink to this headline">¶</a></h3>
+<p>Currently, the lld model says nothing about debug info.  But the most popular
+debug format is DWARF and there is some impedance mismatch with the lld model
+and DWARF.  In lld there are just Atoms and only Atoms that need to be in a
+special section at runtime have an associated section.  Also, Atoms do not have
+addresses.  The way DWARF is spec’ed different parts of DWARF are supposed to go
+into specially named sections and the DWARF references function code by address.</p>
+</div>
+<div class="section" id="cpu-and-os-specific-functionality">
+<h3>CPU and OS specific functionality<a class="headerlink" href="#cpu-and-os-specific-functionality" title="Permalink to this headline">¶</a></h3>
+<p>Currently, lld has an abstract “Platform” that deals with any CPU or OS specific
+differences in linking.  We just keep adding virtual methods to the base
+Platform class as we find linking areas that might need customization.  At some
+point we’ll need to structure this better.</p>
+</div>
+<div class="section" id="file-attributes">
+<h3>File Attributes<a class="headerlink" href="#file-attributes" title="Permalink to this headline">¶</a></h3>
+<p>Currently, lld::File just has a path and a way to iterate its atoms. We will
+need to add more attributes on a File.  For example, some equivalent to the
+target triple.  There is also a number of cached or computed attributes that
+could make various Passes more efficient.  For instance, on Darwin there are a
+number of Objective-C optimizations that can be done by a Pass.  But it would
+improve the plain C case if the Objective-C optimization Pass did not have to
+scan all atoms looking for any Objective-C data structures.  This could be done
+if the lld::File object had an attribute that said if the file had any
+Objective-C data in it. The Resolving phase would then be required to “merge”
+that attribute as object files are added.</p>
+</div>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="getting_started.html" title="Getting Started: Building and Running lld"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="AtomLLD.html" title="ATOM-based lld"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" >ATOM-based lld</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/development.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/development.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/development.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/development.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,156 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Development — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Developing lld Readers" href="Readers.html" />
+    <link rel="prev" title="Getting Started: Building and Running lld" href="getting_started.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Readers.html" title="Developing lld Readers"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="getting_started.html" title="Getting Started: Building and Running lld"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" accesskey="U">ATOM-based lld</a> »</li> 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Development</a><ul>
+<li><a class="reference internal" href="#creating-a-reader">Creating a Reader</a></li>
+<li><a class="reference internal" href="#modifying-the-driver">Modifying the Driver</a></li>
+<li><a class="reference internal" href="#debugging">Debugging</a></li>
+<li><a class="reference internal" href="#documentation">Documentation</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="getting_started.html"
+                        title="previous chapter">Getting Started: Building and Running lld</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="Readers.html"
+                        title="next chapter">Developing lld Readers</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/development.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="development">
+<span id="id1"></span><h1>Development<a class="headerlink" href="#development" title="Permalink to this headline">¶</a></h1>
+<p>Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see <a class="reference internal" href="index.html"><span class="doc">LLD - The LLVM Linker</span></a>.</p>
+<p>lld is developed as part of the <a class="reference external" href="http://llvm.org">LLVM</a> project.</p>
+<div class="section" id="creating-a-reader">
+<h2>Creating a Reader<a class="headerlink" href="#creating-a-reader" title="Permalink to this headline">¶</a></h2>
+<p>See the <a class="reference internal" href="Readers.html#readers"><span class="std std-ref">Creating a Reader</span></a> guide.</p>
+</div>
+<div class="section" id="modifying-the-driver">
+<h2>Modifying the Driver<a class="headerlink" href="#modifying-the-driver" title="Permalink to this headline">¶</a></h2>
+<p>See <a class="reference internal" href="Driver.html"><span class="doc">Driver</span></a>.</p>
+</div>
+<div class="section" id="debugging">
+<h2>Debugging<a class="headerlink" href="#debugging" title="Permalink to this headline">¶</a></h2>
+<p>You can run lld with <code class="docutils literal notranslate"><span class="pre">-mllvm</span> <span class="pre">-debug</span></code> command line options to enable debugging
+printouts. If you want to enable debug information for some specific pass, you
+can run it with <code class="docutils literal notranslate"><span class="pre">-mllvm</span> <span class="pre">'-debug-only=<pass>'</span></code>, where pass is a name used in
+the <code class="docutils literal notranslate"><span class="pre">DEBUG_WITH_TYPE()</span></code> macro.</p>
+</div>
+<div class="section" id="documentation">
+<h2>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline">¶</a></h2>
+<p>The project documentation is written in reStructuredText and generated using the
+<a class="reference external" href="http://sphinx.pocoo.org/">Sphinx</a> documentation generator. For more
+information on writing documentation for the project, see the
+<a class="reference internal" href="sphinx_intro.html#sphinx-intro"><span class="std std-ref">Sphinx Introduction for LLVM Developers</span></a>.</p>
+<div class="toctree-wrapper compound">
+</div>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="Readers.html" title="Developing lld Readers"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="getting_started.html" title="Getting Started: Building and Running lld"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" >ATOM-based lld</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/genindex.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/genindex.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/genindex.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/genindex.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,115 @@
+
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Index — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="#" />
+    <link rel="search" title="Search" href="search.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="#" title="General Index"
+             accesskey="I">index</a></li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+
+<h1 id="index">Index</h1>
+
+<div class="genindex-jumpbox">
+ <a href="#C"><strong>C</strong></a>
+ | <a href="#R"><strong>R</strong></a>
+ 
+</div>
+<h2 id="C">C</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="Readers.html#_CPPv315createReaderFooR16ReaderOptionsFoo">createReaderFoo (C++ function)</a>
+</li>
+  </ul></td>
+</tr></table>
+
+<h2 id="R">R</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="Readers.html#_CPPv39ReaderFoo">ReaderFoo (C++ class)</a>
+</li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="Readers.html#_CPPv316ReaderOptionsFoo">ReaderOptionsFoo (C++ class)</a>
+</li>
+  </ul></td>
+</tr></table>
+
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="#" title="General Index"
+             >index</a></li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/getting_started.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/getting_started.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/getting_started.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/getting_started.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,262 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Getting Started: Building and Running lld — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Development" href="development.html" />
+    <link rel="prev" title="Linker Design" href="design.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="development.html" title="Development"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="design.html" title="Linker Design"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" accesskey="U">ATOM-based lld</a> »</li> 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Getting Started: Building and Running lld</a><ul>
+<li><a class="reference internal" href="#building-lld">Building lld</a><ul>
+<li><a class="reference internal" href="#on-unix-like-systems">On Unix-like Systems</a></li>
+<li><a class="reference internal" href="#using-visual-studio">Using Visual Studio</a></li>
+<li><a class="reference internal" href="#more-information">More Information</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="design.html"
+                        title="previous chapter">Linker Design</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="development.html"
+                        title="next chapter">Development</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/getting_started.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="getting-started-building-and-running-lld">
+<span id="getting-started"></span><h1>Getting Started: Building and Running lld<a class="headerlink" href="#getting-started-building-and-running-lld" title="Permalink to this headline">¶</a></h1>
+<p>This page gives you the shortest path to checking out and building lld. If you
+run into problems, please file bugs in the <a class="reference external" href="http://llvm.org/bugs/">LLVM Bugzilla</a></p>
+<div class="section" id="building-lld">
+<h2>Building lld<a class="headerlink" href="#building-lld" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="on-unix-like-systems">
+<h3>On Unix-like Systems<a class="headerlink" href="#on-unix-like-systems" title="Permalink to this headline">¶</a></h3>
+<ol class="arabic simple">
+<li>Get the required tools.</li>
+</ol>
+<blockquote>
+<div><ul class="simple">
+<li><a class="reference external" href="http://www.cmake.org/cmake/resources/software.html">CMake 2.8</a>+.</li>
+<li>make (or any build system CMake supports).</li>
+<li><a class="reference external" href="http://clang.llvm.org/">Clang 3.1</a>+ or GCC 4.7+ (C++11 support is required).<ul>
+<li>If using Clang, you will also need <a class="reference external" href="http://libcxx.llvm.org/">libc++</a>.</li>
+</ul>
+</li>
+<li><a class="reference external" href="http://python.org/download/">Python 2.4</a>+ (not 3.x) for running tests.</li>
+</ul>
+</div></blockquote>
+<ol class="arabic" start="2">
+<li><p class="first">Check out LLVM:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd path/to/llvm-project
+$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
+</pre></div>
+</div>
+</li>
+<li><p class="first">Check out lld:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd llvm/tools
+$ svn co http://llvm.org/svn/llvm-project/lld/trunk lld
+</pre></div>
+</div>
+</li>
+</ol>
+<blockquote>
+<div><ul class="simple">
+<li>lld can also be checked out to <code class="docutils literal notranslate"><span class="pre">path/to/llvm-project</span></code> and built as an external
+project.</li>
+</ul>
+</div></blockquote>
+<ol class="arabic" start="4">
+<li><p class="first">Build LLVM and lld:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd path/to/llvm-build/llvm (out of source build required)
+$ cmake -G "Unix Makefiles" path/to/llvm-project/llvm
+$ make
+</pre></div>
+</div>
+</li>
+</ol>
+<blockquote>
+<div><ul>
+<li><p class="first">If you want to build with clang and it is not the default compiler or
+it is installed in an alternate location, you’ll need to tell the cmake tool
+the location of the C and C++ compiler via CMAKE_C_COMPILER and
+CMAKE_CXX_COMPILER. For example:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cmake -DCMAKE_CXX_COMPILER=/path/to/clang++ -DCMAKE_C_COMPILER=/path/to/clang ...
+</pre></div>
+</div>
+</li>
+</ul>
+</div></blockquote>
+<ol class="arabic" start="5">
+<li><p class="first">Test:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ make check-lld
+</pre></div>
+</div>
+</li>
+</ol>
+</div>
+<div class="section" id="using-visual-studio">
+<h3>Using Visual Studio<a class="headerlink" href="#using-visual-studio" title="Permalink to this headline">¶</a></h3>
+<ol class="arabic simple">
+<li>Get the required tools.</li>
+</ol>
+<blockquote>
+<div><ul class="simple">
+<li><a class="reference external" href="http://www.cmake.org/cmake/resources/software.html">CMake 2.8</a>+.</li>
+<li><a class="reference external" href="http://www.microsoft.com/visualstudio/11/en-us">Visual Studio 12 (2013) or later</a> (required for C++11 support)</li>
+<li><a class="reference external" href="http://python.org/download/">Python 2.4</a>+ (not 3.x) for running tests.</li>
+</ul>
+</div></blockquote>
+<ol class="arabic">
+<li><p class="first">Check out LLVM:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd path/to/llvm-project
+$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
+</pre></div>
+</div>
+</li>
+<li><p class="first">Check out lld:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd llvm/tools
+$ svn co http://llvm.org/svn/llvm-project/lld/trunk lld
+</pre></div>
+</div>
+</li>
+</ol>
+<blockquote>
+<div><ul class="simple">
+<li>lld can also be checked out to <code class="docutils literal notranslate"><span class="pre">path/to/llvm-project</span></code> and built as an external
+project.</li>
+</ul>
+</div></blockquote>
+<ol class="arabic">
+<li><p class="first">Generate Visual Studio project files:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd path/to/llvm-build/llvm (out of source build required)
+$ cmake -G "Visual Studio 11" path/to/llvm-project/llvm
+</pre></div>
+</div>
+</li>
+<li><p class="first">Build</p>
+</li>
+</ol>
+<blockquote>
+<div><ul class="simple">
+<li>Open LLVM.sln in Visual Studio.</li>
+<li>Build the <code class="docutils literal notranslate"><span class="pre">ALL_BUILD</span></code> target.</li>
+</ul>
+</div></blockquote>
+<ol class="arabic simple">
+<li>Test</li>
+</ol>
+<blockquote>
+<div><ul class="simple">
+<li>Build the <code class="docutils literal notranslate"><span class="pre">lld-test</span></code> target.</li>
+</ul>
+</div></blockquote>
+</div>
+<div class="section" id="more-information">
+<h3>More Information<a class="headerlink" href="#more-information" title="Permalink to this headline">¶</a></h3>
+<p>For more information on using CMake see the <a class="reference external" href="http://llvm.org/docs/CMake.html">LLVM CMake guide</a>.</p>
+</div>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="development.html" title="Development"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="design.html" title="Linker Design"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" >ATOM-based lld</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/index.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/index.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/index.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/index.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,330 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>LLD - The LLVM Linker — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="The ELF, COFF and Wasm Linkers" href="NewLLD.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="#"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="NewLLD.html" title="The ELF, COFF and Wasm Linkers"
+             accesskey="N">next</a> |</li>
+  <li><a href="#">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="#">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">LLD - The LLVM Linker</a><ul>
+<li><a class="reference internal" href="#features">Features</a></li>
+<li><a class="reference internal" href="#performance">Performance</a></li>
+<li><a class="reference internal" href="#build">Build</a></li>
+<li><a class="reference internal" href="#using-lld">Using LLD</a></li>
+<li><a class="reference internal" href="#history">History</a></li>
+<li><a class="reference internal" href="#internals">Internals</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Next topic</h4>
+  <p class="topless"><a href="NewLLD.html"
+                        title="next chapter">The ELF, COFF and Wasm Linkers</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/index.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div><h3>Bugs</h3>
+
+<p>lld bugs should be reported at the
+  LLVM <a href="https://bugs.llvm.org/">Bugzilla</a>.</p>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="lld-the-llvm-linker">
+<h1>LLD - The LLVM Linker<a class="headerlink" href="#lld-the-llvm-linker" title="Permalink to this headline">¶</a></h1>
+<p>LLD is a linker from the LLVM project. That is a drop-in replacement
+for system linkers and runs much faster than them. It also provides
+features that are useful for toolchain developers.</p>
+<p>The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS) and
+WebAssembly in descending order of completeness. Internally, LLD consists of
+several different linkers. The ELF port is the one that will be described in
+this document. The PE/COFF port is complete, including
+Windows debug info (PDB) support. The WebAssembly port is still a work in
+progress (See <a class="reference internal" href="WebAssembly.html"><span class="doc">WebAssembly lld port</span></a>).  The Mach-O port is built based on a
+different architecture than the others. For the details about Mach-O, please
+read <a class="reference internal" href="AtomLLD.html"><span class="doc">ATOM-based lld</span></a>.</p>
+<div class="section" id="features">
+<h2>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h2>
+<ul>
+<li><p class="first">LLD is a drop-in replacement for the GNU linkers. That accepts the
+same command line arguments and linker scripts as GNU.</p>
+<p>We are currently working closely with the FreeBSD project to make
+LLD default system linker in future versions of the operating
+system, so we are serious about addressing compatibility issues. As
+of February 2017, LLD is able to link the entire FreeBSD/amd64 base
+system including the kernel. With a few work-in-progress patches it
+can link approximately 95% of the ports collection on AMD64. For the
+details, see <a class="reference external" href="https://www.freebsd.org/news/status/report-2016-10-2016-12.html#Using-LLVM%27s-LLD-Linker-as-FreeBSD%27s-System-Linker">FreeBSD quarterly status report</a>.</p>
+</li>
+<li><p class="first">LLD is very fast. When you link a large program on a multicore
+machine, you can expect that LLD runs more than twice as fast as GNU
+gold linker. Your milage may vary, though.</p>
+</li>
+<li><p class="first">It supports various CPUs/ABIs including x86-64, x86, x32, AArch64,
+ARM, MIPS 32/64 big/little-endian, PowerPC, PowerPC 64 and AMDGPU.
+Among these, x86-64 is the most well-supported target and have
+reached production quality. AArch64 and MIPS seem decent too. x86
+should be OK but not well tested yet. ARM support is being developed
+actively.</p>
+</li>
+<li><p class="first">It is always a cross-linker, meaning that it always supports all the
+above targets however it was built. In fact, we don’t provide a
+build-time option to enable/disable each target. This should make it
+easy to use our linker as part of a cross-compile toolchain.</p>
+</li>
+<li><p class="first">You can embed LLD to your program to eliminate dependency to
+external linkers. All you have to do is to construct object files
+and command line arguments just like you would do to invoke an
+external linker and then call the linker’s main function,
+<code class="docutils literal notranslate"><span class="pre">lld::elf::link</span></code>, from your code.</p>
+</li>
+<li><p class="first">It is small. We are using LLVM libObject library to read from object
+files, so it is not completely a fair comparison, but as of February
+2017, LLD/ELF consists only of 21k lines of C++ code while GNU gold
+consists of 198k lines of C++ code.</p>
+</li>
+<li><p class="first">Link-time optimization (LTO) is supported by default. Essentially,
+all you have to do to do LTO is to pass the <code class="docutils literal notranslate"><span class="pre">-flto</span></code> option to clang.
+Then clang creates object files not in the native object file format
+but in LLVM bitcode format. LLD reads bitcode object files, compile
+them using LLVM and emit an output file. Because in this way LLD can
+see the entire program, it can do the whole program optimization.</p>
+</li>
+<li><p class="first">Some very old features for ancient Unix systems (pre-90s or even
+before that) have been removed. Some default settings have been
+tuned for the 21st century. For example, the stack is marked as
+non-executable by default to tighten security.</p>
+</li>
+</ul>
+</div>
+<div class="section" id="performance">
+<h2>Performance<a class="headerlink" href="#performance" title="Permalink to this headline">¶</a></h2>
+<p>This is a link time comparison on a 2-socket 20-core 40-thread Xeon
+E5-2680 2.80 GHz machine with an SSD drive. We ran gold and lld with
+or without multi-threading support. To disable multi-threading, we
+added <code class="docutils literal notranslate"><span class="pre">-no-threads</span></code> to the command lines.</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="12%" />
+<col width="11%" />
+<col width="12%" />
+<col width="20%" />
+<col width="18%" />
+<col width="15%" />
+<col width="13%" />
+</colgroup>
+<tbody valign="top">
+<tr class="row-odd"><td>Program</td>
+<td>Output size</td>
+<td>GNU ld</td>
+<td>GNU gold w/o threads</td>
+<td>GNU gold w/threads</td>
+<td>lld w/o threads</td>
+<td>lld w/threads</td>
+</tr>
+<tr class="row-even"><td>ffmpeg dbg</td>
+<td>92 MiB</td>
+<td>1.72s</td>
+<td>1.16s</td>
+<td>1.01s</td>
+<td>0.60s</td>
+<td>0.35s</td>
+</tr>
+<tr class="row-odd"><td>mysqld dbg</td>
+<td>154 MiB</td>
+<td>8.50s</td>
+<td>2.96s</td>
+<td>2.68s</td>
+<td>1.06s</td>
+<td>0.68s</td>
+</tr>
+<tr class="row-even"><td>clang dbg</td>
+<td>1.67 GiB</td>
+<td>104.03s</td>
+<td>34.18s</td>
+<td>23.49s</td>
+<td>14.82s</td>
+<td>5.28s</td>
+</tr>
+<tr class="row-odd"><td>chromium dbg</td>
+<td>1.14 GiB</td>
+<td>209.05s <a class="footnote-reference" href="#id2" id="id1">[1]</a></td>
+<td>64.70s</td>
+<td>60.82s</td>
+<td>27.60s</td>
+<td>16.70s</td>
+</tr>
+</tbody>
+</table>
+<p>As you can see, lld is significantly faster than GNU linkers.
+Note that this is just a benchmark result of our environment.
+Depending on number of available cores, available amount of memory or
+disk latency/throughput, your results may vary.</p>
+<table class="docutils footnote" frame="void" id="id2" rules="none">
+<colgroup><col class="label" /><col /></colgroup>
+<tbody valign="top">
+<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Since GNU ld doesn’t support the <code class="docutils literal notranslate"><span class="pre">-icf=all</span></code> and
+<code class="docutils literal notranslate"><span class="pre">-gdb-index</span></code> options, we removed them from the command line
+for GNU ld. GNU ld would have been slower than this if it had
+these options.</td></tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="build">
+<h2>Build<a class="headerlink" href="#build" title="Permalink to this headline">¶</a></h2>
+<p>If you have already checked out LLVM using SVN, you can check out LLD
+under <code class="docutils literal notranslate"><span class="pre">tools</span></code> directory just like you probably did for clang. For the
+details, see <a class="reference external" href="http://llvm.org/docs/GettingStarted.html">Getting Started with the LLVM System</a>.</p>
+<p>If you haven’t checkout out LLVM, the easiest way to build LLD is to
+checkout the entire LLVM projects/sub-projects from a git mirror and
+build that tree. You need <cite>cmake</cite> and of course a C++ compiler.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> git clone https://github.com/llvm-project/llvm-project-20170507 llvm-project
+<span class="gp">$</span> mkdir build
+<span class="gp">$</span> <span class="nb">cd</span> build
+<span class="gp">$</span> cmake -DCMAKE_BUILD_TYPE<span class="o">=</span>Release -DLLVM_ENABLE_PROJECTS<span class="o">=</span>lld -DCMAKE_INSTALL_PREFIX<span class="o">=</span>/usr/local ../llvm-project/llvm
+<span class="gp">$</span> make install
+</pre></div>
+</div>
+</div>
+<div class="section" id="using-lld">
+<h2>Using LLD<a class="headerlink" href="#using-lld" title="Permalink to this headline">¶</a></h2>
+<p>LLD is installed as <code class="docutils literal notranslate"><span class="pre">ld.lld</span></code>. On Unix, linkers are invoked by
+compiler drivers, so you are not expected to use that command
+directly. There are a few ways to tell compiler drivers to use ld.lld
+instead of the default linker.</p>
+<p>The easiest way to do that is to overwrite the default linker. After
+installing LLD to somewhere on your disk, you can create a symbolic
+link by doing <code class="docutils literal notranslate"><span class="pre">ln</span> <span class="pre">-s</span> <span class="pre">/path/to/ld.lld</span> <span class="pre">/usr/bin/ld</span></code> so that
+<code class="docutils literal notranslate"><span class="pre">/usr/bin/ld</span></code> is resolved to LLD.</p>
+<p>If you don’t want to change the system setting, you can use clang’s
+<code class="docutils literal notranslate"><span class="pre">-fuse-ld</span></code> option. In this way, you want to set <code class="docutils literal notranslate"><span class="pre">-fuse-ld=lld</span></code> to
+LDFLAGS when building your programs.</p>
+<p>LLD leaves its name and version number to a <code class="docutils literal notranslate"><span class="pre">.comment</span></code> section in an
+output. If you are in doubt whether you are successfully using LLD or
+not, run <code class="docutils literal notranslate"><span class="pre">readelf</span> <span class="pre">--string-dump</span> <span class="pre">.comment</span> <span class="pre"><output-file></span></code> and examine the
+output. If the string “Linker: LLD” is included in the output, you are
+using LLD.</p>
+</div>
+<div class="section" id="history">
+<h2>History<a class="headerlink" href="#history" title="Permalink to this headline">¶</a></h2>
+<p>Here is a brief project history of the ELF and COFF ports.</p>
+<ul class="simple">
+<li>May 2015: We decided to rewrite the COFF linker and did that.
+Noticed that the new linker is much faster than the MSVC linker.</li>
+<li>July 2015: The new ELF port was developed based on the COFF linker
+architecture.</li>
+<li>September 2015: The first patches to support MIPS and AArch64 landed.</li>
+<li>October 2015: Succeeded to self-host the ELF port. We have noticed
+that the linker was faster than the GNU linkers, but we weren’t sure
+at the time if we would be able to keep the gap as we would add more
+features to the linker.</li>
+<li>July 2016: Started working on improving the linker script support.</li>
+<li>December 2016: Succeeded to build the entire FreeBSD base system
+including the kernel. We had widen the performance gap against the
+GNU linkers.</li>
+</ul>
+</div>
+<div class="section" id="internals">
+<h2>Internals<a class="headerlink" href="#internals" title="Permalink to this headline">¶</a></h2>
+<p>For the internals of the linker, please read <a class="reference internal" href="NewLLD.html"><span class="doc">The ELF, COFF and Wasm Linkers</span></a>. It is a bit
+outdated but the fundamental concepts remain valid. We’ll update the
+document soon.</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="NewLLD.html">The ELF, COFF and Wasm Linkers</a></li>
+<li class="toctree-l1"><a class="reference internal" href="NewLLD.html#design">Design</a></li>
+<li class="toctree-l1"><a class="reference internal" href="AtomLLD.html">ATOM-based lld</a></li>
+<li class="toctree-l1"><a class="reference internal" href="WebAssembly.html">WebAssembly lld port</a></li>
+<li class="toctree-l1"><a class="reference internal" href="windows_support.html">Windows support</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ReleaseNotes.html">LLD 8.0.0 Release Notes</a></li>
+</ul>
+</div>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="NewLLD.html" title="The ELF, COFF and Wasm Linkers"
+             >next</a> |</li>
+  <li><a href="#">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/objects.inv
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/objects.inv?rev=349965&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/7.0.1/tools/lld/docs/objects.inv
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/7.0.1/tools/lld/docs/open_projects.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/open_projects.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/open_projects.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/open_projects.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,142 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Open Projects — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Sphinx Introduction for LLVM Developers" href="sphinx_intro.html" />
+    <link rel="prev" title="Driver" href="Driver.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="sphinx_intro.html" title="Sphinx Introduction for LLVM Developers"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Driver.html" title="Driver"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" accesskey="U">ATOM-based lld</a> »</li> 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Open Projects</a><ul>
+<li><a class="reference internal" href="#include-lld-core">include/lld/Core</a></li>
+<li><a class="reference internal" href="#documentation-todos">Documentation TODOs</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="Driver.html"
+                        title="previous chapter">Driver</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="sphinx_intro.html"
+                        title="next chapter">Sphinx Introduction for LLVM Developers</a></p>
+  <div role="note" aria-label="source link">
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="_sources/open_projects.rst.txt"
+            rel="nofollow">Show Source</a></li>
+    </ul>
+   </div>
+<div id="searchbox" style="display: none" role="search">
+  <h3>Quick search</h3>
+    <div class="searchformwrapper">
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <div class="section" id="open-projects">
+<span id="id1"></span><h1>Open Projects<a class="headerlink" href="#open-projects" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="include-lld-core">
+<h2>include/lld/Core<a class="headerlink" href="#include-lld-core" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>The yaml reader/writer interfaces should be changed to return
+an explanatory string if there is an error.  The existing error_code
+abstraction only works for returning low level OS errors.  It does not
+work for describing formatting issues.</li>
+<li>We need to add more attributes to File.  In particular, we need cpu
+and OS information (like target triples).  We should also provide explicit
+support for <a class="reference external" href="http://llvm.org/docs/LangRef.html#module_flags">LLVM IR module flags metadata</a>.</li>
+</ul>
+</div>
+<div class="section" id="documentation-todos">
+<h2>Documentation TODOs<a class="headerlink" href="#documentation-todos" title="Permalink to this headline">¶</a></h2>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="sphinx_intro.html" title="Sphinx Introduction for LLVM Developers"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="Driver.html" title="Driver"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li class="nav-item nav-item-1"><a href="AtomLLD.html" >ATOM-based lld</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/7.0.1/tools/lld/docs/search.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/7.0.1/tools/lld/docs/search.html?rev=349965&view=auto
==============================================================================
--- www-releases/trunk/7.0.1/tools/lld/docs/search.html (added)
+++ www-releases/trunk/7.0.1/tools/lld/docs/search.html Fri Dec 21 13:53:02 2018
@@ -0,0 +1,104 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Search — lld 8 documentation</title>
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="_static/searchtools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="#" />
+  <script type="text/javascript">
+    jQuery(function() { Search.loadIndex("searchindex.js"); });
+  </script>
+  
+  <script type="text/javascript" id="searchindexloader"></script>
+  
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+
+  </head><body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+        <div class="sphinxsidebarwrapper">
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body" role="main">
+            
+  <h1 id="search-documentation">Search</h1>
+  <div id="fallback" class="admonition warning">
+  <script type="text/javascript">$('#fallback').hide();</script>
+  <p>
+    Please activate JavaScript to enable the search
+    functionality.
+  </p>
+  </div>
+  <p>
+    From here you can search these documents. Enter your search
+    words into the box below and click "search". Note that the search
+    function will automatically search for all of the words. Pages
+    containing fewer words won't appear in the result list.
+  </p>
+  <form action="" method="get">
+    <input type="text" name="q" value="" />
+    <input type="submit" value="search" />
+    <span id="search-progress" style="padding-left: 10px"></span>
+  </form>
+  
+  <div id="search-results">
+  
+  </div>
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related" role="navigation" aria-label="related navigation">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer" role="contentinfo">
+        © Copyright 2011-2018, LLVM Project.
+      Last updated on 2018-12-21.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
+    </div>
+  </body>
+</html>
\ No newline at end of file




More information about the llvm-commits mailing list