diff options
115 files changed, 3477 insertions, 1564 deletions
diff --git a/.gitignore b/.gitignore index cd1873533ca..c7b3ade9e87 100644 --- a/.gitignore +++ b/.gitignore @@ -122,4 +122,5 @@ _wiredtiger.pyd **/test/recovery/random-abort **/test/recovery/truncated-log **/test/salvage/t +**/test/syscall/test_wt2336_base **/test/thread/t @@ -1,3 +1,368 @@ +WiredTiger release 2.9.0, 2016-09-06 +------------------------------------ + +New features and API changes; refer to the API documentation for full details: + +* WT-2360 Add nesting and disjunction functionality to cursor joins +* WT-2552 Add a public API to allow custom filesystem implementations +* WT-2738 Remove the ability to change the default checkpoint name. See the upgrading documentation for details. +* WT-2711 Change the statistics log configuration options. Restrict where statistics log files can be created to remove security vulnerability. See upgrading documentation for details. +* WT-2764 Enhance the checkpoint implementation, which led to a change in default eviction settings. See the upgrading documentation for details. +* WT-2880 Add Zstandard compression support +* See the upgrading documentation for information about renamed and removed statistics. + +Significant changes and bug fixes: + +* WT-2026 Fix a bug where in-memory pages were allowed to grow too large +* WT-2343 Ensure we cannot rename/drop when a backup cursor is open +* WT-2520 Ensure WT_SESSION::verify does not alter tables +* WT-2576 Ensure variable-length column-store cannot out-of-order return +* WT-2664 Change eviction so any eviction thread can find candidates +* WT-2702 Resolve an issue where under high thread load, WiredTiger exceeds cache size +* WT-2731 Resolve an issue where raw compression can create pages that are larger than expected +* WT-2737 Allow reconciliation to scrub dirty pages rather than evicting them +* WT-2757 Fix a bug in column stores where it was not possible to retrieve the new record number after an append +* WT-2816 Improve eviction performance + +Issues fixed in MongoDB: + +* SERVER-23504 Resolve a resource leak +* SERVER-23588 Stop using _open_osfhandle on Windows +* SERVER-23659 Improve log error message at startup +* SERVER-23661 Fix an issue where $sample takes disproportionately long time on newly created collection +* SERVER-24306 Fix stall in log_flush switching to new files +* SERVER-24580 Add more eviction stats to track efficiency +* SERVER-24580 Enhance eviction when application threads are contributing +* SERVER-24971 Don't cache buffers after application eviction +* SERVER-25843 Remove a redundant test +* SERVER-25845 Resolve an explicit null dereferenced +* SERVER-25846 Resolve a dereference after null with a check +* SERVER-26753 Don't spin on a read-lock in a tight loop + +Other noteworthy changes since the previous release: + +* WT-2103 Add incremental backup testing to test/format +* WT-2330 Ensure In-memory configurations do not create on-disk collection files +* WT-2450 Resolve an issue where salvage releases pages, then explicitly evicts them. Which can race with the eviction server +* WT-2453 Add multiple eviction queues +* WT-2504 Remove READONLY conditional for base config +* WT-2505 Resolve clang analyzer warnings +* WT-2508 Ensure test programs should remove test directories on the "clean" target +* WT-2512 Change how wtperf throttle values per thread are calculated +* WT-2513 Fix a type conversion warning +* WT-2517 Resolve incorrect uses of setvbuf on Windows +* WT-2518 Optimization of LSM checkpoint handle acquisition +* WT-2522 Resolve incorrect format code in message +* WT-2525 Miscellaneous cleanups of In-memory configurations +* WT-2526 Prevent mixing and matching readonly file-handles and read/write data-handles +* WT-2528 Fix a style error in WiredTiger build +* WT-2529 Be less aggressive asserting in readonly connections +* WT-2531 Resolve a case where in-memory tables are wasting space in truncation +* WT-2532 Change the WT_STREAM_APPEND and WT_STREAM_LINE_BUFFER flags as they overlap +* WT-2533 Don't let in-memory tables return a zero size +* WT-2534 Use atomic add when allocating transaction IDs +* WT-2535 Extend test/format to test for transactions reading their writes +* WT-2537 Check for an old and new uninitialized LSN for recovery +* WT-2539 Make streams a separate handle type from files +* WT-2540 Separate stream and file handle methods +* WT-2542 Resolve fixed-length column store reconciliation overwriting original values +* WT-2544 Fix eviction stats when clear is used +* WT-2546 Change evict server to be smarter when it decides whether or not to evict pages +* WT-2547 Add eviction testing configurations for 1 thread +* WT-2548 Cap the amount of data handed to raw compression +* WT-2550 Add support for raw mode cursors in java +* WT-2553 Add some In-memory documentation and stress testing +* WT-2556 Fix a typo in the Java example code +* WT-2557 Ensure that we truncate logs before closing backup cursor +* WT-2558 Reorganize WT_PAGE structure +* WT-2559 Resolve a potential segfault in Windows logging code +* WT-2560 Add a rwlock to protect transaction state, don't spin on this lock +* WT-2562 Add sleep loop to adapt for slow machines like PPC +* WT-2565 Further limit the amount of data passed to raw compression +* WT-2566 Add explicit memory barriers to Lock/unlock operations +* WT-2567 Add a check to see if logging is enabled for truncate rather than assuming it is +* WT-2568 Add a backward compatible constructor for PackInputStream +* WT-2569 Ensure __win_handle_read is followed by a call to GetLastError() +* WT-2570 Minor lint and cleanups to code +* WT-2571 Join code clean up +* WT-2572 Ensure test/format doesn't select an incompatible set of options for in-memory options configured +* WT-2573 Resolve a potential case where a double free can occur +* WT-2574 Ensure test/format frees all allocated configure memory +* WT-2576 Ensure variable-length column-store cannot out-of-order return +* WT-2577 Resolve a potential double-free following an in-memory split +* WT-2579 Change so diagnostic only code can use file streams directly +* WT-2580 Fix potential SWIG naming conflict in Java +* WT-2581 Resolve a case where we fail to track saved updates during a page split +* WT-2582 Fix a case where eviction can return WT_RESTART when running in-memory +* WT-2584 Change to not use periods at the end of error messages +* WT-2586 Fix examples/ex_config +* WT-2589 Ensure we clear the cursor statistics for LAS when 'clear' is set +* WT-2592 Fix joins for the non-recno, non-raw case +* WT-2593 Free the dirlist at the end of the function +* WT-2595 Fix compiler warning in packing test +* WT-2598 Change so that in-memory has faster lookup on file names +* WT-2599 Split out the checksum code from the support directory +* WT-2600 Clean up test program includes +* WT-2602 In LSM, use the chunk size to set maximum page size in memory +* WT-2605 Add C tests used in testing joins +* WT-2609 Resolve incorrect "skips API_END call" error +* WT-2610 Reduce hazard pointer array size +* WT-2611 Modify wtperf to handle escaped quotes +* WT-2612 Ensure the dist/s_prototypes script does not create a debugging file +* WT-2613 Add WT_UNUSED to a variable to fix Windows compilation +* WT-2615 Enabling checkpoints in test/format leads to reduced concurrency +* WT-2616 Fix a deadlock with in-memory size lookups +* WT-2617 Don't use u_int in the example code. It's not Windows native +* WT-2621 Fix missing parentheses on call to __wt_errno +* WT-2622 Clear old position for all random lookups +* WT-2624 Fix example program build with MSVC 2013 +* WT-2626 Fix MSVC 2015 snprintf redefinition +* WT-2627 Resolve Coverity complaints +* WT-2628 Ensure reconciliation doesn't return without unlocking the page lock +* WT-2629 Ensure stacks are not executable in assembly source +* WT-2630 Rename pluggable filesystem methods to avoid reserved names +* WT-2631 Ensure nullptr is not passed for parameters marked with attribute non-null +* WT-2632 Tolerate EBUSY when a checkpoint cursor is open +* WT-2637 Update file-extension documentation to cover not-supported cases +* WT-2638 Add extension to the Windows file system implementation +* WT-2644 Fix 'wt load -r' (rename) with LSM +* WT-2645 Move the complexity of dump from the dump utility to the metadata cursor +* WT-2646 Add checkpoint_wait configuration option to drop +* WT-2648 Change cache-line alignment for new ports +* WT-2651 Fix a Coverity found resource leak +* WT-2652 Remove unnecessary wt_ftruncate call +* WT-2653 Add display of device configuration to custom file-system example +* WT-2656 Fix GCC 4.7 compiler warnings +* WT-2658 Ensure we only include PPC-specific files in PPC builds +* WT-2659 Assorted lint and cleanup to csuite tests +* WT-2660 Fix a hang between eviction and connection close +* WT-2662 For spell check, strip out double quote literals, they confuse aspell +* WT-2664 Add ability for eviction workers to populate eviction queues +* WT-2665 Limit allocator fragmentation from the WiredTiger cache +* WT-2667 Add fops to Evergreen testing for Windows and Linux +* WT-2668 Create join statistics that are useful and are easy to understand +* WT-2671 Dump more information about the file layout in verify debug mode +* WT-2672 Handle system calls that don't set errno +* WT-2673 Stop automatically increasing memory page max +* WT-2674 Simplify metadata file check +* WT-2676 Don't use key size in column store in-memory splits +* WT-2677 Fix JSON output so only printable ASCII is produced +* WT-2678 Fix cases where metadata implies that an empty value is true +* WT-2682 Add option to configure WiredTiger with strict compiler flags +* WT-2683 Allow in memory storage engine to report zero disk usage +* WT-2685 Fix clear walk hazard pointer failure +* WT-2686 Report an error any time we fail to scan the log +* WT-2687 Provide ability for test suite to verify the exit status of the wt utility +* WT-2688 Improve build error messages when SWIG is unavailable +* WT-2689 Fix heap-use-after-free on cursor error path +* WT-2691 Use wrappers for ctype functions to avoid sign extension errors +* WT-2692 Fix race in file system example +* WT-2693 Ensure open_cursor error paths have consistent error handling +* WT-2695 Integrate s390x accelerated crc32c support +* WT-2696 Wait if we find an unbuffered flag without the size set yet +* WT-2698 Change flag into atomically manipulated field to avoid deadlock +* WT-2702 Block operations when the cache is 100% full +* WT-2704 Fix bug in diagnostic code tracking duration of stuck cache +* WT-2706 Fix lost log writes when switching files +* WT-2707 Add stricter checks in dist/s_label, and add some WT_ERR calls +* WT-2708 Fix a split child-update race with reconciliation/eviction +* WT-2709 Resolve a connection reconfigure segfault in __wt_conn_cache_pool_destroy +* WT-2710 WT_FILE_HANDLE_INMEM no longer needs an off field +* WT-2713 Document WT_PANIC so pluggable filesystems can panic +* WT-2715 Resolve random abort test failure with partial write +* WT-2719 Allow make check without verbose configured +* WT-2719 Fix memory leak in reconfig test +* WT-2720 Change the return codes in run.py to error on failures +* WT-2722 Escape regular expression meta-character so egrep works on all systems +* WT-2724 Pass in session address, not pointer to it +* WT-2728 Only verify the log file header during recovery +* WT-2729 Focus eviction on the largest trees in cache +* WT-2730 Btree can incorrectly match key slots on new pages +* WT-2731 Finer adjustment for page size with raw compression +* WT-2732 Coverity analysis defect 99665, Remove redundant test +* WT-2734 Improve documentation of eviction configuration settings +* WT-2739 pluggable file systems documentation cleanups +* WT-2743 Fixup new I/O thread count statistics +* WT-2744 Detect and ignore partial line +* WT-2746 Add a new statistic tracking I/O for checkpoints +* WT-2751 column-store statistics incorrectly calculates the number of entries +* WT-2752 Fix errors in wtperf config +* WT-2755 Fix for cases where tools treats size_t as 4B type +* WT-2756 Upgrade the autoconf archive package to check for swig 3.0 +* WT-2757 Column tables behave differently when column names are provided +* WT-2759 Releasing the hot-backup lock doesn't require the schema lock +* WT-2760 Fix a bug in backup related to directory sync. Change the filesystem API to make durable the default +* WT-2762 Handle 'Y' as an options from wtperf monitor file +* WT-2763 Change test ID's in test_intpack to fix OS X test errors +* WT-2764 Fix a bug calculating the dirty percentage of cache +* WT-2765 Ensure indices are shown in the dump output +* WT-2766 Don't sweep LAS cache when aren't making progress in eviction +* WT-2767 In test/suite/run.py, add -s N option to run an individual scenario +* WT-2769 Update documentation to reflect correct limits of memory_page_max +* WT-2770 Add statistics tracking schema operations +* WT-2772 Adjust log.wtperf config. Remove unneeded config entries +* WT-2773 Ensure that search_near in an index finds exact matches +* WT-2774 Minor cleanups/improvements +* WT-2778 Enhance output formatting when running Python test suite +* WT-2779 Fix large pages getting generated with raw compression +* WT-2781 Don't take checkpoint lock if checkpoint_wait=0 for bulk cursor open +* WT-2782 Minor text changes for file system functions +* WT-2783 Clean up wtperf configuration object management +* WT-2785 Scrub dirty pages rather than evicting them single-page reconciliation +* WT-2787 Include src/include/wiredtiger_ext.h is problematic +* WT-2788 Do not touch memory already freed during a close API call +* WT-2791 Have evergreen upload artifacts for each build. Rename current artifacts to "Binaries" +* WT-2793 Enhance statistics related to overflow values +* WT-2795 Update documentation about read-only mode +* WT-2796 Fix a memory leak when using the lookaside table +* WT-2798 Fix data consistency bug with table creates during a checkpoint +* WT-2800 Fix incorrect error message +* WT-2801 Prevent eviction of metadata updates by a running checkpoint +* WT-2802 Copy values during commit before releasing snapshot +* WT-2803 Add VERBOSE=1 to all make check jobs +* WT-2804 Don't read values in a tree without a snapshot +* WT-2805 Avoid infinite recursion on error stream failure +* WT-2806 Fix an off-by-one allocation in wtperf +* WT-2807 Change the memory allocator for wtperf performance tests +* WT-2811 The checkpoint session should not ignore it's own transaction ID +* WT-2812 Verify cache_size before dividing to avoid division by 0 +* WT-2813 Configure eviction dirty settings explicitly for LSM in test/format +* WT-2814 Add new single op truncate mode to wtperf +* WT-2816 General improvements to WiredTiger eviction performance +* WT-2817 Add wtperf conf to stress test checkpoints with updates +* WT-2818 Change the page visibility check when queuing pages for eviction +* WT-2820 Add gcc warn_unused_result attribute +* WT-2822 Simplify error handling by using a panic mutex in functions that cannot fail +* WT-2823 Support file handles without a truncate method +* WT-2824 Fix double concatenation the config strings +* WT-2826 Fix a clang38 false positive on uninitialized variable +* WT-2827 Set a reasonable minimum for log_size +* WT-2828 Change wtperf long tests to better match MongoDB workloads +* WT-2829 Fix missing define for BerkeleyDB +* WT-2831 Skip checkpointing if there have been no modifications +* WT-2832 Python test uses hard-coded temporary directory +* WT-2834 Fix sign-change warning with auto conversion from uint to int +* WT-2834 Shared bloom filters allow only a partial shortcut +* WT-2835 Stop WT_CONNECTION.leak-memory skipping memory map and cache cleanup +* WT-2838 Don't free session handles on close if leak memory is configured +* WT-2839 Remove cases ignoring return value of function +* WT-2840 Fix garbage values found with clang analysis +* WT-2841 Initialize verbose checkpoint timer at start of checkpoint +* WT-2842 Add explicit include in wtperf to resolve build warning +* WT-2843 If there is no truncate available, manually zero the log file +* WT-2846 Ensure that all resources are released when destroying a thread group +* WT-2846 Fixes for new thread group code +* WT-2847 Merge fair locks into read/write locks +* WT-2850 Fix clang 4.1 attribute warnings +* WT-2853 Don't force eviction if multiple cursors are pinning the page +* WT-2857 POSIX ftruncate calls should be use HAVE_FTRUNCATE define +* WT-2858 Rename wtperf's CONFIG structure +* WT-2859 Restructure statistics gathering macros +* WT-2863 Support UTF-8 paths on Windows +* WT-2864 Update reconfigure test to detect hangs +* WT-2865 Fix a bug where the eviction server could panic after a WT_NOTFOUND +* WT-2866 Don't set eviction stuck unless the cache is full +* WT-2867 Review and fix barrier usage in __lsm_tree_close +* WT-2868 Add sample_interval to checkpoint-stress.wtperf +* WT-2869 Fix a performance regression on secondaries +* WT-2870 Rename wtperf jobs for consistency +* WT-2871 Make verbose formats and argument types match +* WT-2872 Ensure tests with tiny caches don't get stuck due to the dirty trigger +* WT-2873 Refactor CRC32 code +* WT-2874 Change test_compact01 to avoid eviction +* WT-2875 Add environment variable to disable long csuite tests +* WT-2876 Add an oplog-like ability to wtperf utility +* WT-2878 Fix an issue where verbose changes affected performance +* WT-2881 Add -Wpedantic to clang compiler warning flags +* WT-2883 Remove potentially recursive call for verbose handleops +* WT-2885 Lint __wt_checkpoint_signal function +* WT-2886 Ignore dirty eviction settings when in_memory is true +* WT-2888 Switch functions to return void where possible +* WT-2892 Fix case where hot backup can race with block truncate +* WT-2894 Add wtperf stress workload that tries to induce negative scaling +* WT-2895 Reduce the runtime of make check testing with disable long +* WT-2896 Fix a resource leak +* WT-2897 Fix an issue where checkpoints can become corrupted on failure +* WT-2900 Add ARM8 build support to WiredTiger and fix ARM CRC assembler tags +* WT-2901 Make checkpoint scrubbing configurable +* WT-2902 Track per-tree the efficiency of eviction walks +* WT-2903 Change the eviction_scrub_target default to 15% +* WT-2904 Fix a bug where the reported checkpoint size could be many times data size +* WT-2904 Revert overly strong assertion +* WT-2905 Remove dead code +* WT-2907 Fixed java concurrent close test to have both insert threads and scan threads +* WT-2908 Add a dry-run option to python suite +* WT-2910 When running in-memory, only evict dirty pages +* WT-2911 Add support for gcc6 +* WT-2912 Make --enable-strict run on the zseries test box +* WT-2913 Re-sort eviction queues if we find no new candidates +* WT-2914 In test/csuite program, added explicit call to wiredtiger_open to satisfy some linkers +* WT-2916 Fix and simplify s_whitespace +* WT-2917 Split wtperf's configuration into per-database and per-run parts +* WT-2918 The dist scripts create C files s_whitespace complains about +* WT-2919 Don't mask error returns from style checking scripts +* WT-2920 New eviction statistics +* WT-2921 Reset the count when the last hazard pointer is cleared +* WT-2923 Fix heap-use-after-free on address in compaction +* WT-2924 Ensure we are doing eviction when threads are waiting for it +* WT-2925 Change where the WT_THREAD_PANIC_FAIL flag lives +* WT-2926 WT_CONNECTION.reconfigure can attempt unlock of not-locked lock +* WT-2928 Don't give up when the urgent queue is half empty +* WT-2928 Eviction failing to switch queues can lead to starvation +* WT-2931 Enforce limits on dirty data for in-memory +* WT-2932 Add a configuration option allowing tables to ignore cache limits +* WT-2933 Fix a race between named snapshots and checkpoints +* WT-2937 Only do an eviction walk after a page has been taken from the current queue +* WT-2938 Change assembly file extensions from .S to .sx +* WT-2941 Improve test/format to use faster key-generation functions +* WT-2942 Verbose messages should not have newlines +* WT-2945 Occasional hang running reconfigure fuzz test +* WT-2946 Fix dist/s_docs being incompatible with OS X Xcode installation +* WT-2947 Replace test suite populate functions with *DataSet classes +* WT-2948 Simplify error handling by making __wt_epoch return never fail +* WT-2949 Add option to skip closing the connection after test runs +* WT-2950 Free all reconciliation memory between calls to eviction +* WT-2953 Only test for checkpoint/LAS collision if LAS was used +* WT-2954 Evict pages that exceed memory_page_max even if the transaction ID is stuck +* WT-2955 Add statistics tracking the amount of time threads spend waiting for high level locks +* WT-2959 Ensure WT_SESSION_IMPL is never used before it's initialized +* WT-2961 Add a version drop-down to the web version of the docs +* WT-2962 Allow configuration of builtin extensions +* WT-2963 Fix a race bounding eviction in small caches +* WT-2964 Alter evict walk to not fill all its slots with internal pages when running in aggressive mode +* WT-2965 Remove sleep and retry loop from __evict_exclusive +* WT-2968 Don't open file handles on backup +* WT-2971 Add details on raw-compression into WT documentation +* WT-2975 Fix a leak of statistics data when reopening handles +* WT-2976 Add a statistic tracking how long app threads spend reading and writing +* WT-2977 Remove stash and check code from LSM test +* WT-2984 Keep sufficient history in the metadata for queries +* WT-2985 Fix a race during checkpoint that can cause a core dump +* WT-2987 Fix a bug where opening a cursor on an incomplete table drops core +* WT-2988 Fix __wt_epoch potentially returning garbage values +* WT-2991 Fix Coverity REVERSE_INULL +* WT-2998 Add error messages to error returns that might be confusing +* WT-2999 Added contributed test case that demonstrated the leak +* WT-3000 Wait for previous writes on first write to new log file +* WT-3001 Fix WT_EXTENSION_API references that are named inconsistently +* WT-3002 Allow applications to exempt threads from eviction +* WT-3003 Don't generate log record and op types +* WT-3003 Fix doxygen comment blocks +* WT-3004 Lint, declare functions that don't return a value as void +* WT-3005 Add top-level .gitignore file +* WT-3008 Move wtperf stress jobs to new stress runner folder +* WT-3009 Remove the eviction_dirty_target from test/format runs with less than 20MB cache +* WT-3011 Fix __wt_curjoin_open() saving the wrong URI in the cursor +* WT-3012 Check a btree is LSM primary before switching +* WT-3012 Don't track the LSM Primary as part of dirty bytes in cache +* WT-3015 Change when we will evict internal pages +* WT-3016 Change how file size is determined during compact tests to allow +* WT-3017 Don't set NULL hazard pointers +* WT-3020 Always make LSM chunks evictable when they are switched out +* WT-3022 Change lsm_tree flags to fields to prevent race conditions +* WT-3023 Don't treat splits as eviction making progress +* WT-3024 Fix a hang on close caused by leaving a transaction ID pinned + WiredTiger release 2.8.0, 2015-03-24 ------------------------------------ @@ -1,6 +1,6 @@ -WiredTiger 2.8.1: (March 24, 2016) +WiredTiger 2.9.1: (December 7, 2016) -This is version 2.8.1 of WiredTiger. +This is version 2.9.1 of WiredTiger. WiredTiger release packages and documentation can be found at: @@ -8,7 +8,7 @@ WiredTiger release packages and documentation can be found at: The documentation for this specific release can be found at: - http://source.wiredtiger.com/2.8.1/index.html + http://source.wiredtiger.com/2.9.1/index.html The WiredTiger source code can be found at: diff --git a/RELEASE_INFO b/RELEASE_INFO index d29c29b554c..502b17188ce 100644 --- a/RELEASE_INFO +++ b/RELEASE_INFO @@ -1,5 +1,5 @@ WIREDTIGER_VERSION_MAJOR=2 -WIREDTIGER_VERSION_MINOR=8 +WIREDTIGER_VERSION_MINOR=9 WIREDTIGER_VERSION_PATCH=1 WIREDTIGER_VERSION="$WIREDTIGER_VERSION_MAJOR.$WIREDTIGER_VERSION_MINOR.$WIREDTIGER_VERSION_PATCH" diff --git a/build_posix/Make.subdirs b/build_posix/Make.subdirs index 55941837249..01f23dcbbc1 100644 --- a/build_posix/Make.subdirs +++ b/build_posix/Make.subdirs @@ -40,6 +40,7 @@ test/packing test/readonly test/recovery test/salvage +test/syscall test/thread # Benchmark programs. diff --git a/build_posix/aclocal/version-set.m4 b/build_posix/aclocal/version-set.m4 index 997f571782c..ecb45b5e73e 100644 --- a/build_posix/aclocal/version-set.m4 +++ b/build_posix/aclocal/version-set.m4 @@ -1,14 +1,14 @@ dnl build by dist/s_version VERSION_MAJOR=2 -VERSION_MINOR=8 +VERSION_MINOR=9 VERSION_PATCH=1 -VERSION_STRING='"WiredTiger 2.8.1: (March 24, 2016)"' +VERSION_STRING='"WiredTiger 2.9.1: (December 7, 2016)"' AC_SUBST(VERSION_MAJOR) AC_SUBST(VERSION_MINOR) AC_SUBST(VERSION_PATCH) AC_SUBST(VERSION_STRING) -VERSION_NOPATCH=2.8 +VERSION_NOPATCH=2.9 AC_SUBST(VERSION_NOPATCH) diff --git a/build_posix/aclocal/version.m4 b/build_posix/aclocal/version.m4 index 0e199cb9546..a75ba93e405 100644 --- a/build_posix/aclocal/version.m4 +++ b/build_posix/aclocal/version.m4 @@ -1,2 +1,2 @@ dnl WiredTiger product version for AC_INIT. Maintained by dist/s_version -2.8.1 +2.9.1 diff --git a/dist/api_config.py b/dist/api_config.py index 1069a7037ce..d83a632321e 100644 --- a/dist/api_config.py +++ b/dist/api_config.py @@ -198,7 +198,8 @@ def get_default(c): return 'false' elif c.default == 'true': return 'true' - elif t == 'string' and c.default == 'none': + elif t == 'string' and c.default == 'none' and \ + not c.flags.get('choices', []): return '' elif t == 'category': return '(%s)' % (','.join('%s=%s' % (subc.name, get_default(subc)) diff --git a/dist/api_data.py b/dist/api_data.py index 5a81e8dd080..2b7ef4a94e1 100644 --- a/dist/api_data.py +++ b/dist/api_data.py @@ -120,6 +120,14 @@ lsm_config = [ # Per-file configuration file_config = format_meta + [ + Config('access_pattern_hint', 'none', r''' + It is recommended that workloads that consist primarily of + updates and/or point queries specify \c random. Workloads that + do many cursor scans through large ranges of data specify + \c sequential and other workloads specify \c none. The + option leads to an advisory call to an appropriate operating + system API where available''', + choices=['none', 'random', 'sequential']), Config('block_allocation', 'best', r''' configure block allocation. Permitted values are \c "first" or \c "best"; the \c "first" configuration uses a first-available @@ -847,9 +855,10 @@ methods = { 'WT_SESSION.drop' : Method([ Config('checkpoint_wait', 'true', r''' - wait for the checkpoint lock, if \c checkpoint_wait=false, perform - the drop operation without taking a lock, returning EBUSY if the - operation conflicts with a running checkpoint''', + wait for concurrent checkpoints to complete before attempting the drop + operation. If \c checkpoint_wait=false, attempt the drop operation + without waiting, returning EBUSY if the operation conflicts with a + running checkpoint''', type='boolean', undoc=True), Config('force', 'false', r''' return success if the object does not exist''', @@ -1119,6 +1128,10 @@ methods = { Config('to', '', r''' drop all snapshots up to and including the specified name'''), ]), + Config('include_updates', 'false', r''' + make updates from the current transaction visible to users of the + named snapshot. Transactions started with such a named snapshot are + restricted to being read-only''', type='boolean'), Config('name', '', r'''specify a name for the snapshot'''), ]), diff --git a/dist/flags.py b/dist/flags.py index 676f224cbb6..320bd8f6fb9 100644 --- a/dist/flags.py +++ b/dist/flags.py @@ -114,8 +114,6 @@ flags = { 'session' : [ 'SESSION_CAN_WAIT', 'SESSION_INTERNAL', - 'SESSION_IN_SPLIT', - 'SESSION_LOCK_NO_WAIT', 'SESSION_LOCKED_CHECKPOINT', 'SESSION_LOCKED_HANDLE_LIST', 'SESSION_LOCKED_METADATA', diff --git a/dist/package/wiredtiger.spec b/dist/package/wiredtiger.spec index 365c330d86a..ca88f76b06b 100644 --- a/dist/package/wiredtiger.spec +++ b/dist/package/wiredtiger.spec @@ -1,5 +1,5 @@ Name: wiredtiger -Version: 2.8.1 +Version: 2.9.1 Release: 1%{?dist} Summary: WiredTiger data storage engine diff --git a/dist/s_define.list b/dist/s_define.list index 7b11d665de5..372a251bf01 100644 --- a/dist/s_define.list +++ b/dist/s_define.list @@ -54,7 +54,7 @@ WT_STAT_INCRV_BASE WT_STAT_WRITE WT_TIMEDIFF_US WT_TRET_ERROR_OK -WT_WITH_LOCK +WT_WITH_LOCK_NOWAIT WT_WITH_LOCK_WAIT __F __WIREDTIGER_EXT_H_ diff --git a/dist/s_prototypes b/dist/s_prototypes index 4c07b9aa160..d6228866f08 100755 --- a/dist/s_prototypes +++ b/dist/s_prototypes @@ -39,9 +39,12 @@ proto() -e H \ -e x \ -e '}' \ - -e '# Add the gcc warn_unused_result attribute to any external' \ + -e '# Add the warn_unused_result attribute to any external' \ -e '# functions that return an int.' \ -e '/^extern int /s/$/ WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result))/' \ + -e '# Add the hidden attribute to any external functions without' \ + -e '# an explicit visibility.' \ + -e '/visibility/!s/$/ WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden")))/' \ -e 's/$/;/' \ -e p < $1 } diff --git a/dist/s_python b/dist/s_python index b8aa5848637..bfe3ba57783 100755 --- a/dist/s_python +++ b/dist/s_python @@ -17,10 +17,10 @@ test -s $t && { echo '[tab] characters appear in Python scripts:' cat $t } -# Check Python coding standards: check for trailing semi-colons. +# Check Python coding standards: check for uncommented trailing semi-colons. # Don't check too widely, there are third-party tools that fail this test as # well as scripts in this directory that output C code, and so fail the test. -egrep ';$' `find lang test -name '*.py'`> $t +egrep '^[^#]*;$' `find lang test -name '*.py'`> $t test -s $t && { echo 'trailing semi-colons in selected Python code:' cat $t diff --git a/dist/s_string.ok b/dist/s_string.ok index d19c05e802b..f2429237f21 100644 --- a/dist/s_string.ok +++ b/dist/s_string.ok @@ -38,6 +38,7 @@ BTREE BUF BZ Barack +BerkeleyDB Bitfield Bitwise Brueckner @@ -88,6 +89,7 @@ DNE DOI DONTNEED DUPLICATEV +DataSet DbCursor DbEnv Decrement @@ -126,6 +128,7 @@ FNV FORALL FOREACH FS +FTRUNCATE FULLFSYNC Facebook FindClose @@ -156,6 +159,7 @@ HHHHLL HHHLL Hendrik HyperLevelDB +ID's IEC IEEE IKEY @@ -167,6 +171,7 @@ INITIALIZER INMEM INSN INTL +INULL ISA ITEMs ITER @@ -247,6 +252,7 @@ NONINFRINGEMENT NOTFOUND NOTREACHED NOVALUE +NOWAIT NUL NUM NetBSD @@ -269,6 +275,7 @@ PRIu PRNG PTHREAD PTR +PackInputStream Pandis Phong PlatformSDK @@ -300,6 +307,7 @@ Readonly Rebalance RedHat Redistributions +Refactor Resize RocksDB SIMD @@ -397,14 +405,18 @@ WiredTigerPreplog WiredTigerTmplog WiredTigerTxn WithSeeds +Wpedantic WriteFile Wuninitialized Wunused XP +Xcode +Xcode/ Yann ZSTD Zlib Zlib's +Zstandard Zstd Zstd's abcdef @@ -428,6 +440,7 @@ argc args argv asm +aspell assertfmt async asyncopp @@ -547,6 +560,7 @@ create's createCStream crypto cryptobad +csuite csv ctime ctype @@ -598,6 +612,7 @@ dequeue dequeued der dereference +dereferenced desc designator dest @@ -610,6 +625,7 @@ difftime dir dirlist disjunction +disjunctions dlclose dlh dll @@ -633,6 +649,7 @@ dumpcmp dumpfile dup eg +egrep emp encodings encryptor @@ -723,6 +740,7 @@ gettime gettimeofday getv github +gitignore gobare goesc gostring @@ -834,6 +852,7 @@ libdatasource libs libtool libwiredtiger +linkers llll llu loadtext @@ -935,6 +954,7 @@ nowait nset nsnap nul +nullptr nuls numSymbols numbare @@ -948,6 +968,7 @@ oo opcode opendir openfile +oplog optimizations optype ori @@ -969,6 +990,7 @@ pclose pcpu perf pfx +pluggable popen poptable popthreads @@ -1117,6 +1139,7 @@ subtree sunique superset sw +sx sy sys sz @@ -1225,6 +1248,7 @@ walk's warmup wb wcursor +whitespace wiredTiger wiredtiger workFactor @@ -1238,6 +1262,7 @@ ws wtbench wti wtperf +wtperf's wts wtstats xF @@ -1250,6 +1275,7 @@ zf zfree zlib zlib's +zseries zstd zstd's zu diff --git a/dist/s_void b/dist/s_void index 16684e962e6..06111245fe2 100755 --- a/dist/s_void +++ b/dist/s_void @@ -5,7 +5,8 @@ trap 'rm -f $t' 0 1 2 3 13 15 cd .. -# Turn a C file into a line per function that returns an int. +# Parse a C file, discarding functions that don't return an int, and formatting +# the remaining functions as a single line. file_parse() { sed -n \ @@ -109,7 +110,7 @@ func_ok() } # Complain about functions which return an "int" but which don't return except -# at the end of the function. This script is a kluge and isn't run by default. +# at the end of the function. for f in `find bench ext src test -name '*.[ci]'`; do if expr "$f" : '.*/windows_shim.c' > /dev/null; then continue diff --git a/examples/c/ex_file_system.c b/examples/c/ex_file_system.c index f51cad328c3..56869171558 100644 --- a/examples/c/ex_file_system.c +++ b/examples/c/ex_file_system.c @@ -29,35 +29,49 @@ * demonstrates how to use the custom file system interface */ -/* - * Include WiredTiger internal functions: we need architecture portable locking - * in this example, and we use the TAILQ_XXX functions to keep the code simple. - * - * Application-writers SHOULD NOT INCLUDE "wt_internal.h", the public WiredTiger - * include files should be used instead: - * - * #include <wiredtiger.h> - * #include <wiredtiger_ext.h> - */ -#include "wt_internal.h" +#include <assert.h> +#include <errno.h> +#include <inttypes.h> +#include <queue.h> +#include <stdlib.h> +#include <string.h> + +#ifndef _WIN32 +#include <pthread.h> +#else +#include "windows_shim.h" +#endif + +#include <wiredtiger.h> +#include <wiredtiger_ext.h> /* - * This example code uses internal WiredTiger functions for portable locking. - * We use #defines to clarify the meaning and ignore errors to simplify the - * code. - * - * Application writers SHOULD NOT COPY THIS LOCKING CODE, it's special-case code - * to make this example portable across platforms. + * This example code uses pthread functions for portable locking, we ignore + * errors for simplicity. */ -#define ALLOCATE_FILE_SYSTEM_LOCK(demo_fs) \ - (void)__wt_spin_init(NULL, &(demo_fs)->lock, "demo file handle lock") -#define DESTROY_FILE_SYSTEM_LOCK(wt_session, demo_fs) \ - __wt_spin_destroy((WT_SESSION_IMPL *)(wt_session), &(demo_fs)->lock) -#define LOCK_FILE_SYSTEM(wt_session, demo_fs) \ - __wt_spin_lock((WT_SESSION_IMPL *)(wt_session), &(demo_fs)->lock) -#define UNLOCK_FILE_SYSTEM(wt_session, demo_fs) \ - __wt_spin_unlock( \ - (WT_SESSION_IMPL *)(wt_session), &(demo_fs)->lock) +static void +allocate_file_system_lock(pthread_rwlock_t *lockp) +{ + assert(pthread_rwlock_init(lockp, NULL) == 0); +} + +static void +destroy_file_system_lock(pthread_rwlock_t *lockp) +{ + assert(pthread_rwlock_destroy(lockp) == 0); +} + +static void +lock_file_system(pthread_rwlock_t *lockp) +{ + assert(pthread_rwlock_wrlock(lockp) == 0); +} + +static void +unlock_file_system(pthread_rwlock_t *lockp) +{ + assert(pthread_rwlock_unlock(lockp) == 0); +} /* * Example file system implementation, using memory buffers to represent files. @@ -72,7 +86,7 @@ typedef struct { * might require finer granularity, for example, a single lock for the * file system handle list and per-handle locks serializing I/O. */ - WT_SPINLOCK lock; /* Lock */ + pthread_rwlock_t lock; /* Lock */ int opened_file_count; int opened_unique_file_count; @@ -239,7 +253,7 @@ demo_file_system_create(WT_CONNECTION *conn, WT_CONFIG_ARG *config) goto err; } - ALLOCATE_FILE_SYSTEM_LOCK(demo_fs); + allocate_file_system_lock(&demo_fs->lock); /* Initialize the in-memory jump table. */ file_system->fs_directory_list = demo_fs_directory_list; @@ -288,7 +302,7 @@ demo_fs_open(WT_FILE_SYSTEM *file_system, WT_SESSION *session, demo_fh = NULL; wtext = demo_fs->wtext; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); ++demo_fs->opened_file_count; /* @@ -308,7 +322,7 @@ demo_fs_open(WT_FILE_SYSTEM *file_system, WT_SESSION *session, *file_handlep = (WT_FILE_HANDLE *)demo_fh; - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); return (0); } @@ -366,7 +380,7 @@ err: free(demo_fh->buf); free(demo_fh); } - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); return (ret); } @@ -386,6 +400,8 @@ demo_fs_directory_list(WT_FILE_SYSTEM *file_system, int ret = 0; char *name, **entries; + (void)session; /* Unused */ + demo_fs = (DEMO_FILE_SYSTEM *)file_system; *dirlistp = NULL; @@ -396,7 +412,7 @@ demo_fs_directory_list(WT_FILE_SYSTEM *file_system, len = strlen(directory); prefix_len = prefix == NULL ? 0 : strlen(prefix); - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); TAILQ_FOREACH(demo_fh, &demo_fs->fileq, q) { name = demo_fh->iface.name; if (strncmp(name, directory, len) != 0 || @@ -424,7 +440,7 @@ demo_fs_directory_list(WT_FILE_SYSTEM *file_system, *dirlistp = entries; *countp = count; -err: UNLOCK_FILE_SYSTEM(session, demo_fs); +err: unlock_file_system(&demo_fs->lock); if (ret == 0) return (0); @@ -466,11 +482,13 @@ demo_fs_exist(WT_FILE_SYSTEM *file_system, { DEMO_FILE_SYSTEM *demo_fs; + (void)session; /* Unused */ + demo_fs = (DEMO_FILE_SYSTEM *)file_system; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); *existp = demo_handle_search(file_system, name) != NULL; - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); return (0); } @@ -487,15 +505,16 @@ demo_fs_remove(WT_FILE_SYSTEM *file_system, DEMO_FILE_HANDLE *demo_fh; int ret = 0; - (void)flags; /* Unused */ + (void)session; /* Unused */ + (void)flags; /* Unused */ demo_fs = (DEMO_FILE_SYSTEM *)file_system; ret = ENOENT; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); if ((demo_fh = demo_handle_search(file_system, name)) != NULL) ret = demo_handle_remove(session, demo_fh); - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); return (ret); } @@ -513,11 +532,12 @@ demo_fs_rename(WT_FILE_SYSTEM *file_system, char *copy; int ret = 0; - (void)flags; /* Unused */ + (void)session; /* Unused */ + (void)flags; /* Unused */ demo_fs = (DEMO_FILE_SYSTEM *)file_system; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); if ((demo_fh = demo_handle_search(file_system, from)) == NULL) ret = ENOENT; else if ((copy = strdup(to)) == NULL) @@ -526,7 +546,7 @@ demo_fs_rename(WT_FILE_SYSTEM *file_system, free(demo_fh->iface.name); demo_fh->iface.name = copy; } - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); return (ret); } @@ -545,10 +565,10 @@ demo_fs_size(WT_FILE_SYSTEM *file_system, demo_fs = (DEMO_FILE_SYSTEM *)file_system; ret = ENOENT; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); if ((demo_fh = demo_handle_search(file_system, name)) != NULL) ret = demo_file_size((WT_FILE_HANDLE *)demo_fh, session, sizep); - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); return (ret); } @@ -578,7 +598,7 @@ demo_fs_terminate(WT_FILE_SYSTEM *file_system, WT_SESSION *session) printf("\t%d reads, %d writes\n", demo_fs->read_ops, demo_fs->write_ops); - DESTROY_FILE_SYSTEM_LOCK(session, demo_fs); + destroy_file_system_lock(&demo_fs->lock); free(demo_fs); return (ret); @@ -594,13 +614,15 @@ demo_file_close(WT_FILE_HANDLE *file_handle, WT_SESSION *session) DEMO_FILE_HANDLE *demo_fh; DEMO_FILE_SYSTEM *demo_fs; + (void)session; /* Unused */ + demo_fh = (DEMO_FILE_HANDLE *)file_handle; demo_fs = demo_fh->demo_fs; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); if (--demo_fh->ref == 0) ++demo_fs->closed_file_count; - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); return (0); } @@ -638,7 +660,7 @@ demo_file_read(WT_FILE_HANDLE *file_handle, wtext = demo_fs->wtext; off = (size_t)offset; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); ++demo_fs->read_ops; if (off < demo_fh->size) { if (len > demo_fh->size - off) @@ -646,7 +668,7 @@ demo_file_read(WT_FILE_HANDLE *file_handle, memcpy(buf, (uint8_t *)demo_fh->buf + off, len); } else ret = EIO; /* EOF */ - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); if (ret == 0) return (0); @@ -667,12 +689,14 @@ demo_file_size( DEMO_FILE_HANDLE *demo_fh; DEMO_FILE_SYSTEM *demo_fs; + (void)session; /* Unused */ + demo_fh = (DEMO_FILE_HANDLE *)file_handle; demo_fs = demo_fh->demo_fs; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); *sizep = (wt_off_t)demo_fh->size; - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); return (0); } @@ -739,10 +763,10 @@ demo_file_truncate( demo_fh = (DEMO_FILE_HANDLE *)file_handle; demo_fs = demo_fh->demo_fs; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); if ((ret = demo_buffer_resize(session, demo_fh, offset)) == 0) demo_fh->size = (size_t)offset; - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); return (ret); } @@ -765,7 +789,7 @@ demo_file_write(WT_FILE_HANDLE *file_handle, WT_SESSION *session, wtext = demo_fs->wtext; off = (size_t)offset; - LOCK_FILE_SYSTEM(session, demo_fs); + lock_file_system(&demo_fs->lock); ++demo_fs->write_ops; if ((ret = demo_buffer_resize(session, demo_fh, offset + (wt_off_t)(len + DEMO_FILE_SIZE_INCREMENT))) == 0) { @@ -773,7 +797,7 @@ demo_file_write(WT_FILE_HANDLE *file_handle, WT_SESSION *session, if (off + len > demo_fh->size) demo_fh->size = off + len; } - UNLOCK_FILE_SYSTEM(session, demo_fs); + unlock_file_system(&demo_fs->lock); if (ret == 0) return (0); diff --git a/examples/c/ex_thread.c b/examples/c/ex_thread.c index 7c52d3b8189..fa82bd5f113 100644 --- a/examples/c/ex_thread.c +++ b/examples/c/ex_thread.c @@ -30,14 +30,13 @@ * table from multiple threads. */ -#ifndef _WIN32 -#include <pthread.h> -#endif #include <stdio.h> #include <stdlib.h> #include <string.h> -#ifdef _WIN32 +#ifndef _WIN32 +#include <pthread.h> +#else #include "windows_shim.h" #endif diff --git a/examples/java/com/wiredtiger/examples/ex_log.java b/examples/java/com/wiredtiger/examples/ex_log.java index 03eab6b38b1..233ad1361d8 100644 --- a/examples/java/com/wiredtiger/examples/ex_log.java +++ b/examples/java/com/wiredtiger/examples/ex_log.java @@ -35,7 +35,7 @@ import java.util.*; class Lsn { int file; - long offset; + int offset; } public class ex_log { @@ -57,7 +57,7 @@ public class ex_log { conn = wiredtiger.open(home2, CONN_CONFIG); Session session = conn.open_session(null); - session.create(uri, "key_format=U,value_format=U"); + session.create(uri, "key_format=S,value_format=S"); return (session); } @@ -72,17 +72,17 @@ public class ex_log { while ((ret = cursor.next()) == 0) { ret = curs_copy.next(); - byte[] key = cursor.getKeyByteArray(); - byte[] value = cursor.getValueByteArray(); - byte[] key_copy = curs_copy.getKeyByteArray(); - byte[] value_copy = curs_copy.getValueByteArray(); - if (!Arrays.equals(key, key_copy) || - !Arrays.equals(value, value_copy)) { + String key = cursor.getKeyString(); + String value = cursor.getValueString(); + String key_copy = curs_copy.getKeyString(); + String value_copy = curs_copy.getValueString(); + if (!key.equals(key_copy) || + !value.equals(value_copy)) { System.err.println( - "Mismatched: key " + new String(key) + - ", key_copy " + new String(key_copy) + - ", value " + new String(value) + - ", value_copy " + new String(value_copy)); + "Mismatched: key " + key + ", key_copy " + key_copy + + ", value " + value + ", value_copy " + value_copy); + ret = cursor.close(); + ret = curs_copy.close(); return (1); } } @@ -121,7 +121,7 @@ public class ex_log { * A simple walk of the log. */ static int - simple_walk_log(Session session) + simple_walk_log(Session session, int count_min) throws WiredTigerException { Cursor cursor; @@ -129,16 +129,18 @@ public class ex_log { byte[] logrec_key, logrec_value; long txnid; int fileid, opcount, optype, rectype; - int ret; + int count, ret; /*! [log cursor open] */ cursor = session.open_cursor("log:", null, null); /*! [log cursor open] */ + count = 0; while ((ret = cursor.next()) == 0) { + count++; /*! [log cursor get_key] */ lsn.file = cursor.getKeyInt(); - lsn.offset = cursor.getKeyLong(); + lsn.offset = cursor.getKeyInt(); opcount = cursor.getKeyInt(); /*! [log cursor get_key] */ /*! [log cursor get_value] */ @@ -156,6 +158,11 @@ public class ex_log { if (ret == wiredtiger.WT_NOTFOUND) ret = 0; ret = cursor.close(); + if (count < count_min) { + System.err.println("Expected minimum " + count_min + + " records, found " + count); + return (1); + } return (ret); } /*! [log cursor walk] */ @@ -185,7 +192,7 @@ public class ex_log { lsnsave = new Lsn(); while ((ret = cursor.next()) == 0) { lsn.file = cursor.getKeyInt(); - lsn.offset = cursor.getKeyLong(); + lsn.offset = cursor.getKeyInt(); opcount = cursor.getKeyInt(); /* @@ -194,8 +201,10 @@ public class ex_log { * that LSN to the end (where the multi-step transaction * was performed). Just choose the record that is MAX_KEYS. */ - if (++i == MAX_KEYS) - lsnsave = lsn; + if (++i == MAX_KEYS) { + lsnsave.file = lsn.file; + lsnsave.offset = lsn.offset; + } txnid = cursor.getValueLong(); rectype = cursor.getValueInt(); optype = cursor.getValueInt(); @@ -217,10 +226,10 @@ public class ex_log { /* * If the operation is a put, replay it here on the backup - * connection. Note, we cheat by looking only for fileid 1 - * in this example. The metadata is fileid 0. + * connection. Note, we cheat by looking at the fileid. + * The metadata is fileid 0, skip its records. */ - if (fileid == 1 && rectype == wiredtiger.WT_LOGREC_COMMIT && + if (fileid != 0 && rectype == wiredtiger.WT_LOGREC_COMMIT && optype == wiredtiger.WT_LOGOP_ROW_PUT) { if (!in_txn) { ret = session2.begin_transaction(null); @@ -238,15 +247,20 @@ public class ex_log { /* * Compare the tables after replay. They should be identical. */ - if (compare_tables(session, session2) != 0) - System.out.println("compare failed"); + if (compare_tables(session, session2) != 0) { + cursor.close(); + session2.close(null); + wt_conn2.close(null); + return (ret); + } ret = session2.close(null); ret = wt_conn2.close(null); ret = cursor.reset(); /*! [log cursor set_key] */ cursor.putKeyInt(lsnsave.file); - cursor.putKeyLong(lsnsave.offset); + cursor.putKeyInt(lsnsave.offset); + cursor.putKeyInt(0); /*! [log cursor set_key] */ /*! [log cursor search] */ ret = cursor.search(); @@ -256,9 +270,9 @@ public class ex_log { * Walk all records starting with this key. */ first = true; - while (ret == 0) { /*TODO: not quite right*/ + while (ret == 0) { lsn.file = cursor.getKeyInt(); - lsn.offset = cursor.getKeyLong(); + lsn.offset = cursor.getKeyInt(); opcount = cursor.getKeyInt(); if (first) { first = false; @@ -293,8 +307,9 @@ public class ex_log { Connection wt_conn; Cursor cursor; Session session; - int i, record_count, ret; + int count_min, i, record_count, ret; + count_min = 0; try { String command = "/bin/rm -rf " + home1 + " " + home2; Process proc = Runtime.getRuntime().exec(command); @@ -317,6 +332,7 @@ public class ex_log { session = wt_conn.open_session(null); ret = session.create(uri, "key_format=S,value_format=S"); + count_min++; cursor = session.open_cursor(uri, null, null); /* @@ -328,6 +344,7 @@ public class ex_log { cursor.putKeyString(k); cursor.putValueString(v); ret = cursor.insert(); + count_min++; } ret = session.begin_transaction(null); /* @@ -341,10 +358,12 @@ public class ex_log { ret = cursor.insert(); } ret = session.commit_transaction(null); + count_min++; ret = cursor.close(); /*! [log cursor printf] */ ret = session.log_printf("Wrote " + record_count + " records"); + count_min++; /*! [log cursor printf] */ session.close(null); @@ -360,7 +379,7 @@ public class ex_log { } session = wt_conn.open_session(null); - ret = simple_walk_log(session); + ret = simple_walk_log(session, count_min); ret = walk_log(session); ret = session.close(null); ret = wt_conn.close(null); diff --git a/lang/java/src/com/wiredtiger/db/PackOutputStream.java b/lang/java/src/com/wiredtiger/db/PackOutputStream.java index 46b3aef0974..b6804a2992f 100644 --- a/lang/java/src/com/wiredtiger/db/PackOutputStream.java +++ b/lang/java/src/com/wiredtiger/db/PackOutputStream.java @@ -42,6 +42,7 @@ public class PackOutputStream { protected PackFormatInputStream format; protected ByteArrayOutputStream packed; protected byte[] intBuf; + protected boolean isRaw; /** * Constructor. @@ -50,9 +51,21 @@ public class PackOutputStream { * defines the layout of this packed value. */ public PackOutputStream(String format) { - this.format = new PackFormatInputStream(format, false); - intBuf = new byte[MAX_INT_BYTES]; - packed = new ByteArrayOutputStream(100); + this(format, false); + } + + /** + * Constructor. + * + * \param format A String that contains the WiredTiger format that + * defines the layout of this packed value. + * \param isRaw The stream is opened raw. + */ + public PackOutputStream(String format, boolean isRaw) { + this.format = new PackFormatInputStream(format, isRaw); + this.intBuf = new byte[MAX_INT_BYTES]; + this.packed = new ByteArrayOutputStream(100); + this.isRaw = isRaw; } /** @@ -111,7 +124,9 @@ public class PackOutputStream { throws WiredTigerPackingException { int padBytes = 0; - format.checkType('U', false); + if (!isRaw) { + format.checkType('U', false); + } boolean havesize = format.hasLength(); char type = format.getType(); if (havesize) { diff --git a/lang/java/wiredtiger.i b/lang/java/wiredtiger.i index d6e0660dc2c..d0910fa9f66 100644 --- a/lang/java/wiredtiger.i +++ b/lang/java/wiredtiger.i @@ -597,6 +597,7 @@ WT_ASYNC_CALLBACK javaApiAsyncHandler = {javaAsyncHandler}; %typemap(javabody) struct __wt_async_op %{ private long swigCPtr; protected boolean swigCMemOwn; + protected boolean javaRaw; protected String keyFormat; protected String valueFormat; protected PackOutputStream keyPacker; @@ -609,8 +610,9 @@ WT_ASYNC_CALLBACK javaApiAsyncHandler = {javaAsyncHandler}; swigCPtr = cPtr; keyFormat = getKey_format(); valueFormat = getValue_format(); - keyPacker = new PackOutputStream(keyFormat); - valuePacker = new PackOutputStream(valueFormat); + javaRaw = _java_raw(); + keyPacker = new PackOutputStream(keyFormat, javaRaw); + valuePacker = new PackOutputStream(valueFormat, javaRaw); wiredtigerJNI.AsyncOp__java_init(swigCPtr, this, this); } @@ -1098,7 +1100,7 @@ WT_ASYNC_CALLBACK javaApiAsyncHandler = {javaAsyncHandler}; if (keyUnpacker == null) keyUnpacker = new PackInputStream(keyFormat, get_key_wrap(), - _java_raw()); + javaRaw); return keyUnpacker; } @@ -1112,7 +1114,7 @@ WT_ASYNC_CALLBACK javaApiAsyncHandler = {javaAsyncHandler}; if (valueUnpacker == null) valueUnpacker = new PackInputStream(valueFormat, get_value_wrap(), - _java_raw()); + javaRaw); return valueUnpacker; } @@ -1232,8 +1234,8 @@ WT_ASYNC_CALLBACK javaApiAsyncHandler = {javaAsyncHandler}; swigCPtr = cPtr; keyFormat = getKey_format(); valueFormat = getValue_format(); - keyPacker = new PackOutputStream(keyFormat); - valuePacker = new PackOutputStream(valueFormat); + keyPacker = new PackOutputStream(keyFormat, _java_raw()); + valuePacker = new PackOutputStream(valueFormat, _java_raw()); wiredtigerJNI.Cursor__java_init(swigCPtr, this, this); } diff --git a/src/block/block_addr.c b/src/block/block_addr.c index dadd17de4a6..580316bdfc6 100644 --- a/src/block/block_addr.c +++ b/src/block/block_addr.c @@ -192,6 +192,7 @@ __wt_block_buffer_to_ckpt(WT_SESSION_IMPL *session, int __wt_block_ckpt_decode(WT_SESSION *wt_session, size_t allocsize, const uint8_t *p, WT_BLOCK_CKPT *ci) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_SESSION_IMPL *session; diff --git a/src/block/block_compact.c b/src/block/block_compact.c index 6d5d48bdb22..380493d1c0b 100644 --- a/src/block/block_compact.c +++ b/src/block/block_compact.c @@ -22,6 +22,12 @@ __wt_block_compact_start(WT_SESSION_IMPL *session, WT_BLOCK *block) /* Switch to first-fit allocation. */ __wt_block_configure_first_fit(block, true); + /* Reset the compaction state information. */ + block->compact_pct_tenths = 0; + block->compact_pages_reviewed = 0; + block->compact_pages_skipped = 0; + block->compact_pages_written = 0; + return (0); } @@ -71,16 +77,6 @@ __wt_block_compact_skip(WT_SESSION_IMPL *session, WT_BLOCK *block, bool *skipp) if (block->size <= WT_MEGABYTE) return (0); - /* - * Reset the compaction state information. This is done here, not in the - * compaction "start" routine, because this function is called first to - * determine if compaction is useful. - */ - block->compact_pct_tenths = 0; - block->compact_pages_reviewed = 0; - block->compact_pages_skipped = 0; - block->compact_pages_written = 0; - __wt_spin_lock(session, &block->live_lock); /* Dump the current state of the file. */ diff --git a/src/block/block_open.c b/src/block/block_open.c index 4d15942709a..07ceb4c8159 100644 --- a/src/block/block_open.c +++ b/src/block/block_open.c @@ -201,6 +201,12 @@ __wt_block_open(WT_SESSION_IMPL *session, * "direct_io=checkpoint" configures direct I/O for readonly data files. */ flags = 0; + WT_ERR(__wt_config_gets(session, cfg, "access_pattern_hint", &cval)); + if (WT_STRING_MATCH("random", cval.str, cval.len)) + LF_SET(WT_FS_OPEN_ACCESS_RAND); + else if (WT_STRING_MATCH("sequential", cval.str, cval.len)) + LF_SET(WT_FS_OPEN_ACCESS_SEQ); + if (readonly && FLD_ISSET(conn->direct_io, WT_DIRECT_IO_CHECKPOINT)) LF_SET(WT_FS_OPEN_DIRECTIO); if (!readonly && FLD_ISSET(conn->direct_io, WT_DIRECT_IO_DATA)) diff --git a/src/bloom/bloom.c b/src/bloom/bloom.c index dde08d8a982..be3230437d3 100644 --- a/src/bloom/bloom.c +++ b/src/bloom/bloom.c @@ -95,6 +95,7 @@ int __wt_bloom_create( WT_SESSION_IMPL *session, const char *uri, const char *config, uint64_t count, uint32_t factor, uint32_t k, WT_BLOOM **bloomp) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_BLOOM *bloom; WT_DECL_RET; @@ -148,6 +149,7 @@ int __wt_bloom_open(WT_SESSION_IMPL *session, const char *uri, uint32_t factor, uint32_t k, WT_CURSOR *owner, WT_BLOOM **bloomp) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_BLOOM *bloom; WT_CURSOR *c; @@ -178,6 +180,7 @@ err: WT_TRET(__wt_bloom_close(bloom)); */ void __wt_bloom_insert(WT_BLOOM *bloom, WT_ITEM *key) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { uint64_t h1, h2; uint32_t i; @@ -195,6 +198,7 @@ __wt_bloom_insert(WT_BLOOM *bloom, WT_ITEM *key) */ int __wt_bloom_finalize(WT_BLOOM *bloom) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_CURSOR *c; WT_DECL_RET; @@ -304,6 +308,7 @@ err: /* Don't return WT_NOTFOUND from a failed search. */ */ int __wt_bloom_get(WT_BLOOM *bloom, WT_ITEM *key) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_BLOOM_HASH bhash; @@ -363,6 +368,7 @@ __wt_bloom_intersection(WT_BLOOM *bloom, WT_BLOOM *other) */ int __wt_bloom_close(WT_BLOOM *bloom) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_DECL_RET; WT_SESSION_IMPL *session; @@ -385,6 +391,7 @@ __wt_bloom_close(WT_BLOOM *bloom) */ int __wt_bloom_drop(WT_BLOOM *bloom, const char *config) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_DECL_RET; WT_SESSION *wt_session; diff --git a/src/btree/bt_compact.c b/src/btree/bt_compact.c index e005674762d..2edcac76d0b 100644 --- a/src/btree/bt_compact.c +++ b/src/btree/bt_compact.c @@ -90,16 +90,15 @@ __compact_rewrite(WT_SESSION_IMPL *session, WT_REF *ref, bool *skipp) * Compact a file. */ int -__wt_compact(WT_SESSION_IMPL *session, const char *cfg[]) +__wt_compact(WT_SESSION_IMPL *session) { WT_BM *bm; WT_BTREE *btree; WT_DECL_RET; WT_REF *ref; + u_int i; bool skip; - WT_UNUSED(cfg); - btree = S2BT(session); bm = btree->bm; ref = NULL; @@ -129,7 +128,13 @@ __wt_compact(WT_SESSION_IMPL *session, const char *cfg[]) __wt_spin_lock(session, &btree->flush_lock); /* Walk the tree reviewing pages to see if they should be re-written. */ - for (;;) { + for (i = 0;;) { + /* Periodically check if we've run out of time. */ + if (++i > 100) { + WT_ERR(__wt_session_compact_check_timeout(session)); + i = 0; + } + /* * Pages read for compaction aren't "useful"; don't update the * read generation of pages already in memory, and if a page is diff --git a/src/btree/bt_cursor.c b/src/btree/bt_cursor.c index a996b21f7ce..650289f2cd8 100644 --- a/src/btree/bt_cursor.c +++ b/src/btree/bt_cursor.c @@ -41,7 +41,7 @@ __cursor_size_chk(WT_SESSION_IMPL *session, WT_ITEM *kv) if (kv->size > WT_BTREE_MAX_OBJECT_SIZE) WT_RET_MSG(session, EINVAL, "item size of %" WT_SIZET_FMT " exceeds the maximum " - "supported WiredTiger size of %d", + "supported WiredTiger size of %" PRIu32, kv->size, WT_BTREE_MAX_OBJECT_SIZE); /* Check what the block manager can actually write. */ diff --git a/src/btree/bt_debug.c b/src/btree/bt_debug.c index bcc7d27a569..3352b797fa9 100644 --- a/src/btree/bt_debug.c +++ b/src/btree/bt_debug.c @@ -77,7 +77,7 @@ static inline int __debug_hex_byte(WT_DBG *ds, uint8_t v) { return (ds->f( - ds, "#%c%c", __wt_hex[(v & 0xf0) >> 4], __wt_hex[v & 0x0f])); + ds, "#%c%c", __wt_hex((v & 0xf0) >> 4), __wt_hex(v & 0x0f))); } /* @@ -1003,37 +1003,37 @@ __debug_ref(WT_DBG *ds, WT_REF *ref) WT_SESSION_IMPL *session; size_t addr_size; const uint8_t *addr; + const char *state; session = ds->session; - WT_RET(ds->f(ds, "\t")); switch (ref->state) { case WT_REF_DISK: - WT_RET(ds->f(ds, "disk")); + state = "disk"; break; case WT_REF_DELETED: - WT_RET(ds->f(ds, "deleted")); + state = "deleted"; break; case WT_REF_LOCKED: - WT_RET(ds->f(ds, "locked %p", (void *)ref->page)); + state = "locked"; break; case WT_REF_MEM: - WT_RET(ds->f(ds, "memory %p", (void *)ref->page)); + state = "memory"; break; case WT_REF_READING: - WT_RET(ds->f(ds, "reading")); + state = "reading"; break; case WT_REF_SPLIT: - WT_RET(ds->f(ds, "split")); + state = "split"; break; default: - WT_RET(ds->f(ds, "INVALID")); + state = "INVALID"; break; } __wt_ref_info(ref, &addr, &addr_size, NULL); - return (ds->f(ds, " %s\n", - __wt_addr_string(session, addr, addr_size, ds->tmp))); + return (ds->f(ds, "\t" "%p %s %s\n", (void *)ref, + state, __wt_addr_string(session, addr, addr_size, ds->tmp))); } /* diff --git a/src/btree/bt_discard.c b/src/btree/bt_discard.c index 162bc07a1c2..7858d2cb14e 100644 --- a/src/btree/bt_discard.c +++ b/src/btree/bt_discard.c @@ -27,9 +27,35 @@ __wt_ref_out(WT_SESSION_IMPL *session, WT_REF *ref) /* * A version of the page-out function that allows us to make additional * diagnostic checks. + * + * The WT_REF cannot be the eviction thread's location. */ WT_ASSERT(session, S2BT(session)->evict_ref != ref); +#ifdef HAVE_DIAGNOSTIC + { + WT_HAZARD *hp; + int i; + /* + * Make sure no other thread has a hazard pointer on the page we are + * about to discard. This is complicated by the fact that readers + * publish their hazard pointer before re-checking the page state, so + * our check can race with readers without indicating a real problem. + * Wait for up to a second for hazard pointers to be cleared. + */ + for (hp = NULL, i = 0; i < 100; i++) { + if ((hp = __wt_page_hazard_check(session, ref)) == NULL) + break; + __wt_sleep(0, 10000); + } + if (hp != NULL) + __wt_errx(session, + "discarded page has hazard pointer: (%p: %s, line %d)", + (void *)hp->ref, hp->file, hp->line); + WT_ASSERT(session, hp == NULL); + } +#endif + __wt_page_out(session, &ref->page); } @@ -63,30 +89,6 @@ __wt_page_out(WT_SESSION_IMPL *session, WT_PAGE **pagep) WT_ASSERT(session, !F_ISSET_ATOMIC(page, WT_PAGE_EVICT_LRU)); WT_ASSERT(session, !__wt_rwlock_islocked(session, &page->page_lock)); -#ifdef HAVE_DIAGNOSTIC - { - WT_HAZARD *hp; - int i; - /* - * Make sure no other thread has a hazard pointer on the page we are - * about to discard. This is complicated by the fact that readers - * publish their hazard pointer before re-checking the page state, so - * our check can race with readers without indicating a real problem. - * Wait for up to a second for hazard pointers to be cleared. - */ - for (hp = NULL, i = 0; i < 100; i++) { - if ((hp = __wt_page_hazard_check(session, page)) == NULL) - break; - __wt_sleep(0, 10000); - } - if (hp != NULL) - __wt_errx(session, - "discarded page has hazard pointer: (%p: %s, line %d)", - (void *)hp->page, hp->file, hp->line); - WT_ASSERT(session, hp == NULL); - } -#endif - /* * If a root page split, there may be one or more pages linked from the * page; walk the list, discarding pages. diff --git a/src/btree/bt_misc.c b/src/btree/bt_misc.c index b6e2cc07f5a..3bec65c2567 100644 --- a/src/btree/bt_misc.c +++ b/src/btree/bt_misc.c @@ -14,6 +14,7 @@ */ const char * __wt_page_type_string(u_int type) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { switch (type) { case WT_PAGE_INVALID: diff --git a/src/btree/bt_read.c b/src/btree/bt_read.c index 90188498535..39f9e1159cb 100644 --- a/src/btree/bt_read.c +++ b/src/btree/bt_read.c @@ -324,7 +324,7 @@ __evict_force_check(WT_SESSION_IMPL *session, WT_REF *ref) * If this session has more than one hazard pointer, eviction will fail * and there is no point trying. */ - if (__wt_hazard_count(session, page) > 1) + if (__wt_hazard_count(session, ref) > 1) return (false); /* If we can do an in-memory split, do it. */ diff --git a/src/btree/bt_slvg.c b/src/btree/bt_slvg.c index f269c2d7f43..fde4d4fb9de 100644 --- a/src/btree/bt_slvg.c +++ b/src/btree/bt_slvg.c @@ -1300,7 +1300,7 @@ __slvg_col_build_leaf(WT_SESSION_IMPL *session, WT_TRACK *trk, WT_REF *ref) /* Write the new version of the leaf page to disk. */ WT_ERR(__slvg_modify_init(session, page)); - WT_ERR(__wt_reconcile(session, ref, cookie, WT_VISIBILITY_ERR)); + WT_ERR(__wt_reconcile(session, ref, cookie, WT_VISIBILITY_ERR, NULL)); /* Reset the page. */ page->pg_var_d = save_col_var; @@ -2011,7 +2011,7 @@ __slvg_row_build_leaf( /* Write the new version of the leaf page to disk. */ WT_ERR(__slvg_modify_init(session, page)); - WT_ERR(__wt_reconcile(session, ref, cookie, WT_VISIBILITY_ERR)); + WT_ERR(__wt_reconcile(session, ref, cookie, WT_VISIBILITY_ERR, NULL)); /* Reset the page. */ page->pg_row_entries += skip_stop; diff --git a/src/btree/bt_split.c b/src/btree/bt_split.c index 017c820ea29..fe49f937719 100644 --- a/src/btree/bt_split.c +++ b/src/btree/bt_split.c @@ -513,7 +513,7 @@ __split_ref_step2( __split_verify_intl_key_order(session, child)); #endif - WT_ERR(__wt_hazard_clear(session, child)); + WT_ERR(__wt_hazard_clear(session, ref)); } return (0); @@ -1331,7 +1331,7 @@ __split_internal_unlock(WT_SESSION_IMPL *session, WT_PAGE *parent, bool hazard) WT_DECL_RET; if (hazard) - ret = __wt_hazard_clear(session, parent); + ret = __wt_hazard_clear(session, parent->pg_intl_parent_ref); __wt_writeunlock(session, &parent->page_lock); return (ret); diff --git a/src/btree/bt_sync.c b/src/btree/bt_sync.c index 129d7fec05f..7bf15baa67f 100644 --- a/src/btree/bt_sync.c +++ b/src/btree/bt_sync.c @@ -136,8 +136,8 @@ __sync_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop) __wt_txn_get_snapshot(session); leaf_bytes += page->memory_footprint; ++leaf_pages; - WT_ERR(__wt_reconcile( - session, walk, NULL, WT_CHECKPOINTING)); + WT_ERR(__wt_reconcile(session, + walk, NULL, WT_CHECKPOINTING, NULL)); } } break; @@ -233,7 +233,7 @@ __sync_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop) ++leaf_pages; } WT_ERR(__wt_reconcile( - session, walk, NULL, WT_CHECKPOINTING)); + session, walk, NULL, WT_CHECKPOINTING, NULL)); } break; case WT_SYNC_CLOSE: diff --git a/src/btree/bt_walk.c b/src/btree/bt_walk.c index fb0d2296823..049700952ee 100644 --- a/src/btree/bt_walk.c +++ b/src/btree/bt_walk.c @@ -17,54 +17,60 @@ __ref_index_slot(WT_SESSION_IMPL *session, WT_REF *ref, WT_PAGE_INDEX **pindexp, uint32_t *slotp) { WT_PAGE_INDEX *pindex; - uint32_t i; + WT_REF **start, **stop, **p, **t; + uint32_t entries, slot; - /* - * Copy the parent page's index value: the page can split at any time, - * but the index's value is always valid, even if it's not up-to-date. - */ -retry: WT_INTL_INDEX_GET(session, ref->home, pindex); + for (;;) { + /* + * Copy the parent page's index value: the page can split at + * any time, but the index's value is always valid, even if + * it's not up-to-date. + */ + WT_INTL_INDEX_GET(session, ref->home, pindex); + entries = pindex->entries; - /* - * Use the page's reference hint: it should be correct unless the page - * split before our slot. If the page splits after our slot, the hint - * will point earlier in the array than our actual slot, so the first - * loop is from the hint to the end of the list, and the second loop - * is from the start of the list to the end of the list. (The second - * loop overlaps the first, but that only happen in cases where we've - * split the tree and aren't going to find our slot at all, that's not - * worth optimizing.) - * - * It's not an error for the reference hint to be wrong, it just means - * the first retrieval (which sets the hint for subsequent retrievals), - * is slower. - */ - i = ref->pindex_hint; - if (i < pindex->entries && pindex->index[i] == ref) { - *pindexp = pindex; - *slotp = i; - return; - } - while (++i < pindex->entries) - if (pindex->index[i] == ref) { - *pindexp = pindex; - *slotp = ref->pindex_hint = i; - return; - } - for (i = 0; i < pindex->entries; ++i) - if (pindex->index[i] == ref) { - *pindexp = pindex; - *slotp = ref->pindex_hint = i; - return; + /* + * Use the page's reference hint: it should be correct unless + * there was a split or delete in the parent before our slot. + * If the hint is wrong, it can be either too big or too small, + * but often only by a small amount. Search up and down the + * index starting from the hint. + * + * It's not an error for the reference hint to be wrong, it + * just means the first retrieval (which sets the hint for + * subsequent retrievals), is slower. + */ + slot = ref->pindex_hint; + if (slot >= entries) + slot = entries - 1; + if (pindex->index[slot] == ref) + goto found; + for (start = &pindex->index[0], + stop = &pindex->index[entries - 1], + p = t = &pindex->index[slot]; + p > start || t < stop;) { + if (p > start && *--p == ref) { + slot = (uint32_t)(p - start); + goto found; + } + if (t < stop && *++t == ref) { + slot = (uint32_t)(t - start); + goto found; + } } - /* - * If we don't find our reference, the page split and our home pointer - * references the wrong page. When internal pages split, their WT_REF - * structure home values are updated; yield and wait for that to happen. - */ - __wt_yield(); - goto retry; + /* + * If we don't find our reference, the page split and our home + * pointer references the wrong page. When internal pages + * split, their WT_REF structure home values are updated; yield + * and wait for that to happen. + */ + __wt_yield(); + } + +found: WT_ASSERT(session, pindex->index[slot] == ref); + *pindexp = pindex; + *slotp = slot; } /* @@ -431,8 +437,8 @@ restart: /* /* * Move to the next slot, and set the reference hint if * it's wrong (used when we continue the walk). We don't - * update those hints when splitting, so it's common for - * them to be incorrect in some workloads. + * always update the hints when splitting, it's expected + * for them to be incorrect in some workloads. */ ref = pindex->index[slot]; if (ref->pindex_hint != slot) diff --git a/src/cache/cache_las.c b/src/cache/cache_las.c index 41f50957809..41da4225f3a 100644 --- a/src/cache/cache_las.c +++ b/src/cache/cache_las.c @@ -63,6 +63,7 @@ int __wt_las_create(WT_SESSION_IMPL *session) { WT_CONNECTION_IMPL *conn; + WT_DECL_RET; uint32_t session_flags; const char *drop_cfg[] = { WT_CONFIG_BASE(session, WT_SESSION_drop), "force=true", NULL }; @@ -80,7 +81,9 @@ __wt_las_create(WT_SESSION_IMPL *session) * * Discard any previous incarnation of the table. */ - WT_RET(__wt_session_drop(session, WT_LAS_URI, drop_cfg)); + WT_WITH_SCHEMA_LOCK(session, + ret = __wt_schema_drop(session, WT_LAS_URI, drop_cfg)); + WT_RET(ret); /* Re-create the table. */ WT_RET(__wt_session_create(session, WT_LAS_URI, WT_LAS_FORMAT)); diff --git a/src/checksum/software/checksum.c b/src/checksum/software/checksum.c index 30362584a3e..65ed74bbe06 100644 --- a/src/checksum/software/checksum.c +++ b/src/checksum/software/checksum.c @@ -1101,6 +1101,7 @@ static const uint32_t g_crc_slicing[8][256] = { */ uint32_t __wt_checksum_sw(const void *chunk, size_t len) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { uint32_t crc, next; size_t nqwords; diff --git a/src/config/config_collapse.c b/src/config/config_collapse.c index 7fe78d06ba7..5abe7556a03 100644 --- a/src/config/config_collapse.c +++ b/src/config/config_collapse.c @@ -372,6 +372,7 @@ __config_merge_cmp(const void *a, const void *b) int __wt_config_merge(WT_SESSION_IMPL *session, const char **cfg, const char *cfg_strip, const char **config_ret) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_CONFIG_MERGE merge; WT_DECL_RET; diff --git a/src/config/config_def.c b/src/config/config_def.c index 35fea16b1a5..9d886cbf0bd 100644 --- a/src/config/config_def.c +++ b/src/config/config_def.c @@ -224,6 +224,9 @@ static const WT_CONFIG_CHECK }; static const WT_CONFIG_CHECK confchk_WT_SESSION_create[] = { + { "access_pattern_hint", "string", + NULL, "choices=[\"none\",\"random\",\"sequential\"]", + NULL, 0 }, { "allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0 }, @@ -371,6 +374,7 @@ static const WT_CONFIG_CHECK confchk_WT_SESSION_snapshot[] = { { "drop", "category", NULL, NULL, confchk_WT_SESSION_snapshot_drop_subconfigs, 4 }, + { "include_updates", "boolean", NULL, NULL, NULL, 0 }, { "name", "string", NULL, NULL, NULL, 0 }, { NULL, NULL, NULL, NULL, NULL, 0 } }; @@ -400,6 +404,9 @@ static const WT_CONFIG_CHECK confchk_colgroup_meta[] = { }; static const WT_CONFIG_CHECK confchk_file_config[] = { + { "access_pattern_hint", "string", + NULL, "choices=[\"none\",\"random\",\"sequential\"]", + NULL, 0 }, { "allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0 }, @@ -458,6 +465,9 @@ static const WT_CONFIG_CHECK confchk_file_config[] = { }; static const WT_CONFIG_CHECK confchk_file_meta[] = { + { "access_pattern_hint", "string", + NULL, "choices=[\"none\",\"random\",\"sequential\"]", + NULL, 0 }, { "allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0 }, @@ -536,6 +546,9 @@ static const WT_CONFIG_CHECK confchk_index_meta[] = { }; static const WT_CONFIG_CHECK confchk_lsm_meta[] = { + { "access_pattern_hint", "string", + NULL, "choices=[\"none\",\"random\",\"sequential\"]", + NULL, 0 }, { "allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0 }, @@ -1074,12 +1087,13 @@ static const WT_CONFIG_ENTRY config_entries[] = { confchk_WT_SESSION_compact, 1 }, { "WT_SESSION.create", - "allocation_size=4KB,app_metadata=,block_allocation=best," - "block_compressor=,cache_resident=false,checksum=uncompressed," - "colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=," - "name=),exclusive=false,extractor=,format=btree,huffman_key=," - "huffman_value=,ignore_in_memory_cache_size=false,immutable=false" - ",internal_item_max=0,internal_key_max=0," + "access_pattern_hint=none,allocation_size=4KB,app_metadata=," + "block_allocation=best,block_compressor=,cache_resident=false," + "checksum=uncompressed,colgroups=,collator=,columns=,dictionary=0" + ",encryption=(keyid=,name=),exclusive=false,extractor=," + "format=btree,huffman_key=,huffman_value=," + "ignore_in_memory_cache_size=false,immutable=false," + "internal_item_max=0,internal_key_max=0," "internal_key_truncate=true,internal_page_max=4KB,key_format=u," "key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB," "leaf_value_max=0,log=(enabled=true),lsm=(auto_throttle=true," @@ -1089,7 +1103,7 @@ static const WT_CONFIG_ENTRY config_entries[] = { "os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false," "prefix_compression_min=4,source=,split_deepen_min_child=0," "split_deepen_per_child=0,split_pct=75,type=file,value_format=u", - confchk_WT_SESSION_create, 41 + confchk_WT_SESSION_create, 42 }, { "WT_SESSION.drop", "checkpoint_wait=true,force=false,lock_wait=true," @@ -1142,8 +1156,8 @@ static const WT_CONFIG_ENTRY config_entries[] = { confchk_WT_SESSION_salvage, 1 }, { "WT_SESSION.snapshot", - "drop=(all=false,before=,names=,to=),name=", - confchk_WT_SESSION_snapshot, 2 + "drop=(all=false,before=,names=,to=),include_updates=false,name=", + confchk_WT_SESSION_snapshot, 3 }, { "WT_SESSION.strerror", "", @@ -1171,10 +1185,26 @@ static const WT_CONFIG_ENTRY config_entries[] = { confchk_colgroup_meta, 5 }, { "file.config", - "allocation_size=4KB,app_metadata=,block_allocation=best," - "block_compressor=,cache_resident=false,checksum=uncompressed," - "collator=,columns=,dictionary=0,encryption=(keyid=,name=)," - "format=btree,huffman_key=,huffman_value=," + "access_pattern_hint=none,allocation_size=4KB,app_metadata=," + "block_allocation=best,block_compressor=,cache_resident=false," + "checksum=uncompressed,collator=,columns=,dictionary=0," + "encryption=(keyid=,name=),format=btree,huffman_key=," + "huffman_value=,ignore_in_memory_cache_size=false," + "internal_item_max=0,internal_key_max=0," + "internal_key_truncate=true,internal_page_max=4KB,key_format=u," + "key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB," + "leaf_value_max=0,log=(enabled=true),memory_page_max=5MB," + "os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false," + "prefix_compression_min=4,split_deepen_min_child=0," + "split_deepen_per_child=0,split_pct=75,value_format=u", + confchk_file_config, 35 + }, + { "file.meta", + "access_pattern_hint=none,allocation_size=4KB,app_metadata=," + "block_allocation=best,block_compressor=,cache_resident=false," + "checkpoint=,checkpoint_lsn=,checksum=uncompressed,collator=," + "columns=,dictionary=0,encryption=(keyid=,name=),format=btree," + "huffman_key=,huffman_value=,id=," "ignore_in_memory_cache_size=false,internal_item_max=0," "internal_key_max=0,internal_key_truncate=true," "internal_page_max=4KB,key_format=u,key_gap=10,leaf_item_max=0," @@ -1182,24 +1212,8 @@ static const WT_CONFIG_ENTRY config_entries[] = { "log=(enabled=true),memory_page_max=5MB,os_cache_dirty_max=0," "os_cache_max=0,prefix_compression=false,prefix_compression_min=4" ",split_deepen_min_child=0,split_deepen_per_child=0,split_pct=75," - "value_format=u", - confchk_file_config, 34 - }, - { "file.meta", - "allocation_size=4KB,app_metadata=,block_allocation=best," - "block_compressor=,cache_resident=false,checkpoint=," - "checkpoint_lsn=,checksum=uncompressed,collator=,columns=," - "dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key=" - ",huffman_value=,id=,ignore_in_memory_cache_size=false," - "internal_item_max=0,internal_key_max=0," - "internal_key_truncate=true,internal_page_max=4KB,key_format=u," - "key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB," - "leaf_value_max=0,log=(enabled=true),memory_page_max=5MB," - "os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false," - "prefix_compression_min=4,split_deepen_min_child=0," - "split_deepen_per_child=0,split_pct=75,value_format=u," - "version=(major=0,minor=0)", - confchk_file_meta, 38 + "value_format=u,version=(major=0,minor=0)", + confchk_file_meta, 39 }, { "index.meta", "app_metadata=,collator=,columns=,extractor=,immutable=false," @@ -1207,23 +1221,23 @@ static const WT_CONFIG_ENTRY config_entries[] = { confchk_index_meta, 10 }, { "lsm.meta", - "allocation_size=4KB,app_metadata=,block_allocation=best," - "block_compressor=,cache_resident=false,checksum=uncompressed," - "chunks=,collator=,columns=,dictionary=0,encryption=(keyid=," - "name=),format=btree,huffman_key=,huffman_value=," - "ignore_in_memory_cache_size=false,internal_item_max=0," - "internal_key_max=0,internal_key_truncate=true," - "internal_page_max=4KB,key_format=u,key_gap=10,last=," - "leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB," - "leaf_value_max=0,log=(enabled=true),lsm=(auto_throttle=true," - "bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8," - "bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB," - "chunk_size=10MB,merge_max=15,merge_min=0),memory_page_max=5MB," - "old_chunks=,os_cache_dirty_max=0,os_cache_max=0," - "prefix_compression=false,prefix_compression_min=4," - "split_deepen_min_child=0,split_deepen_per_child=0,split_pct=75," - "value_format=u", - confchk_lsm_meta, 38 + "access_pattern_hint=none,allocation_size=4KB,app_metadata=," + "block_allocation=best,block_compressor=,cache_resident=false," + "checksum=uncompressed,chunks=,collator=,columns=,dictionary=0," + "encryption=(keyid=,name=),format=btree,huffman_key=," + "huffman_value=,ignore_in_memory_cache_size=false," + "internal_item_max=0,internal_key_max=0," + "internal_key_truncate=true,internal_page_max=4KB,key_format=u," + "key_gap=10,last=,leaf_item_max=0,leaf_key_max=0," + "leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true)," + "lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16," + "bloom_config=,bloom_hash_count=8,bloom_oldest=false," + "chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_max=15," + "merge_min=0),memory_page_max=5MB,old_chunks=," + "os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false," + "prefix_compression_min=4,split_deepen_min_child=0," + "split_deepen_per_child=0,split_pct=75,value_format=u", + confchk_lsm_meta, 39 }, { "table.meta", "app_metadata=,colgroups=,collator=,columns=,key_format=u," diff --git a/src/cursor/cur_backup.c b/src/cursor/cur_backup.c index 3585082644f..456aa2e0f02 100644 --- a/src/cursor/cur_backup.c +++ b/src/cursor/cur_backup.c @@ -144,8 +144,8 @@ __wt_curbackup_open(WT_SESSION_IMPL *session, * Start the backup and fill in the cursor's list. Acquire the schema * lock, we need a consistent view when creating a copy. */ - WT_WITH_CHECKPOINT_LOCK(session, ret, - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_CHECKPOINT_LOCK(session, + WT_WITH_SCHEMA_LOCK(session, ret = __backup_start(session, cb, cfg))); WT_ERR(ret); diff --git a/src/cursor/cur_file.c b/src/cursor/cur_file.c index 9fc466f4c76..0ec917fbf95 100644 --- a/src/cursor/cur_file.c +++ b/src/cursor/cur_file.c @@ -559,7 +559,7 @@ __wt_curfile_open(WT_SESSION_IMPL *session, const char *uri, * get the handle while holding the checkpoint lock. */ if (LF_ISSET(WT_DHANDLE_EXCLUSIVE) && checkpoint_wait) - WT_WITH_CHECKPOINT_LOCK(session, ret, + WT_WITH_CHECKPOINT_LOCK(session, ret = __wt_session_get_btree_ckpt( session, uri, cfg, flags)); else diff --git a/src/cursor/cur_json.c b/src/cursor/cur_json.c index 4ba10ddabb0..d590dbd828a 100644 --- a/src/cursor/cur_json.c +++ b/src/cursor/cur_json.c @@ -315,6 +315,7 @@ __wt_json_close(WT_SESSION_IMPL *session, WT_CURSOR *cursor) */ size_t __wt_json_unpack_char(u_char ch, u_char *buf, size_t bufsz, bool force_unicode) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { u_char abbrev; @@ -357,8 +358,8 @@ __wt_json_unpack_char(u_char ch, u_char *buf, size_t bufsz, bool force_unicode) *buf++ = 'u'; *buf++ = '0'; *buf++ = '0'; - *buf++ = __wt_hex[(ch & 0xf0) >> 4]; - *buf++ = __wt_hex[ch & 0x0f]; + *buf++ = __wt_hex((ch & 0xf0) >> 4); + *buf++ = __wt_hex(ch & 0x0f); } return (6); } @@ -452,6 +453,7 @@ __wt_json_column_init(WT_CURSOR *cursor, const char *keyformat, int __wt_json_token(WT_SESSION *wt_session, const char *src, int *toktype, const char **tokstart, size_t *toklen) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_SESSION_IMPL *session; int result; @@ -580,6 +582,7 @@ __wt_json_token(WT_SESSION *wt_session, const char *src, int *toktype, */ const char * __wt_json_tokname(int toktype) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { switch (toktype) { case 0: return ("<EOF>"); @@ -817,6 +820,7 @@ __wt_json_to_item(WT_SESSION_IMPL *session, const char *jstr, */ ssize_t __wt_json_strlen(const char *src, size_t srclen) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { const char *srcend; size_t dstlen; @@ -857,8 +861,9 @@ __wt_json_strlen(const char *src, size_t srclen) * bytes. If dstlen is greater than the needed size, the result if zero padded. */ int -__wt_json_strncpy(WT_SESSION *wt_session, char **pdst, size_t dstlen, - const char *src, size_t srclen) +__wt_json_strncpy(WT_SESSION *wt_session, + char **pdst, size_t dstlen, const char *src, size_t srclen) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_SESSION_IMPL *session; char ch, *dst; diff --git a/src/cursor/cur_log.c b/src/cursor/cur_log.c index 21a7f674c68..3ee6554b3c0 100644 --- a/src/cursor/cur_log.c +++ b/src/cursor/cur_log.c @@ -150,18 +150,22 @@ static int __curlog_kv(WT_SESSION_IMPL *session, WT_CURSOR *cursor) { WT_CURSOR_LOG *cl; - WT_ITEM item; - uint32_t fileid, key_count, opsize, optype; + WT_DECL_RET; + uint32_t fileid, key_count, opsize, optype, raw; cl = (WT_CURSOR_LOG *)cursor; + /* Temporarily turn off raw so we can do direct cursor operations. */ + raw = F_MASK(cursor, WT_CURSTD_RAW); + F_CLR(cursor, WT_CURSTD_RAW); + /* * If it is a commit and we have stepped over the header, peek to get * the size and optype and read out any key/value from this operation. */ if ((key_count = cl->step_count++) > 0) { - WT_RET(__wt_logop_read(session, + WT_ERR(__wt_logop_read(session, &cl->stepp, cl->stepp_end, &optype, &opsize)); - WT_RET(__curlog_op_read(session, cl, optype, opsize, &fileid)); + WT_ERR(__curlog_op_read(session, cl, optype, opsize, &fileid)); /* Position on the beginning of the next record part. */ cl->stepp += opsize; } else { @@ -181,39 +185,14 @@ __curlog_kv(WT_SESSION_IMPL *session, WT_CURSOR *cursor) * The log cursor sets the LSN and step count as the cursor key and * and log record related data in the value. The data in the value * contains any operation key/value that was in the log record. - * For the special case that the caller needs the result in raw form, - * we create packed versions of the key/value. */ - if (FLD_ISSET(cursor->flags, WT_CURSTD_RAW)) { - memset(&item, 0, sizeof(item)); - WT_RET(wiredtiger_struct_size((WT_SESSION *)session, - &item.size, WT_LOGC_KEY_FORMAT, cl->cur_lsn->l.file, - cl->cur_lsn->l.offset, key_count)); - WT_RET(__wt_realloc(session, NULL, item.size, &cl->packed_key)); - item.data = cl->packed_key; - WT_RET(wiredtiger_struct_pack((WT_SESSION *)session, - cl->packed_key, item.size, WT_LOGC_KEY_FORMAT, - cl->cur_lsn->l.file, cl->cur_lsn->l.offset, key_count)); - __wt_cursor_set_key(cursor, &item); - - WT_RET(wiredtiger_struct_size((WT_SESSION *)session, - &item.size, WT_LOGC_VALUE_FORMAT, cl->txnid, cl->rectype, - optype, fileid, cl->opkey, cl->opvalue)); - WT_RET(__wt_realloc(session, NULL, item.size, - &cl->packed_value)); - item.data = cl->packed_value; - WT_RET(wiredtiger_struct_pack((WT_SESSION *)session, - cl->packed_value, item.size, WT_LOGC_VALUE_FORMAT, - cl->txnid, cl->rectype, optype, fileid, cl->opkey, - cl->opvalue)); - __wt_cursor_set_value(cursor, &item); - } else { - __wt_cursor_set_key(cursor, cl->cur_lsn->l.file, - cl->cur_lsn->l.offset, key_count); - __wt_cursor_set_value(cursor, cl->txnid, cl->rectype, optype, - fileid, cl->opkey, cl->opvalue); - } - return (0); + __wt_cursor_set_key(cursor, cl->cur_lsn->l.file, cl->cur_lsn->l.offset, + key_count); + __wt_cursor_set_value(cursor, cl->txnid, cl->rectype, optype, fileid, + cl->opkey, cl->opvalue); + +err: F_SET(cursor, raw); + return (ret); } /* @@ -264,17 +243,19 @@ __curlog_search(WT_CURSOR *cursor) WT_DECL_RET; WT_LSN key; WT_SESSION_IMPL *session; - uint32_t counter, key_file, key_offset; + uint32_t counter, key_file, key_offset, raw; cl = (WT_CURSOR_LOG *)cursor; + /* Temporarily turn off raw so we can do direct cursor operations. */ + raw = F_MASK(cursor, WT_CURSTD_RAW); + F_CLR(cursor, WT_CURSTD_RAW); CURSOR_API_CALL(cursor, session, search, NULL); /* * !!! We are ignoring the counter and only searching based on the LSN. */ - WT_ERR(__wt_cursor_get_key((WT_CURSOR *)cl, - &key_file, &key_offset, &counter)); + WT_ERR(__wt_cursor_get_key(cursor, &key_file, &key_offset, &counter)); WT_SET_LSN(&key, key_file, key_offset); ret = __wt_log_scan(session, &key, WT_LOGSCAN_ONE, __curlog_logrec, cl); @@ -285,7 +266,8 @@ __curlog_search(WT_CURSOR *cursor) WT_STAT_CONN_INCR(session, cursor_search); WT_STAT_DATA_INCR(session, cursor_search); -err: API_END_RET(session, ret); +err: F_SET(cursor, raw); + API_END_RET(session, ret); } /* diff --git a/src/cursor/cur_table.c b/src/cursor/cur_table.c index 502d93639a8..466a929596e 100644 --- a/src/cursor/cur_table.c +++ b/src/cursor/cur_table.c @@ -763,16 +763,13 @@ err: API_END_RET(session, ret); static int __curtable_complete(WT_SESSION_IMPL *session, WT_TABLE *table) { - WT_DECL_RET; bool complete; if (table->cg_complete) return (0); /* If the table is incomplete, wait on the table lock and recheck. */ - complete = false; - WT_WITH_TABLE_LOCK(session, ret, complete = table->cg_complete); - WT_RET(ret); + WT_WITH_TABLE_LOCK(session, complete = table->cg_complete); if (!complete) WT_RET_MSG(session, EINVAL, "'%s' not available until all column groups are created", diff --git a/src/docs/top/main.dox b/src/docs/top/main.dox index 08f7536d540..01acc849d50 100644 --- a/src/docs/top/main.dox +++ b/src/docs/top/main.dox @@ -6,12 +6,12 @@ WiredTiger is an high performance, scalable, production quality, NoSQL, @section releases Releases <table> -@row{<b>WiredTiger 2.8.0</b> (current), +@row{<b>WiredTiger 2.9.0</b> (current), + <a href="releases/wiredtiger-2.9.0.tar.bz2"><b>[Release package]</b></a>, + <a href="2.9.0/index.html"><b>[Documentation]</b></a>} +@row{<b>WiredTiger 2.8.0</b> (previous), <a href="releases/wiredtiger-2.8.0.tar.bz2"><b>[Release package]</b></a>, <a href="2.8.0/index.html"><b>[Documentation]</b></a>} -@row{<b>WiredTiger 2.7.0</b> (current), - <a href="releases/wiredtiger-2.7.0.tar.bz2"><b>[Release package]</b></a>, - <a href="2.7.0/index.html"><b>[Documentation]</b></a>} @row{<b>Development branch</b>, <a href="https://github.com/wiredtiger/wiredtiger"><b>[Source code]</b></a>, <a href="develop/index.html"><b>[Documentation]</b></a>} diff --git a/src/docs/upgrading.dox b/src/docs/upgrading.dox index caa6b036892..78d09a56ea9 100644 --- a/src/docs/upgrading.dox +++ b/src/docs/upgrading.dox @@ -1,7 +1,16 @@ /*! @page upgrading Upgrading WiredTiger applications -@section version_281 Upgrading to Version 2.8.1 +@section version_290 Upgrading to Version 2.9.0 <dl> +<dt>Changes to cursor behavior after WT_CURSOR::insert</dt> +<dd> +After a successful call to WT_CURSOR::insert, unless a cursor has record +number keys and was configured with "append=true", the cursor's key is +cleared and a subsequent call to the WT_CURSOR::get_key method will fail. +In all cursors, the value is cleared and a subsequent call to +WT_CURSOR::get_value will fail. +</dd> + <dt>Cache management defaults</dt> <dd> The default values for the \c eviction_dirty_target and \c @@ -17,6 +26,15 @@ how much work is done at the beginning of a checkpoint to make the critical section of checkpoints complete more quickly. </dd> +<dt>Change to default fadvise setting for data files</dt> +<dd> +The default behavior for data files was to advise the file system to optimize +for random access on POSIX and Windows platforms. The default is now to not +advise about access patterns. There is a new \c access_pattern_hint +configuration string available to WT_SESSION::create that can be used +to configure the old default behavior. +</dd> + <dt>Checkpoint server created checkpoint names</dt> <dd> The ::wiredtiger_open checkpoint configuration no longer supports the @@ -34,13 +52,13 @@ of the path may no longer be specified. Applications depending on the ability to set statistics log file names will require modification. </dd> -<dt>Deprecated statistics field</dt> +<dt>Removed and renamed statistics fields</dt> <dd> -The connection statistic \c WT_STAT_CONN_CACHE_BYTES_OVERFLOW has been -removed. Overflow information is now available in the -\c WT_STAT_CONN_CACHE_BYTES_OVERFLOW and \c WT_STAT_CONN_CACHE_OVERFLOW_VALUE. -Applications specifically looking for that statistic will require -modification. +WT_STAT_JOIN_ACTUAL_COUNT is renamed to WT_STAT_JOIN_ITERATED + +WT_STAT_CONN_CACHE_BYTES_OVERFLOW removed since overflow pages are not cached + +WT_STAT_CONN_CACHE_EVICTION_SERVER_NOT_EVICTING removed since all eviction threads can now be the server </dd> </dl><hr> diff --git a/src/evict/evict_file.c b/src/evict/evict_file.c index b0cd50cc655..17b038fb003 100644 --- a/src/evict/evict_file.c +++ b/src/evict/evict_file.c @@ -57,7 +57,8 @@ __wt_evict_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop) * error, retrying later. */ if (syncop == WT_SYNC_CLOSE && __wt_page_is_modified(page)) - WT_ERR(__wt_reconcile(session, ref, NULL, WT_EVICTING)); + WT_ERR(__wt_reconcile( + session, ref, NULL, WT_EVICTING, NULL)); /* * We can't evict the page just returned to us (it marks our diff --git a/src/evict/evict_lru.c b/src/evict/evict_lru.c index ee30bd4b5b3..5b857566299 100644 --- a/src/evict/evict_lru.c +++ b/src/evict/evict_lru.c @@ -271,7 +271,7 @@ __wt_evict_thread_run(WT_SESSION_IMPL *session, WT_THREAD *thread) * can be closed. */ if (thread->id == 0) { - WT_WITH_PASS_LOCK(session, ret, + WT_WITH_PASS_LOCK(session, ret = __evict_clear_all_walks(session)); WT_ERR(ret); /* @@ -351,8 +351,15 @@ __evict_server(WT_SESSION_IMPL *session, bool *did_work) cache->pages_evicted = cache->pages_evict; #ifdef HAVE_DIAGNOSTIC __wt_epoch(session, &cache->stuck_ts); - } else { - /* After being stuck for 5 minutes, give up. */ + } else if (!F_ISSET(conn, WT_CONN_IN_MEMORY)) { + /* + * After being stuck for 5 minutes, give up. + * + * We don't do this check for in-memory workloads because + * application threads are not blocked by the cache being full. + * If the cache becomes full of clean pages, we can be + * servicing reads while the cache appears stuck to eviction. + */ __wt_epoch(session, &now); if (WT_TIMEDIFF_SEC(now, cache->stuck_ts) > 300) { ret = ETIMEDOUT; @@ -767,7 +774,7 @@ __wt_evict_file_exclusive_on(WT_SESSION_IMPL *session) (void)__wt_atomic_addv32(&cache->pass_intr, 1); /* Clear any existing LRU eviction walk for the file. */ - WT_WITH_PASS_LOCK(session, ret, + WT_WITH_PASS_LOCK(session, ret = __evict_clear_walk(session, true)); (void)__wt_atomic_subv32(&cache->pass_intr, 1); WT_ERR(ret); diff --git a/src/evict/evict_page.c b/src/evict/evict_page.c index b15e1c1f26c..56a0fcfc790 100644 --- a/src/evict/evict_page.c +++ b/src/evict/evict_page.c @@ -37,7 +37,7 @@ __evict_exclusive(WT_SESSION_IMPL *session, WT_REF *ref) * Check for a hazard pointer indicating another thread is using the * page, meaning the page cannot be evicted. */ - if (__wt_page_hazard_check(session, ref->page) == NULL) + if (__wt_page_hazard_check(session, ref) == NULL) return (0); WT_STAT_DATA_INCR(session, cache_eviction_hazard); @@ -66,7 +66,7 @@ __wt_page_release_evict(WT_SESSION_IMPL *session, WT_REF *ref) * between. */ locked = __wt_atomic_casv32(&ref->state, WT_REF_MEM, WT_REF_LOCKED); - if ((ret = __wt_hazard_clear(session, page)) != 0 || !locked) { + if ((ret = __wt_hazard_clear(session, ref)) != 0 || !locked) { if (locked) ref->state = WT_REF_MEM; return (ret == 0 ? EBUSY : ret); @@ -163,19 +163,8 @@ __wt_evict(WT_SESSION_IMPL *session, WT_REF *ref, bool closing) */ WT_ERR(__evict_page_clean_update( session, ref, tree_dead || closing)); - else { - /* - * The page is not being completely evicted: instead it is - * being split or replaced. In that case, don't increment the - * count of pages evicted, which we use to decide whether - * eviction is making progress. Repeatedly rewriting the same - * page isn't progress. - */ - F_SET(session, WT_SESSION_IN_SPLIT); - ret = __evict_page_dirty_update(session, ref, closing); - F_CLR(session, WT_SESSION_IN_SPLIT); - WT_ERR(ret); - } + else + WT_ERR(__evict_page_dirty_update(session, ref, closing)); if (clean_page) { WT_STAT_CONN_INCR(session, cache_eviction_clean); @@ -407,7 +396,7 @@ __evict_review( WT_DECL_RET; WT_PAGE *page; uint32_t flags; - bool modified; + bool lookaside_retry, modified; flags = WT_EVICTING; *flagsp = flags; @@ -506,27 +495,29 @@ __evict_review( * If we have an exclusive lock (we're discarding the tree), assert * there are no updates we cannot read. * - * Don't set any other flags for internal pages: they don't have update - * lists to be saved and restored, nor can we re-create them in memory. + * Don't set any other flags for internal pages: there are no update + * lists to be saved and restored, changes can't be written into the + * lookaside table, nor can we re-create internal pages in memory. * * For leaf pages: * - * If an in-memory configuration or the page is being forcibly evicted, - * set the update-restore flag, so reconciliation will write blocks it + * In-memory pages are a known configuration. + * + * Set the update/restore flag, so reconciliation will write blocks it * can write and create a list of skipped updates for blocks it cannot - * write, along with disk images. This is how eviction of active, huge + * write, along with disk images. This is how eviction of active, huge * pages works: we take a big page and reconcile it into blocks, some of * which we write and discard, the rest of which we re-create as smaller * in-memory pages, (restoring the updates that stopped us from writing - * the block), and inserting the whole mess into the page's parent. + * the block), and inserting the whole mess into the page's parent. Set + * the flag in all cases because the incremental cost of update/restore + * in reconciliation is minimal, eviction shouldn't have picked a page + * where update/restore is necessary, absent some cache pressure. It's + * possible updates occurred after we selected this page for eviction, + * but it's unlikely and we don't try and manage that risk. * - * Otherwise, if eviction is getting pressed, configure reconciliation - * to write not-yet-globally-visible updates to the lookaside table, - * allowing the eviction of pages we'd otherwise have to retain in cache - * to support older readers. - * - * Finally, if we don't need to do eviction at the moment, create disk - * images of split pages in order to re-instantiate them. + * Additionally, if we aren't trying to free space in the cache, scrub + * the page and keep it in memory. */ cache = S2C(session)->cache; if (closing) @@ -535,25 +526,33 @@ __evict_review( if (F_ISSET(S2C(session), WT_CONN_IN_MEMORY)) LF_SET(WT_EVICT_IN_MEMORY | WT_EVICT_SCRUB | WT_EVICT_UPDATE_RESTORE); - else if (__wt_cache_stuck(session)) - LF_SET(WT_EVICT_LOOKASIDE); - else if (!__wt_txn_visible_all( - session, page->modify->update_txn) || - page->read_gen == WT_READGEN_OLDEST || - page->memory_footprint >= S2BT(session)->splitmempage) + else { LF_SET(WT_EVICT_UPDATE_RESTORE); - /* - * If we aren't trying to free space in the cache, scrub the - * page and keep it around. - */ - if (!LF_ISSET(WT_EVICT_LOOKASIDE) && - F_ISSET(cache, WT_CACHE_EVICT_SCRUB)) - LF_SET(WT_EVICT_SCRUB); + if (F_ISSET(cache, WT_CACHE_EVICT_SCRUB)) + LF_SET(WT_EVICT_SCRUB); + } } - *flagsp = flags; - WT_RET(__wt_reconcile(session, ref, NULL, flags)); + /* Reconcile the page. */ + ret = __wt_reconcile(session, ref, NULL, flags, &lookaside_retry); + + /* + * If reconciliation fails, eviction is stuck and reconciliation reports + * it might succeed if we use the lookaside table (the page didn't have + * uncommitted updates, it was not-yet-globally visible updates causing + * the problem), configure reconciliation to write those updates to the + * lookaside table, allowing the eviction of pages we'd otherwise have + * to retain in cache to support older readers. + */ + if (ret == EBUSY && __wt_cache_stuck(session) && lookaside_retry) { + LF_CLR(WT_EVICT_SCRUB | WT_EVICT_UPDATE_RESTORE); + LF_SET(WT_EVICT_LOOKASIDE); + ret = __wt_reconcile(session, ref, NULL, flags, NULL); + } + + *flagsp = flags; + WT_RET(ret); /* * Success: assert the page is clean or reconciliation was configured diff --git a/src/include/btmem.h b/src/include/btmem.h index 84c91097a99..9bd835f5d09 100644 --- a/src/include/btmem.h +++ b/src/include/btmem.h @@ -444,9 +444,6 @@ struct __wt_page { /* * Internal pages (both column- and row-store). * - * The page record number is only used by column-store, but it's - * simpler having only one kind of internal page. - * * In-memory internal pages have an array of pointers to child * structures, maintained in collated order. When a page is * read into memory, the initial list of children is stored in @@ -723,7 +720,7 @@ struct __wt_ref { * up our slot in the page's index structure. */ WT_PAGE * volatile home; /* Reference page */ - uint32_t pindex_hint; /* Reference page index hint */ + volatile uint32_t pindex_hint; /* Reference page index hint */ #define WT_REF_DISK 0 /* Page is on disk */ #define WT_REF_DELETED 1 /* Page is on disk, but deleted */ diff --git a/src/include/btree.h b/src/include/btree.h index 0e0f7b4c40a..595afc453c8 100644 --- a/src/include/btree.h +++ b/src/include/btree.h @@ -44,7 +44,7 @@ * Record numbers are stored in 64-bit unsigned integers, meaning the largest * record number is "really, really big". */ -#define WT_BTREE_MAX_OBJECT_SIZE (UINT32_MAX - 1024) +#define WT_BTREE_MAX_OBJECT_SIZE ((uint32_t)(UINT32_MAX - 1024)) /* * A location in a file is a variable-length cookie, but it has a maximum size diff --git a/src/include/btree.i b/src/include/btree.i index ad603f3ea53..e591209f39a 100644 --- a/src/include/btree.i +++ b/src/include/btree.i @@ -408,11 +408,7 @@ __wt_cache_page_evict(WT_SESSION_IMPL *session, WT_PAGE *page) /* Update pages and bytes evicted. */ (void)__wt_atomic_add64(&cache->bytes_evict, page->memory_footprint); - - if (F_ISSET(session, WT_SESSION_IN_SPLIT)) - (void)__wt_atomic_subv64(&cache->pages_inmem, 1); - else - (void)__wt_atomic_addv64(&cache->pages_evict, 1); + (void)__wt_atomic_addv64(&cache->pages_evict, 1); } /* @@ -1359,7 +1355,7 @@ __wt_page_release(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags) F_ISSET(session, WT_SESSION_NO_EVICTION) || F_ISSET(btree, WT_BTREE_NO_EVICTION) || !__wt_page_can_evict(session, ref, NULL)) - return (__wt_hazard_clear(session, page)); + return (__wt_hazard_clear(session, ref)); WT_RET_BUSY_OK(__wt_page_release_evict(session, ref)); return (0); @@ -1445,7 +1441,7 @@ __wt_page_swap_func( * Return if there's a hazard pointer to the page in the system. */ static inline WT_HAZARD * -__wt_page_hazard_check(WT_SESSION_IMPL *session, WT_PAGE *page) +__wt_page_hazard_check(WT_SESSION_IMPL *session, WT_REF *ref) { WT_CONNECTION_IMPL *conn; WT_HAZARD *hp; @@ -1476,7 +1472,7 @@ __wt_page_hazard_check(WT_SESSION_IMPL *session, WT_PAGE *page) } for (hp = s->hazard; hp < s->hazard + hazard_size; ++hp) { ++j; - if (hp->page == page) { + if (hp->ref == ref) { WT_STAT_CONN_INCRV(session, cache_hazard_walks, j); return (hp); diff --git a/src/include/cache.h b/src/include/cache.h index 9a2b83b5b57..6ea13ff63ac 100644 --- a/src/include/cache.h +++ b/src/include/cache.h @@ -185,9 +185,9 @@ struct __wt_cache { uint32_t flags; }; -#define WT_WITH_PASS_LOCK(session, ret, op) do { \ +#define WT_WITH_PASS_LOCK(session, op) do { \ WT_ASSERT(session, !F_ISSET(session, WT_SESSION_LOCKED_PASS)); \ - WT_WITH_LOCK(session, ret, \ + WT_WITH_LOCK_WAIT(session, \ &cache->evict_pass_lock, WT_SESSION_LOCKED_PASS, op); \ } while (0) diff --git a/src/include/compact.h b/src/include/compact.h index 2bba52e7173..96797f6b275 100644 --- a/src/include/compact.h +++ b/src/include/compact.h @@ -6,8 +6,10 @@ * See the file LICENSE for redistribution information. */ -struct __wt_compact { +struct __wt_compact_state { uint32_t lsm_count; /* Number of LSM trees seen */ uint32_t file_count; /* Number of files seen */ uint64_t max_time; /* Configured timeout */ + + struct timespec begin; /* Starting time */ }; diff --git a/src/include/dhandle.h b/src/include/dhandle.h index 001eb268f86..d7802bb319b 100644 --- a/src/include/dhandle.h +++ b/src/include/dhandle.h @@ -62,6 +62,8 @@ struct __wt_data_handle { const char *checkpoint; /* Checkpoint name (or NULL) */ const char **cfg; /* Configuration information */ + bool compact_skip; /* If the handle failed to compact */ + WT_DATA_SOURCE *dsrc; /* Data source for this handle */ void *handle; /* Generic handle */ diff --git a/src/include/extern.h b/src/include/extern.h index ef2e9efa9fd..7dce310dabf 100644 --- a/src/include/extern.h +++ b/src/include/extern.h @@ -1,632 +1,632 @@ /* DO NOT EDIT: automatically built by dist/s_prototypes. */ -extern void __wt_async_stats_update(WT_SESSION_IMPL *session); -extern int __wt_async_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_async_reconfig(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_async_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_async_flush(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_async_new_op(WT_SESSION_IMPL *session, const char *uri, const char *config, const char *cfg[], WT_ASYNC_CALLBACK *cb, WT_ASYNC_OP_IMPL **opp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_async_op_enqueue(WT_SESSION_IMPL *session, WT_ASYNC_OP_IMPL *op) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_async_op_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern WT_THREAD_RET __wt_async_worker(void *arg); -extern int __wt_block_addr_to_buffer(WT_BLOCK *block, uint8_t **pp, wt_off_t offset, uint32_t size, uint32_t checksum) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_buffer_to_addr(WT_BLOCK *block, const uint8_t *p, wt_off_t *offsetp, uint32_t *sizep, uint32_t *checksump) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_addr_invalid(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size, bool live) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_addr_string(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_buffer_to_ckpt(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *p, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_ckpt_decode(WT_SESSION *wt_session, size_t allocsize, const uint8_t *p, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_ckpt_to_buffer(WT_SESSION_IMPL *session, WT_BLOCK *block, uint8_t **pp, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_ckpt_init( WT_SESSION_IMPL *session, WT_BLOCK_CKPT *ci, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_checkpoint_load(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size, uint8_t *root_addr, size_t *root_addr_sizep, bool checkpoint) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_checkpoint_unload( WT_SESSION_IMPL *session, WT_BLOCK *block, bool checkpoint) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_block_ckpt_destroy(WT_SESSION_IMPL *session, WT_BLOCK_CKPT *ci); -extern int __wt_block_checkpoint(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, WT_CKPT *ckptbase, bool data_checksum) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_checkpoint_resolve(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_compact_start(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_compact_end(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_compact_skip(WT_SESSION_IMPL *session, WT_BLOCK *block, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_compact_page_skip(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_misplaced(WT_SESSION_IMPL *session, WT_BLOCK *block, const char *tag, wt_off_t offset, uint32_t size, bool live) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_off_remove_overlap(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, wt_off_t off, wt_off_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_alloc( WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t *offp, wt_off_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_free(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_off_free( WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t offset, wt_off_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_extlist_check( WT_SESSION_IMPL *session, WT_EXTLIST *al, WT_EXTLIST *bl) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_extlist_overlap( WT_SESSION_IMPL *session, WT_BLOCK *block, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_extlist_merge(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *a, WT_EXTLIST *b) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_insert_ext(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, wt_off_t off, wt_off_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_extlist_read_avail(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, wt_off_t ckpt_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_extlist_read(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, wt_off_t ckpt_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_extlist_write(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, WT_EXTLIST *additional) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_extlist_truncate( WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_extlist_init(WT_SESSION_IMPL *session, WT_EXTLIST *el, const char *name, const char *extname, bool track_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_block_extlist_free(WT_SESSION_IMPL *session, WT_EXTLIST *el); -extern int __wt_block_map(WT_SESSION_IMPL *session, WT_BLOCK *block, void *mapped_regionp, size_t *lengthp, void *mapped_cookiep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_unmap(WT_SESSION_IMPL *session, WT_BLOCK *block, void *mapped_region, size_t length, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_manager_open(WT_SESSION_IMPL *session, const char *filename, const char *cfg[], bool forced_salvage, bool readonly, uint32_t allocsize, WT_BM **bmp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_panic(WT_SESSION_IMPL *session, int error, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_manager_drop( WT_SESSION_IMPL *session, const char *filename, bool durable) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_manager_create( WT_SESSION_IMPL *session, const char *filename, uint32_t allocsize) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_block_configure_first_fit(WT_BLOCK *block, bool on); -extern int __wt_block_open(WT_SESSION_IMPL *session, const char *filename, const char *cfg[], bool forced_salvage, bool readonly, uint32_t allocsize, WT_BLOCK **blockp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_close(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_desc_write(WT_SESSION_IMPL *session, WT_FH *fh, uint32_t allocsize) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_block_stat(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_DSRC_STATS *stats); -extern int __wt_block_manager_size(WT_BM *bm, WT_SESSION_IMPL *session, wt_off_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_manager_named_size( WT_SESSION_IMPL *session, const char *name, wt_off_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bm_preload( WT_BM *bm, WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bm_read(WT_BM *bm, WT_SESSION_IMPL *session, WT_ITEM *buf, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_read_off_blind( WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_off_t offset) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_read_off(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_off_t offset, uint32_t size, uint32_t checksum) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_ext_alloc(WT_SESSION_IMPL *session, WT_EXT **extp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_block_ext_free(WT_SESSION_IMPL *session, WT_EXT *ext); -extern int __wt_block_size_alloc(WT_SESSION_IMPL *session, WT_SIZE **szp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_block_size_free(WT_SESSION_IMPL *session, WT_SIZE *sz); -extern int __wt_block_ext_prealloc(WT_SESSION_IMPL *session, u_int max) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_ext_discard(WT_SESSION_IMPL *session, u_int max) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_salvage_start(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_salvage_end(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern bool __wt_block_offset_invalid(WT_BLOCK *block, wt_off_t offset, uint32_t size); -extern int __wt_block_salvage_next(WT_SESSION_IMPL *session, WT_BLOCK *block, uint8_t *addr, size_t *addr_sizep, bool *eofp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_salvage_valid(WT_SESSION_IMPL *session, WT_BLOCK *block, uint8_t *addr, size_t addr_size, bool valid) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_verify_start(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_CKPT *ckptbase, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_verify_end(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_verify_ckpt_load( WT_SESSION_IMPL *session, WT_BLOCK *block, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_verify_ckpt_unload(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_verify_addr(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_truncate(WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t len) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_discard(WT_SESSION_IMPL *session, WT_BLOCK *block, size_t added_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_write_size(WT_SESSION_IMPL *session, WT_BLOCK *block, size_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_write(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool data_checksum, bool checkpoint_io) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_block_write_off(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_off_t *offsetp, uint32_t *sizep, uint32_t *checksump, bool data_checksum, bool checkpoint_io, bool caller_locked) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bloom_create( WT_SESSION_IMPL *session, const char *uri, const char *config, uint64_t count, uint32_t factor, uint32_t k, WT_BLOOM **bloomp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bloom_open(WT_SESSION_IMPL *session, const char *uri, uint32_t factor, uint32_t k, WT_CURSOR *owner, WT_BLOOM **bloomp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_bloom_insert(WT_BLOOM *bloom, WT_ITEM *key); -extern int __wt_bloom_finalize(WT_BLOOM *bloom) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_bloom_hash(WT_BLOOM *bloom, WT_ITEM *key, WT_BLOOM_HASH *bhash); -extern int __wt_bloom_hash_get(WT_BLOOM *bloom, WT_BLOOM_HASH *bhash) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bloom_get(WT_BLOOM *bloom, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bloom_inmem_get(WT_BLOOM *bloom, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bloom_intersection(WT_BLOOM *bloom, WT_BLOOM *other) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bloom_close(WT_BLOOM *bloom) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bloom_drop(WT_BLOOM *bloom, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_compact(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_compact_page_skip(WT_SESSION_IMPL *session, WT_REF *ref, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_key_order_check( WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, bool next) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_key_order_init(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cursor_key_order_reset(WT_CURSOR_BTREE *cbt); -extern void __wt_btcur_iterate_setup(WT_CURSOR_BTREE *cbt); -extern int __wt_btcur_next(WT_CURSOR_BTREE *cbt, bool truncating) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_prev(WT_CURSOR_BTREE *cbt, bool truncating) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_reset(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_search(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_search_near(WT_CURSOR_BTREE *cbt, int *exactp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_insert(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_update_check(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_remove(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_update(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_next_random(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_compare(WT_CURSOR_BTREE *a_arg, WT_CURSOR_BTREE *b_arg, int *cmpp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_equals(WT_CURSOR_BTREE *a_arg, WT_CURSOR_BTREE *b_arg, int *equalp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btcur_range_truncate(WT_CURSOR_BTREE *start, WT_CURSOR_BTREE *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_btcur_init(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt); -extern void __wt_btcur_open(WT_CURSOR_BTREE *cbt); -extern int __wt_btcur_close(WT_CURSOR_BTREE *cbt, bool lowlevel) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_set_verbose(WT_SESSION_IMPL *session, const char *v) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_addr_print( WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_addr(WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_offset_blind( WT_SESSION_IMPL *session, wt_off_t offset, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_offset(WT_SESSION_IMPL *session, wt_off_t offset, uint32_t size, uint32_t checksum, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_disk( WT_SESSION_IMPL *session, const WT_PAGE_HEADER *dsk, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_tree_shape( WT_SESSION_IMPL *session, WT_PAGE *page, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_tree_all( WT_SESSION_IMPL *session, WT_BTREE *btree, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_tree( WT_SESSION_IMPL *session, WT_BTREE *btree, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_debug_page(WT_SESSION_IMPL *session, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_delete_page(WT_SESSION_IMPL *session, WT_REF *ref, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_delete_page_rollback(WT_SESSION_IMPL *session, WT_REF *ref); -extern bool __wt_delete_page_skip(WT_SESSION_IMPL *session, WT_REF *ref, bool visible_all); -extern int __wt_delete_page_instantiate(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_ref_out(WT_SESSION_IMPL *session, WT_REF *ref); -extern void __wt_page_out(WT_SESSION_IMPL *session, WT_PAGE **pagep); -extern void __wt_free_ref( WT_SESSION_IMPL *session, WT_REF *ref, int page_type, bool free_pages); -extern void __wt_free_ref_index(WT_SESSION_IMPL *session, WT_PAGE *page, WT_PAGE_INDEX *pindex, bool free_pages); -extern void __wt_free_update_list(WT_SESSION_IMPL *session, WT_UPDATE *upd); -extern int __wt_btree_open(WT_SESSION_IMPL *session, const char *op_cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btree_close(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_root_ref_init(WT_REF *root_ref, WT_PAGE *root, bool is_recno); -extern int __wt_btree_tree_open( WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btree_new_leaf_page(WT_SESSION_IMPL *session, WT_PAGE **pagep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_btree_evictable(WT_SESSION_IMPL *session, bool on); -extern int __wt_btree_huffman_open(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_btree_huffman_close(WT_SESSION_IMPL *session); -extern int __wt_bt_read(WT_SESSION_IMPL *session, WT_ITEM *buf, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool checkpoint, bool checkpoint_io, bool compressed) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern const char *__wt_page_type_string(u_int type); -extern const char *__wt_cell_type_string(uint8_t type); -extern const char *__wt_page_addr_string(WT_SESSION_IMPL *session, WT_REF *ref, WT_ITEM *buf); -extern const char *__wt_addr_string(WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size, WT_ITEM *buf); -extern int __wt_ovfl_read(WT_SESSION_IMPL *session, WT_PAGE *page, WT_CELL_UNPACK *unpack, WT_ITEM *store) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ovfl_cache(WT_SESSION_IMPL *session, WT_PAGE *page, void *cookie, WT_CELL_UNPACK *vpack) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ovfl_discard(WT_SESSION_IMPL *session, WT_CELL *cell) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_page_alloc(WT_SESSION_IMPL *session, uint8_t type, uint32_t alloc_entries, bool alloc_refs, WT_PAGE **pagep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_page_inmem(WT_SESSION_IMPL *session, WT_REF *ref, const void *image, size_t memsize, uint32_t flags, WT_PAGE **pagep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_las_remove_block(WT_SESSION_IMPL *session, WT_CURSOR *cursor, uint32_t btree_id, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern void __wt_async_stats_update(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_async_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_async_reconfig(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_async_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_async_flush(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_async_new_op(WT_SESSION_IMPL *session, const char *uri, const char *config, const char *cfg[], WT_ASYNC_CALLBACK *cb, WT_ASYNC_OP_IMPL **opp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_async_op_enqueue(WT_SESSION_IMPL *session, WT_ASYNC_OP_IMPL *op) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_async_op_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern WT_THREAD_RET __wt_async_worker(void *arg) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_addr_to_buffer(WT_BLOCK *block, uint8_t **pp, wt_off_t offset, uint32_t size, uint32_t checksum) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_buffer_to_addr(WT_BLOCK *block, const uint8_t *p, wt_off_t *offsetp, uint32_t *sizep, uint32_t *checksump) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_addr_invalid(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size, bool live) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_addr_string(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_buffer_to_ckpt(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *p, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_ckpt_decode(WT_SESSION *wt_session, size_t allocsize, const uint8_t *p, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_block_ckpt_to_buffer(WT_SESSION_IMPL *session, WT_BLOCK *block, uint8_t **pp, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_ckpt_init( WT_SESSION_IMPL *session, WT_BLOCK_CKPT *ci, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_checkpoint_load(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size, uint8_t *root_addr, size_t *root_addr_sizep, bool checkpoint) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_checkpoint_unload( WT_SESSION_IMPL *session, WT_BLOCK *block, bool checkpoint) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_block_ckpt_destroy(WT_SESSION_IMPL *session, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_checkpoint(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, WT_CKPT *ckptbase, bool data_checksum) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_checkpoint_resolve(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_compact_start(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_compact_end(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_compact_skip(WT_SESSION_IMPL *session, WT_BLOCK *block, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_compact_page_skip(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_misplaced(WT_SESSION_IMPL *session, WT_BLOCK *block, const char *tag, wt_off_t offset, uint32_t size, bool live) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_off_remove_overlap(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, wt_off_t off, wt_off_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_alloc( WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t *offp, wt_off_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_free(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_off_free( WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t offset, wt_off_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_extlist_check( WT_SESSION_IMPL *session, WT_EXTLIST *al, WT_EXTLIST *bl) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_extlist_overlap( WT_SESSION_IMPL *session, WT_BLOCK *block, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_extlist_merge(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *a, WT_EXTLIST *b) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_insert_ext(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, wt_off_t off, wt_off_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_extlist_read_avail(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, wt_off_t ckpt_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_extlist_read(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, wt_off_t ckpt_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_extlist_write(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el, WT_EXTLIST *additional) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_extlist_truncate( WT_SESSION_IMPL *session, WT_BLOCK *block, WT_EXTLIST *el) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_extlist_init(WT_SESSION_IMPL *session, WT_EXTLIST *el, const char *name, const char *extname, bool track_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_block_extlist_free(WT_SESSION_IMPL *session, WT_EXTLIST *el) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_map(WT_SESSION_IMPL *session, WT_BLOCK *block, void *mapped_regionp, size_t *lengthp, void *mapped_cookiep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_unmap(WT_SESSION_IMPL *session, WT_BLOCK *block, void *mapped_region, size_t length, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_manager_open(WT_SESSION_IMPL *session, const char *filename, const char *cfg[], bool forced_salvage, bool readonly, uint32_t allocsize, WT_BM **bmp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_panic(WT_SESSION_IMPL *session, int error, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_manager_drop( WT_SESSION_IMPL *session, const char *filename, bool durable) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_manager_create( WT_SESSION_IMPL *session, const char *filename, uint32_t allocsize) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_block_configure_first_fit(WT_BLOCK *block, bool on) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_open(WT_SESSION_IMPL *session, const char *filename, const char *cfg[], bool forced_salvage, bool readonly, uint32_t allocsize, WT_BLOCK **blockp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_close(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_desc_write(WT_SESSION_IMPL *session, WT_FH *fh, uint32_t allocsize) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_block_stat(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_DSRC_STATS *stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_manager_size(WT_BM *bm, WT_SESSION_IMPL *session, wt_off_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_manager_named_size( WT_SESSION_IMPL *session, const char *name, wt_off_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bm_preload( WT_BM *bm, WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bm_read(WT_BM *bm, WT_SESSION_IMPL *session, WT_ITEM *buf, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_read_off_blind( WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_off_t offset) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_read_off(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_off_t offset, uint32_t size, uint32_t checksum) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_ext_alloc(WT_SESSION_IMPL *session, WT_EXT **extp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_block_ext_free(WT_SESSION_IMPL *session, WT_EXT *ext) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_size_alloc(WT_SESSION_IMPL *session, WT_SIZE **szp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_block_size_free(WT_SESSION_IMPL *session, WT_SIZE *sz) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_ext_prealloc(WT_SESSION_IMPL *session, u_int max) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_ext_discard(WT_SESSION_IMPL *session, u_int max) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_salvage_start(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_salvage_end(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_block_offset_invalid(WT_BLOCK *block, wt_off_t offset, uint32_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_salvage_next(WT_SESSION_IMPL *session, WT_BLOCK *block, uint8_t *addr, size_t *addr_sizep, bool *eofp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_salvage_valid(WT_SESSION_IMPL *session, WT_BLOCK *block, uint8_t *addr, size_t addr_size, bool valid) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_verify_start(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_CKPT *ckptbase, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_verify_end(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_verify_ckpt_load( WT_SESSION_IMPL *session, WT_BLOCK *block, WT_BLOCK_CKPT *ci) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_verify_ckpt_unload(WT_SESSION_IMPL *session, WT_BLOCK *block) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_verify_addr(WT_SESSION_IMPL *session, WT_BLOCK *block, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_truncate(WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t len) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_discard(WT_SESSION_IMPL *session, WT_BLOCK *block, size_t added_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_write_size(WT_SESSION_IMPL *session, WT_BLOCK *block, size_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_write(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool data_checksum, bool checkpoint_io) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_block_write_off(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_off_t *offsetp, uint32_t *sizep, uint32_t *checksump, bool data_checksum, bool checkpoint_io, bool caller_locked) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bloom_create( WT_SESSION_IMPL *session, const char *uri, const char *config, uint64_t count, uint32_t factor, uint32_t k, WT_BLOOM **bloomp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_bloom_open(WT_SESSION_IMPL *session, const char *uri, uint32_t factor, uint32_t k, WT_CURSOR *owner, WT_BLOOM **bloomp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern void __wt_bloom_insert(WT_BLOOM *bloom, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern int __wt_bloom_finalize(WT_BLOOM *bloom) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern void __wt_bloom_hash(WT_BLOOM *bloom, WT_ITEM *key, WT_BLOOM_HASH *bhash) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bloom_hash_get(WT_BLOOM *bloom, WT_BLOOM_HASH *bhash) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bloom_get(WT_BLOOM *bloom, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_bloom_inmem_get(WT_BLOOM *bloom, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bloom_intersection(WT_BLOOM *bloom, WT_BLOOM *other) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bloom_close(WT_BLOOM *bloom) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_bloom_drop(WT_BLOOM *bloom, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_compact(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_compact_page_skip(WT_SESSION_IMPL *session, WT_REF *ref, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_key_order_check( WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, bool next) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_key_order_init(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_key_order_reset(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_btcur_iterate_setup(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_next(WT_CURSOR_BTREE *cbt, bool truncating) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_prev(WT_CURSOR_BTREE *cbt, bool truncating) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_reset(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_search(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_search_near(WT_CURSOR_BTREE *cbt, int *exactp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_insert(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_update_check(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_remove(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_update(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_next_random(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_compare(WT_CURSOR_BTREE *a_arg, WT_CURSOR_BTREE *b_arg, int *cmpp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_equals(WT_CURSOR_BTREE *a_arg, WT_CURSOR_BTREE *b_arg, int *equalp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_range_truncate(WT_CURSOR_BTREE *start, WT_CURSOR_BTREE *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_btcur_init(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_btcur_open(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btcur_close(WT_CURSOR_BTREE *cbt, bool lowlevel) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_set_verbose(WT_SESSION_IMPL *session, const char *v) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_addr_print( WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_addr(WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_offset_blind( WT_SESSION_IMPL *session, wt_off_t offset, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_offset(WT_SESSION_IMPL *session, wt_off_t offset, uint32_t size, uint32_t checksum, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_disk( WT_SESSION_IMPL *session, const WT_PAGE_HEADER *dsk, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_tree_shape( WT_SESSION_IMPL *session, WT_PAGE *page, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_tree_all( WT_SESSION_IMPL *session, WT_BTREE *btree, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_tree( WT_SESSION_IMPL *session, WT_BTREE *btree, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_debug_page(WT_SESSION_IMPL *session, WT_REF *ref, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_delete_page(WT_SESSION_IMPL *session, WT_REF *ref, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_delete_page_rollback(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_delete_page_skip(WT_SESSION_IMPL *session, WT_REF *ref, bool visible_all) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_delete_page_instantiate(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_ref_out(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_page_out(WT_SESSION_IMPL *session, WT_PAGE **pagep) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_free_ref( WT_SESSION_IMPL *session, WT_REF *ref, int page_type, bool free_pages) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_free_ref_index(WT_SESSION_IMPL *session, WT_PAGE *page, WT_PAGE_INDEX *pindex, bool free_pages) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_free_update_list(WT_SESSION_IMPL *session, WT_UPDATE *upd) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btree_open(WT_SESSION_IMPL *session, const char *op_cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btree_close(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_root_ref_init(WT_REF *root_ref, WT_PAGE *root, bool is_recno) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btree_tree_open( WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btree_new_leaf_page(WT_SESSION_IMPL *session, WT_PAGE **pagep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_btree_evictable(WT_SESSION_IMPL *session, bool on) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btree_huffman_open(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_btree_huffman_close(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bt_read(WT_SESSION_IMPL *session, WT_ITEM *buf, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf, uint8_t *addr, size_t *addr_sizep, bool checkpoint, bool checkpoint_io, bool compressed) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_page_type_string(u_int type) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern const char *__wt_cell_type_string(uint8_t type) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_page_addr_string(WT_SESSION_IMPL *session, WT_REF *ref, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_addr_string(WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_size, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_read(WT_SESSION_IMPL *session, WT_PAGE *page, WT_CELL_UNPACK *unpack, WT_ITEM *store) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_cache(WT_SESSION_IMPL *session, WT_PAGE *page, void *cookie, WT_CELL_UNPACK *vpack) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_discard(WT_SESSION_IMPL *session, WT_CELL *cell) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_page_alloc(WT_SESSION_IMPL *session, uint8_t type, uint32_t alloc_entries, bool alloc_refs, WT_PAGE **pagep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_page_inmem(WT_SESSION_IMPL *session, WT_REF *ref, const void *image, size_t memsize, uint32_t flags, WT_PAGE **pagep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_las_remove_block(WT_SESSION_IMPL *session, WT_CURSOR *cursor, uint32_t btree_id, const uint8_t *addr, size_t addr_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); extern int __wt_page_in_func(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags #ifdef HAVE_DIAGNOSTIC , const char *file, int line #endif - ); -extern int __wt_bt_rebalance(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_kv_return(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, WT_UPDATE *upd) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bt_salvage(WT_SESSION_IMPL *session, WT_CKPT *ckptbase, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_split_stash_discard(WT_SESSION_IMPL *session); -extern void __wt_split_stash_discard_all( WT_SESSION_IMPL *session_safe, WT_SESSION_IMPL *session); -extern int __wt_multi_to_ref(WT_SESSION_IMPL *session, WT_PAGE *page, WT_MULTI *multi, WT_REF **refp, size_t *incrp, bool closing) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_split_insert(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_split_multi(WT_SESSION_IMPL *session, WT_REF *ref, int closing) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_split_reverse(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_split_rewrite(WT_SESSION_IMPL *session, WT_REF *ref, WT_MULTI *multi) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_btree_stat_init(WT_SESSION_IMPL *session, WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cache_op(WT_SESSION_IMPL *session, WT_CACHE_OP op) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_upgrade(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_verify(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_verify_dsk_image(WT_SESSION_IMPL *session, const char *tag, const WT_PAGE_HEADER *dsk, size_t size, bool empty_page_ok) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_verify_dsk(WT_SESSION_IMPL *session, const char *tag, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_tree_walk(WT_SESSION_IMPL *session, WT_REF **refp, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_tree_walk_count(WT_SESSION_IMPL *session, WT_REF **refp, uint64_t *walkcntp, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_tree_walk_skip(WT_SESSION_IMPL *session, WT_REF **refp, uint64_t *skipleafcntp, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_col_modify(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, uint64_t recno, WT_ITEM *value, WT_UPDATE *upd_arg, bool is_remove) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_col_search(WT_SESSION_IMPL *session, uint64_t search_recno, WT_REF *leaf, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_leaf_keys(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_leaf_key_copy( WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW *rip, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_leaf_key_work(WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW *rip_arg, WT_ITEM *keyb, bool instantiate) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_ikey_alloc(WT_SESSION_IMPL *session, uint32_t cell_offset, const void *key, size_t size, WT_IKEY **ikeyp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_ikey_incr(WT_SESSION_IMPL *session, WT_PAGE *page, uint32_t cell_offset, const void *key, size_t size, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_ikey(WT_SESSION_IMPL *session, uint32_t cell_offset, const void *key, size_t size, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_page_modify_alloc(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_modify(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, WT_ITEM *key, WT_ITEM *value, WT_UPDATE *upd_arg, bool is_remove) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_insert_alloc(WT_SESSION_IMPL *session, WT_ITEM *key, u_int skipdepth, WT_INSERT **insp, size_t *ins_sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_update_alloc( WT_SESSION_IMPL *session, WT_ITEM *value, WT_UPDATE **updp, size_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern WT_UPDATE *__wt_update_obsolete_check( WT_SESSION_IMPL *session, WT_PAGE *page, WT_UPDATE *upd); -extern void __wt_update_obsolete_free( WT_SESSION_IMPL *session, WT_PAGE *page, WT_UPDATE *upd); -extern int __wt_search_insert(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, WT_INSERT_HEAD *ins_head, WT_ITEM *srch_key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_search(WT_SESSION_IMPL *session, WT_ITEM *srch_key, WT_REF *leaf, WT_CURSOR_BTREE *cbt, bool insert) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_random_leaf(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_row_random_descent(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_las_stats_update(WT_SESSION_IMPL *session); -extern int __wt_las_create(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_las_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_las_set_written(WT_SESSION_IMPL *session); -extern bool __wt_las_is_written(WT_SESSION_IMPL *session); -extern int __wt_las_cursor_open(WT_SESSION_IMPL *session, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_las_cursor( WT_SESSION_IMPL *session, WT_CURSOR **cursorp, uint32_t *session_flags); -extern int __wt_las_cursor_close( WT_SESSION_IMPL *session, WT_CURSOR **cursorp, uint32_t session_flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_las_sweep(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern uint32_t __wt_checksum_sw(const void *chunk, size_t len); -extern void __wt_checksum_init(void); -extern void __wt_config_initn( WT_SESSION_IMPL *session, WT_CONFIG *conf, const char *str, size_t len); -extern void __wt_config_init(WT_SESSION_IMPL *session, WT_CONFIG *conf, const char *str); -extern void __wt_config_subinit( WT_SESSION_IMPL *session, WT_CONFIG *conf, WT_CONFIG_ITEM *item); -extern int __wt_config_next(WT_CONFIG *conf, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_get(WT_SESSION_IMPL *session, const char **cfg_arg, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_gets(WT_SESSION_IMPL *session, const char **cfg, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_gets_none(WT_SESSION_IMPL *session, const char **cfg, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_getone(WT_SESSION_IMPL *session, const char *config, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_getones(WT_SESSION_IMPL *session, const char *config, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_getones_none(WT_SESSION_IMPL *session, const char *config, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_gets_def(WT_SESSION_IMPL *session, const char **cfg, const char *key, int def, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_subgetraw(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cfg, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_subgets(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cfg, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_conn_foc_discard(WT_SESSION_IMPL *session); -extern int __wt_configure_method(WT_SESSION_IMPL *session, const char *method, const char *uri, const char *config, const char *type, const char *check) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_check(WT_SESSION_IMPL *session, const WT_CONFIG_ENTRY *entry, const char *config, size_t config_len) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_collapse( WT_SESSION_IMPL *session, const char **cfg, char **config_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_merge(WT_SESSION_IMPL *session, const char **cfg, const char *cfg_strip, const char **config_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_config_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_conn_config_discard(WT_SESSION_IMPL *session); -extern const WT_CONFIG_ENTRY *__wt_conn_config_match(const char *method); -extern int __wt_ext_config_get(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, WT_CONFIG_ARG *cfg_arg, const char *key, WT_CONFIG_ITEM *cval) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_config_get_string(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *config, const char *key, WT_CONFIG_ITEM *cval) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_config_parser_open(WT_EXTENSION_API *wt_ext, WT_SESSION *wt_session, const char *config, size_t len, WT_CONFIG_PARSER **config_parserp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_config_parser_open_arg(WT_EXTENSION_API *wt_ext, WT_SESSION *wt_session, WT_CONFIG_ARG *cfg_arg, WT_CONFIG_PARSER **config_parserp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_config_upgrade(WT_SESSION_IMPL *session, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern const char *__wt_wiredtiger_error(int error); -extern int __wt_collator_config(WT_SESSION_IMPL *session, const char *uri, WT_CONFIG_ITEM *cname, WT_CONFIG_ITEM *metadata, WT_COLLATOR **collatorp, int *ownp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_remove_collator(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_compressor_config( WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cval, WT_COMPRESSOR **compressorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_remove_compressor(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_remove_data_source(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_encryptor_config(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cval, WT_CONFIG_ITEM *keyid, WT_CONFIG_ARG *cfg_arg, WT_KEYED_ENCRYPTOR **kencryptorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_remove_encryptor(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_extractor_config(WT_SESSION_IMPL *session, const char *uri, const char *config, WT_EXTRACTOR **extractorp, int *ownp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_remove_extractor(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_verbose_config(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cache_config(WT_SESSION_IMPL *session, bool reconfigure, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cache_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cache_stats_update(WT_SESSION_IMPL *session); -extern int __wt_cache_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cache_pool_config(WT_SESSION_IMPL *session, const char **cfg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_cache_pool_open(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_cache_pool_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern WT_THREAD_RET __wt_cache_pool_server(void *arg); -extern int __wt_checkpoint_server_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_checkpoint_server_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_checkpoint_signal(WT_SESSION_IMPL *session, wt_off_t logsize); -extern int __wt_conn_dhandle_find( WT_SESSION_IMPL *session, const char *uri, const char *checkpoint) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_btree_sync_and_close(WT_SESSION_IMPL *session, bool final, bool force) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_btree_open( WT_SESSION_IMPL *session, const char *cfg[], uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_btree_apply(WT_SESSION_IMPL *session, const char *uri, int (*file_func)(WT_SESSION_IMPL *, const char *[]), int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_dhandle_close_all( WT_SESSION_IMPL *session, const char *uri, bool force) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_dhandle_discard_single( WT_SESSION_IMPL *session, bool final, bool force) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_conn_dhandle_discard(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_connection_init(WT_CONNECTION_IMPL *conn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_connection_destroy(WT_CONNECTION_IMPL *conn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logmgr_reconfig(WT_SESSION_IMPL *session, const char **cfg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_truncate_files( WT_SESSION_IMPL *session, WT_CURSOR *cursor, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_log_wrlsn(WT_SESSION_IMPL *session, int *yield); -extern int __wt_logmgr_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logmgr_open(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logmgr_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_connection_open(WT_CONNECTION_IMPL *conn, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_connection_close(WT_CONNECTION_IMPL *conn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_connection_workers(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_conn_stat_init(WT_SESSION_IMPL *session); -extern int __wt_statlog_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_statlog_destroy(WT_SESSION_IMPL *session, bool is_close) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_sweep_config(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_sweep_create(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_sweep_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curbackup_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_backup_file_remove(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curbulk_init(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk, bool bitmap, bool skip_sort_check) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curconfig_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curds_open( WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_DATA_SOURCE *dsrc, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curdump_create(WT_CURSOR *child, WT_CURSOR *owner, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curfile_next_random(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curfile_update_check(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curfile_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curindex_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curjoin_joined(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curjoin_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curjoin_join(WT_SESSION_IMPL *session, WT_CURSOR_JOIN *cjoin, WT_INDEX *idx, WT_CURSOR *ref_cursor, uint8_t flags, uint8_t range, uint64_t count, uint32_t bloom_bit_count, uint32_t bloom_hash_count) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_json_alloc_unpack(WT_SESSION_IMPL *session, const void *buffer, size_t size, const char *fmt, WT_CURSOR_JSON *json, bool iskey, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_json_close(WT_SESSION_IMPL *session, WT_CURSOR *cursor); -extern size_t __wt_json_unpack_char(u_char ch, u_char *buf, size_t bufsz, bool force_unicode); -extern void __wt_json_column_init(WT_CURSOR *cursor, const char *keyformat, const WT_CONFIG_ITEM *idxconf, const WT_CONFIG_ITEM *colconf); -extern int __wt_json_token(WT_SESSION *wt_session, const char *src, int *toktype, const char **tokstart, size_t *toklen) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern const char *__wt_json_tokname(int toktype); -extern int __wt_json_to_item(WT_SESSION_IMPL *session, const char *jstr, const char *format, WT_CURSOR_JSON *json, bool iskey, WT_ITEM *item) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern ssize_t __wt_json_strlen(const char *src, size_t srclen); -extern int __wt_json_strncpy(WT_SESSION *wt_session, char **pdst, size_t dstlen, const char *src, size_t srclen) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curlog_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curmetadata_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_curstat_dsrc_final(WT_CURSOR_STAT *cst); -extern int __wt_curstat_init(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *curjoin, const char *cfg[], WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curstat_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *other, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_noop(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_notsup(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_get_value_notsup(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cursor_set_key_notsup(WT_CURSOR *cursor, ...); -extern void __wt_cursor_set_value_notsup(WT_CURSOR *cursor, ...); -extern int __wt_cursor_compare_notsup(WT_CURSOR *a, WT_CURSOR *b, int *cmpp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_equals_notsup(WT_CURSOR *cursor, WT_CURSOR *other, int *equalp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_search_near_notsup(WT_CURSOR *cursor, int *exact) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_reconfigure_notsup(WT_CURSOR *cursor, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cursor_set_notsup(WT_CURSOR *cursor); -extern int __wt_cursor_kv_not_set(WT_CURSOR *cursor, bool key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_get_key(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cursor_set_key(WT_CURSOR *cursor, ...); -extern int __wt_cursor_get_raw_key(WT_CURSOR *cursor, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cursor_set_raw_key(WT_CURSOR *cursor, WT_ITEM *key); -extern int __wt_cursor_get_raw_value(WT_CURSOR *cursor, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cursor_set_raw_value(WT_CURSOR *cursor, WT_ITEM *value); -extern int __wt_cursor_get_keyv(WT_CURSOR *cursor, uint32_t flags, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cursor_set_keyv(WT_CURSOR *cursor, uint32_t flags, va_list ap); -extern int __wt_cursor_get_value(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_get_valuev(WT_CURSOR *cursor, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cursor_set_value(WT_CURSOR *cursor, ...); -extern void __wt_cursor_set_valuev(WT_CURSOR *cursor, va_list ap); -extern int __wt_cursor_close(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_equals(WT_CURSOR *cursor, WT_CURSOR *other, int *equalp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_reconfigure(WT_CURSOR *cursor, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_dup_position(WT_CURSOR *to_dup, WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cursor_init(WT_CURSOR *cursor, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_apply_single_idx(WT_SESSION_IMPL *session, WT_INDEX *idx, WT_CURSOR *cur, WT_CURSOR_TABLE *ctable, int (*f)(WT_CURSOR *)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curtable_get_key(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curtable_get_value(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_curtable_set_key(WT_CURSOR *cursor, ...); -extern void __wt_curtable_set_value(WT_CURSOR *cursor, ...); -extern int __wt_table_range_truncate(WT_CURSOR_TABLE *start, WT_CURSOR_TABLE *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curtable_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_evict_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_evict_list_clear_page(WT_SESSION_IMPL *session, WT_REF *ref); -extern void __wt_evict_server_wake(WT_SESSION_IMPL *session); -extern int __wt_evict_thread_run(WT_SESSION_IMPL *session, WT_THREAD *thread) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_evict_create(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_evict_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_evict_file_exclusive_on(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_evict_file_exclusive_off(WT_SESSION_IMPL *session); -extern int __wt_cache_eviction_worker(WT_SESSION_IMPL *session, bool busy, u_int pct_full) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern bool __wt_page_evict_urgent(WT_SESSION_IMPL *session, WT_REF *ref); -extern void __wt_evict_priority_set(WT_SESSION_IMPL *session, uint64_t v); -extern void __wt_evict_priority_clear(WT_SESSION_IMPL *session); -extern int __wt_cache_dump(WT_SESSION_IMPL *session, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_page_release_evict(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_evict(WT_SESSION_IMPL *session, WT_REF *ref, bool closing) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_curstat_cache_walk(WT_SESSION_IMPL *session); -extern void __wt_log_ckpt(WT_SESSION_IMPL *session, WT_LSN *ckp_lsn); -extern int __wt_log_flush_lsn(WT_SESSION_IMPL *session, WT_LSN *lsn, bool start) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_log_background(WT_SESSION_IMPL *session, WT_LSN *lsn); -extern int __wt_log_force_sync(WT_SESSION_IMPL *session, WT_LSN *min_lsn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_needs_recovery(WT_SESSION_IMPL *session, WT_LSN *ckp_lsn, bool *recp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_log_written_reset(WT_SESSION_IMPL *session); -extern int __wt_log_get_all_files(WT_SESSION_IMPL *session, char ***filesp, u_int *countp, uint32_t *maxid, bool active_only) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_extract_lognum( WT_SESSION_IMPL *session, const char *name, uint32_t *id) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_acquire(WT_SESSION_IMPL *session, uint64_t recsize, WT_LOGSLOT *slot) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_allocfile( WT_SESSION_IMPL *session, uint32_t lognum, const char *dest) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_remove(WT_SESSION_IMPL *session, const char *file_prefix, uint32_t lognum) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_open(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_close(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_release(WT_SESSION_IMPL *session, WT_LOGSLOT *slot, bool *freep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_scan(WT_SESSION_IMPL *session, WT_LSN *lsnp, uint32_t flags, int (*func)(WT_SESSION_IMPL *session, WT_ITEM *record, WT_LSN *lsnp, WT_LSN *next_lsnp, void *cookie, int firstrecord), void *cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_force_write(WT_SESSION_IMPL *session, bool retry, bool *did_work) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_write(WT_SESSION_IMPL *session, WT_ITEM *record, WT_LSN *lsnp, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_vprintf(WT_SESSION_IMPL *session, const char *fmt, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_flush(WT_SESSION_IMPL *session, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logrec_alloc(WT_SESSION_IMPL *session, size_t size, WT_ITEM **logrecp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_logrec_free(WT_SESSION_IMPL *session, WT_ITEM **logrecp); -extern int __wt_logrec_read(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *rectypep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_read(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *optypep, uint32_t *opsizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_col_put_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, uint64_t recno, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_col_put_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, uint64_t *recnop, WT_ITEM *valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_col_put_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_col_remove_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, uint64_t recno) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_col_remove_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, uint64_t *recnop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_col_remove_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_col_truncate_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, uint64_t start, uint64_t stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_col_truncate_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, uint64_t *startp, uint64_t *stopp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_col_truncate_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_row_put_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, WT_ITEM *key, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_row_put_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, WT_ITEM *keyp, WT_ITEM *valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_row_put_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_row_remove_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_row_remove_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, WT_ITEM *keyp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_row_remove_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_row_truncate_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, WT_ITEM *start, WT_ITEM *stop, uint32_t mode) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_row_truncate_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, WT_ITEM *startp, WT_ITEM *stopp, uint32_t *modep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_logop_row_truncate_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_op_printlog(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_log_slot_activate(WT_SESSION_IMPL *session, WT_LOGSLOT *slot); -extern int __wt_log_slot_switch( WT_SESSION_IMPL *session, WT_MYSLOT *myslot, bool retry, bool forced) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_slot_new(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_slot_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_log_slot_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_log_slot_join(WT_SESSION_IMPL *session, uint64_t mysize, uint32_t flags, WT_MYSLOT *myslot); -extern int64_t __wt_log_slot_release(WT_SESSION_IMPL *session, WT_MYSLOT *myslot, int64_t size); -extern void __wt_log_slot_free(WT_SESSION_IMPL *session, WT_LOGSLOT *slot); -extern int __wt_clsm_request_switch(WT_CURSOR_LSM *clsm) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_clsm_await_switch(WT_CURSOR_LSM *clsm) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_clsm_init_merge( WT_CURSOR *cursor, u_int start_chunk, uint32_t start_id, u_int nchunks) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_clsm_close(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_clsm_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_clsm_open_bulk(WT_CURSOR_LSM *clsm, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_manager_config(WT_SESSION_IMPL *session, const char **cfg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_manager_reconfig(WT_SESSION_IMPL *session, const char **cfg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_manager_start(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_lsm_manager_free_work_unit( WT_SESSION_IMPL *session, WT_LSM_WORK_UNIT *entry); -extern int __wt_lsm_manager_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_lsm_manager_clear_tree(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree); -extern int __wt_lsm_manager_pop_entry( WT_SESSION_IMPL *session, uint32_t type, WT_LSM_WORK_UNIT **entryp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_manager_push_entry(WT_SESSION_IMPL *session, uint32_t type, uint32_t flags, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_merge_update_tree(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, u_int start_chunk, u_int nchunks, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_merge(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, u_int id) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_meta_read(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_meta_write(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curstat_lsm_init( WT_SESSION_IMPL *session, const char *uri, WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_close_all(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_bloom_name(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, uint32_t id, const char **retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_chunk_name(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, uint32_t id, const char **retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_set_chunk_size( WT_SESSION_IMPL *session, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_setup_chunk( WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_setup_bloom( WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_create(WT_SESSION_IMPL *session, const char *uri, bool exclusive, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_get(WT_SESSION_IMPL *session, const char *uri, bool exclusive, WT_LSM_TREE **treep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_lsm_tree_release(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree); -extern void __wt_lsm_tree_throttle( WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, bool decrease_only); -extern int __wt_lsm_tree_switch(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_retire_chunks(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, u_int start_chunk, u_int nchunks) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_drop( WT_SESSION_IMPL *session, const char *name, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_rename(WT_SESSION_IMPL *session, const char *olduri, const char *newuri, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_truncate( WT_SESSION_IMPL *session, const char *name, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_lsm_tree_readlock(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree); -extern void __wt_lsm_tree_readunlock(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree); -extern void __wt_lsm_tree_writelock(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree); -extern void __wt_lsm_tree_writeunlock(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree); -extern int __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_tree_worker(WT_SESSION_IMPL *session, const char *uri, int (*file_func)(WT_SESSION_IMPL *, const char *[]), int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[], uint32_t open_flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_get_chunk_to_flush(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, bool force, WT_LSM_CHUNK **chunkp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_work_switch( WT_SESSION_IMPL *session, WT_LSM_WORK_UNIT **entryp, bool *ran) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_work_bloom(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_checkpoint_chunk(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_free_chunks(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_lsm_worker_start(WT_SESSION_IMPL *session, WT_LSM_WORKER_ARGS *args) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_apply_all(WT_SESSION_IMPL *session, int (*file_func)(WT_SESSION_IMPL *, const char *[]), int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_checkpoint(WT_SESSION_IMPL *session, const char *fname, const char *checkpoint, WT_CKPT *ckpt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_checkpoint_last_name( WT_SESSION_IMPL *session, const char *fname, const char **namep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_checkpoint_clear(WT_SESSION_IMPL *session, const char *fname) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_ckptlist_get( WT_SESSION_IMPL *session, const char *fname, WT_CKPT **ckptbasep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_ckptlist_set(WT_SESSION_IMPL *session, const char *fname, WT_CKPT *ckptbase, WT_LSN *ckptlsn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_meta_ckptlist_free(WT_SESSION_IMPL *session, WT_CKPT *ckptbase); -extern void __wt_meta_checkpoint_free(WT_SESSION_IMPL *session, WT_CKPT *ckpt); -extern int __wt_ext_metadata_insert(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_metadata_remove( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_metadata_search(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *key, char **valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_metadata_update(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_metadata_get_ckptlist( WT_SESSION *session, const char *name, WT_CKPT **ckptbasep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_metadata_free_ckptlist(WT_SESSION *session, WT_CKPT *ckptbase); -extern int __wt_metadata_cursor_open( WT_SESSION_IMPL *session, const char *config, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_metadata_cursor(WT_SESSION_IMPL *session, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_metadata_cursor_release(WT_SESSION_IMPL *session, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_metadata_insert( WT_SESSION_IMPL *session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_metadata_update( WT_SESSION_IMPL *session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_metadata_remove(WT_SESSION_IMPL *session, const char *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_metadata_search(WT_SESSION_IMPL *session, const char *key, char **valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_meta_track_discard(WT_SESSION_IMPL *session); -extern int __wt_meta_track_on(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_track_off(WT_SESSION_IMPL *session, bool need_sync, bool unroll) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_meta_track_sub_on(WT_SESSION_IMPL *session); -extern int __wt_meta_track_sub_off(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_track_checkpoint(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_track_insert(WT_SESSION_IMPL *session, const char *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_track_update(WT_SESSION_IMPL *session, const char *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_track_fileop( WT_SESSION_IMPL *session, const char *olduri, const char *newuri) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_track_drop( WT_SESSION_IMPL *session, const char *filename) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_track_handle_lock(WT_SESSION_IMPL *session, bool created) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_track_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_meta_track_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_turtle_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_turtle_read(WT_SESSION_IMPL *session, const char *key, char **valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_turtle_update(WT_SESSION_IMPL *session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_filename(WT_SESSION_IMPL *session, const char *name, char **path) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_nfilename( WT_SESSION_IMPL *session, const char *name, size_t namelen, char **path) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_remove_if_exists(WT_SESSION_IMPL *session, const char *name, bool durable) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_copy_and_sync(WT_SESSION *wt_session, const char *from, const char *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_abort(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((noreturn)); -extern int __wt_calloc(WT_SESSION_IMPL *session, size_t number, size_t size, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_malloc(WT_SESSION_IMPL *session, size_t bytes_to_allocate, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_realloc(WT_SESSION_IMPL *session, size_t *bytes_allocated_ret, size_t bytes_to_allocate, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_realloc_noclear(WT_SESSION_IMPL *session, size_t *bytes_allocated_ret, size_t bytes_to_allocate, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_realloc_aligned(WT_SESSION_IMPL *session, size_t *bytes_allocated_ret, size_t bytes_to_allocate, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_strndup(WT_SESSION_IMPL *session, const void *str, size_t len, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_free_int(WT_SESSION_IMPL *session, const void *p_arg); -extern int __wt_errno(void) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern const char *__wt_strerror(WT_SESSION_IMPL *session, int error, char *errbuf, size_t errlen); -extern int __wt_ext_map_windows_error( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, uint32_t windows_error) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern bool __wt_handle_is_open(WT_SESSION_IMPL *session, const char *name); -extern int __wt_open(WT_SESSION_IMPL *session, const char *name, WT_FS_OPEN_FILE_TYPE file_type, u_int flags, WT_FH **fhp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_close(WT_SESSION_IMPL *session, WT_FH **fhp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_close_connection_close(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_os_inmemory(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_fopen(WT_SESSION_IMPL *session, const char *name, uint32_t open_flags, uint32_t flags, WT_FSTREAM **fstrp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_os_stdio(WT_SESSION_IMPL *session); -extern int __wt_getopt( const char *progname, int nargc, char *const *nargv, const char *ostr) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern uint64_t __wt_strtouq(const char *nptr, char **endptr, int base); -extern int __wt_ext_struct_pack(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, void *buffer, size_t size, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_struct_size(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, size_t *sizep, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_struct_unpack(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const void *buffer, size_t size, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_struct_check(WT_SESSION_IMPL *session, const char *fmt, size_t len, bool *fixedp, uint32_t *fixed_lenp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_struct_confchk(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *v) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_struct_size(WT_SESSION_IMPL *session, size_t *sizep, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_struct_pack(WT_SESSION_IMPL *session, void *buffer, size_t size, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_struct_unpack(WT_SESSION_IMPL *session, const void *buffer, size_t size, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_struct_repack(WT_SESSION_IMPL *session, const char *infmt, const char *outfmt, const WT_ITEM *inbuf, WT_ITEM *outbuf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_pack_start(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *format, void *buffer, size_t size, WT_PACK_STREAM **psp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_unpack_start(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *format, const void *buffer, size_t size, WT_PACK_STREAM **psp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_pack_close(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, size_t *usedp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_pack_item(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, WT_ITEM *item) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_pack_int(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, int64_t i) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_pack_str(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, const char *s) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_pack_uint(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, uint64_t u) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_unpack_item(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, WT_ITEM *item) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_unpack_int(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, int64_t *ip) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_unpack_str(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, const char **sp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_unpack_uint(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, uint64_t *up) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ovfl_discard_add(WT_SESSION_IMPL *session, WT_PAGE *page, WT_CELL *cell) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_ovfl_discard_free(WT_SESSION_IMPL *session, WT_PAGE *page); -extern int __wt_ovfl_reuse_search(WT_SESSION_IMPL *session, WT_PAGE *page, uint8_t **addrp, size_t *addr_sizep, const void *value, size_t value_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ovfl_reuse_add(WT_SESSION_IMPL *session, WT_PAGE *page, const uint8_t *addr, size_t addr_size, const void *value, size_t value_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_ovfl_reuse_free(WT_SESSION_IMPL *session, WT_PAGE *page); -extern int __wt_ovfl_txnc_search( WT_PAGE *page, const uint8_t *addr, size_t addr_size, WT_ITEM *store) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ovfl_txnc_add(WT_SESSION_IMPL *session, WT_PAGE *page, const uint8_t *addr, size_t addr_size, const void *value, size_t value_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_ovfl_txnc_free(WT_SESSION_IMPL *session, WT_PAGE *page); -extern int __wt_ovfl_track_wrapup(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ovfl_track_wrapup_err(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_reconcile(WT_SESSION_IMPL *session, WT_REF *ref, WT_SALVAGE_COOKIE *salvage, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern uint32_t __wt_split_page_size(WT_BTREE *btree, uint32_t maxpagesize); -extern int __wt_bulk_init(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bulk_wrapup(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bulk_insert_row(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bulk_insert_fix( WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk, bool deleted) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bulk_insert_fix_bitmap(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bulk_insert_var( WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk, bool deleted) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_direct_io_size_check(WT_SESSION_IMPL *session, const char **cfg, const char *config_name, uint32_t *allocsizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_colgroup_source(WT_SESSION_IMPL *session, WT_TABLE *table, const char *cgname, const char *config, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_index_source(WT_SESSION_IMPL *session, WT_TABLE *table, const char *idxname, const char *config, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_create( WT_SESSION_IMPL *session, const char *uri, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_drop(WT_SESSION_IMPL *session, const char *uri, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_get_table(WT_SESSION_IMPL *session, const char *name, size_t namelen, bool ok_incomplete, WT_TABLE **tablep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_schema_release_table(WT_SESSION_IMPL *session, WT_TABLE *table); -extern void __wt_schema_destroy_colgroup(WT_SESSION_IMPL *session, WT_COLGROUP **colgroupp); -extern int __wt_schema_destroy_index(WT_SESSION_IMPL *session, WT_INDEX **idxp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_destroy_table(WT_SESSION_IMPL *session, WT_TABLE **tablep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_remove_table(WT_SESSION_IMPL *session, WT_TABLE *table) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_close_tables(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_colgroup_name(WT_SESSION_IMPL *session, WT_TABLE *table, const char *cgname, size_t len, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_open_colgroups(WT_SESSION_IMPL *session, WT_TABLE *table) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_open_index(WT_SESSION_IMPL *session, WT_TABLE *table, const char *idxname, size_t len, WT_INDEX **indexp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_open_indices(WT_SESSION_IMPL *session, WT_TABLE *table) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_get_colgroup(WT_SESSION_IMPL *session, const char *uri, bool quiet, WT_TABLE **tablep, WT_COLGROUP **colgroupp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_get_index(WT_SESSION_IMPL *session, const char *uri, bool quiet, WT_TABLE **tablep, WT_INDEX **indexp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_open_table(WT_SESSION_IMPL *session, const char *name, size_t namelen, bool ok_incomplete, WT_TABLE **tablep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_colcheck(WT_SESSION_IMPL *session, const char *key_format, const char *value_format, WT_CONFIG_ITEM *colconf, u_int *kcolsp, u_int *vcolsp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_table_check(WT_SESSION_IMPL *session, WT_TABLE *table) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_struct_plan(WT_SESSION_IMPL *session, WT_TABLE *table, const char *columns, size_t len, bool value_only, WT_ITEM *plan) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_struct_reformat(WT_SESSION_IMPL *session, WT_TABLE *table, const char *columns, size_t len, const char *extra_cols, bool value_only, WT_ITEM *format) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_struct_truncate(WT_SESSION_IMPL *session, const char *input_fmt, u_int ncols, WT_ITEM *format) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_project_in(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *proj_arg, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_project_out(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *proj_arg, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_project_slice(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *proj_arg, bool key_only, const char *vformat, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_project_merge(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *proj_arg, const char *vformat, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_rename(WT_SESSION_IMPL *session, const char *uri, const char *newuri, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curstat_colgroup_init(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curstat_index_init(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_curstat_table_init(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_truncate( WT_SESSION_IMPL *session, const char *uri, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_range_truncate(WT_CURSOR *start, WT_CURSOR *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_range_truncate( WT_SESSION_IMPL *session, WT_CURSOR *start, WT_CURSOR *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_backup_check(WT_SESSION_IMPL *session, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern WT_DATA_SOURCE *__wt_schema_get_source(WT_SESSION_IMPL *session, const char *name); -extern int __wt_str_name_check(WT_SESSION_IMPL *session, const char *str) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_name_check(WT_SESSION_IMPL *session, const char *str, size_t len) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_schema_worker(WT_SESSION_IMPL *session, const char *uri, int (*file_func)(WT_SESSION_IMPL *, const char *[]), int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[], uint32_t open_flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_notsup(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_reset_cursors(WT_SESSION_IMPL *session, bool free_buffers) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_copy_values(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_release_resources(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_open_cursor(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_create( WT_SESSION_IMPL *session, const char *uri, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_drop(WT_SESSION_IMPL *session, const char *uri, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_range_truncate(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *start, WT_CURSOR *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern const char *__wt_session_strerror(WT_SESSION *wt_session, int error); -extern int __wt_open_session(WT_CONNECTION_IMPL *conn, WT_EVENT_HANDLER *event_handler, const char *config, bool open_metadata, WT_SESSION_IMPL **sessionp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_open_internal_session(WT_CONNECTION_IMPL *conn, const char *name, bool open_metadata, uint32_t session_flags, WT_SESSION_IMPL **sessionp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_compact( WT_SESSION *wt_session, const char *uri, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_compact_readonly( WT_SESSION *wt_session, const char *uri, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_lock_dhandle( WT_SESSION_IMPL *session, uint32_t flags, bool *is_deadp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_release_btree(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_get_btree_ckpt(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_session_close_cache(WT_SESSION_IMPL *session); -extern int __wt_session_get_btree(WT_SESSION_IMPL *session, const char *uri, const char *checkpoint, const char *cfg[], uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_session_lock_checkpoint(WT_SESSION_IMPL *session, const char *checkpoint) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_salvage(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cond_auto_alloc( WT_SESSION_IMPL *session, const char *name, bool is_signalled, uint64_t min, uint64_t max, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cond_auto_signal(WT_SESSION_IMPL *session, WT_CONDVAR *cond); -extern void __wt_cond_auto_wait_signal( WT_SESSION_IMPL *session, WT_CONDVAR *cond, bool progress, bool *signalled); -extern void __wt_cond_auto_wait( WT_SESSION_IMPL *session, WT_CONDVAR *cond, bool progress); -extern int __wt_cond_auto_destroy(WT_SESSION_IMPL *session, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_decrypt(WT_SESSION_IMPL *session, WT_ENCRYPTOR *encryptor, size_t skip, WT_ITEM *in, WT_ITEM *out) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_encrypt(WT_SESSION_IMPL *session, WT_KEYED_ENCRYPTOR *kencryptor, size_t skip, WT_ITEM *in, WT_ITEM *out) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_encrypt_size(WT_SESSION_IMPL *session, WT_KEYED_ENCRYPTOR *kencryptor, size_t incoming_size, size_t *sizep); -extern void __wt_event_handler_set(WT_SESSION_IMPL *session, WT_EVENT_HANDLER *handler); -extern int __wt_eventv(WT_SESSION_IMPL *session, bool msg_event, int error, const char *file_name, int line_number, const char *fmt, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_err(WT_SESSION_IMPL *session, int error, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))); -extern void __wt_errx(WT_SESSION_IMPL *session, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 2, 3))); -extern int __wt_ext_err_printf( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_msg(WT_SESSION_IMPL *session, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 2, 3))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_msg_printf( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern const char *__wt_ext_strerror(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, int error); -extern int __wt_progress(WT_SESSION_IMPL *session, const char *s, uint64_t v) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); + ) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bt_rebalance(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_kv_return(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, WT_UPDATE *upd) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bt_salvage(WT_SESSION_IMPL *session, WT_CKPT *ckptbase, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_split_stash_discard(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_split_stash_discard_all( WT_SESSION_IMPL *session_safe, WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_multi_to_ref(WT_SESSION_IMPL *session, WT_PAGE *page, WT_MULTI *multi, WT_REF **refp, size_t *incrp, bool closing) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_split_insert(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_split_multi(WT_SESSION_IMPL *session, WT_REF *ref, int closing) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_split_reverse(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_split_rewrite(WT_SESSION_IMPL *session, WT_REF *ref, WT_MULTI *multi) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_btree_stat_init(WT_SESSION_IMPL *session, WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cache_op(WT_SESSION_IMPL *session, WT_CACHE_OP op) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_upgrade(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_verify(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_verify_dsk_image(WT_SESSION_IMPL *session, const char *tag, const WT_PAGE_HEADER *dsk, size_t size, bool empty_page_ok) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_verify_dsk(WT_SESSION_IMPL *session, const char *tag, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_tree_walk(WT_SESSION_IMPL *session, WT_REF **refp, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_tree_walk_count(WT_SESSION_IMPL *session, WT_REF **refp, uint64_t *walkcntp, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_tree_walk_skip(WT_SESSION_IMPL *session, WT_REF **refp, uint64_t *skipleafcntp, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_col_modify(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, uint64_t recno, WT_ITEM *value, WT_UPDATE *upd_arg, bool is_remove) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_col_search(WT_SESSION_IMPL *session, uint64_t search_recno, WT_REF *leaf, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_leaf_keys(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_leaf_key_copy( WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW *rip, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_leaf_key_work(WT_SESSION_IMPL *session, WT_PAGE *page, WT_ROW *rip_arg, WT_ITEM *keyb, bool instantiate) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_ikey_alloc(WT_SESSION_IMPL *session, uint32_t cell_offset, const void *key, size_t size, WT_IKEY **ikeyp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_ikey_incr(WT_SESSION_IMPL *session, WT_PAGE *page, uint32_t cell_offset, const void *key, size_t size, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_ikey(WT_SESSION_IMPL *session, uint32_t cell_offset, const void *key, size_t size, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_page_modify_alloc(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_modify(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, WT_ITEM *key, WT_ITEM *value, WT_UPDATE *upd_arg, bool is_remove) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_insert_alloc(WT_SESSION_IMPL *session, WT_ITEM *key, u_int skipdepth, WT_INSERT **insp, size_t *ins_sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_update_alloc( WT_SESSION_IMPL *session, WT_ITEM *value, WT_UPDATE **updp, size_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern WT_UPDATE *__wt_update_obsolete_check( WT_SESSION_IMPL *session, WT_PAGE *page, WT_UPDATE *upd) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_update_obsolete_free( WT_SESSION_IMPL *session, WT_PAGE *page, WT_UPDATE *upd) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_search_insert(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, WT_INSERT_HEAD *ins_head, WT_ITEM *srch_key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_search(WT_SESSION_IMPL *session, WT_ITEM *srch_key, WT_REF *leaf, WT_CURSOR_BTREE *cbt, bool insert) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_random_leaf(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_row_random_descent(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_las_stats_update(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_las_create(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_las_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_las_set_written(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_las_is_written(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_las_cursor_open(WT_SESSION_IMPL *session, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_las_cursor( WT_SESSION_IMPL *session, WT_CURSOR **cursorp, uint32_t *session_flags) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_las_cursor_close( WT_SESSION_IMPL *session, WT_CURSOR **cursorp, uint32_t session_flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_las_sweep(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint32_t __wt_checksum_sw(const void *chunk, size_t len) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern void __wt_checksum_init(void) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_config_initn( WT_SESSION_IMPL *session, WT_CONFIG *conf, const char *str, size_t len) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_config_init(WT_SESSION_IMPL *session, WT_CONFIG *conf, const char *str) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_config_subinit( WT_SESSION_IMPL *session, WT_CONFIG *conf, WT_CONFIG_ITEM *item) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_next(WT_CONFIG *conf, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_get(WT_SESSION_IMPL *session, const char **cfg_arg, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_gets(WT_SESSION_IMPL *session, const char **cfg, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_gets_none(WT_SESSION_IMPL *session, const char **cfg, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_getone(WT_SESSION_IMPL *session, const char *config, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_getones(WT_SESSION_IMPL *session, const char *config, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_getones_none(WT_SESSION_IMPL *session, const char *config, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_gets_def(WT_SESSION_IMPL *session, const char **cfg, const char *key, int def, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_subgetraw(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cfg, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_subgets(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cfg, const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_conn_foc_discard(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_configure_method(WT_SESSION_IMPL *session, const char *method, const char *uri, const char *config, const char *type, const char *check) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_check(WT_SESSION_IMPL *session, const WT_CONFIG_ENTRY *entry, const char *config, size_t config_len) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_collapse( WT_SESSION_IMPL *session, const char **cfg, char **config_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_merge(WT_SESSION_IMPL *session, const char **cfg, const char *cfg_strip, const char **config_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_conn_config_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_conn_config_discard(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const WT_CONFIG_ENTRY *__wt_conn_config_match(const char *method) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_config_get(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, WT_CONFIG_ARG *cfg_arg, const char *key, WT_CONFIG_ITEM *cval) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_config_get_string(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *config, const char *key, WT_CONFIG_ITEM *cval) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_config_parser_open(WT_EXTENSION_API *wt_ext, WT_SESSION *wt_session, const char *config, size_t len, WT_CONFIG_PARSER **config_parserp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_config_parser_open_arg(WT_EXTENSION_API *wt_ext, WT_SESSION *wt_session, WT_CONFIG_ARG *cfg_arg, WT_CONFIG_PARSER **config_parserp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_config_upgrade(WT_SESSION_IMPL *session, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_wiredtiger_error(int error) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_collator_config(WT_SESSION_IMPL *session, const char *uri, WT_CONFIG_ITEM *cname, WT_CONFIG_ITEM *metadata, WT_COLLATOR **collatorp, int *ownp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_remove_collator(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_compressor_config( WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cval, WT_COMPRESSOR **compressorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_remove_compressor(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_remove_data_source(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_encryptor_config(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cval, WT_CONFIG_ITEM *keyid, WT_CONFIG_ARG *cfg_arg, WT_KEYED_ENCRYPTOR **kencryptorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_remove_encryptor(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_extractor_config(WT_SESSION_IMPL *session, const char *uri, const char *config, WT_EXTRACTOR **extractorp, int *ownp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_remove_extractor(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_verbose_config(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cache_config(WT_SESSION_IMPL *session, bool reconfigure, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cache_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cache_stats_update(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cache_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cache_pool_config(WT_SESSION_IMPL *session, const char **cfg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_cache_pool_open(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_cache_pool_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern WT_THREAD_RET __wt_cache_pool_server(void *arg) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_checkpoint_server_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_checkpoint_server_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_checkpoint_signal(WT_SESSION_IMPL *session, wt_off_t logsize) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_dhandle_find( WT_SESSION_IMPL *session, const char *uri, const char *checkpoint) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_btree_sync_and_close(WT_SESSION_IMPL *session, bool final, bool force) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_btree_open( WT_SESSION_IMPL *session, const char *cfg[], uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_btree_apply(WT_SESSION_IMPL *session, const char *uri, int (*file_func)(WT_SESSION_IMPL *, const char *[]), int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_dhandle_close_all( WT_SESSION_IMPL *session, const char *uri, bool force) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_dhandle_discard_single( WT_SESSION_IMPL *session, bool final, bool force) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_conn_dhandle_discard(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_connection_init(WT_CONNECTION_IMPL *conn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_connection_destroy(WT_CONNECTION_IMPL *conn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logmgr_reconfig(WT_SESSION_IMPL *session, const char **cfg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_truncate_files( WT_SESSION_IMPL *session, WT_CURSOR *cursor, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_log_wrlsn(WT_SESSION_IMPL *session, int *yield) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logmgr_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logmgr_open(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logmgr_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_connection_open(WT_CONNECTION_IMPL *conn, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_connection_close(WT_CONNECTION_IMPL *conn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_connection_workers(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_conn_stat_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_statlog_create(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_statlog_destroy(WT_SESSION_IMPL *session, bool is_close) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_sweep_config(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_sweep_create(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_sweep_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curbackup_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_backup_file_remove(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curbulk_init(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk, bool bitmap, bool skip_sort_check) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curconfig_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curds_open( WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_DATA_SOURCE *dsrc, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curdump_create(WT_CURSOR *child, WT_CURSOR *owner, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curfile_next_random(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curfile_update_check(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curfile_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curindex_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curjoin_joined(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curjoin_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curjoin_join(WT_SESSION_IMPL *session, WT_CURSOR_JOIN *cjoin, WT_INDEX *idx, WT_CURSOR *ref_cursor, uint8_t flags, uint8_t range, uint64_t count, uint32_t bloom_bit_count, uint32_t bloom_hash_count) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_json_alloc_unpack(WT_SESSION_IMPL *session, const void *buffer, size_t size, const char *fmt, WT_CURSOR_JSON *json, bool iskey, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_json_close(WT_SESSION_IMPL *session, WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern size_t __wt_json_unpack_char(u_char ch, u_char *buf, size_t bufsz, bool force_unicode) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern void __wt_json_column_init(WT_CURSOR *cursor, const char *keyformat, const WT_CONFIG_ITEM *idxconf, const WT_CONFIG_ITEM *colconf) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_json_token(WT_SESSION *wt_session, const char *src, int *toktype, const char **tokstart, size_t *toklen) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern const char *__wt_json_tokname(int toktype) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern int __wt_json_to_item(WT_SESSION_IMPL *session, const char *jstr, const char *format, WT_CURSOR_JSON *json, bool iskey, WT_ITEM *item) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern ssize_t __wt_json_strlen(const char *src, size_t srclen) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern int __wt_json_strncpy(WT_SESSION *wt_session, char **pdst, size_t dstlen, const char *src, size_t srclen) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_curlog_open(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curmetadata_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_curstat_dsrc_final(WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curstat_init(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *curjoin, const char *cfg[], WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curstat_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *other, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_noop(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_notsup(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_get_value_notsup(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_set_key_notsup(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_set_value_notsup(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_compare_notsup(WT_CURSOR *a, WT_CURSOR *b, int *cmpp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_equals_notsup(WT_CURSOR *cursor, WT_CURSOR *other, int *equalp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_search_near_notsup(WT_CURSOR *cursor, int *exact) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_reconfigure_notsup(WT_CURSOR *cursor, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_set_notsup(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_kv_not_set(WT_CURSOR *cursor, bool key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_get_key(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_set_key(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_get_raw_key(WT_CURSOR *cursor, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_set_raw_key(WT_CURSOR *cursor, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_get_raw_value(WT_CURSOR *cursor, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_set_raw_value(WT_CURSOR *cursor, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_get_keyv(WT_CURSOR *cursor, uint32_t flags, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_set_keyv(WT_CURSOR *cursor, uint32_t flags, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_get_value(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_get_valuev(WT_CURSOR *cursor, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_set_value(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cursor_set_valuev(WT_CURSOR *cursor, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_close(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_equals(WT_CURSOR *cursor, WT_CURSOR *other, int *equalp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_reconfigure(WT_CURSOR *cursor, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_dup_position(WT_CURSOR *to_dup, WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cursor_init(WT_CURSOR *cursor, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_apply_single_idx(WT_SESSION_IMPL *session, WT_INDEX *idx, WT_CURSOR *cur, WT_CURSOR_TABLE *ctable, int (*f)(WT_CURSOR *)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curtable_get_key(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curtable_get_value(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_curtable_set_key(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_curtable_set_value(WT_CURSOR *cursor, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_table_range_truncate(WT_CURSOR_TABLE *start, WT_CURSOR_TABLE *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curtable_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_evict_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_evict_list_clear_page(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_evict_server_wake(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_evict_thread_run(WT_SESSION_IMPL *session, WT_THREAD *thread) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_evict_create(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_evict_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_evict_file_exclusive_on(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_evict_file_exclusive_off(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cache_eviction_worker(WT_SESSION_IMPL *session, bool busy, u_int pct_full) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_page_evict_urgent(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_evict_priority_set(WT_SESSION_IMPL *session, uint64_t v) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_evict_priority_clear(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cache_dump(WT_SESSION_IMPL *session, const char *ofile) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_page_release_evict(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_evict(WT_SESSION_IMPL *session, WT_REF *ref, bool closing) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_curstat_cache_walk(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_log_ckpt(WT_SESSION_IMPL *session, WT_LSN *ckp_lsn) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_flush_lsn(WT_SESSION_IMPL *session, WT_LSN *lsn, bool start) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_log_background(WT_SESSION_IMPL *session, WT_LSN *lsn) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_force_sync(WT_SESSION_IMPL *session, WT_LSN *min_lsn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_needs_recovery(WT_SESSION_IMPL *session, WT_LSN *ckp_lsn, bool *recp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_log_written_reset(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_get_all_files(WT_SESSION_IMPL *session, char ***filesp, u_int *countp, uint32_t *maxid, bool active_only) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_extract_lognum( WT_SESSION_IMPL *session, const char *name, uint32_t *id) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_acquire(WT_SESSION_IMPL *session, uint64_t recsize, WT_LOGSLOT *slot) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_allocfile( WT_SESSION_IMPL *session, uint32_t lognum, const char *dest) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_remove(WT_SESSION_IMPL *session, const char *file_prefix, uint32_t lognum) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_open(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_close(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_release(WT_SESSION_IMPL *session, WT_LOGSLOT *slot, bool *freep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_scan(WT_SESSION_IMPL *session, WT_LSN *lsnp, uint32_t flags, int (*func)(WT_SESSION_IMPL *session, WT_ITEM *record, WT_LSN *lsnp, WT_LSN *next_lsnp, void *cookie, int firstrecord), void *cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_force_write(WT_SESSION_IMPL *session, bool retry, bool *did_work) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_write(WT_SESSION_IMPL *session, WT_ITEM *record, WT_LSN *lsnp, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_vprintf(WT_SESSION_IMPL *session, const char *fmt, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_flush(WT_SESSION_IMPL *session, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logrec_alloc(WT_SESSION_IMPL *session, size_t size, WT_ITEM **logrecp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_logrec_free(WT_SESSION_IMPL *session, WT_ITEM **logrecp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logrec_read(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *rectypep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_read(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *optypep, uint32_t *opsizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_col_put_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, uint64_t recno, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_col_put_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, uint64_t *recnop, WT_ITEM *valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_col_put_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_col_remove_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, uint64_t recno) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_col_remove_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, uint64_t *recnop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_col_remove_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_col_truncate_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, uint64_t start, uint64_t stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_col_truncate_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, uint64_t *startp, uint64_t *stopp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_col_truncate_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_row_put_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, WT_ITEM *key, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_row_put_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, WT_ITEM *keyp, WT_ITEM *valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_row_put_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_row_remove_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, WT_ITEM *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_row_remove_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, WT_ITEM *keyp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_row_remove_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_row_truncate_pack( WT_SESSION_IMPL *session, WT_ITEM *logrec, uint32_t fileid, WT_ITEM *start, WT_ITEM *stop, uint32_t mode) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_row_truncate_unpack( WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t *fileidp, WT_ITEM *startp, WT_ITEM *stopp, uint32_t *modep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_logop_row_truncate_print(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_op_printlog(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_log_slot_activate(WT_SESSION_IMPL *session, WT_LOGSLOT *slot) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_slot_switch( WT_SESSION_IMPL *session, WT_MYSLOT *myslot, bool retry, bool forced) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_slot_new(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_slot_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_log_slot_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_log_slot_join(WT_SESSION_IMPL *session, uint64_t mysize, uint32_t flags, WT_MYSLOT *myslot) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int64_t __wt_log_slot_release(WT_SESSION_IMPL *session, WT_MYSLOT *myslot, int64_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_log_slot_free(WT_SESSION_IMPL *session, WT_LOGSLOT *slot) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_clsm_request_switch(WT_CURSOR_LSM *clsm) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_clsm_await_switch(WT_CURSOR_LSM *clsm) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_clsm_init_merge( WT_CURSOR *cursor, u_int start_chunk, uint32_t start_id, u_int nchunks) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_clsm_close(WT_CURSOR *cursor) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_clsm_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_clsm_open_bulk(WT_CURSOR_LSM *clsm, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_manager_config(WT_SESSION_IMPL *session, const char **cfg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_manager_reconfig(WT_SESSION_IMPL *session, const char **cfg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_manager_start(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_lsm_manager_free_work_unit( WT_SESSION_IMPL *session, WT_LSM_WORK_UNIT *entry) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_manager_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_lsm_manager_clear_tree(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_manager_pop_entry( WT_SESSION_IMPL *session, uint32_t type, WT_LSM_WORK_UNIT **entryp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_manager_push_entry(WT_SESSION_IMPL *session, uint32_t type, uint32_t flags, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_merge_update_tree(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, u_int start_chunk, u_int nchunks, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_merge(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, u_int id) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_meta_read(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_meta_write(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curstat_lsm_init( WT_SESSION_IMPL *session, const char *uri, WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_close_all(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_bloom_name(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, uint32_t id, const char **retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_chunk_name(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, uint32_t id, const char **retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_set_chunk_size( WT_SESSION_IMPL *session, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_setup_chunk( WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_setup_bloom( WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_create(WT_SESSION_IMPL *session, const char *uri, bool exclusive, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_get(WT_SESSION_IMPL *session, const char *uri, bool exclusive, WT_LSM_TREE **treep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_lsm_tree_release(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_lsm_tree_throttle( WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, bool decrease_only) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_switch(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_retire_chunks(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, u_int start_chunk, u_int nchunks) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_drop( WT_SESSION_IMPL *session, const char *name, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_rename(WT_SESSION_IMPL *session, const char *olduri, const char *newuri, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_truncate( WT_SESSION_IMPL *session, const char *name, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_lsm_tree_readlock(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_lsm_tree_readunlock(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_lsm_tree_writelock(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_lsm_tree_writeunlock(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_tree_worker(WT_SESSION_IMPL *session, const char *uri, int (*file_func)(WT_SESSION_IMPL *, const char *[]), int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[], uint32_t open_flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_get_chunk_to_flush(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, bool force, WT_LSM_CHUNK **chunkp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_work_switch( WT_SESSION_IMPL *session, WT_LSM_WORK_UNIT **entryp, bool *ran) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_work_bloom(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_checkpoint_chunk(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, WT_LSM_CHUNK *chunk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_free_chunks(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_lsm_worker_start(WT_SESSION_IMPL *session, WT_LSM_WORKER_ARGS *args) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_apply_all(WT_SESSION_IMPL *session, int (*file_func)(WT_SESSION_IMPL *, const char *[]), int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_checkpoint(WT_SESSION_IMPL *session, const char *fname, const char *checkpoint, WT_CKPT *ckpt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_checkpoint_last_name( WT_SESSION_IMPL *session, const char *fname, const char **namep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_checkpoint_clear(WT_SESSION_IMPL *session, const char *fname) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_ckptlist_get( WT_SESSION_IMPL *session, const char *fname, WT_CKPT **ckptbasep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_ckptlist_set(WT_SESSION_IMPL *session, const char *fname, WT_CKPT *ckptbase, WT_LSN *ckptlsn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_meta_ckptlist_free(WT_SESSION_IMPL *session, WT_CKPT *ckptbase) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_meta_checkpoint_free(WT_SESSION_IMPL *session, WT_CKPT *ckpt) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_metadata_insert(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_metadata_remove( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_metadata_search(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *key, char **valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_metadata_update(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_metadata_get_ckptlist( WT_SESSION *session, const char *name, WT_CKPT **ckptbasep) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern void __wt_metadata_free_ckptlist(WT_SESSION *session, WT_CKPT *ckptbase) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern int __wt_metadata_cursor_open( WT_SESSION_IMPL *session, const char *config, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_metadata_cursor(WT_SESSION_IMPL *session, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_metadata_cursor_release(WT_SESSION_IMPL *session, WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_metadata_insert( WT_SESSION_IMPL *session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_metadata_update( WT_SESSION_IMPL *session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_metadata_remove(WT_SESSION_IMPL *session, const char *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_metadata_search(WT_SESSION_IMPL *session, const char *key, char **valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_meta_track_discard(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_on(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_off(WT_SESSION_IMPL *session, bool need_sync, bool unroll) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_meta_track_sub_on(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_sub_off(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_checkpoint(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_insert(WT_SESSION_IMPL *session, const char *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_update(WT_SESSION_IMPL *session, const char *key) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_fileop( WT_SESSION_IMPL *session, const char *olduri, const char *newuri) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_drop( WT_SESSION_IMPL *session, const char *filename) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_handle_lock(WT_SESSION_IMPL *session, bool created) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_meta_track_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_turtle_init(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_turtle_read(WT_SESSION_IMPL *session, const char *key, char **valuep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_turtle_update(WT_SESSION_IMPL *session, const char *key, const char *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_filename(WT_SESSION_IMPL *session, const char *name, char **path) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_nfilename( WT_SESSION_IMPL *session, const char *name, size_t namelen, char **path) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_remove_if_exists(WT_SESSION_IMPL *session, const char *name, bool durable) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_copy_and_sync(WT_SESSION *wt_session, const char *from, const char *to) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern void __wt_abort(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((noreturn)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_calloc(WT_SESSION_IMPL *session, size_t number, size_t size, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_malloc(WT_SESSION_IMPL *session, size_t bytes_to_allocate, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_realloc(WT_SESSION_IMPL *session, size_t *bytes_allocated_ret, size_t bytes_to_allocate, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_realloc_noclear(WT_SESSION_IMPL *session, size_t *bytes_allocated_ret, size_t bytes_to_allocate, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_realloc_aligned(WT_SESSION_IMPL *session, size_t *bytes_allocated_ret, size_t bytes_to_allocate, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_strndup(WT_SESSION_IMPL *session, const void *str, size_t len, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_free_int(WT_SESSION_IMPL *session, const void *p_arg) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern int __wt_errno(void) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_strerror(WT_SESSION_IMPL *session, int error, char *errbuf, size_t errlen) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_map_windows_error( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, uint32_t windows_error) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_handle_is_open(WT_SESSION_IMPL *session, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_open(WT_SESSION_IMPL *session, const char *name, WT_FS_OPEN_FILE_TYPE file_type, u_int flags, WT_FH **fhp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_close(WT_SESSION_IMPL *session, WT_FH **fhp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_close_connection_close(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_os_inmemory(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_fopen(WT_SESSION_IMPL *session, const char *name, uint32_t open_flags, uint32_t flags, WT_FSTREAM **fstrp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_os_stdio(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_getopt( const char *progname, int nargc, char *const *nargv, const char *ostr) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern uint64_t __wt_strtouq(const char *nptr, char **endptr, int base) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern int __wt_ext_struct_pack(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, void *buffer, size_t size, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_struct_size(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, size_t *sizep, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_struct_unpack(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const void *buffer, size_t size, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_struct_check(WT_SESSION_IMPL *session, const char *fmt, size_t len, bool *fixedp, uint32_t *fixed_lenp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_struct_confchk(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *v) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_struct_size(WT_SESSION_IMPL *session, size_t *sizep, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_struct_pack(WT_SESSION_IMPL *session, void *buffer, size_t size, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_struct_unpack(WT_SESSION_IMPL *session, const void *buffer, size_t size, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_struct_repack(WT_SESSION_IMPL *session, const char *infmt, const char *outfmt, const WT_ITEM *inbuf, WT_ITEM *outbuf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_pack_start(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *format, void *buffer, size_t size, WT_PACK_STREAM **psp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_unpack_start(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *format, const void *buffer, size_t size, WT_PACK_STREAM **psp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_pack_close(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, size_t *usedp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_pack_item(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, WT_ITEM *item) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_pack_int(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, int64_t i) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_pack_str(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, const char *s) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_pack_uint(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, uint64_t u) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_unpack_item(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, WT_ITEM *item) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_unpack_int(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, int64_t *ip) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_unpack_str(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, const char **sp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_unpack_uint(WT_EXTENSION_API *wt_api, WT_PACK_STREAM *ps, uint64_t *up) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_discard_add(WT_SESSION_IMPL *session, WT_PAGE *page, WT_CELL *cell) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_ovfl_discard_free(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_reuse_search(WT_SESSION_IMPL *session, WT_PAGE *page, uint8_t **addrp, size_t *addr_sizep, const void *value, size_t value_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_reuse_add(WT_SESSION_IMPL *session, WT_PAGE *page, const uint8_t *addr, size_t addr_size, const void *value, size_t value_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_ovfl_reuse_free(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_txnc_search( WT_PAGE *page, const uint8_t *addr, size_t addr_size, WT_ITEM *store) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_txnc_add(WT_SESSION_IMPL *session, WT_PAGE *page, const uint8_t *addr, size_t addr_size, const void *value, size_t value_size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_ovfl_txnc_free(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_track_wrapup(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ovfl_track_wrapup_err(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_reconcile(WT_SESSION_IMPL *session, WT_REF *ref, WT_SALVAGE_COOKIE *salvage, uint32_t flags, bool *lookaside_retryp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint32_t __wt_split_page_size(WT_BTREE *btree, uint32_t maxpagesize) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bulk_init(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bulk_wrapup(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bulk_insert_row(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bulk_insert_fix( WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk, bool deleted) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bulk_insert_fix_bitmap(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bulk_insert_var( WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk, bool deleted) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_direct_io_size_check(WT_SESSION_IMPL *session, const char **cfg, const char *config_name, uint32_t *allocsizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_colgroup_source(WT_SESSION_IMPL *session, WT_TABLE *table, const char *cgname, const char *config, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_index_source(WT_SESSION_IMPL *session, WT_TABLE *table, const char *idxname, const char *config, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_create( WT_SESSION_IMPL *session, const char *uri, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_drop(WT_SESSION_IMPL *session, const char *uri, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_get_table(WT_SESSION_IMPL *session, const char *name, size_t namelen, bool ok_incomplete, WT_TABLE **tablep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_schema_release_table(WT_SESSION_IMPL *session, WT_TABLE *table) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_schema_destroy_colgroup(WT_SESSION_IMPL *session, WT_COLGROUP **colgroupp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_destroy_index(WT_SESSION_IMPL *session, WT_INDEX **idxp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_destroy_table(WT_SESSION_IMPL *session, WT_TABLE **tablep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_remove_table(WT_SESSION_IMPL *session, WT_TABLE *table) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_close_tables(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_colgroup_name(WT_SESSION_IMPL *session, WT_TABLE *table, const char *cgname, size_t len, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_open_colgroups(WT_SESSION_IMPL *session, WT_TABLE *table) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_open_index(WT_SESSION_IMPL *session, WT_TABLE *table, const char *idxname, size_t len, WT_INDEX **indexp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_open_indices(WT_SESSION_IMPL *session, WT_TABLE *table) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_get_colgroup(WT_SESSION_IMPL *session, const char *uri, bool quiet, WT_TABLE **tablep, WT_COLGROUP **colgroupp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_get_index(WT_SESSION_IMPL *session, const char *uri, bool quiet, WT_TABLE **tablep, WT_INDEX **indexp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_open_table(WT_SESSION_IMPL *session, const char *name, size_t namelen, bool ok_incomplete, WT_TABLE **tablep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_colcheck(WT_SESSION_IMPL *session, const char *key_format, const char *value_format, WT_CONFIG_ITEM *colconf, u_int *kcolsp, u_int *vcolsp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_table_check(WT_SESSION_IMPL *session, WT_TABLE *table) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_struct_plan(WT_SESSION_IMPL *session, WT_TABLE *table, const char *columns, size_t len, bool value_only, WT_ITEM *plan) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_struct_reformat(WT_SESSION_IMPL *session, WT_TABLE *table, const char *columns, size_t len, const char *extra_cols, bool value_only, WT_ITEM *format) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_struct_truncate(WT_SESSION_IMPL *session, const char *input_fmt, u_int ncols, WT_ITEM *format) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_project_in(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *proj_arg, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_project_out(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *proj_arg, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_project_slice(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *proj_arg, bool key_only, const char *vformat, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_project_merge(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *proj_arg, const char *vformat, WT_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_rename(WT_SESSION_IMPL *session, const char *uri, const char *newuri, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curstat_colgroup_init(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curstat_index_init(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_curstat_table_init(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], WT_CURSOR_STAT *cst) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_truncate( WT_SESSION_IMPL *session, const char *uri, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_range_truncate(WT_CURSOR *start, WT_CURSOR *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_range_truncate( WT_SESSION_IMPL *session, WT_CURSOR *start, WT_CURSOR *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_backup_check(WT_SESSION_IMPL *session, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern WT_DATA_SOURCE *__wt_schema_get_source(WT_SESSION_IMPL *session, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_str_name_check(WT_SESSION_IMPL *session, const char *str) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_name_check(WT_SESSION_IMPL *session, const char *str, size_t len) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_schema_worker(WT_SESSION_IMPL *session, const char *uri, int (*file_func)(WT_SESSION_IMPL *, const char *[]), int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[], uint32_t open_flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_notsup(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_reset_cursors(WT_SESSION_IMPL *session, bool free_buffers) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_copy_values(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_release_resources(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_open_cursor(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, const char *cfg[], WT_CURSOR **cursorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_create( WT_SESSION_IMPL *session, const char *uri, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_range_truncate(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *start, WT_CURSOR *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_session_strerror(WT_SESSION *wt_session, int error) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_open_session(WT_CONNECTION_IMPL *conn, WT_EVENT_HANDLER *event_handler, const char *config, bool open_metadata, WT_SESSION_IMPL **sessionp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_open_internal_session(WT_CONNECTION_IMPL *conn, const char *name, bool open_metadata, uint32_t session_flags, WT_SESSION_IMPL **sessionp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_compact_check_timeout(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_compact( WT_SESSION *wt_session, const char *uri, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_compact_readonly( WT_SESSION *wt_session, const char *uri, const char *config) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_lock_dhandle( WT_SESSION_IMPL *session, uint32_t flags, bool *is_deadp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_release_btree(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_get_btree_ckpt(WT_SESSION_IMPL *session, const char *uri, const char *cfg[], uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_session_close_cache(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_get_btree(WT_SESSION_IMPL *session, const char *uri, const char *checkpoint, const char *cfg[], uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_session_lock_checkpoint(WT_SESSION_IMPL *session, const char *checkpoint) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_salvage(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cond_auto_alloc( WT_SESSION_IMPL *session, const char *name, bool is_signalled, uint64_t min, uint64_t max, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cond_auto_signal(WT_SESSION_IMPL *session, WT_CONDVAR *cond) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cond_auto_wait_signal( WT_SESSION_IMPL *session, WT_CONDVAR *cond, bool progress, bool *signalled) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cond_auto_wait( WT_SESSION_IMPL *session, WT_CONDVAR *cond, bool progress) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cond_auto_destroy(WT_SESSION_IMPL *session, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_decrypt(WT_SESSION_IMPL *session, WT_ENCRYPTOR *encryptor, size_t skip, WT_ITEM *in, WT_ITEM *out) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_encrypt(WT_SESSION_IMPL *session, WT_KEYED_ENCRYPTOR *kencryptor, size_t skip, WT_ITEM *in, WT_ITEM *out) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_encrypt_size(WT_SESSION_IMPL *session, WT_KEYED_ENCRYPTOR *kencryptor, size_t incoming_size, size_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_event_handler_set(WT_SESSION_IMPL *session, WT_EVENT_HANDLER *handler) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_eventv(WT_SESSION_IMPL *session, bool msg_event, int error, const char *file_name, int line_number, const char *fmt, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_err(WT_SESSION_IMPL *session, int error, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern void __wt_errx(WT_SESSION_IMPL *session, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 2, 3))) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_err_printf( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_msg(WT_SESSION_IMPL *session, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 2, 3))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_msg_printf( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_ext_strerror(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, int error) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_progress(WT_SESSION_IMPL *session, const char *s, uint64_t v) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); extern void __wt_assert(WT_SESSION_IMPL *session, int error, const char *file_name, int line_number, const char *fmt, ...) @@ -635,128 +635,128 @@ __wt_assert(WT_SESSION_IMPL *session, #ifdef HAVE_DIAGNOSTIC WT_GCC_FUNC_DECL_ATTRIBUTE((noreturn)) #endif -; -extern int __wt_panic(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_illegal_value(WT_SESSION_IMPL *session, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_object_unsupported(WT_SESSION_IMPL *session, const char *uri) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_bad_object_type(WT_SESSION_IMPL *session, const char *uri) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_unexpected_object_type( WT_SESSION_IMPL *session, const char *uri, const char *expect) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_library_init(void) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_breakpoint(void); -extern void __wt_attach(WT_SESSION_IMPL *session); -extern uint64_t __wt_hash_city64(const void *s, size_t len); -extern uint64_t __wt_hash_fnv64(const void *string, size_t len); + WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern int __wt_panic(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_illegal_value(WT_SESSION_IMPL *session, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_object_unsupported(WT_SESSION_IMPL *session, const char *uri) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_bad_object_type(WT_SESSION_IMPL *session, const char *uri) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_unexpected_object_type( WT_SESSION_IMPL *session, const char *uri, const char *expect) WT_GCC_FUNC_DECL_ATTRIBUTE((cold)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_library_init(void) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_breakpoint(void) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_attach(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint64_t __wt_hash_city64(const void *s, size_t len) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint64_t __wt_hash_fnv64(const void *string, size_t len) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); extern int __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp #ifdef HAVE_DIAGNOSTIC , const char *file, int line #endif - ); -extern int __wt_hazard_clear(WT_SESSION_IMPL *session, WT_PAGE *page) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_hazard_close(WT_SESSION_IMPL *session); -extern u_int __wt_hazard_count(WT_SESSION_IMPL *session, WT_PAGE *page); -extern void __wt_fill_hex(const uint8_t *src, size_t src_max, uint8_t *dest, size_t dest_max, size_t *lenp); -extern int __wt_raw_to_hex( WT_SESSION_IMPL *session, const uint8_t *from, size_t size, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_raw_to_esc_hex( WT_SESSION_IMPL *session, const uint8_t *from, size_t size, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_hex2byte(const u_char *from, u_char *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_hex_to_raw(WT_SESSION_IMPL *session, const char *from, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_nhex_to_raw( WT_SESSION_IMPL *session, const char *from, size_t size, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_esc_hex_to_raw(WT_SESSION_IMPL *session, const char *from, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_huffman_open(WT_SESSION_IMPL *session, void *symbol_frequency_array, u_int symcnt, u_int numbytes, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_huffman_close(WT_SESSION_IMPL *session, void *huffman_arg); -extern void __wt_print_huffman_code(void *huffman_arg, uint16_t symbol); -extern int __wt_huffman_encode(WT_SESSION_IMPL *session, void *huffman_arg, const uint8_t *from_arg, size_t from_len, WT_ITEM *to_buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_huffman_decode(WT_SESSION_IMPL *session, void *huffman_arg, const uint8_t *from_arg, size_t from_len, WT_ITEM *to_buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_rwlock_alloc( WT_SESSION_IMPL *session, WT_RWLOCK **rwlockp, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_try_readlock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_readlock_spin(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock); -extern void __wt_readlock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock); -extern void __wt_readunlock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock); -extern int __wt_try_writelock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_writelock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock); -extern void __wt_writeunlock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock); -extern void __wt_rwlock_destroy(WT_SESSION_IMPL *session, WT_RWLOCK **rwlockp); -extern bool __wt_rwlock_islocked(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock); -extern uint32_t __wt_nlpo2_round(uint32_t v); -extern uint32_t __wt_nlpo2(uint32_t v); -extern uint32_t __wt_log2_int(uint32_t n); -extern bool __wt_ispo2(uint32_t v); -extern uint32_t __wt_rduppo2(uint32_t n, uint32_t po2); -extern void __wt_random_init(WT_RAND_STATE volatile *rnd_state); -extern void __wt_random_init_seed( WT_SESSION_IMPL *session, WT_RAND_STATE volatile *rnd_state); -extern uint32_t __wt_random(WT_RAND_STATE volatile *rnd_state); -extern int __wt_buf_grow_worker(WT_SESSION_IMPL *session, WT_ITEM *buf, size_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_buf_fmt(WT_SESSION_IMPL *session, WT_ITEM *buf, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_buf_catfmt(WT_SESSION_IMPL *session, WT_ITEM *buf, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern const char *__wt_buf_set_printable( WT_SESSION_IMPL *session, const void *p, size_t size, WT_ITEM *buf); -extern const char *__wt_buf_set_size( WT_SESSION_IMPL *session, uint64_t size, bool exact, WT_ITEM *buf); + ) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_hazard_clear(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_hazard_close(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern u_int __wt_hazard_count(WT_SESSION_IMPL *session, WT_REF *ref) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_fill_hex(const uint8_t *src, size_t src_max, uint8_t *dest, size_t dest_max, size_t *lenp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_raw_to_hex( WT_SESSION_IMPL *session, const uint8_t *from, size_t size, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_raw_to_esc_hex( WT_SESSION_IMPL *session, const uint8_t *from, size_t size, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_hex2byte(const u_char *from, u_char *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_hex_to_raw(WT_SESSION_IMPL *session, const char *from, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_nhex_to_raw( WT_SESSION_IMPL *session, const char *from, size_t size, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_esc_hex_to_raw(WT_SESSION_IMPL *session, const char *from, WT_ITEM *to) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_huffman_open(WT_SESSION_IMPL *session, void *symbol_frequency_array, u_int symcnt, u_int numbytes, void *retp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_huffman_close(WT_SESSION_IMPL *session, void *huffman_arg) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_print_huffman_code(void *huffman_arg, uint16_t symbol) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_huffman_encode(WT_SESSION_IMPL *session, void *huffman_arg, const uint8_t *from_arg, size_t from_len, WT_ITEM *to_buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_huffman_decode(WT_SESSION_IMPL *session, void *huffman_arg, const uint8_t *from_arg, size_t from_len, WT_ITEM *to_buf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_rwlock_alloc( WT_SESSION_IMPL *session, WT_RWLOCK **rwlockp, const char *name) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_try_readlock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_readlock_spin(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_readlock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_readunlock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_try_writelock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_writelock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_writeunlock(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_rwlock_destroy(WT_SESSION_IMPL *session, WT_RWLOCK **rwlockp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_rwlock_islocked(WT_SESSION_IMPL *session, WT_RWLOCK *rwlock) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint32_t __wt_nlpo2_round(uint32_t v) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint32_t __wt_nlpo2(uint32_t v) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint32_t __wt_log2_int(uint32_t n) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_ispo2(uint32_t v) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint32_t __wt_rduppo2(uint32_t n, uint32_t po2) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_random_init(WT_RAND_STATE volatile *rnd_state) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern void __wt_random_init_seed( WT_SESSION_IMPL *session, WT_RAND_STATE volatile *rnd_state) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern uint32_t __wt_random(WT_RAND_STATE volatile *rnd_state) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern int __wt_buf_grow_worker(WT_SESSION_IMPL *session, WT_ITEM *buf, size_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_buf_fmt(WT_SESSION_IMPL *session, WT_ITEM *buf, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_buf_catfmt(WT_SESSION_IMPL *session, WT_ITEM *buf, const char *fmt, ...) WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_buf_set_printable( WT_SESSION_IMPL *session, const void *p, size_t size, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_buf_set_size( WT_SESSION_IMPL *session, uint64_t size, bool exact, WT_ITEM *buf) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); extern int __wt_scr_alloc_func(WT_SESSION_IMPL *session, size_t size, WT_ITEM **scratchp #ifdef HAVE_DIAGNOSTIC , const char *file, int line #endif - ); -extern void __wt_scr_discard(WT_SESSION_IMPL *session); -extern void *__wt_ext_scr_alloc( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, size_t size); -extern void __wt_ext_scr_free(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, void *p); -extern int __wt_stat_dsrc_desc(WT_CURSOR_STAT *cst, int slot, const char **p) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_stat_dsrc_init_single(WT_DSRC_STATS *stats); -extern int __wt_stat_dsrc_init( WT_SESSION_IMPL *session, WT_DATA_HANDLE *handle) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_stat_dsrc_discard( WT_SESSION_IMPL *session, WT_DATA_HANDLE *handle); -extern void __wt_stat_dsrc_clear_single(WT_DSRC_STATS *stats); -extern void __wt_stat_dsrc_clear_all(WT_DSRC_STATS **stats); -extern void __wt_stat_dsrc_aggregate_single( WT_DSRC_STATS *from, WT_DSRC_STATS *to); -extern void __wt_stat_dsrc_aggregate( WT_DSRC_STATS **from, WT_DSRC_STATS *to); -extern int __wt_stat_connection_desc(WT_CURSOR_STAT *cst, int slot, const char **p) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_stat_connection_init_single(WT_CONNECTION_STATS *stats); -extern int __wt_stat_connection_init( WT_SESSION_IMPL *session, WT_CONNECTION_IMPL *handle) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_stat_connection_discard( WT_SESSION_IMPL *session, WT_CONNECTION_IMPL *handle); -extern void __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats); -extern void __wt_stat_connection_clear_all(WT_CONNECTION_STATS **stats); -extern void __wt_stat_connection_aggregate( WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *to); -extern int __wt_stat_join_desc(WT_CURSOR_STAT *cst, int slot, const char **p) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_stat_join_init_single(WT_JOIN_STATS *stats); -extern void __wt_stat_join_clear_single(WT_JOIN_STATS *stats); -extern void __wt_stat_join_clear_all(WT_JOIN_STATS **stats); -extern void __wt_stat_join_aggregate( WT_JOIN_STATS **from, WT_JOIN_STATS *to); -extern WT_THREAD_RET __wt_thread_run(void *arg); -extern int __wt_thread_group_resize( WT_SESSION_IMPL *session, WT_THREAD_GROUP *group, uint32_t new_min, uint32_t new_max, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_thread_group_create( WT_SESSION_IMPL *session, WT_THREAD_GROUP *group, const char *name, uint32_t min, uint32_t max, uint32_t flags, int (*run_func)(WT_SESSION_IMPL *session, WT_THREAD *context)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_thread_group_destroy(WT_SESSION_IMPL *session, WT_THREAD_GROUP *group) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_thread_group_start_one( WT_SESSION_IMPL *session, WT_THREAD_GROUP *group, bool wait) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_txn_release_snapshot(WT_SESSION_IMPL *session); -extern void __wt_txn_get_snapshot(WT_SESSION_IMPL *session); -extern int __wt_txn_update_oldest(WT_SESSION_IMPL *session, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_config(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_txn_release(WT_SESSION_IMPL *session); -extern int __wt_txn_commit(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_rollback(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_init(WT_SESSION_IMPL *session, WT_SESSION_IMPL *session_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_txn_stats_update(WT_SESSION_IMPL *session); -extern void __wt_txn_destroy(WT_SESSION_IMPL *session); -extern int __wt_txn_global_init(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_txn_global_destroy(WT_SESSION_IMPL *session); -extern int __wt_checkpoint_get_handles(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_checkpoint(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_checkpoint_sync(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_checkpoint_close(WT_SESSION_IMPL *session, bool final) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern uint64_t __wt_ext_transaction_id(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session); -extern int __wt_ext_transaction_isolation_level( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_ext_transaction_notify( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, WT_TXN_NOTIFY *notify) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern uint64_t __wt_ext_transaction_oldest(WT_EXTENSION_API *wt_api); -extern int __wt_ext_transaction_visible( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, uint64_t transaction_id) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_txn_op_free(WT_SESSION_IMPL *session, WT_TXN_OP *op); -extern int __wt_txn_log_op(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_log_commit(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_checkpoint_logread(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, WT_LSN *ckpt_lsn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_checkpoint_log( WT_SESSION_IMPL *session, bool full, uint32_t flags, WT_LSN *lsnp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_truncate_log( WT_SESSION_IMPL *session, WT_CURSOR_BTREE *start, WT_CURSOR_BTREE *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_txn_truncate_end(WT_SESSION_IMPL *session); -extern int __wt_txn_printlog(WT_SESSION *wt_session, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_named_snapshot_begin(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_named_snapshot_drop(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_named_snapshot_get(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *nameval) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_txn_named_snapshot_config(WT_SESSION_IMPL *session, const char *cfg[], bool *has_create, bool *has_drops) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_txn_named_snapshot_destroy(WT_SESSION_IMPL *session); -extern int __wt_txn_recover(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); + ) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_scr_discard(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void *__wt_ext_scr_alloc( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, size_t size) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_ext_scr_free(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, void *p) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_stat_dsrc_desc(WT_CURSOR_STAT *cst, int slot, const char **p) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_dsrc_init_single(WT_DSRC_STATS *stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_stat_dsrc_init( WT_SESSION_IMPL *session, WT_DATA_HANDLE *handle) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_dsrc_discard( WT_SESSION_IMPL *session, WT_DATA_HANDLE *handle) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_dsrc_clear_single(WT_DSRC_STATS *stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_dsrc_clear_all(WT_DSRC_STATS **stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_dsrc_aggregate_single( WT_DSRC_STATS *from, WT_DSRC_STATS *to) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_dsrc_aggregate( WT_DSRC_STATS **from, WT_DSRC_STATS *to) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_stat_connection_desc(WT_CURSOR_STAT *cst, int slot, const char **p) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_connection_init_single(WT_CONNECTION_STATS *stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_stat_connection_init( WT_SESSION_IMPL *session, WT_CONNECTION_IMPL *handle) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_connection_discard( WT_SESSION_IMPL *session, WT_CONNECTION_IMPL *handle) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_connection_clear_all(WT_CONNECTION_STATS **stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_connection_aggregate( WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *to) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_stat_join_desc(WT_CURSOR_STAT *cst, int slot, const char **p) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_join_init_single(WT_JOIN_STATS *stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_join_clear_single(WT_JOIN_STATS *stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_join_clear_all(WT_JOIN_STATS **stats) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stat_join_aggregate( WT_JOIN_STATS **from, WT_JOIN_STATS *to) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern WT_THREAD_RET __wt_thread_run(void *arg) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_thread_group_resize( WT_SESSION_IMPL *session, WT_THREAD_GROUP *group, uint32_t new_min, uint32_t new_max, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_thread_group_create( WT_SESSION_IMPL *session, WT_THREAD_GROUP *group, const char *name, uint32_t min, uint32_t max, uint32_t flags, int (*run_func)(WT_SESSION_IMPL *session, WT_THREAD *context)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_thread_group_destroy(WT_SESSION_IMPL *session, WT_THREAD_GROUP *group) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_thread_group_start_one( WT_SESSION_IMPL *session, WT_THREAD_GROUP *group, bool wait) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_txn_release_snapshot(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_txn_get_snapshot(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_update_oldest(WT_SESSION_IMPL *session, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_config(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_txn_release(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_commit(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_rollback(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_init(WT_SESSION_IMPL *session, WT_SESSION_IMPL *session_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_txn_stats_update(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_txn_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_global_init(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_txn_global_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_checkpoint_get_handles(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[], bool waiting) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_checkpoint(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_checkpoint_sync(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_checkpoint_close(WT_SESSION_IMPL *session, bool final) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint64_t __wt_ext_transaction_id(WT_EXTENSION_API *wt_api, WT_SESSION *wt_session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_transaction_isolation_level( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_transaction_notify( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, WT_TXN_NOTIFY *notify) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern uint64_t __wt_ext_transaction_oldest(WT_EXTENSION_API *wt_api) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_ext_transaction_visible( WT_EXTENSION_API *wt_api, WT_SESSION *wt_session, uint64_t transaction_id) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_txn_op_free(WT_SESSION_IMPL *session, WT_TXN_OP *op) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_log_op(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_log_commit(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_checkpoint_logread(WT_SESSION_IMPL *session, const uint8_t **pp, const uint8_t *end, WT_LSN *ckpt_lsn) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_checkpoint_log( WT_SESSION_IMPL *session, bool full, uint32_t flags, WT_LSN *lsnp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_truncate_log( WT_SESSION_IMPL *session, WT_CURSOR_BTREE *start, WT_CURSOR_BTREE *stop) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_txn_truncate_end(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_printlog(WT_SESSION *wt_session, uint32_t flags) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_txn_named_snapshot_begin(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_named_snapshot_drop(WT_SESSION_IMPL *session, const char *cfg[]) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_named_snapshot_get(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *nameval) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_named_snapshot_config(WT_SESSION_IMPL *session, const char *cfg[], bool *has_create, bool *has_drops) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_txn_named_snapshot_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_txn_recover(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); diff --git a/src/include/extern_posix.h b/src/include/extern_posix.h index fd94ef0ddf2..5acb7b0ed27 100644 --- a/src/include/extern_posix.h +++ b/src/include/extern_posix.h @@ -1,31 +1,31 @@ /* DO NOT EDIT: automatically built by dist/s_prototypes. */ -extern int __wt_posix_directory_list(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *directory, const char *prefix, char ***dirlistp, uint32_t *countp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_posix_directory_list_free(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, char **dirlist, uint32_t count) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_dlopen(WT_SESSION_IMPL *session, const char *path, WT_DLH **dlhp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_dlsym(WT_SESSION_IMPL *session, WT_DLH *dlh, const char *name, bool fail, void *sym_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_dlclose(WT_SESSION_IMPL *session, WT_DLH *dlh) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_posix_file_extend( WT_FILE_HANDLE *file_handle, WT_SESSION *wt_session, wt_off_t offset) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_os_posix(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_getenv(WT_SESSION_IMPL *session, const char *variable, const char **envp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_posix_map(WT_FILE_HANDLE *fh, WT_SESSION *wt_session, void *mapped_regionp, size_t *lenp, void *mapped_cookiep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_posix_map_preload(WT_FILE_HANDLE *fh, WT_SESSION *wt_session, const void *map, size_t length, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_posix_map_discard(WT_FILE_HANDLE *fh, WT_SESSION *wt_session, void *map, size_t length, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_posix_unmap(WT_FILE_HANDLE *fh, WT_SESSION *wt_session, void *mapped_region, size_t len, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cond_alloc(WT_SESSION_IMPL *session, const char *name, bool is_signalled, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cond_wait_signal( WT_SESSION_IMPL *session, WT_CONDVAR *cond, uint64_t usecs, bool *signalled); -extern void __wt_cond_signal(WT_SESSION_IMPL *session, WT_CONDVAR *cond); -extern int __wt_cond_destroy(WT_SESSION_IMPL *session, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_once(void (*init_routine)(void)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_get_vm_pagesize(void) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern bool __wt_absolute_path(const char *path); -extern const char *__wt_path_separator(void); -extern bool __wt_has_priv(void); -extern void __wt_stream_set_line_buffer(FILE *fp); -extern void __wt_stream_set_no_buffer(FILE *fp); -extern void __wt_sleep(uint64_t seconds, uint64_t micro_seconds); -extern int __wt_thread_create(WT_SESSION_IMPL *session, wt_thread_t *tidret, WT_THREAD_CALLBACK(*func)(void *), void *arg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_thread_join(WT_SESSION_IMPL *session, wt_thread_t tid) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_thread_id(char *buf, size_t buflen); -extern void __wt_epoch(WT_SESSION_IMPL *session, struct timespec *tsp); -extern void __wt_yield(void); +extern int __wt_posix_directory_list(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *directory, const char *prefix, char ***dirlistp, uint32_t *countp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_posix_directory_list_free(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, char **dirlist, uint32_t count) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_dlopen(WT_SESSION_IMPL *session, const char *path, WT_DLH **dlhp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_dlsym(WT_SESSION_IMPL *session, WT_DLH *dlh, const char *name, bool fail, void *sym_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_dlclose(WT_SESSION_IMPL *session, WT_DLH *dlh) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_posix_file_extend( WT_FILE_HANDLE *file_handle, WT_SESSION *wt_session, wt_off_t offset) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_os_posix(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_getenv(WT_SESSION_IMPL *session, const char *variable, const char **envp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); +extern int __wt_posix_map(WT_FILE_HANDLE *fh, WT_SESSION *wt_session, void *mapped_regionp, size_t *lenp, void *mapped_cookiep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_posix_map_preload(WT_FILE_HANDLE *fh, WT_SESSION *wt_session, const void *map, size_t length, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_posix_map_discard(WT_FILE_HANDLE *fh, WT_SESSION *wt_session, void *map, size_t length, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_posix_unmap(WT_FILE_HANDLE *fh, WT_SESSION *wt_session, void *mapped_region, size_t len, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cond_alloc(WT_SESSION_IMPL *session, const char *name, bool is_signalled, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cond_wait_signal( WT_SESSION_IMPL *session, WT_CONDVAR *cond, uint64_t usecs, bool *signalled) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cond_signal(WT_SESSION_IMPL *session, WT_CONDVAR *cond) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cond_destroy(WT_SESSION_IMPL *session, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_once(void (*init_routine)(void)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_get_vm_pagesize(void) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_absolute_path(const char *path) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_path_separator(void) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_has_priv(void) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stream_set_line_buffer(FILE *fp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern void __wt_stream_set_no_buffer(FILE *fp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern void __wt_sleep(uint64_t seconds, uint64_t micro_seconds) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern int __wt_thread_create(WT_SESSION_IMPL *session, wt_thread_t *tidret, WT_THREAD_CALLBACK(*func)(void *), void *arg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_thread_join(WT_SESSION_IMPL *session, wt_thread_t tid) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_thread_id(char *buf, size_t buflen) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern void __wt_epoch(WT_SESSION_IMPL *session, struct timespec *tsp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); +extern void __wt_yield(void) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("default"))); diff --git a/src/include/extern_win.h b/src/include/extern_win.h index f06ee881ece..11b45f11304 100644 --- a/src/include/extern_win.h +++ b/src/include/extern_win.h @@ -1,34 +1,34 @@ /* DO NOT EDIT: automatically built by dist/s_prototypes. */ -extern int __wt_win_directory_list(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *directory, const char *prefix, char ***dirlistp, uint32_t *countp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_win_directory_list_free(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, char **dirlist, uint32_t count) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_dlopen(WT_SESSION_IMPL *session, const char *path, WT_DLH **dlhp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_dlsym(WT_SESSION_IMPL *session, WT_DLH *dlh, const char *name, bool fail, void *sym_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_dlclose(WT_SESSION_IMPL *session, WT_DLH *dlh) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_win_fs_size(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *name, wt_off_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_os_win(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_getenv(WT_SESSION_IMPL *session, const char *variable, const char **envp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_win_map(WT_FILE_HANDLE *file_handle, WT_SESSION *wt_session, void *mapped_regionp, size_t *lenp, void *mapped_cookiep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_win_unmap(WT_FILE_HANDLE *file_handle, WT_SESSION *wt_session, void *mapped_region, size_t length, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_cond_alloc(WT_SESSION_IMPL *session, const char *name, bool is_signalled, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_cond_wait_signal( WT_SESSION_IMPL *session, WT_CONDVAR *cond, uint64_t usecs, bool *signalled); -extern void __wt_cond_signal(WT_SESSION_IMPL *session, WT_CONDVAR *cond); -extern int __wt_cond_destroy(WT_SESSION_IMPL *session, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_once(void (*init_routine)(void)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_get_vm_pagesize(void) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern bool __wt_absolute_path(const char *path); -extern const char *__wt_path_separator(void); -extern bool __wt_has_priv(void); -extern void __wt_stream_set_line_buffer(FILE *fp); -extern void __wt_stream_set_no_buffer(FILE *fp); -extern void __wt_sleep(uint64_t seconds, uint64_t micro_seconds); -extern int __wt_thread_create(WT_SESSION_IMPL *session, wt_thread_t *tidret, WT_THREAD_CALLBACK(*func)(void *), void *arg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_thread_join(WT_SESSION_IMPL *session, wt_thread_t tid) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern void __wt_thread_id(char *buf, size_t buflen); -extern void __wt_epoch(WT_SESSION_IMPL *session, struct timespec *tsp); -extern int __wt_to_utf16_string( WT_SESSION_IMPL *session, const char*utf8, WT_ITEM **outbuf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern int __wt_to_utf8_string( WT_SESSION_IMPL *session, const wchar_t*wide, WT_ITEM **outbuf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern DWORD __wt_getlasterror(void); -extern int __wt_map_windows_error(DWORD windows_error) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)); -extern const char *__wt_formatmessage(WT_SESSION_IMPL *session, DWORD windows_error); -extern void __wt_yield(void); +extern int __wt_win_directory_list(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *directory, const char *prefix, char ***dirlistp, uint32_t *countp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_win_directory_list_free(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, char **dirlist, uint32_t count) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_dlopen(WT_SESSION_IMPL *session, const char *path, WT_DLH **dlhp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_dlsym(WT_SESSION_IMPL *session, WT_DLH *dlh, const char *name, bool fail, void *sym_ret) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_dlclose(WT_SESSION_IMPL *session, WT_DLH *dlh) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_win_fs_size(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *name, wt_off_t *sizep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_os_win(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_getenv(WT_SESSION_IMPL *session, const char *variable, const char **envp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_win_map(WT_FILE_HANDLE *file_handle, WT_SESSION *wt_session, void *mapped_regionp, size_t *lenp, void *mapped_cookiep) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_win_unmap(WT_FILE_HANDLE *file_handle, WT_SESSION *wt_session, void *mapped_region, size_t length, void *mapped_cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cond_alloc(WT_SESSION_IMPL *session, const char *name, bool is_signalled, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cond_wait_signal( WT_SESSION_IMPL *session, WT_CONDVAR *cond, uint64_t usecs, bool *signalled) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_cond_signal(WT_SESSION_IMPL *session, WT_CONDVAR *cond) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_cond_destroy(WT_SESSION_IMPL *session, WT_CONDVAR **condp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_once(void (*init_routine)(void)) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_get_vm_pagesize(void) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_absolute_path(const char *path) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_path_separator(void) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern bool __wt_has_priv(void) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stream_set_line_buffer(FILE *fp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_stream_set_no_buffer(FILE *fp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_sleep(uint64_t seconds, uint64_t micro_seconds) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_thread_create(WT_SESSION_IMPL *session, wt_thread_t *tidret, WT_THREAD_CALLBACK(*func)(void *), void *arg) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_thread_join(WT_SESSION_IMPL *session, wt_thread_t tid) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_thread_id(char *buf, size_t buflen) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_epoch(WT_SESSION_IMPL *session, struct timespec *tsp) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_to_utf16_string( WT_SESSION_IMPL *session, const char*utf8, WT_ITEM **outbuf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_to_utf8_string( WT_SESSION_IMPL *session, const wchar_t*wide, WT_ITEM **outbuf) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern DWORD __wt_getlasterror(void) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern int __wt_map_windows_error(DWORD windows_error) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result)) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern const char *__wt_formatmessage(WT_SESSION_IMPL *session, DWORD windows_error) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); +extern void __wt_yield(void) WT_GCC_FUNC_DECL_ATTRIBUTE((visibility("hidden"))); diff --git a/src/include/flags.h b/src/include/flags.h index d4c0b519cb1..e7a5ba066df 100644 --- a/src/include/flags.h +++ b/src/include/flags.h @@ -52,25 +52,23 @@ #define WT_READ_WONT_NEED 0x00001000 #define WT_SESSION_CAN_WAIT 0x00000001 #define WT_SESSION_INTERNAL 0x00000002 -#define WT_SESSION_IN_SPLIT 0x00000004 -#define WT_SESSION_LOCKED_CHECKPOINT 0x00000008 -#define WT_SESSION_LOCKED_HANDLE_LIST 0x00000010 -#define WT_SESSION_LOCKED_METADATA 0x00000020 -#define WT_SESSION_LOCKED_PASS 0x00000040 -#define WT_SESSION_LOCKED_SCHEMA 0x00000080 -#define WT_SESSION_LOCKED_SLOT 0x00000100 -#define WT_SESSION_LOCKED_TABLE 0x00000200 -#define WT_SESSION_LOCKED_TURTLE 0x00000400 -#define WT_SESSION_LOCK_NO_WAIT 0x00000800 -#define WT_SESSION_LOGGING_INMEM 0x00001000 -#define WT_SESSION_LOOKASIDE_CURSOR 0x00002000 -#define WT_SESSION_NO_CACHE 0x00004000 -#define WT_SESSION_NO_DATA_HANDLES 0x00008000 -#define WT_SESSION_NO_EVICTION 0x00010000 -#define WT_SESSION_NO_LOGGING 0x00020000 -#define WT_SESSION_NO_SCHEMA_LOCK 0x00040000 -#define WT_SESSION_QUIET_CORRUPT_FILE 0x00080000 -#define WT_SESSION_SERVER_ASYNC 0x00100000 +#define WT_SESSION_LOCKED_CHECKPOINT 0x00000004 +#define WT_SESSION_LOCKED_HANDLE_LIST 0x00000008 +#define WT_SESSION_LOCKED_METADATA 0x00000010 +#define WT_SESSION_LOCKED_PASS 0x00000020 +#define WT_SESSION_LOCKED_SCHEMA 0x00000040 +#define WT_SESSION_LOCKED_SLOT 0x00000080 +#define WT_SESSION_LOCKED_TABLE 0x00000100 +#define WT_SESSION_LOCKED_TURTLE 0x00000200 +#define WT_SESSION_LOGGING_INMEM 0x00000400 +#define WT_SESSION_LOOKASIDE_CURSOR 0x00000800 +#define WT_SESSION_NO_CACHE 0x00001000 +#define WT_SESSION_NO_DATA_HANDLES 0x00002000 +#define WT_SESSION_NO_EVICTION 0x00004000 +#define WT_SESSION_NO_LOGGING 0x00008000 +#define WT_SESSION_NO_SCHEMA_LOCK 0x00010000 +#define WT_SESSION_QUIET_CORRUPT_FILE 0x00020000 +#define WT_SESSION_SERVER_ASYNC 0x00040000 #define WT_STAT_CLEAR 0x00000001 #define WT_STAT_JSON 0x00000002 #define WT_STAT_ON_CLOSE 0x00000004 diff --git a/src/include/log.h b/src/include/log.h index b91c7dffe60..6272b63b8a9 100644 --- a/src/include/log.h +++ b/src/include/log.h @@ -180,9 +180,9 @@ struct WT_COMPILER_TYPE_ALIGN(WT_CACHE_LINE_ALIGNMENT) __wt_logslot { #define WT_SLOT_INIT_FLAGS 0 -#define WT_WITH_SLOT_LOCK(session, log, ret, op) do { \ +#define WT_WITH_SLOT_LOCK(session, log, op) do { \ WT_ASSERT(session, !F_ISSET(session, WT_SESSION_LOCKED_SLOT)); \ - WT_WITH_LOCK(session, ret, \ + WT_WITH_LOCK_WAIT(session, \ &log->log_slot_lock, WT_SESSION_LOCKED_SLOT, op); \ } while (0) diff --git a/src/include/meta.h b/src/include/meta.h index 74df3c57ce4..68ac2e339d0 100644 --- a/src/include/meta.h +++ b/src/include/meta.h @@ -42,9 +42,9 @@ * WT_WITH_TURTLE_LOCK -- * Acquire the turtle file lock, perform an operation, drop the lock. */ -#define WT_WITH_TURTLE_LOCK(session, ret, op) do { \ +#define WT_WITH_TURTLE_LOCK(session, op) do { \ WT_ASSERT(session, !F_ISSET(session, WT_SESSION_LOCKED_TURTLE));\ - WT_WITH_LOCK(session, ret, \ + WT_WITH_LOCK_WAIT(session, \ &S2C(session)->turtle_lock, WT_SESSION_LOCKED_TURTLE, op); \ } while (0) diff --git a/src/include/misc.h b/src/include/misc.h index 83e238b0529..66d43496e93 100644 --- a/src/include/misc.h +++ b/src/include/misc.h @@ -275,6 +275,3 @@ union __wt_rand_state { uint32_t w, z; } x; }; - -/* Shared array for converting to hex */ -extern const u_char __wt_hex[]; diff --git a/src/include/misc.i b/src/include/misc.i index befd480e085..f36be32d6a2 100644 --- a/src/include/misc.i +++ b/src/include/misc.i @@ -19,6 +19,16 @@ __wt_cond_wait(WT_SESSION_IMPL *session, WT_CONDVAR *cond, uint64_t usecs) } /* + * __wt_hex -- + * Convert a byte to a hex character. + */ +static inline u_char +__wt_hex(int c) +{ + return ((u_char)"0123456789abcdef"[c]); +} + +/* * __wt_strdup -- * ANSI strdup function. */ diff --git a/src/include/schema.h b/src/include/schema.h index 6a5ce67a867..a17affb7660 100644 --- a/src/include/schema.h +++ b/src/include/schema.h @@ -95,29 +95,30 @@ struct __wt_table { } while (0) /* - * WT_WITH_LOCK -- - * Acquire a lock, perform an operation, drop the lock. + * WT_WITH_LOCK_NOWAIT -- + * Acquire a lock if available, perform an operation, drop the lock. */ -#define WT_WITH_LOCK(session, ret, lock, flag, op) do { \ +#define WT_WITH_LOCK_NOWAIT(session, ret, lock, flag, op) do { \ ret = 0; \ - if (!F_ISSET(session, (flag)) && \ - F_ISSET(session, WT_SESSION_LOCK_NO_WAIT)) { \ - if ((ret = __wt_spin_trylock(session, lock)) == 0) { \ - F_SET(session, (flag)); \ - op; \ - F_CLR(session, (flag)); \ - __wt_spin_unlock(session, lock); \ - } \ - } else \ - WT_WITH_LOCK_WAIT(session, lock, flag, op); \ + if (F_ISSET(session, (flag))) { \ + op; \ + } else if ((ret = __wt_spin_trylock(session, lock)) == 0) { \ + F_SET(session, (flag)); \ + op; \ + F_CLR(session, (flag)); \ + __wt_spin_unlock(session, lock); \ + } \ } while (0) /* - * WT_WITH_CHECKPOINT_LOCK -- + * WT_WITH_CHECKPOINT_LOCK, WT_WITH_CHECKPOINT_LOCK_NOWAIT -- * Acquire the checkpoint lock, perform an operation, drop the lock. */ -#define WT_WITH_CHECKPOINT_LOCK(session, ret, op) \ - WT_WITH_LOCK(session, ret, \ +#define WT_WITH_CHECKPOINT_LOCK(session, op) \ + WT_WITH_LOCK_WAIT(session, \ + &S2C(session)->checkpoint_lock, WT_SESSION_LOCKED_CHECKPOINT, op) +#define WT_WITH_CHECKPOINT_LOCK_NOWAIT(session, ret, op) \ + WT_WITH_LOCK_NOWAIT(session, ret, \ &S2C(session)->checkpoint_lock, WT_SESSION_LOCKED_CHECKPOINT, op) /* @@ -136,34 +137,49 @@ struct __wt_table { * WT_WITH_METADATA_LOCK -- * Acquire the metadata lock, perform an operation, drop the lock. */ -#define WT_WITH_METADATA_LOCK(session, ret, op) \ - WT_WITH_LOCK(session, ret, \ +#define WT_WITH_METADATA_LOCK(session, op) \ + WT_WITH_LOCK_WAIT(session, \ &S2C(session)->metadata_lock, WT_SESSION_LOCKED_METADATA, op) /* - * WT_WITH_SCHEMA_LOCK -- + * WT_WITH_SCHEMA_LOCK, WT_WITH_SCHEMA_LOCK_NOWAIT -- * Acquire the schema lock, perform an operation, drop the lock. * Check that we are not already holding some other lock: the schema lock * must be taken first. */ -#define WT_WITH_SCHEMA_LOCK(session, ret, op) do { \ +#define WT_WITH_SCHEMA_LOCK(session, op) do { \ WT_ASSERT(session, \ F_ISSET(session, WT_SESSION_LOCKED_SCHEMA) || \ !F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST | \ WT_SESSION_NO_SCHEMA_LOCK | WT_SESSION_LOCKED_TABLE)); \ - WT_WITH_LOCK(session, ret, \ + WT_WITH_LOCK_WAIT(session, \ + &S2C(session)->schema_lock, WT_SESSION_LOCKED_SCHEMA, op); \ +} while (0) +#define WT_WITH_SCHEMA_LOCK_NOWAIT(session, ret, op) do { \ + WT_ASSERT(session, \ + F_ISSET(session, WT_SESSION_LOCKED_SCHEMA) || \ + !F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST | \ + WT_SESSION_NO_SCHEMA_LOCK | WT_SESSION_LOCKED_TABLE)); \ + WT_WITH_LOCK_NOWAIT(session, ret, \ &S2C(session)->schema_lock, WT_SESSION_LOCKED_SCHEMA, op); \ } while (0) /* - * WT_WITH_TABLE_LOCK -- + * WT_WITH_TABLE_LOCK, WT_WITH_TABLE_LOCK_NOWAIT -- * Acquire the table lock, perform an operation, drop the lock. */ -#define WT_WITH_TABLE_LOCK(session, ret, op) do { \ +#define WT_WITH_TABLE_LOCK(session, op) do { \ + WT_ASSERT(session, \ + F_ISSET(session, WT_SESSION_LOCKED_TABLE) || \ + !F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST)); \ + WT_WITH_LOCK_WAIT(session, \ + &S2C(session)->table_lock, WT_SESSION_LOCKED_TABLE, op); \ +} while (0) +#define WT_WITH_TABLE_LOCK_NOWAIT(session, ret, op) do { \ WT_ASSERT(session, \ F_ISSET(session, WT_SESSION_LOCKED_TABLE) || \ !F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST)); \ - WT_WITH_LOCK(session, ret, \ + WT_WITH_LOCK_NOWAIT(session, ret, \ &S2C(session)->table_lock, WT_SESSION_LOCKED_TABLE, op); \ } while (0) diff --git a/src/include/session.h b/src/include/session.h index 3f9f495c134..76cb463602c 100644 --- a/src/include/session.h +++ b/src/include/session.h @@ -23,7 +23,7 @@ struct __wt_data_handle_cache { * A hazard pointer. */ struct __wt_hazard { - WT_PAGE *page; /* Page address */ + WT_REF *ref; /* Page reference */ #ifdef HAVE_DIAGNOSTIC const char *file; /* File/line where hazard acquired */ int line; @@ -75,7 +75,7 @@ struct WT_COMPILER_TYPE_ALIGN(WT_CACHE_LINE_ALIGNMENT) __wt_session_impl { WT_CURSOR_BACKUP *bkp_cursor; /* Hot backup cursor */ - WT_COMPACT *compact; /* Compaction information */ + WT_COMPACT_STATE *compact; /* Compaction information */ enum { WT_COMPACT_NONE=0, WT_COMPACT_RUNNING, WT_COMPACT_SUCCESS } compact_state; diff --git a/src/include/txn.h b/src/include/txn.h index 344275e23d0..afe5a1965c4 100644 --- a/src/include/txn.h +++ b/src/include/txn.h @@ -62,7 +62,7 @@ struct __wt_named_snapshot { TAILQ_ENTRY(__wt_named_snapshot) q; - uint64_t pinned_id, snap_min, snap_max; + uint64_t id, pinned_id, snap_min, snap_max; uint64_t *snapshot; uint32_t snapshot_count; }; @@ -103,6 +103,7 @@ struct __wt_txn_global { * the metadata; and (b) once checkpoint has finished reading a table, * it won't revisit it. */ + volatile bool checkpoint_running; /* Checkpoint running */ volatile uint32_t checkpoint_id; /* Checkpoint's session ID */ volatile uint64_t checkpoint_gen; /* Checkpoint generation */ volatile uint64_t checkpoint_pinned; /* Oldest ID for checkpoint */ diff --git a/src/include/wiredtiger.in b/src/include/wiredtiger.in index 8da46582924..2365135e08d 100644 --- a/src/include/wiredtiger.in +++ b/src/include/wiredtiger.in @@ -995,6 +995,13 @@ struct __wt_session { * \c "table:stock". For a description of URI formats * see @ref data_sources. * @configstart{WT_SESSION.create, see dist/api_data.py} + * @config{access_pattern_hint, It is recommended that workloads that + * consist primarily of updates and/or point queries specify \c random. + * Workloads that do many cursor scans through large ranges of data + * specify \c sequential and other workloads specify \c none. The + * option leads to an advisory call to an appropriate operating system + * API where available., a string\, chosen from the following options: + * \c "none"\, \c "random"\, \c "sequential"; default \c none.} * @config{allocation_size, the file unit allocation size\, in bytes\, * must a power-of-two; smaller values decrease the file space required * by overflow items\, and the default value of 4KB is a good choice @@ -1641,6 +1648,10 @@ struct __wt_session { * including the specified name., a string; default empty.} * @config{ * ),,} + * @config{include_updates, make updates from the current transaction + * visible to users of the named snapshot. Transactions started with + * such a named snapshot are restricted to being read-only., a boolean + * flag; default \c false.} * @config{name, specify a name for the snapshot., a string; default * empty.} * @configend @@ -3730,21 +3741,25 @@ typedef enum { WT_FS_OPEN_FILE_TYPE_REGULAR /*!< open a regular file */ } WT_FS_OPEN_FILE_TYPE; +/*! WT_FILE_SYSTEM::open_file flags: random access pattern */ +#define WT_FS_OPEN_ACCESS_RAND 0x001 +/*! WT_FILE_SYSTEM::open_file flags: sequential access pattern */ +#define WT_FS_OPEN_ACCESS_SEQ 0x002 /*! WT_FILE_SYSTEM::open_file flags: create if does not exist */ -#define WT_FS_OPEN_CREATE 0x001 +#define WT_FS_OPEN_CREATE 0x004 /*! WT_FILE_SYSTEM::open_file flags: direct I/O requested */ -#define WT_FS_OPEN_DIRECTIO 0x002 +#define WT_FS_OPEN_DIRECTIO 0x008 /*! WT_FILE_SYSTEM::open_file flags: file creation must be durable */ -#define WT_FS_OPEN_DURABLE 0x004 +#define WT_FS_OPEN_DURABLE 0x010 /*! * WT_FILE_SYSTEM::open_file flags: return EBUSY if exclusive use not available */ -#define WT_FS_OPEN_EXCLUSIVE 0x008 +#define WT_FS_OPEN_EXCLUSIVE 0x020 #ifndef DOXYGEN -#define WT_FS_OPEN_FIXED 0x010 /* Path not home relative (internal) */ +#define WT_FS_OPEN_FIXED 0x040 /* Path not home relative (internal) */ #endif /*! WT_FILE_SYSTEM::open_file flags: open is read-only */ -#define WT_FS_OPEN_READONLY 0x020 +#define WT_FS_OPEN_READONLY 0x080 /*! * WT_FILE_SYSTEM::remove or WT_FILE_SYSTEM::rename flags: the remove or rename diff --git a/src/include/wt_internal.h b/src/include/wt_internal.h index dc3e3a0b6c0..e18563dd2d2 100644 --- a/src/include/wt_internal.h +++ b/src/include/wt_internal.h @@ -108,8 +108,8 @@ struct __wt_col_rle; typedef struct __wt_col_rle WT_COL_RLE; struct __wt_colgroup; typedef struct __wt_colgroup WT_COLGROUP; -struct __wt_compact; - typedef struct __wt_compact WT_COMPACT; +struct __wt_compact_state; + typedef struct __wt_compact_state WT_COMPACT_STATE; struct __wt_condvar; typedef struct __wt_condvar WT_CONDVAR; struct __wt_config; diff --git a/src/log/log.c b/src/log/log.c index 8b6c8b2c490..413df312a15 100644 --- a/src/log/log.c +++ b/src/log/log.c @@ -159,6 +159,7 @@ __wt_log_force_sync(WT_SESSION_IMPL *session, WT_LSN *min_lsn) uint64_t fsync_duration_usecs; log = S2C(session)->log; + log_fh = NULL; /* * We need to wait for the previous log file to get written @@ -214,11 +215,12 @@ __wt_log_force_sync(WT_SESSION_IMPL *session, WT_LSN *min_lsn) WT_STAT_CONN_INCR(session, log_sync); WT_STAT_CONN_INCRV(session, log_sync_duration, fsync_duration_usecs); - WT_ERR(__wt_close(session, &log_fh)); __wt_cond_signal(session, log->log_sync_cond); } err: __wt_spin_unlock(session, &log->log_sync_lock); + if (log_fh != NULL) + WT_TRET(__wt_close(session, &log_fh)); return (ret); } @@ -1274,7 +1276,7 @@ __wt_log_open(WT_SESSION_IMPL *session) * where the previous log file ends. */ if (!F_ISSET(conn, WT_CONN_READONLY)) { - WT_WITH_SLOT_LOCK(session, log, ret, + WT_WITH_SLOT_LOCK(session, log, ret = __log_newfile(session, true, NULL)); WT_ERR(ret); } diff --git a/src/log/log_slot.c b/src/log/log_slot.c index c79805f5371..3ad6814a5d5 100644 --- a/src/log/log_slot.c +++ b/src/log/log_slot.c @@ -197,7 +197,7 @@ __wt_log_slot_switch( * because we are responsible for setting up the new slot. */ do { - WT_WITH_SLOT_LOCK(session, log, ret, + WT_WITH_SLOT_LOCK(session, log, ret = __log_slot_switch_internal(session, myslot, forced)); if (ret == EBUSY) { WT_STAT_CONN_INCR(session, log_slot_switch_busy); @@ -360,8 +360,7 @@ __wt_log_slot_destroy(WT_SESSION_IMPL *session) /* * __wt_log_slot_join -- - * Join a consolidated logging slot. Must be called with - * the read lock held. + * Join a consolidated logging slot. */ void __wt_log_slot_join(WT_SESSION_IMPL *session, uint64_t mysize, @@ -379,11 +378,6 @@ __wt_log_slot_join(WT_SESSION_IMPL *session, uint64_t mysize, conn = S2C(session); log = conn->log; - /* - * Make sure the length cannot overflow. The caller should not - * even call this function if it doesn't fit but use direct - * writes. - */ WT_ASSERT(session, !F_ISSET(session, WT_SESSION_LOCKED_SLOT)); /* @@ -469,6 +463,11 @@ __wt_log_slot_release(WT_SESSION_IMPL *session, WT_MYSLOT *myslot, int64_t size) WT_UNUSED(session); slot = myslot->slot; my_start = slot->slot_start_offset + myslot->offset; + /* + * We maintain the last starting offset within this slot. + * This is used to know the offset of the last record that + * was written rather than the beginning record of the slot. + */ while ((cur_offset = slot->slot_last_offset) < my_start) { /* * Set our offset if we are larger. diff --git a/src/lsm/lsm_cursor.c b/src/lsm/lsm_cursor.c index 9c124885086..df209ce3b05 100644 --- a/src/lsm/lsm_cursor.c +++ b/src/lsm/lsm_cursor.c @@ -267,7 +267,7 @@ __clsm_enter(WT_CURSOR_LSM *clsm, bool reset, bool update) (!update && F_ISSET(clsm, WT_CLSM_OPEN_READ)))) break; -open: WT_WITH_SCHEMA_LOCK(session, ret, +open: WT_WITH_SCHEMA_LOCK(session, ret = __clsm_open_cursors(clsm, update, 0, 0)); WT_RET(ret); } @@ -763,7 +763,7 @@ __wt_clsm_init_merge( F_SET(clsm, WT_CLSM_MINOR_MERGE); clsm->nchunks = nchunks; - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, ret = __clsm_open_cursors(clsm, false, start_chunk, start_id)); return (ret); } diff --git a/src/lsm/lsm_cursor_bulk.c b/src/lsm/lsm_cursor_bulk.c index 319426de3f0..bae8206515e 100644 --- a/src/lsm/lsm_cursor_bulk.c +++ b/src/lsm/lsm_cursor_bulk.c @@ -113,7 +113,7 @@ __wt_clsm_open_bulk(WT_CURSOR_LSM *clsm, const char *cfg[]) * switch inline, since switch needs a schema lock and online index * creation opens a bulk cursor while holding the schema lock. */ - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_lsm_tree_switch(session, lsm_tree)); WT_RET(ret); diff --git a/src/lsm/lsm_merge.c b/src/lsm/lsm_merge.c index dc47d0118a2..f05a9c4b2b7 100644 --- a/src/lsm/lsm_merge.c +++ b/src/lsm/lsm_merge.c @@ -434,7 +434,7 @@ __wt_lsm_merge(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, u_int id) F_SET(src, WT_CURSTD_RAW); WT_ERR(__wt_clsm_init_merge(src, start_chunk, start_id, nchunks)); - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_lsm_tree_setup_chunk(session, lsm_tree, chunk)); WT_ERR(ret); if (create_bloom) { @@ -604,13 +604,13 @@ err: if (locked) if (ret != 0 && created_chunk) { /* Drop the newly-created files on error. */ if (chunk->uri != NULL) { - WT_WITH_SCHEMA_LOCK(session, tret, + WT_WITH_SCHEMA_LOCK(session, tret = __wt_schema_drop( session, chunk->uri, drop_cfg)); WT_TRET(tret); } if (create_bloom && chunk->bloom_uri != NULL) { - WT_WITH_SCHEMA_LOCK(session, tret, + WT_WITH_SCHEMA_LOCK(session, tret = __wt_schema_drop( session, chunk->bloom_uri, drop_cfg)); WT_TRET(tret); diff --git a/src/lsm/lsm_stat.c b/src/lsm/lsm_stat.c index 3fe3ca1ba81..150de968722 100644 --- a/src/lsm/lsm_stat.c +++ b/src/lsm/lsm_stat.c @@ -178,7 +178,7 @@ __wt_curstat_lsm_init( * Grab the schema lock because we will be locking the LSM tree and we * may need to open some files. */ - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, ret = __curstat_lsm_init(session, uri, cst)); return (ret); diff --git a/src/lsm/lsm_tree.c b/src/lsm/lsm_tree.c index 714007cda98..80d20ad24f8 100644 --- a/src/lsm/lsm_tree.c +++ b/src/lsm/lsm_tree.c @@ -251,7 +251,7 @@ __lsm_tree_cleanup_old(WT_SESSION_IMPL *session, const char *uri) WT_RET(__wt_fs_exist(session, uri + strlen("file:"), &exists)); if (exists) - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_drop(session, uri, cfg)); return (ret); } @@ -1102,7 +1102,6 @@ __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp) WT_DECL_RET; WT_LSM_CHUNK *chunk; WT_LSM_TREE *lsm_tree; - time_t begin, end; uint64_t progress; uint32_t i; bool compacting, flushing, locked, ref; @@ -1139,8 +1138,6 @@ __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp) return (0); } - __wt_seconds(session, &begin); - /* * Compacting has two distinct phases. * 1. All in-memory chunks up to and including the current @@ -1266,12 +1263,9 @@ __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp) } else break; } + WT_ERR(__wt_session_compact_check_timeout(session)); __wt_sleep(1, 0); - __wt_seconds(session, &end); - if (session->compact->max_time > 0 && - session->compact->max_time < (uint64_t)(end - begin)) { - WT_ERR(ETIMEDOUT); - } + /* * Push merge operations while they are still getting work * done. If we are pushing merges, make sure they are diff --git a/src/lsm/lsm_work_unit.c b/src/lsm/lsm_work_unit.c index 66a57f15875..f3414363e3e 100644 --- a/src/lsm/lsm_work_unit.c +++ b/src/lsm/lsm_work_unit.c @@ -172,7 +172,7 @@ __wt_lsm_work_switch( *entryp = NULL; if (entry->lsm_tree->need_switch) { - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_lsm_tree_switch(session, entry->lsm_tree)); /* Failing to complete the switch is fine */ if (ret == EBUSY) { @@ -346,8 +346,8 @@ __wt_lsm_checkpoint_chunk(WT_SESSION_IMPL *session, * time, and our checkpoint operation should be very quick. */ WT_ERR(__wt_meta_track_on(session)); - WT_WITH_CHECKPOINT_LOCK(session, ret, - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_CHECKPOINT_LOCK(session, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker( session, chunk->uri, __wt_checkpoint, NULL, NULL, 0))); WT_TRET(__wt_meta_track_off(session, false, ret != 0)); @@ -526,7 +526,7 @@ __lsm_drop_file(WT_SESSION_IMPL *session, const char *uri) * results in the hot backup lock being taken when it updates the * metadata (which would be too late to prevent our drop). */ - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_drop(session, uri, drop_cfg)); if (ret == 0) diff --git a/src/meta/meta_ext.c b/src/meta/meta_ext.c index b48f7205807..50e7568fe77 100644 --- a/src/meta/meta_ext.c +++ b/src/meta/meta_ext.c @@ -88,6 +88,7 @@ __wt_ext_metadata_update(WT_EXTENSION_API *wt_api, int __wt_metadata_get_ckptlist( WT_SESSION *session, const char *name, WT_CKPT **ckptbasep) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { return (__wt_meta_ckptlist_get( (WT_SESSION_IMPL *)session, name, ckptbasep)); @@ -99,6 +100,7 @@ __wt_metadata_get_ckptlist( */ void __wt_metadata_free_ckptlist(WT_SESSION *session, WT_CKPT *ckptbase) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { __wt_meta_ckptlist_free((WT_SESSION_IMPL *)session, ckptbase); } diff --git a/src/meta/meta_table.c b/src/meta/meta_table.c index 76f4ef0c25f..71be2496678 100644 --- a/src/meta/meta_table.c +++ b/src/meta/meta_table.c @@ -195,7 +195,7 @@ __wt_metadata_update( __metadata_turtle(key) ? "" : "not "); if (__metadata_turtle(key)) { - WT_WITH_TURTLE_LOCK(session, ret, + WT_WITH_TURTLE_LOCK(session, ret = __wt_turtle_update(session, key, value)); return (ret); } diff --git a/src/meta/meta_track.c b/src/meta/meta_track.c index 9655a0b26a7..460b615b267 100644 --- a/src/meta/meta_track.c +++ b/src/meta/meta_track.c @@ -286,7 +286,7 @@ __wt_meta_track_off(WT_SESSION_IMPL *session, bool need_sync, bool unroll) */ ckpt_session->txn.id = session->txn.id; F_SET(ckpt_session, WT_SESSION_LOCKED_METADATA); - WT_WITH_METADATA_LOCK(session, ret, + WT_WITH_METADATA_LOCK(session, WT_WITH_DHANDLE(ckpt_session, WT_SESSION_META_DHANDLE(session), ret = __wt_checkpoint(ckpt_session, NULL))); diff --git a/src/meta/meta_turtle.c b/src/meta/meta_turtle.c index ace0fabab48..66e34c728f2 100644 --- a/src/meta/meta_turtle.c +++ b/src/meta/meta_turtle.c @@ -47,7 +47,7 @@ __metadata_init(WT_SESSION_IMPL *session) * We're single-threaded, but acquire the schema lock regardless: the * lower level code checks that it is appropriately synchronized. */ - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_create(session, WT_METAFILE_URI, NULL)); return (ret); @@ -220,9 +220,8 @@ __wt_turtle_init(WT_SESSION_IMPL *session) /* Create the turtle file. */ WT_RET(__metadata_config(session, &metaconf)); - WT_WITH_TURTLE_LOCK(session, ret, - ret = __wt_turtle_update( - session, WT_METAFILE_URI, metaconf)); + WT_WITH_TURTLE_LOCK(session, ret = + __wt_turtle_update(session, WT_METAFILE_URI, metaconf)); WT_ERR(ret); } diff --git a/src/os_common/filename.c b/src/os_common/filename.c index 8b6c1269829..5aeb64bb51e 100644 --- a/src/os_common/filename.c +++ b/src/os_common/filename.c @@ -72,6 +72,7 @@ __wt_remove_if_exists(WT_SESSION_IMPL *session, const char *name, bool durable) */ int __wt_copy_and_sync(WT_SESSION *wt_session, const char *from, const char *to) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_DECL_ITEM(tmp); WT_DECL_RET; diff --git a/src/os_common/os_alloc.c b/src/os_common/os_alloc.c index bfe5efafc8b..ef96ed09ea7 100644 --- a/src/os_common/os_alloc.c +++ b/src/os_common/os_alloc.c @@ -30,6 +30,7 @@ */ int __wt_calloc(WT_SESSION_IMPL *session, size_t number, size_t size, void *retp) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { void *p; @@ -282,6 +283,7 @@ __wt_strndup(WT_SESSION_IMPL *session, const void *str, size_t len, void *retp) */ void __wt_free_int(WT_SESSION_IMPL *session, const void *p_arg) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { void *p; diff --git a/src/os_common/os_getopt.c b/src/os_common/os_getopt.c index 0306ad1d79d..960776c3999 100644 --- a/src/os_common/os_getopt.c +++ b/src/os_common/os_getopt.c @@ -79,6 +79,7 @@ char *__wt_optarg; /* argument associated with option */ int __wt_getopt( const char *progname, int nargc, char * const *nargv, const char *ostr) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { static const char *place = EMSG; /* option letter processing */ const char *oli; /* option letter list index */ diff --git a/src/os_common/os_strtouq.c b/src/os_common/os_strtouq.c index 0ae604fc761..cb4da0de058 100644 --- a/src/os_common/os_strtouq.c +++ b/src/os_common/os_strtouq.c @@ -14,6 +14,7 @@ */ uint64_t __wt_strtouq(const char *nptr, char **endptr, int base) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { #if defined(HAVE_STRTOUQ) return (strtouq(nptr, endptr, base)); diff --git a/src/os_posix/os_fs.c b/src/os_posix/os_fs.c index 5f06892ce6e..bc8cbf67025 100644 --- a/src/os_posix/os_fs.c +++ b/src/os_posix/os_fs.c @@ -575,7 +575,7 @@ __posix_open_file(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, WT_FILE_HANDLE_POSIX *pfh; WT_SESSION_IMPL *session; mode_t mode; - int f; + int advise_flag, f; WT_UNUSED(file_system); @@ -676,17 +676,24 @@ __posix_open_file(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, #if defined(HAVE_POSIX_FADVISE) /* - * Disable read-ahead on trees: it slows down random read workloads. + * If the user set an access pattern hint, call fadvise now. * Ignore fadvise when doing direct I/O, the kernel cache isn't * interesting. */ - if (!pfh->direct_io && file_type == WT_FS_OPEN_FILE_TYPE_DATA) { - WT_SYSCALL( - posix_fadvise(pfh->fd, 0, 0, POSIX_FADV_RANDOM), ret); + if (!pfh->direct_io && file_type == WT_FS_OPEN_FILE_TYPE_DATA && + LF_ISSET(WT_FS_OPEN_ACCESS_RAND | WT_FS_OPEN_ACCESS_SEQ)) { + advise_flag = 0; + if (LF_ISSET(WT_FS_OPEN_ACCESS_RAND)) + advise_flag = POSIX_FADV_RANDOM; + if (LF_ISSET(WT_FS_OPEN_ACCESS_SEQ)) + advise_flag = POSIX_FADV_SEQUENTIAL; + WT_SYSCALL(posix_fadvise(pfh->fd, 0, 0, advise_flag), ret); if (ret != 0) WT_ERR_MSG(session, ret, "%s: handle-open: posix_fadvise", name); } +#else + WT_UNUSED(advise_flag); #endif directory_open: diff --git a/src/os_posix/os_getenv.c b/src/os_posix/os_getenv.c index 7a086145cee..f779f90acee 100644 --- a/src/os_posix/os_getenv.c +++ b/src/os_posix/os_getenv.c @@ -14,6 +14,7 @@ */ int __wt_getenv(WT_SESSION_IMPL *session, const char *variable, const char **envp) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { const char *temp; diff --git a/src/os_posix/os_setvbuf.c b/src/os_posix/os_setvbuf.c index d6107115eb3..ac3958be22f 100644 --- a/src/os_posix/os_setvbuf.c +++ b/src/os_posix/os_setvbuf.c @@ -14,6 +14,7 @@ */ void __wt_stream_set_line_buffer(FILE *fp) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { /* * This function exists because MSVC doesn't support buffer sizes of 0 @@ -29,6 +30,7 @@ __wt_stream_set_line_buffer(FILE *fp) */ void __wt_stream_set_no_buffer(FILE *fp) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { (void)setvbuf(fp, NULL, _IONBF, 0); } diff --git a/src/os_posix/os_sleep.c b/src/os_posix/os_sleep.c index 8633b8d1ec0..2c60987ced7 100644 --- a/src/os_posix/os_sleep.c +++ b/src/os_posix/os_sleep.c @@ -14,6 +14,7 @@ */ void __wt_sleep(uint64_t seconds, uint64_t micro_seconds) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { struct timeval t; diff --git a/src/os_posix/os_thread.c b/src/os_posix/os_thread.c index e57a308c9b0..9bf36cc2686 100644 --- a/src/os_posix/os_thread.c +++ b/src/os_posix/os_thread.c @@ -47,6 +47,7 @@ __wt_thread_join(WT_SESSION_IMPL *session, wt_thread_t tid) */ void __wt_thread_id(char *buf, size_t buflen) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { pthread_t self; diff --git a/src/os_posix/os_time.c b/src/os_posix/os_time.c index 719e214696b..6f150ee8ffe 100644 --- a/src/os_posix/os_time.c +++ b/src/os_posix/os_time.c @@ -14,6 +14,7 @@ */ void __wt_epoch(WT_SESSION_IMPL *session, struct timespec *tsp) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_DECL_RET; diff --git a/src/os_posix/os_yield.c b/src/os_posix/os_yield.c index 052a46940b7..37d05bc1854 100644 --- a/src/os_posix/os_yield.c +++ b/src/os_posix/os_yield.c @@ -14,6 +14,7 @@ */ void __wt_yield(void) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { sched_yield(); } diff --git a/src/os_win/os_fs.c b/src/os_win/os_fs.c index 7ab7178114b..6c74f2f411f 100644 --- a/src/os_win/os_fs.c +++ b/src/os_win/os_fs.c @@ -521,10 +521,16 @@ __win_open_file(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, FLD_ISSET(conn->txn_logsync, WT_LOG_DSYNC)) f |= FILE_FLAG_WRITE_THROUGH; - /* Disable read-ahead on trees: it slows down random read workloads. */ - if (file_type == WT_FS_OPEN_FILE_TYPE_DATA) + /* If the user indicated a random workload, disable read-ahead. */ + if (file_type == WT_FS_OPEN_FILE_TYPE_DATA && + LF_ISSET(WT_FS_OPEN_ACCESS_RAND)) f |= FILE_FLAG_RANDOM_ACCESS; + /* If the user indicated a sequential workload, set that. */ + if (file_type == WT_FS_OPEN_FILE_TYPE_DATA && + LF_ISSET(WT_FS_OPEN_ACCESS_SEQ)) + f |= FILE_FLAG_SEQUENTIAL_SCAN; + win_fh->filehandle = CreateFileW(name_wide->data, desired_access, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, dwCreationDisposition, f, NULL); diff --git a/src/reconcile/rec_write.c b/src/reconcile/rec_write.c index fe288beed15..86749eef2e1 100644 --- a/src/reconcile/rec_write.c +++ b/src/reconcile/rec_write.c @@ -43,6 +43,10 @@ typedef struct { /* Track the page's maximum transaction ID. */ uint64_t max_txn; + /* Track if all updates were skipped. */ + uint64_t update_cnt; + uint64_t update_skip_cnt; + /* * When we can't mark the page clean (for example, checkpoint found some * uncommitted updates), there's a leave-dirty flag. @@ -327,9 +331,10 @@ static int __rec_split_write(WT_SESSION_IMPL *, WT_RECONCILE *, WT_BOUNDARY *, WT_ITEM *, bool); static int __rec_update_las( WT_SESSION_IMPL *, WT_RECONCILE *, uint32_t, WT_BOUNDARY *); +static int __rec_write_check_complete(WT_SESSION_IMPL *, WT_RECONCILE *); static int __rec_write_init(WT_SESSION_IMPL *, WT_REF *, uint32_t, WT_SALVAGE_COOKIE *, void *); -static int __rec_write_status(WT_SESSION_IMPL *, WT_RECONCILE *, WT_PAGE *); +static void __rec_write_page_status(WT_SESSION_IMPL *, WT_RECONCILE *); static int __rec_write_wrapup(WT_SESSION_IMPL *, WT_RECONCILE *, WT_PAGE *); static int __rec_write_wrapup_err( WT_SESSION_IMPL *, WT_RECONCILE *, WT_PAGE *); @@ -345,8 +350,8 @@ static void __rec_dictionary_reset(WT_RECONCILE *); * Reconcile an in-memory page into its on-disk format, and write it. */ int -__wt_reconcile(WT_SESSION_IMPL *session, - WT_REF *ref, WT_SALVAGE_COOKIE *salvage, uint32_t flags) +__wt_reconcile(WT_SESSION_IMPL *session, WT_REF *ref, + WT_SALVAGE_COOKIE *salvage, uint32_t flags, bool *lookaside_retryp) { WT_DECL_RET; WT_PAGE *page; @@ -356,6 +361,8 @@ __wt_reconcile(WT_SESSION_IMPL *session, page = ref->page; mod = page->modify; + if (lookaside_retryp != NULL) + *lookaside_retryp = false; __wt_verbose(session, WT_VERB_RECONCILE, "%s", __wt_page_type_string(page->type)); @@ -421,19 +428,27 @@ __wt_reconcile(WT_SESSION_IMPL *session, WT_ILLEGAL_VALUE_SET(session); } - /* Get the final status for the reconciliation. */ + /* Checks for a successful reconciliation. */ if (ret == 0) - ret = __rec_write_status(session, r, page); + ret = __rec_write_check_complete(session, r); /* Wrap up the page reconciliation. */ - if (ret == 0) - ret = __rec_write_wrapup(session, r, page); + if (ret == 0 && (ret = __rec_write_wrapup(session, r, page)) == 0) + __rec_write_page_status(session, r); else WT_TRET(__rec_write_wrapup_err(session, r, page)); /* Release the reconciliation lock. */ __wt_writeunlock(session, &page->page_lock); + /* + * If our caller can configure lookaside table reconciliation, flag if + * that's worth trying. The lookaside table doesn't help if we skipped + * updates, it can only help with older readers preventing eviction. + */ + if (lookaside_retryp != NULL && r->update_cnt == r->update_skip_cnt) + *lookaside_retryp = true; + /* Update statistics. */ WT_STAT_CONN_INCR(session, rec_pages); WT_STAT_DATA_INCR(session, rec_pages); @@ -535,17 +550,14 @@ __rec_las_checkpoint_test(WT_SESSION_IMPL *session, WT_RECONCILE *r) } /* - * __rec_write_status -- - * Return the final status for reconciliation. + * __rec_write_check_complete -- + * Check that reconciliation should complete */ static int -__rec_write_status(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page) +__rec_write_check_complete(WT_SESSION_IMPL *session, WT_RECONCILE *r) { - WT_BTREE *btree; - WT_PAGE_MODIFY *mod; - - btree = S2BT(session); - mod = page->modify; + WT_BOUNDARY *bnd; + size_t i; /* * If we have used the lookaside table, check for a lookaside table and @@ -555,6 +567,37 @@ __rec_write_status(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page) return (EBUSY); /* + * If we are doing update/restore based eviction, confirm part of the + * page is being discarded, or at least 10% of the updates won't have + * to be re-instantiated. Otherwise, it isn't progress, don't bother. + */ + if (F_ISSET(r, WT_EVICT_UPDATE_RESTORE)) { + for (bnd = r->bnd, i = 0; i < r->bnd_entries; ++bnd, ++i) + if (bnd->supd == NULL) + break; + if (i == r->bnd_entries && + r->update_cnt / 10 >= r->update_skip_cnt) + return (EBUSY); + } + return (0); +} + +/* + * __rec_write_page_status -- + * Set the page status after reconciliation. + */ +static void +__rec_write_page_status(WT_SESSION_IMPL *session, WT_RECONCILE *r) +{ + WT_BTREE *btree; + WT_PAGE *page; + WT_PAGE_MODIFY *mod; + + btree = S2BT(session); + page = r->page; + mod = page->modify; + + /* * Set the page's status based on whether or not we cleaned the page. */ if (r->leave_dirty) { @@ -612,8 +655,6 @@ __rec_write_status(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page) else WT_ASSERT(session, !F_ISSET(r, WT_EVICTING)); } - - return (0); } /* @@ -675,6 +716,7 @@ __rec_root_write(WT_SESSION_IMPL *session, WT_PAGE *page, uint32_t flags) * pages in memory; it's not needed here, asserted for safety. */ WT_ASSERT(session, mod->mod_multi[i].supd == NULL); + WT_ASSERT(session, mod->mod_multi[i].disk_image == NULL); WT_ERR(__wt_multi_to_ref(session, next, &mod->mod_multi[i], &pindex->index[i], NULL, false)); @@ -700,7 +742,7 @@ __rec_root_write(WT_SESSION_IMPL *session, WT_PAGE *page, uint32_t flags) * Fake up a reference structure, and write the next root page. */ __wt_root_ref_init(&fake_ref, next, page->type == WT_PAGE_COL_INT); - return (__wt_reconcile(session, &fake_ref, NULL, flags)); + return (__wt_reconcile(session, &fake_ref, NULL, flags, NULL)); err: __wt_page_out(session, &next); return (ret); @@ -841,6 +883,9 @@ __rec_write_init(WT_SESSION_IMPL *session, /* Track the page's maximum transaction ID. */ r->max_txn = WT_TXN_NONE; + /* Track if all updates were skipped. */ + r->update_cnt = r->update_skip_cnt = 0; + /* Track if the page can be marked clean. */ r->leave_dirty = false; @@ -1082,6 +1127,7 @@ __rec_txn_read(WT_SESSION_IMPL *session, WT_RECONCILE *r, } else upd_list = ins->upd; + ++r->update_cnt; for (skipped = false, max_txn = WT_TXN_NONE, min_txn = UINT64_MAX, upd = upd_list; upd != NULL; upd = upd->next) { @@ -1172,6 +1218,12 @@ __rec_txn_read(WT_SESSION_IMPL *session, WT_RECONCILE *r, txnid != S2C(session)->txn_global.checkpoint_txnid || WT_SESSION_IS_CHECKPOINT(session)); #endif + + /* + * Track how many update chains we saw vs. how many update + * chains had an entry we skipped. + */ + ++r->update_skip_cnt; return (0); } @@ -3599,7 +3651,7 @@ __wt_bulk_wrapup(WT_SESSION_IMPL *session, WT_CURSOR_BULK *cbulk) WT_RET(__rec_split_finish(session, r)); WT_RET(__rec_write_wrapup(session, r, r->page)); - WT_RET(__rec_write_status(session, r, r->page)); + __rec_write_page_status(session, r); /* Mark the page's parent and the tree dirty. */ parent = r->ref->home; @@ -4450,8 +4502,8 @@ record_loop: /* * * Write a placeholder. */ - WT_ASSERT(session, - F_ISSET(r, WT_EVICT_UPDATE_RESTORE)); + WT_ASSERT(session, + F_ISSET(r, WT_EVICT_UPDATE_RESTORE)); data = "@"; size = 1; diff --git a/src/schema/schema_list.c b/src/schema/schema_list.c index 79e3ef1da7c..ea7374b7554 100644 --- a/src/schema/schema_list.c +++ b/src/schema/schema_list.c @@ -25,7 +25,7 @@ __schema_add_table(WT_SESSION_IMPL *session, /* Make sure the metadata is open before getting other locks. */ WT_RET(__wt_metadata_cursor(session, NULL)); - WT_WITH_TABLE_LOCK(session, ret, + WT_WITH_TABLE_LOCK(session, ret = __wt_schema_open_table( session, name, namelen, ok_incomplete, &table)); WT_RET(ret); diff --git a/src/schema/schema_worker.c b/src/schema/schema_worker.c index 52be76bb7a5..fb7f8cec074 100644 --- a/src/schema/schema_worker.c +++ b/src/schema/schema_worker.c @@ -73,13 +73,8 @@ __wt_schema_worker(WT_SESSION_IMPL *session, WT_ERR(__wt_schema_worker(session, idx->source, file_func, name_func, cfg, open_flags)); } else if (WT_PREFIX_MATCH(uri, "lsm:")) { - /* - * LSM compaction is handled elsewhere, but if we get here - * trying to compact files, don't descend into an LSM tree. - */ - if (file_func != __wt_compact) - WT_ERR(__wt_lsm_tree_worker(session, - uri, file_func, name_func, cfg, open_flags)); + WT_ERR(__wt_lsm_tree_worker(session, + uri, file_func, name_func, cfg, open_flags)); } else if (WT_PREFIX_SKIP(tablename, "table:")) { WT_ERR(__wt_schema_get_table(session, tablename, strlen(tablename), false, &table)); @@ -115,10 +110,7 @@ __wt_schema_worker(WT_SESSION_IMPL *session, } } else if ((dsrc = __wt_schema_get_source(session, uri)) != NULL) { wt_session = (WT_SESSION *)session; - if (file_func == __wt_compact && dsrc->compact != NULL) - WT_ERR(dsrc->compact( - dsrc, wt_session, uri, (WT_CONFIG_ARG *)cfg)); - else if (file_func == __wt_salvage && dsrc->salvage != NULL) + if (file_func == __wt_salvage && dsrc->salvage != NULL) WT_ERR(dsrc->salvage( dsrc, wt_session, uri, (WT_CONFIG_ARG *)cfg)); else if (file_func == __wt_verify && dsrc->verify != NULL) diff --git a/src/session/session_api.c b/src/session/session_api.c index 00c2852649f..377bc0bdc2d 100644 --- a/src/session/session_api.c +++ b/src/session/session_api.c @@ -483,8 +483,8 @@ __wt_session_create( { WT_DECL_RET; - WT_WITH_SCHEMA_LOCK(session, ret, - WT_WITH_TABLE_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, + WT_WITH_TABLE_LOCK(session, ret = __wt_schema_create(session, uri, config))); return (ret); } @@ -677,8 +677,8 @@ __session_rebalance(WT_SESSION *wt_session, const char *uri, const char *config) SESSION_API_CALL(session, rebalance, config, cfg); /* Block out checkpoints to avoid spurious EBUSY errors. */ - WT_WITH_CHECKPOINT_LOCK(session, ret, - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_CHECKPOINT_LOCK(session, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker(session, uri, __wt_bt_rebalance, NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_REBALANCE))); @@ -730,9 +730,9 @@ __session_rename(WT_SESSION *wt_session, WT_ERR(__wt_str_name_check(session, uri)); WT_ERR(__wt_str_name_check(session, newuri)); - WT_WITH_CHECKPOINT_LOCK(session, ret, - WT_WITH_SCHEMA_LOCK(session, ret, - WT_WITH_TABLE_LOCK(session, ret, + WT_WITH_CHECKPOINT_LOCK(session, + WT_WITH_SCHEMA_LOCK(session, + WT_WITH_TABLE_LOCK(session, ret = __wt_schema_rename(session, uri, newuri, cfg)))); err: if (ret != 0) @@ -791,53 +791,16 @@ err: API_END_RET_NOTFOUND_MAP(session, ret); } /* - * __wt_session_drop -- - * Internal version of WT_SESSION::drop. - */ -int -__wt_session_drop(WT_SESSION_IMPL *session, const char *uri, const char *cfg[]) -{ - WT_DECL_RET; - WT_CONFIG_ITEM cval; - bool checkpoint_wait, lock_wait; - - WT_RET(__wt_config_gets_def(session, cfg, "checkpoint_wait", 1, &cval)); - checkpoint_wait = cval.val != 0; - WT_RET(__wt_config_gets_def(session, cfg, "lock_wait", 1, &cval)); - lock_wait = cval.val != 0 || F_ISSET(session, WT_SESSION_LOCK_NO_WAIT); - - if (!lock_wait) - F_SET(session, WT_SESSION_LOCK_NO_WAIT); - - /* - * Take the checkpoint lock if there is a need to prevent the drop - * operation from failing with EBUSY due to an ongoing checkpoint. - */ - if (checkpoint_wait) - WT_WITH_CHECKPOINT_LOCK(session, ret, - WT_WITH_SCHEMA_LOCK(session, ret, - WT_WITH_TABLE_LOCK(session, ret, - ret = __wt_schema_drop(session, uri, cfg)))); - else - WT_WITH_SCHEMA_LOCK(session, ret, - WT_WITH_TABLE_LOCK(session, ret, - ret = __wt_schema_drop(session, uri, cfg))); - - if (!lock_wait) - F_CLR(session, WT_SESSION_LOCK_NO_WAIT); - - return (ret); -} - -/* * __session_drop -- * WT_SESSION->drop method. */ static int __session_drop(WT_SESSION *wt_session, const char *uri, const char *config) { + WT_CONFIG_ITEM cval; WT_DECL_RET; WT_SESSION_IMPL *session; + bool checkpoint_wait, lock_wait; session = (WT_SESSION_IMPL *)wt_session; SESSION_API_CALL(session, drop, config, cfg); @@ -845,7 +808,36 @@ __session_drop(WT_SESSION *wt_session, const char *uri, const char *config) /* Disallow objects in the WiredTiger name space. */ WT_ERR(__wt_str_name_check(session, uri)); - ret = __wt_session_drop(session, uri, cfg); + WT_ERR(__wt_config_gets_def(session, cfg, "checkpoint_wait", 1, &cval)); + checkpoint_wait = cval.val != 0; + WT_ERR(__wt_config_gets_def(session, cfg, "lock_wait", 1, &cval)); + lock_wait = cval.val != 0; + + /* + * Take the checkpoint lock if there is a need to prevent the drop + * operation from failing with EBUSY due to an ongoing checkpoint. + */ + if (checkpoint_wait) { + if (lock_wait) + WT_WITH_CHECKPOINT_LOCK(session, + WT_WITH_SCHEMA_LOCK(session, + WT_WITH_TABLE_LOCK(session, ret = + __wt_schema_drop(session, uri, cfg)))); + else + WT_WITH_CHECKPOINT_LOCK_NOWAIT(session, ret, + WT_WITH_SCHEMA_LOCK_NOWAIT(session, ret, + WT_WITH_TABLE_LOCK_NOWAIT(session, ret, ret = + __wt_schema_drop(session, uri, cfg)))); + } else { + if (lock_wait) + WT_WITH_SCHEMA_LOCK(session, + WT_WITH_TABLE_LOCK(session, + ret = __wt_schema_drop(session, uri, cfg))); + else + WT_WITH_SCHEMA_LOCK_NOWAIT(session, ret, + WT_WITH_TABLE_LOCK_NOWAIT(session, ret, + ret = __wt_schema_drop(session, uri, cfg))); + } err: if (ret != 0) WT_STAT_CONN_INCR(session, session_table_drop_fail); @@ -1036,8 +1028,8 @@ __session_salvage(WT_SESSION *wt_session, const char *uri, const char *config) "configurations"); /* Block out checkpoints to avoid spurious EBUSY errors. */ - WT_WITH_CHECKPOINT_LOCK(session, ret, - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_CHECKPOINT_LOCK(session, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker(session, uri, __wt_salvage, NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_SALVAGE))); @@ -1237,8 +1229,8 @@ __session_truncate(WT_SESSION *wt_session, session, uri, start, stop)); else /* Wait for checkpoints to avoid EBUSY errors. */ - WT_WITH_CHECKPOINT_LOCK(session, ret, - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_CHECKPOINT_LOCK(session, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_truncate(session, uri, cfg))); } else WT_ERR(__wt_session_range_truncate(session, uri, start, stop)); @@ -1293,8 +1285,8 @@ __session_upgrade(WT_SESSION *wt_session, const char *uri, const char *config) SESSION_API_CALL(session, upgrade, config, cfg); /* Block out checkpoints to avoid spurious EBUSY errors. */ - WT_WITH_CHECKPOINT_LOCK(session, ret, - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_CHECKPOINT_LOCK(session, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker(session, uri, __wt_upgrade, NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_UPGRADE))); @@ -1342,8 +1334,8 @@ __session_verify(WT_SESSION *wt_session, const char *uri, const char *config) "configurations"); /* Block out checkpoints to avoid spurious EBUSY errors. */ - WT_WITH_CHECKPOINT_LOCK(session, ret, - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_CHECKPOINT_LOCK(session, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker(session, uri, __wt_verify, NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_VERIFY))); @@ -1606,7 +1598,7 @@ __session_checkpoint(WT_SESSION *wt_session, const char *config) WT_ERR_MSG(session, EINVAL, "Checkpoint not permitted in a transaction"); - ret = __wt_txn_checkpoint(session, cfg); + ret = __wt_txn_checkpoint(session, cfg, true); /* * Release common session resources (for example, checkpoint may acquire diff --git a/src/session/session_compact.c b/src/session/session_compact.c index 66635007723..85214ae6d98 100644 --- a/src/session/session_compact.c +++ b/src/session/session_compact.c @@ -53,11 +53,14 @@ * blocks, it can't easily know this is the case, and so we'll waste a lot of * effort trying to compact files that can't be compacted. * - * Now, to the actual process. First, we checkpoint the high-level object - * (which is potentially composed of multiple files): there are potentially - * many dirty blocks in the cache, and we want to write them out and then - * discard previous checkpoints so we have as many blocks as possible on the - * file's "available for reuse" list when we start compaction. + * Finally, compaction checkpoints are database-wide, otherwise we can corrupt + * file relationships, for example, an index checkpointed by compaction could + * be out of sync with the primary after a crash. + * + * Now, to the actual process. First, we checkpoint the database: there are + * potentially many dirty blocks in the cache, and we want to write them out + * and then discard previous checkpoints so we have as many blocks as possible + * on the file's "available for reuse" list when we start compaction. * * Then, we compact the high-level object. * @@ -97,29 +100,6 @@ */ /* - * __compact_uri_analyze -- - * Extract information relevant to deciding what work compact needs to - * do from a URI that is part of a table schema. - * Called via the schema_worker function. - */ -static int -__compact_uri_analyze(WT_SESSION_IMPL *session, const char *uri, bool *skipp) -{ - /* - * Add references to schema URI objects to the list of objects to be - * compacted. Skip over LSM trees or we will get false positives on - * the "file:" URIs for the chunks. - */ - if (WT_PREFIX_MATCH(uri, "lsm:")) { - session->compact->lsm_count++; - *skipp = true; - } else if (WT_PREFIX_MATCH(uri, "file:")) - session->compact->file_count++; - - return (0); -} - -/* * __compact_start -- * Start object compaction. */ @@ -146,6 +126,29 @@ __compact_end(WT_SESSION_IMPL *session) } /* + * __compact_uri_analyze -- + * Extract information relevant to deciding what work compact needs to + * do from a URI that is part of a table schema. + * Called via the schema_worker function. + */ +static int +__compact_uri_analyze(WT_SESSION_IMPL *session, const char *uri, bool *skipp) +{ + /* + * Add references to schema URI objects to the list of objects to be + * compacted. Skip over LSM trees or we will get false positives on + * the "file:" URIs for the chunks. + */ + if (WT_PREFIX_MATCH(uri, "lsm:")) { + session->compact->lsm_count++; + *skipp = true; + } else if (WT_PREFIX_MATCH(uri, "file:")) + session->compact->file_count++; + + return (0); +} + +/* * __compact_handle_append -- * Gather a file handle to be compacted. * Called via the schema_worker function. @@ -157,10 +160,6 @@ __compact_handle_append(WT_SESSION_IMPL *session, const char *cfg[]) WT_UNUSED(cfg); - /* Make sure there is space for the next entry. */ - WT_RET(__wt_realloc_def(session, &session->op_handle_allocated, - session->op_handle_next + 1, &session->op_handle)); - WT_RET(__wt_session_get_btree( session, session->dhandle->name, NULL, NULL, 0)); @@ -170,16 +169,20 @@ __compact_handle_append(WT_SESSION_IMPL *session, const char *cfg[]) return (ret); } + /* Make sure there is space for the next entry. */ + WT_RET(__wt_realloc_def(session, &session->op_handle_allocated, + session->op_handle_next + 1, &session->op_handle)); + session->op_handle[session->op_handle_next++] = session->dhandle; return (0); } /* - * __session_compact_check_timeout -- + * __wt_session_compact_check_timeout -- * Check if the timeout has been exceeded. */ -static int -__session_compact_check_timeout(WT_SESSION_IMPL *session, struct timespec begin) +int +__wt_session_compact_check_timeout(WT_SESSION_IMPL *session) { struct timespec end; @@ -187,64 +190,116 @@ __session_compact_check_timeout(WT_SESSION_IMPL *session, struct timespec begin) return (0); __wt_epoch(session, &end); - if (session->compact->max_time < WT_TIMEDIFF_SEC(end, begin)) - return (ETIMEDOUT); - return (0); + return (session->compact->max_time > + WT_TIMEDIFF_SEC(end, session->compact->begin) ? 0 : ETIMEDOUT); } /* - * __compact_file -- - * Function to alternate between checkpoints and compaction calls. + * __compact_checkpoint -- + * Perform a checkpoint for compaction. */ static int -__compact_file(WT_SESSION_IMPL *session, const char *cfg[]) +__compact_checkpoint(WT_SESSION_IMPL *session) { - struct timespec start_time; - WT_DATA_HANDLE *dhandle; - WT_DECL_ITEM(t); + WT_TXN_GLOBAL *txn_global; WT_DECL_RET; - int i; + uint64_t txn_gen; + + /* + * Force compaction checkpoints: we don't want to skip it because the + * work we need to have done is done in the underlying block manager. + */ const char *checkpoint_cfg[] = { - WT_CONFIG_BASE(session, WT_SESSION_checkpoint), NULL, NULL }; + WT_CONFIG_BASE(session, WT_SESSION_checkpoint), "force=1", NULL }; + + /* Checkpoints take a lot of time, check if we've run out. */ + WT_RET(__wt_session_compact_check_timeout(session)); + + if ((ret = __wt_txn_checkpoint(session, checkpoint_cfg, false)) == 0) + return (0); + WT_RET_BUSY_OK(ret); + + /* + * If there's a checkpoint running, wait for it to complete, checking if + * we're out of time. If there's no checkpoint running or the checkpoint + * generation number changes, the checkpoint blocking us has completed. + */ + txn_global = &S2C(session)->txn_global; + for (txn_gen = txn_global->checkpoint_gen;;) { + WT_READ_BARRIER(); + if (!txn_global->checkpoint_running || + txn_gen != txn_global->checkpoint_gen) + break; + + WT_RET(__wt_session_compact_check_timeout(session)); + __wt_sleep(2, 0); + } + + return (0); +} - dhandle = session->dhandle; +/* + * __compact_worker -- + * Function to alternate between checkpoints and compaction calls. + */ +static int +__compact_worker(WT_SESSION_IMPL *session) +{ + WT_DECL_RET; + u_int i, loop; + bool didwork; /* - * Force the checkpoint: we don't want to skip it because the work we - * need to have done is done in the underlying block manager. + * Reset the handles' compaction skip flag (we don't bother setting + * or resetting it when we finish compaction, it's simpler to do it + * once, here). */ - WT_ERR(__wt_scr_alloc(session, 128, &t)); - WT_ERR(__wt_buf_fmt( - session, t, "target=(\"%s\"),force=1", dhandle->name)); - checkpoint_cfg[1] = t->data; + for (i = 0; i < session->op_handle_next; ++i) + session->op_handle[i]->compact_skip = false; - __wt_epoch(session, &start_time); + /* + * Perform an initial checkpoint (see this file's leading comment for + * details). + */ + WT_ERR(__compact_checkpoint(session)); /* - * We compact 10% of the file on each pass (but the overall size of the + * We compact 10% of a file on each pass (but the overall size of the * file is decreasing each time, so we're not compacting 10% of the * original file each time). Try 100 times (which is clearly more than - * we need); quit if we make no progress and check for a timeout each - * time through the loop. + * we need); quit if we make no progress. */ - for (i = 0; i < 100; ++i) { - WT_ERR(__wt_txn_checkpoint(session, checkpoint_cfg)); - - session->compact_state = WT_COMPACT_RUNNING; - WT_WITH_DHANDLE(session, dhandle, - ret = __wt_compact(session, cfg)); - WT_ERR(ret); - if (session->compact_state != WT_COMPACT_SUCCESS) + for (loop = 0; loop < 100; ++loop) { + /* Step through the list of files being compacted. */ + for (didwork = false, i = 0; i < session->op_handle_next; ++i) { + /* Skip objects where there's no more work. */ + if (session->op_handle[i]->compact_skip) + continue; + + session->compact_state = WT_COMPACT_RUNNING; + WT_WITH_DHANDLE(session, + session->op_handle[i], ret = __wt_compact(session)); + WT_ERR(ret); + + /* If we did no work, skip this file in the future. */ + if (session->compact_state == WT_COMPACT_SUCCESS) + didwork = true; + else + session->op_handle[i]->compact_skip = true; + } + if (!didwork) break; - WT_ERR(__wt_txn_checkpoint(session, checkpoint_cfg)); - WT_ERR(__wt_txn_checkpoint(session, checkpoint_cfg)); - WT_ERR(__session_compact_check_timeout(session, start_time)); + /* + * Perform two checkpoints (see this file's leading comment for + * details). + */ + WT_ERR(__compact_checkpoint(session)); + WT_ERR(__compact_checkpoint(session)); } err: session->compact_state = WT_COMPACT_NONE; - __wt_scr_free(session, &t); return (ret); } @@ -256,8 +311,9 @@ int __wt_session_compact( WT_SESSION *wt_session, const char *uri, const char *config) { - WT_COMPACT compact; + WT_COMPACT_STATE compact; WT_CONFIG_ITEM cval; + WT_DATA_SOURCE *dsrc; WT_DECL_RET; WT_SESSION_IMPL *session; WT_TXN *txn; @@ -270,6 +326,17 @@ __wt_session_compact( if (F_ISSET(S2C(session), WT_CONN_IN_MEMORY)) goto err; + /* + * Non-LSM object compaction requires checkpoints, which are impossible + * in transactional contexts. Disallow in all contexts (there's no + * reason for LSM to allow this, possible or not), and check now so the + * error message isn't confusing. + */ + txn = &session->txn; + if (F_ISSET(txn, WT_TXN_RUNNING)) + WT_ERR_MSG(session, EINVAL, + "compaction not permitted in a transaction"); + /* Disallow objects in the WiredTiger name space. */ WT_ERR(__wt_str_name_check(session, uri)); @@ -277,18 +344,28 @@ __wt_session_compact( !WT_PREFIX_MATCH(uri, "file:") && !WT_PREFIX_MATCH(uri, "index:") && !WT_PREFIX_MATCH(uri, "lsm:") && - !WT_PREFIX_MATCH(uri, "table:")) - WT_ERR(__wt_bad_object_type(session, uri)); + !WT_PREFIX_MATCH(uri, "table:")) { + if ((dsrc = __wt_schema_get_source(session, uri)) != NULL) + ret = dsrc->compact == NULL ? + __wt_object_unsupported(session, uri) : + dsrc->compact( + dsrc, wt_session, uri, (WT_CONFIG_ARG *)cfg); + else + ret = __wt_bad_object_type(session, uri); + goto err; + } - /* Setup the structure in the session handle */ - memset(&compact, 0, sizeof(WT_COMPACT)); + /* Setup the session handle's compaction state structure. */ + memset(&compact, 0, sizeof(WT_COMPACT_STATE)); session->compact = &compact; + /* Compaction can be time-limited. */ WT_ERR(__wt_config_gets(session, cfg, "timeout", &cval)); session->compact->max_time = (uint64_t)cval.val; + __wt_epoch(session, &session->compact->begin); /* Find the types of data sources being compacted. */ - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker(session, uri, __compact_handle_append, __compact_uri_analyze, cfg, 0)); WT_ERR(ret); @@ -296,23 +373,8 @@ __wt_session_compact( if (session->compact->lsm_count != 0) WT_ERR(__wt_schema_worker( session, uri, NULL, __wt_lsm_compact, cfg, 0)); - if (session->compact->file_count != 0) { - /* - * File compaction requires checkpoints, which will fail in a - * transactional context. Check now so the error message isn't - * confusing. - */ - txn = &session->txn; - if (F_ISSET(txn, WT_TXN_RUNNING)) - WT_ERR_MSG(session, EINVAL, - " File compaction not permitted in a transaction"); - - for (i = 0; i < session->op_handle_next; ++i) { - WT_WITH_DHANDLE(session, session->op_handle[i], - ret = __compact_file(session, cfg)); - WT_ERR(ret); - } - } + if (session->compact->file_count != 0) + WT_ERR(__compact_worker(session)); err: session->compact = NULL; diff --git a/src/session/session_dhandle.c b/src/session/session_dhandle.c index 94326aebe46..732dc797b6d 100644 --- a/src/session/session_dhandle.c +++ b/src/session/session_dhandle.c @@ -511,7 +511,7 @@ __wt_session_get_btree(WT_SESSION_IMPL *session, F_CLR(dhandle, WT_DHANDLE_EXCLUSIVE); __wt_writeunlock(session, dhandle->rwlock); - WT_WITH_SCHEMA_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, WT_WITH_HANDLE_LIST_LOCK(session, ret = __wt_session_get_btree( session, uri, checkpoint, cfg, flags))); diff --git a/src/support/err.c b/src/support/err.c index e48225c2c13..369997d38c0 100644 --- a/src/support/err.c +++ b/src/support/err.c @@ -304,6 +304,7 @@ void __wt_err(WT_SESSION_IMPL *session, int error, const char *fmt, ...) WT_GCC_FUNC_ATTRIBUTE((cold)) WT_GCC_FUNC_ATTRIBUTE((format (printf, 3, 4))) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { va_list ap; @@ -470,6 +471,7 @@ __wt_assert(WT_SESSION_IMPL *session, #ifdef HAVE_DIAGNOSTIC WT_GCC_FUNC_ATTRIBUTE((noreturn)) #endif + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { va_list ap; @@ -491,6 +493,7 @@ __wt_assert(WT_SESSION_IMPL *session, int __wt_panic(WT_SESSION_IMPL *session) WT_GCC_FUNC_ATTRIBUTE((cold)) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { F_SET(S2C(session), WT_CONN_PANIC); __wt_err(session, WT_PANIC, "the process must exit and restart"); @@ -515,6 +518,7 @@ __wt_panic(WT_SESSION_IMPL *session) int __wt_illegal_value(WT_SESSION_IMPL *session, const char *name) WT_GCC_FUNC_ATTRIBUTE((cold)) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { __wt_errx(session, "%s%s%s", name == NULL ? "" : name, name == NULL ? "" : ": ", diff --git a/src/support/hazard.c b/src/support/hazard.c index 27508bbdece..b0fa7e129bb 100644 --- a/src/support/hazard.c +++ b/src/support/hazard.c @@ -26,7 +26,6 @@ __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp WT_BTREE *btree; WT_CONNECTION_IMPL *conn; WT_HAZARD *hp; - WT_PAGE *page; int restarts = 0; btree = S2BT(session); @@ -38,11 +37,11 @@ __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp return (0); /* - * If there isn't a valid page pointer, we're done. This read can race - * with eviction and splits, we re-check it after a barrier to make - * sure we have a valid pointer. + * If there isn't a valid page, we're done. This read can race with + * eviction and splits, we re-check it after a barrier to make sure + * we have a valid reference. */ - if (ref->state != WT_REF_MEM || (page = ref->page) == NULL) { + if (ref->state != WT_REF_MEM) { *busyp = true; return (0); } @@ -90,10 +89,10 @@ __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp conn->hazard_max)); } - if (hp->page != NULL) + if (hp->ref != NULL) continue; - hp->page = page; + hp->ref = ref; #ifdef HAVE_DIAGNOSTIC hp->file = file; hp->line = line; @@ -103,21 +102,17 @@ __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp /* * Check if the page state is still valid, where valid means a - * state of WT_REF_MEM and the pointer is unchanged. (The - * pointer can change, it means the page was evicted between - * the time we set our hazard pointer and the publication. It - * would theoretically be possible for the page to be evicted - * and a different page read into the same memory, so the - * pointer hasn't changed but the contents have. That's OK, we - * found this page using the tree's key space, whatever page we - * find here is the page for us to use.) + * state of WT_REF_MEM. */ if (ref->state == WT_REF_MEM) { + ++session->nhazard; + + /* + * Callers require a barrier here so operations holding + * the hazard pointer see consistent data. + */ WT_READ_BARRIER(); - if (ref->page == page) { - ++session->nhazard; - return (0); - } + return (0); } /* @@ -130,7 +125,7 @@ __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp * We don't bother publishing this update: the worst case is we * prevent some random page from being evicted. */ - hp->page = NULL; + hp->ref = NULL; *busyp = true; return (0); } @@ -147,7 +142,7 @@ __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp * Clear a hazard pointer. */ int -__wt_hazard_clear(WT_SESSION_IMPL *session, WT_PAGE *page) +__wt_hazard_clear(WT_SESSION_IMPL *session, WT_REF *ref) { WT_BTREE *btree; WT_HAZARD *hp; @@ -165,7 +160,7 @@ __wt_hazard_clear(WT_SESSION_IMPL *session, WT_PAGE *page) for (hp = session->hazard + session->hazard_size - 1; hp >= session->hazard; --hp) - if (hp->page == page) { + if (hp->ref == ref) { /* * We don't publish the hazard pointer clear in the * general case. It's not required for correctness; @@ -174,7 +169,7 @@ __wt_hazard_clear(WT_SESSION_IMPL *session, WT_PAGE *page) * generation number was just set, it's unlikely the * page will be selected for eviction. */ - hp->page = NULL; + hp->ref = NULL; /* * If this was the last hazard pointer in the session, @@ -191,7 +186,7 @@ __wt_hazard_clear(WT_SESSION_IMPL *session, WT_PAGE *page) */ WT_PANIC_RET(session, EINVAL, "session %p: clear hazard pointer: %p: not found", - (void *)session, (void *)page); + (void *)session, (void *)ref); } /* @@ -211,7 +206,7 @@ __wt_hazard_close(WT_SESSION_IMPL *session) */ for (found = false, hp = session->hazard; hp < session->hazard + session->hazard_size; ++hp) - if (hp->page != NULL) { + if (hp->ref != NULL) { found = true; break; } @@ -239,8 +234,8 @@ __wt_hazard_close(WT_SESSION_IMPL *session) */ for (hp = session->hazard; hp < session->hazard + session->hazard_size; ++hp) - if (hp->page != NULL) { - hp->page = NULL; + if (hp->ref != NULL) { + hp->ref = NULL; --session->nhazard; } @@ -256,7 +251,7 @@ __wt_hazard_close(WT_SESSION_IMPL *session) * Count how many hazard pointers this session has on the given page. */ u_int -__wt_hazard_count(WT_SESSION_IMPL *session, WT_PAGE *page) +__wt_hazard_count(WT_SESSION_IMPL *session, WT_REF *ref) { WT_HAZARD *hp; u_int count; @@ -264,7 +259,7 @@ __wt_hazard_count(WT_SESSION_IMPL *session, WT_PAGE *page) for (count = 0, hp = session->hazard + session->hazard_size - 1; hp >= session->hazard; --hp) - if (hp->page == page) + if (hp->ref == ref) ++count; return (count); @@ -282,10 +277,10 @@ __hazard_dump(WT_SESSION_IMPL *session) for (hp = session->hazard; hp < session->hazard + session->hazard_size; ++hp) - if (hp->page != NULL) + if (hp->ref != NULL) __wt_errx(session, "session %p: hazard pointer %p: %s, line %d", (void *)session, - (void *)hp->page, hp->file, hp->line); + (void *)hp->ref, hp->file, hp->line); } #endif diff --git a/src/support/hex.c b/src/support/hex.c index 5c48ce8b74a..b54a08dd8f3 100644 --- a/src/support/hex.c +++ b/src/support/hex.c @@ -8,8 +8,6 @@ #include "wt_internal.h" -const u_char __wt_hex[] = "0123456789abcdef"; - /* * __fill_hex -- * In-memory conversion of raw bytes to a hexadecimal representation. @@ -25,8 +23,8 @@ __fill_hex(const uint8_t *src, size_t src_max, --dest_max; for (; src_max > 0 && dest_max > 1; src_max -= 1, dest_max -= 2, ++src) { - *dest++ = __wt_hex[(*src & 0xf0) >> 4]; - *dest++ = __wt_hex[*src & 0x0f]; + *dest++ = __wt_hex((*src & 0xf0) >> 4); + *dest++ = __wt_hex(*src & 0x0f); } *dest++ = '\0'; if (lenp != NULL) @@ -90,8 +88,8 @@ __wt_raw_to_esc_hex( *t++ = *p; } else { *t++ = '\\'; - *t++ = __wt_hex[(*p & 0xf0) >> 4]; - *t++ = __wt_hex[*p & 0x0f]; + *t++ = __wt_hex((*p & 0xf0) >> 4); + *t++ = __wt_hex(*p & 0x0f); } *t++ = '\0'; to->size = WT_PTRDIFF(t, to->mem); diff --git a/src/support/rand.c b/src/support/rand.c index 025b18e4ed3..a5b229b9abc 100644 --- a/src/support/rand.c +++ b/src/support/rand.c @@ -51,6 +51,7 @@ */ void __wt_random_init(WT_RAND_STATE volatile * rnd_state) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_RAND_STATE rnd; @@ -69,6 +70,7 @@ __wt_random_init(WT_RAND_STATE volatile * rnd_state) void __wt_random_init_seed( WT_SESSION_IMPL *session, WT_RAND_STATE volatile * rnd_state) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { struct timespec ts; WT_RAND_STATE rnd; @@ -86,6 +88,7 @@ __wt_random_init_seed( */ uint32_t __wt_random(WT_RAND_STATE volatile * rnd_state) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_RAND_STATE rnd; uint32_t w, z; diff --git a/src/txn/txn_ckpt.c b/src/txn/txn_ckpt.c index 802ccd84915..399d9187d82 100644 --- a/src/txn/txn_ckpt.c +++ b/src/txn/txn_ckpt.c @@ -555,9 +555,6 @@ __txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[]) saved_isolation = session->isolation; full = idle = logging = tracking = false; - /* Ensure the metadata table is open before taking any locks. */ - WT_RET(__wt_metadata_cursor(session, NULL)); - /* * Do a pass over the configuration arguments and figure out what kind * of checkpoint this is. @@ -641,8 +638,8 @@ __txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[]) * then release any clean handles. */ WT_ASSERT(session, session->ckpt_handle_next == 0); - WT_WITH_SCHEMA_LOCK(session, ret, - WT_WITH_TABLE_LOCK(session, ret, + WT_WITH_SCHEMA_LOCK(session, + WT_WITH_TABLE_LOCK(session, WT_WITH_HANDLE_LIST_LOCK(session, ret = __checkpoint_apply_all( session, cfg, __wt_checkpoint_get_handles, NULL)))); @@ -784,7 +781,7 @@ __txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[]) /* Disable metadata tracking during the metadata checkpoint. */ saved_meta_next = session->meta_track_next; session->meta_track_next = NULL; - WT_WITH_METADATA_LOCK(session, ret, + WT_WITH_METADATA_LOCK(session, WT_WITH_DHANDLE(session, WT_SESSION_META_DHANDLE(session), ret = __wt_checkpoint(session, cfg))); @@ -878,13 +875,39 @@ err: /* } /* + * __txn_checkpoint_wrapper -- + * Checkpoint wrapper. + */ +static int +__txn_checkpoint_wrapper(WT_SESSION_IMPL *session, const char *cfg[]) +{ + WT_DECL_RET; + WT_TXN_GLOBAL *txn_global; + + txn_global = &S2C(session)->txn_global; + + WT_STAT_CONN_SET(session, txn_checkpoint_running, 1); + txn_global->checkpoint_running = true; + WT_FULL_BARRIER(); + + ret = __txn_checkpoint(session, cfg); + + WT_STAT_CONN_SET(session, txn_checkpoint_running, 0); + txn_global->checkpoint_running = false; + WT_FULL_BARRIER(); + + return (ret); +} + +/* * __wt_txn_checkpoint -- * Checkpoint a database or a list of objects in the database. */ int -__wt_txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[]) +__wt_txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[], bool waiting) { WT_DECL_RET; + uint32_t mask; /* * Reset open cursors. Do this explicitly, even though it will happen @@ -894,13 +917,22 @@ __wt_txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[]) */ WT_RET(__wt_session_reset_cursors(session, false)); + /* Ensure the metadata table is open before taking any locks. */ + WT_RET(__wt_metadata_cursor(session, NULL)); + /* * Don't highjack the session checkpoint thread for eviction. * * Application threads are not generally available for potentially slow * operations, but checkpoint does enough I/O it may be called upon to * perform slow operations for the block manager. + * + * Application checkpoints wait until the checkpoint lock is available, + * compaction checkpoints don't. */ +#define WT_TXN_SESSION_MASK \ + (WT_SESSION_CAN_WAIT | WT_SESSION_NO_EVICTION) + mask = F_MASK(session, WT_TXN_SESSION_MASK); F_SET(session, WT_SESSION_CAN_WAIT | WT_SESSION_NO_EVICTION); /* @@ -910,14 +942,15 @@ __wt_txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[]) * calls checkpoint directly, it can be tough to avoid. Serialize here * to ensure we don't get into trouble. */ - WT_STAT_CONN_SET(session, txn_checkpoint_running, 1); - - WT_WITH_CHECKPOINT_LOCK(session, ret, - ret = __txn_checkpoint(session, cfg)); - - WT_STAT_CONN_SET(session, txn_checkpoint_running, 0); + if (waiting) + WT_WITH_CHECKPOINT_LOCK(session, + ret = __txn_checkpoint_wrapper(session, cfg)); + else + WT_WITH_CHECKPOINT_LOCK_NOWAIT(session, ret, + ret = __txn_checkpoint_wrapper(session, cfg)); - F_CLR(session, WT_SESSION_CAN_WAIT | WT_SESSION_NO_EVICTION); + F_CLR(session, WT_TXN_SESSION_MASK); + F_SET(session, mask); return (ret); } diff --git a/src/txn/txn_log.c b/src/txn/txn_log.c index f1b78879d76..5f4704b40c4 100644 --- a/src/txn/txn_log.c +++ b/src/txn/txn_log.c @@ -551,6 +551,7 @@ __txn_printlog(WT_SESSION_IMPL *session, */ int __wt_txn_printlog(WT_SESSION *wt_session, uint32_t flags) + WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_SESSION_IMPL *session; WT_TXN_PRINTLOG_ARGS args; diff --git a/src/txn/txn_nsnap.c b/src/txn/txn_nsnap.c index 7ba0cc8700e..b12da9fbaea 100644 --- a/src/txn/txn_nsnap.c +++ b/src/txn/txn_nsnap.c @@ -152,26 +152,45 @@ __wt_txn_named_snapshot_begin(WT_SESSION_IMPL *session, const char *cfg[]) const char *txn_cfg[] = { WT_CONFIG_BASE(session, WT_SESSION_begin_transaction), "isolation=snapshot", NULL }; - bool started_txn; + bool include_updates, started_txn; started_txn = false; nsnap_new = NULL; txn_global = &S2C(session)->txn_global; txn = &session->txn; + WT_RET(__wt_config_gets_def(session, cfg, "include_updates", 0, &cval)); + include_updates = cval.val != 0; + WT_RET(__wt_config_gets_def(session, cfg, "name", 0, &cval)); WT_ASSERT(session, cval.len != 0); if (!F_ISSET(txn, WT_TXN_RUNNING)) { + if (include_updates) + WT_RET_MSG(session, EINVAL, "A transaction must be " + "running to include updates in a named snapshot"); + WT_RET(__wt_txn_begin(session, txn_cfg)); started_txn = true; } - F_SET(txn, WT_TXN_READONLY); + if (!include_updates) + F_SET(txn, WT_TXN_READONLY); /* Save a copy of the transaction's snapshot. */ WT_ERR(__wt_calloc_one(session, &nsnap_new)); nsnap = nsnap_new; WT_ERR(__wt_strndup(session, cval.str, cval.len, &nsnap->name)); + + /* + * To include updates from a writing transaction, make sure a + * transaction ID has been allocated. + */ + if (include_updates) { + WT_ERR(__wt_txn_id_check(session)); + WT_ASSERT(session, txn->id != WT_TXN_NONE); + nsnap->id = txn->id; + } else + nsnap->id = WT_TXN_NONE; nsnap->pinned_id = WT_SESSION_TXN_STATE(session)->pinned_id; nsnap->snap_min = txn->snap_min; nsnap->snap_max = txn->snap_max; @@ -209,8 +228,7 @@ err: if (started_txn) { WT_TRET(__wt_txn_rollback(session, NULL)); WT_DIAGNOSTIC_YIELD; WT_ASSERT(session, !__wt_txn_visible_all(session, pinned_id)); - } else if (ret == 0) - F_SET(txn, WT_TXN_NAMED_SNAPSHOT); + } if (nsnap_new != NULL) __nsnap_destroy(session, nsnap_new); @@ -303,6 +321,11 @@ __wt_txn_named_snapshot_get(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *nameval) memcpy(txn->snapshot, nsnap->snapshot, nsnap->snapshot_count * sizeof(*nsnap->snapshot)); + if (nsnap->id != WT_TXN_NONE) { + WT_ASSERT(session, txn->id == WT_TXN_NONE); + txn->id = nsnap->id; + F_SET(txn, WT_TXN_READONLY); + } F_SET(txn, WT_TXN_HAS_SNAPSHOT); break; } diff --git a/test/suite/test_compact02.py b/test/suite/test_compact02.py index 3a4ca6cbc7e..7af76b5fd58 100644 --- a/test/suite/test_compact02.py +++ b/test/suite/test_compact02.py @@ -38,7 +38,7 @@ from wtscenario import make_scenarios class test_compact02(wttest.WiredTigerTestCase): types = [ - ('file', dict(uri='file:test_compact02')), + ('table', dict(uri='table:test_compact02')), ] cacheSize = [ ('default', dict(cacheSize='')), @@ -69,8 +69,9 @@ class test_compact02(wttest.WiredTigerTestCase): # 1. Create a table with the data, alternating record size. # 2. Checkpoint and get stats on the table to confirm the size. # 3. Delete the half of the records with the larger record size. - # 4. Call compact. - # 5. Get stats on compacted table. + # 4. Checkpoint so compact finds something to work with. + # 5. Call compact. + # 6. Get stats on compacted table. # nrecords = 22000 bigvalue = "abcdefghi" * 1074 # 9*1074 == 9666 @@ -99,7 +100,8 @@ class test_compact02(wttest.WiredTigerTestCase): self.home = '.' conn_params = 'create,' + \ cacheSize + ',error_prefix="%s: ",' % self.shortid() + \ - 'statistics=(all),eviction_dirty_target=99,eviction_dirty_trigger=99' + 'statistics=(all),' + \ + 'eviction_dirty_target=99,eviction_dirty_trigger=99' try: self.conn = wiredtiger.wiredtiger_open(self.home, conn_params) except wiredtiger.WiredTigerError as e: @@ -140,10 +142,13 @@ class test_compact02(wttest.WiredTigerTestCase): c.close() self.pr('Removed total ' + str((count * 9666) / mb) + 'MB') - # 4. Call compact. + # 4. Checkpoint + self.session.checkpoint() + + # 5. Call compact. self.session.compact(self.uri, None) - # 5. Get stats on compacted table. + # 6. Get stats on compacted table. sz = self.getSize() self.pr('After compact ' + str(sz / mb) + 'MB') diff --git a/test/suite/test_inmem01.py b/test/suite/test_inmem01.py index 1af43bbd9d9..388485db29b 100644 --- a/test/suite/test_inmem01.py +++ b/test/suite/test_inmem01.py @@ -59,7 +59,7 @@ class test_inmem01(wttest.WiredTigerTestCase): ds = SimpleDataSet(self, self.uri, 10000000, key_format=self.keyfmt, value_format=self.valuefmt, config=self.table_config) self.assertRaisesHavingMessage(wiredtiger.WiredTigerError, - lambda:ds.populate(), msg) + ds.populate, msg) # Figure out the last key we successfully inserted, and check all # previous inserts are still there. @@ -77,7 +77,7 @@ class test_inmem01(wttest.WiredTigerTestCase): ds = SimpleDataSet(self, self.uri, 10000000, key_format=self.keyfmt, value_format=self.valuefmt, config=self.table_config) self.assertRaisesHavingMessage(wiredtiger.WiredTigerError, - lambda:ds.populate(), msg) + ds.populate, msg) # Now that the database contains as much data as will fit into # the configured cache, verify removes succeed. @@ -93,7 +93,7 @@ class test_inmem01(wttest.WiredTigerTestCase): ds = SimpleDataSet(self, self.uri, 10000000, key_format=self.keyfmt, value_format=self.valuefmt, config=self.table_config) self.assertRaisesHavingMessage(wiredtiger.WiredTigerError, - lambda:ds.populate(), msg) + ds.populate, msg) cursor = self.session.open_cursor(self.uri, None) cursor.prev() @@ -120,5 +120,50 @@ class test_inmem01(wttest.WiredTigerTestCase): break self.assertTrue(inserted) + # Custom "keep filling" helper + def fill(self, cursor, ds, start, end): + for i in xrange(start + 1, end + 1): + cursor[ds.key(i)] = ds.value(i) + + # Keep adding data to the cache until it becomes really full, make sure + # that reads aren't blocked. + @wttest.longtest("Try to wedge an in-memory cache") + def test_wedge(self): + # Try to really wedge the cache full + ds = SimpleDataSet(self, self.uri, 0, key_format=self.keyfmt, + value_format=self.valuefmt, config=self.table_config) + ds.populate() + cursor = self.session.open_cursor(self.uri, None) + + run = 0 + start, last_key = -1000, 0 + while last_key - start > 100: + msg = '/WT_CACHE_FULL.*/' + start = last_key + self.assertRaisesHavingMessage(wiredtiger.WiredTigerError, + lambda: self.fill(cursor, ds, start, 10000000), msg) + cursor.reset() + sleep(1) + + # Figure out the last key we successfully inserted, and check all + # previous inserts are still there. + cursor.prev() + last_key = int(cursor.get_key()) + run += 1 + self.pr('Finished iteration ' + str(run) + ', last_key = ' + str(last_key)) + + self.pr('Checking ' + str(last_key) + ' keys') + ds = SimpleDataSet(self, self.uri, last_key, key_format=self.keyfmt, + value_format=self.valuefmt, config=self.table_config) + + # This test is *much* slower for fixed-length column stores: we fit + # many more records into the cache, so don't do as many passes through + # the data. + checks = 10 if self.valuefmt.endswith('t') else 100 + for run in xrange(checks): + ds.check() + self.pr('Finished check ' + str(run)) + sleep(1) + if __name__ == '__main__': wttest.run() diff --git a/test/suite/test_nsnap04.py b/test/suite/test_nsnap04.py index 60901dd2ee3..8d491540d74 100644 --- a/test/suite/test_nsnap04.py +++ b/test/suite/test_nsnap04.py @@ -38,14 +38,18 @@ class test_nsnap04(wttest.WiredTigerTestCase, suite_subprocess): uri = 'table:' + tablename nrows_per_itr = 10 - def check_named_snapshot(self, snapshot, expected): + def check_named_snapshot(self, snapshot, expected, skip_snapshot=False): new_session = self.conn.open_session() c = new_session.open_cursor(self.uri) - new_session.begin_transaction("snapshot=" + str(snapshot)) + if skip_snapshot: + new_session.begin_transaction() + else: + new_session.begin_transaction("snapshot=" + str(snapshot)) count = 0 for row in c: count += 1 new_session.commit_transaction() + new_session.close() # print "Checking snapshot %d, expect %d, found %d" % (snapshot, expected, count) self.assertEqual(count, expected) @@ -80,5 +84,34 @@ class test_nsnap04(wttest.WiredTigerTestCase, suite_subprocess): self.session.snapshot("name=0") self.check_named_snapshot(0, 2 * self.nrows_per_itr) + def test_include_updates(self): + # Populate a table + end = start = 0 + SimpleDataSet(self, self.uri, 0, key_format='i').populate() + + snapshots = [] + c = self.session.open_cursor(self.uri) + for i in xrange(self.nrows_per_itr): + c[i] = "some value" + + self.session.begin_transaction("isolation=snapshot") + count = 0 + for row in c: + count += 1 + self.session.snapshot("name=0,include_updates=true") + + self.check_named_snapshot(0, self.nrows_per_itr) + + # Insert some more content using the active session. + for i in xrange(self.nrows_per_itr): + c[self.nrows_per_itr + i] = "some value" + + self.check_named_snapshot(0, 2 * self.nrows_per_itr) + # Ensure transactions not tracking the snapshot don't see the updates + self.check_named_snapshot(0, self.nrows_per_itr, skip_snapshot=True) + self.session.commit_transaction() + # Ensure content is visible to non-snapshot transactions after commit + self.check_named_snapshot(0, 2 * self.nrows_per_itr, skip_snapshot=True) + if __name__ == '__main__': wttest.run() diff --git a/test/suite/wtdataset.py b/test/suite/wtdataset.py index cb77735510c..74e07e24e93 100644 --- a/test/suite/wtdataset.py +++ b/test/suite/wtdataset.py @@ -49,7 +49,7 @@ class BaseDataSet(object): def fill(self): c = self.testcase.session.open_cursor(self.uri, None) - for i in range(1, self.rows + 1): + for i in xrange(1, self.rows + 1): c[self.key(i)] = self.value(i) c.close() @@ -166,7 +166,7 @@ class SimpleIndexDataSet(SimpleDataSet): # Check values in the index. idxcursor = self.testcase.session.open_cursor(self.indexname) - for i in range(1, self.rows + 1): + for i in xrange(1, self.rows + 1): k = self.key(i) v = self.value(i) ik = (v, k) # The index key is columns=(v,k). diff --git a/test/syscall/Makefile.am b/test/syscall/Makefile.am new file mode 100644 index 00000000000..1d55b06c388 --- /dev/null +++ b/test/syscall/Makefile.am @@ -0,0 +1,7 @@ +AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)/src/include +LDADD = $(top_builddir)/libwiredtiger.la +AM_LDFLAGS = -static +noinst_PROGRAMS = + +test_wt2336_base_SOURCES = wt2336_base/main.c +noinst_PROGRAMS += test_wt2336_base diff --git a/test/syscall/syscall.py b/test/syscall/syscall.py new file mode 100644 index 00000000000..f97ea8a5749 --- /dev/null +++ b/test/syscall/syscall.py @@ -0,0 +1,849 @@ +#!/usr/bin/env python +# +# Public Domain 2014-2016 MongoDB, Inc. +# Public Domain 2008-2014 WiredTiger, Inc. +# +# This is free and unencumbered software released into the public domain. +# +# Anyone is free to copy, modify, publish, use, compile, sell, or +# distribute this software, either in source code form or as a compiled +# binary, for any purpose, commercial or non-commercial, and by any +# means. +# +# In jurisdictions that recognize copyright laws, the author or authors +# of this software dedicate any and all copyright interest in the +# software to the public domain. We make this dedication for the benefit +# of the public at large and to the detriment of our heirs and +# successors. We intend this dedication to be an overt act of +# relinquishment in perpetuity of all present and future rights to this +# software under copyright law. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. +# +# syscall.py +# Command line syscall test runner +# +# For each .run file, run the corresponding program and collect strace +# output, comparing it to the contents of the .run file. +# +# run files are first preprocessed, which means the use of #ifdefs, #defines +# and #includes are allowed, as well as /**/ and // comments. +# Expressions are evaluated using the Python parser, so that: +# hex and octal numbers are accepted, constant values can be or-ed. +# +from __future__ import print_function +import argparse, distutils.spawn, fnmatch, os, platform, re, shutil, \ + subprocess, sys + +# A class that represents a context in which predefined constants can be +# set, and new variables can be assigned. +class VariableContext(object): + def __getitem__(self, key): + if key not in dir(self) or key.startswith('__'): + raise KeyError(key) + return getattr(self, key) + + def __setitem__(self, key, value): + setattr(self, key, value) + +################################################################ +# Changable parameters +# We expect these values to evolve as tests are added or modified. + +# Generally, system calls must be wrapped in an ASSERT_XX() "macro". +# Exceptions are calls in this list that return 0 on success, or +# those that are hardcoded in Runner.call_compare() +calls_returning_zero = [ 'close', 'ftruncate', 'fdatasync', 'rename' ] + +# Encapsulate all the defines we can use in our scripts. +# When this program is run, we'll find out their actual values on +# the host system. +defines_used = [ + 'HAVE_FTRUNCATE', 'O_ACCMODE', 'O_APPEND', 'O_ASYNC', + 'O_CLOEXEC', 'O_CREAT', 'O_EXCL', 'O_EXLOCK', 'O_NOATIME', + 'O_NOFOLLOW', 'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_SHLOCK', + 'O_TRUNC', 'O_WRONLY' ] + +################################################################ + +# Patterns that are used to match the .run file and/or the output. +ident = r'([a-zA-Z_][a-zA-Z0-9_]*)' +outputpat = re.compile(r'OUTPUT\("([^"]*)"\)') +argpat = re.compile(r'''((?:[^,"']|"[^"]*"|'[^']*')+)''') +discardpat = re.compile(r';') + +# e.g. fd = open("blah", 0, 0); +assignpat = re.compile(ident + r'\s*=\s*' + ident + r'(\([^;]*\));') + +# e.g. ASSERT_EQ(close(fd), 0); +assertpat = re.compile(r'ASSERT_([ENLG][QET])\s*\(\s*' + ident + r'\s*(\(.*\))\s*,\s*([a-zA-Z0-9_]+)\);') + +# e.g. close(fd); must return 0 +callpat = re.compile(ident + r'(\(.*\));') + +# e.g. open("blah", 0x0, 0x0) = 6 0 +# We capture the errno (e.g. "0" or "Err#60"), but don't do anything with it. +# We don't currently test anything that is errno dependent. +dtruss_pat = re.compile(ident + r'(\(.*\))\s*=\s*(-*[0-9xA-F]+)\s+([-A-Za-z#0-9]*)') +# At the top of the dtruss output is a fixed string. +dtruss_init_pat = re.compile(r'\s*SYSCALL\(args\)\s*=\s*return\s*') + +strace_pat = re.compile(ident + r'(\(.*\))\s*=\s(-*[0-9]+)()') + +tracepat = re.compile(r'TRACE\("([^"]*)"\)') +runpat = re.compile(r'RUN\(([^\)]*)\)') +systempat = re.compile(r'SYSTEM\("([^"]*)"\)') +# If tracepat matches, set map['trace_syscalls'] to the 0'th group, etc. +headpatterns = [ [ tracepat, 'trace_syscalls', 0], + [ systempat, 'required_system', 0], + [ runpat, 'run_args', 0] ] + +# To create breakpoints while debugging this script +def bp(): + import pdb + pdb.set_trace() + +def msg(s): + print("syscall.py: " + s, file=sys.stderr) + +def die(s): + msg(s) + sys.exit(1) + +# If wttop appears as a prefix of pathname, strip it off. +def simplify_path(wttop, pathname): + wttop = os.path.join(wttop, "") + if pathname.startswith(wttop): + pathname = pathname[len(wttop):] + return pathname + +def printfile(pathname, abbrev): + print("================================================================") + print(abbrev + " (" + pathname + "):") + with open(pathname, 'r') as f: + shutil.copyfileobj(f, sys.stdout) + print("================================================================") + +# A line from a file: a modified string with the file name and line number +# associated with it. +class FileLine(str): + filename = None + linenum = 0 + def __new__(cls, value, *args, **kwargs): + return super(FileLine, cls).__new__(cls, value) + + def prefix(self): + return self.filename + ':' + str(self.linenum) + ': ' + + def range_prefix(self, otherline): + if self == otherline: + othernum = '' + elif otherline == None: + othernum = '-EOF' + else: + othernum = '-' + str(otherline.linenum) + return self.filename + ':' + str(self.linenum) + othernum + ': ' + +# Manage reading from a file, tracking line numbers. +class Reader(object): + # 'raw' means we don't ignore any lines + # 'is_cpp' means input lines beginning with '#' indicate file/linenumber + def __init__(self, wttop, filename, f, raw = True, is_cpp = False): + self.wttop = wttop + self.orig_filename = filename + self.filename = filename + self.f = f + self.linenum = 1 + self.raw = raw + self.is_cpp = is_cpp + if not self.f: + die(self.filename + ': cannot open') + + def __enter__(self): + if not self.f: + return False + return self + + def __exit__(self, typ, value, traceback): + if self.f: + self.f.close() + self.f = None + + # Return True if the line is to be ignored. + def ignore(self, line): + if self.raw: + return False + return line == '' + + # strip a line of comments + def strip_line(self, line): + if not line: + return None + line = line.strip() + if self.is_cpp and line.startswith('#'): + parts = line.split() + if len(parts) < 3 or not parts[1].isdigit(): + msg('bad cpp input: ' + line) + line = '' + self.linenum = int(parts[1]) - 1 + self.filename = parts[2].strip('"') + if self.filename == '<stdin>': + self.filename = self.orig_filename + if '//' in line: + if line.startswith('//'): + line = '' + else: + # This isn't exactly right, it would see "; //" + # within a string or comment. + m = re.match(r'^(.*;|.*\.\.\.)\s*//', line) + if m: + line = m.groups()[0].strip() + return line + + def readline(self): + line = self.strip_line(self.f.readline()) + while line != None and self.ignore(line): + self.linenum += 1 + line = self.strip_line(self.f.readline()) + if line: + line = FileLine(line) + line.filename = self.filename + line.linenum = self.linenum + self.linenum += 1 + else: + line = '' # make this somewhat compatible with file.readline + return line + + def close(self): + self.f.close() + +# Read from a regular file. +class FileReader(Reader): + def __init__(self, wttop, filename, raw = True): + return super(FileReader, self).__init__(wttop, filename, + open(filename), raw, False) + +# Read from the C preprocessor run on a file. +class PreprocessedReader(Reader): + def __init__(self, wttop, filename, predefines, raw = True): + sourcedir = os.path.dirname(filename) + cmd = ['cc', '-E', '-I' + sourcedir] + for name in dir(predefines): + if not name.startswith('__'): + cmd.append('-D' + name + '=' + str(predefines[name])) + cmd.append('-') + proc = subprocess.Popen(cmd, stdin=open(filename), + stdout=subprocess.PIPE) + super(PreprocessedReader, self).__init__(wttop, filename, + proc.stdout, raw, True) + +# Track options discovered in the 'head' section of the .run file. +class HeadOpts: + def __init__(self): + self.run_args = None + self.required_system = None + self.trace_syscalls = None + +# Manage a run of the target program characterized by a .run file, +# comparing output from the run and reporting differences. +class Runner: + def __init__(self, wttopdir, runfilename, exedir, testexe, + strace, args, variables, defines): + self.variables = variables + self.defines = defines + self.wttopdir = wttopdir + self.runfilename = runfilename + self.testexe = testexe + self.exedir = exedir + self.strace = strace + self.args = args + self.headopts = HeadOpts() + self.dircreated = False + self.strip_syscalls = None + outfilename = args.outfilename + errfilename = args.errfilename + if outfilename == None: + self.outfilename = os.path.join(exedir, 'stdout.txt') + else: + self.outfilename = outfilename + if errfilename == None: + self.errfilename = os.path.join(exedir, 'stderr.txt') + else: + self.errfilename = errfilename + + self.runfile = PreprocessedReader(self.wttopdir, runfilename, + self.defines, False) + + def init(self, systemtype): + # Read up until 'RUN()', setting attributes of self.headopts + runline = '?' + m = None + while runline: + runline = self.runfile.readline() + m = None + for pat,attr,group in headpatterns: + m = re.match(pat, runline) + if m: + setattr(self.headopts, attr, m.groups()[group]) + break + if not m: + self.fail(runline, "unknown header option: " + runline) + return [ False, False ] + if self.headopts.run_args != None: # found RUN()? + break + if not self.headopts.trace_syscalls: + msg("'" + self.runfile.filename + "': needs TRACE(...)") + return [ False, False ] + runargs = self.headopts.run_args.strip() + if len(runargs) > 0: + if len(runargs) < 2 or runargs[0] != '"' or runargs[-1] != '"': + msg("'" + self.runfile.filename + + "': Missing double quotes in RUN arguments") + return [ False, False ] + runargs = runargs[1:-1] + self.runargs = runargs.split() + #print("SYSCALLS: " + self.headopts.trace_syscalls + if self.headopts.required_system != None and \ + self.headopts.required_system != systemtype: + msg("skipping '" + self.runfile.filename + "': for '" + + self.headopts.required_system + "', this system is '" + + systemtype + "'") + return [ False, True ] + return [ True, False ] + + def close(self, forcePreserve): + self.runfile.close() + if self.exedir and self.dircreated and \ + not self.args.preserve and not forcePreserve: + os.chdir('..') + shutil.rmtree(self.exedir) + + def fail(self, line, s): + # make it work if line is None or is a plain string. + try: + prefix = simplify_path(self.wttopdir, line.prefix()) + except: + prefix = 'syscall.py: ' + print(prefix + s, file=sys.stderr) + + def failrange(self, line, lineto, s): + # make it work if line is None or is a plain string. + try: + prefix = simplify_path(self.wttopdir, line.range_prefix(lineto)) + except: + prefix = 'syscall.py: ' + print(prefix + s, file=sys.stderr) + + def str_match(self, s1, s2): + fuzzyRight = False + if len(s1) < 2 or len(s2) < 2: + return False + if s1[-3:] == '...': + fuzzyRight = True + s1 = s1[:-3] + if s2[-3:] == '...': + s2 = s2[:-3] + if s1[0] != '"' or s1[-1] != '"' or s2[0] != '"' or s2[-1] != '"': + return False + s1 = s1[1:-1] + s2 = s2[1:-1] + # We allow a trailing \0 + if s1[-2:] == '\\0': + s1 = s1[:-2] + if s2[-2:] == '\\0': + s2 = s2[:-2] + if fuzzyRight: + return s2.startswith(s2) + else: + return s1 == s2 + + def expr_eval(self, s): + return eval(s, {}, self.variables) + + def arg_match(self, a1, a2): + a1 = a1.strip() + a2 = a2.strip() + if a1 == a2: + return True + if len(a1) == 0 or len(a2) == 0: + return False + if a1[0] == '"': + return self.str_match(a1, a2) + #print(' arg_match: <' + a1 + '> <' + a2 + '>') + try: + a1value = self.expr_eval(a1) + except Exception: + self.fail(a1, 'unknown expression: ' + a1) + return False + try: + a2value = self.expr_eval(a2) + except Exception: + self.fail(a2, 'unknown expression: ' + a2) + return False + return a1value == a2value or int(a1value) == int(a2value) + + def split_args(self, s): + if s[0] == '(': + s = s[1:] + if s[-1] == ')': + s = s[:-1] + return argpat.split(s)[1::2] + + def args_match(self, args1, args2): + #print('args_match: ' + str(s1) + ', ' + str(s2)) + pos = 0 + for a1 in args1: + a1 = a1.strip() + if a1 == '...': # match anything? + return True + if pos >= len(args2): + return False + if not self.arg_match(a1, args2[pos]): + return False + pos += 1 + if pos < len(args2): + return False + return True + + # func(args); is shorthand for for ASSERT_EQ(func(args), xxx); + # where xxx may be 0 or may be derived from one of the args. + def call_compare(self, callname, result, eargs, errline): + if callname in calls_returning_zero: + return self.compare("EQ", result, "0", errline) + elif callname == 'pwrite': + return self.compare("EQ", result, eargs[2], errline) + else: + self.fail(errline, 'call ' + callname + + ': not known, use ASSERT_EQ()') + + def compare(self, compareop, left, right, errline): + l = self.expr_eval(left) + r = self.expr_eval(right) + if (compareop == "EQ" and l == r) or \ + (compareop == "NE" and l != r) or \ + (compareop == "LT" and l < r) or \ + (compareop == "LE" and l <= r) or \ + (compareop == "GT" and l > r) or \ + (compareop == "GE" and l >= r): + return True + else: + self.fail(errline, + 'call returned value: ' + left + ', comparison: (' + + left + ' ' + compareop + ' ' + right + + ') at line: ' + errline) + return False + + def match_report(self, runline, errline, verbose, skiplines, result, desc): + if result: + if verbose: + print('MATCH:') + print(' ' + runline.prefix() + runline) + print(' ' + errline.prefix() + errline) + else: + if verbose: + if not skiplines: + msg('Expecting ' + desc) + print(' ' + runline.prefix() + runline + + ' does not match:') + print(' ' + errline.prefix() + errline) + else: + print(' (... match) ' + errline.prefix() + errline) + return result + + def match(self, runline, errline, verbose, skiplines): + m = re.match(outputpat, runline) + if m: + outwant = m.groups()[0] + return self.match_report(runline, errline, verbose, skiplines, + errline == outwant, 'output line') + if self.args.systype == 'Linux': + em = re.match(strace_pat, errline) + elif self.args.systype == 'Darwin': + em = re.match(dtruss_pat, errline) + if not em: + self.fail(errline, 'Unknown strace/dtruss output: ' + errline) + return False + gotcall = em.groups()[0] + # filtering syscalls here if needed. If it's not a match, + # mark the errline so it is retried. + if self.strip_syscalls != None and gotcall not in self.strip_syscalls: + errline.skip = True + return False + + m = re.match(assignpat, runline) + if m: + if m.groups()[1] != gotcall: + return self.match_report(runline, errline, verbose, skiplines, + False, 'syscall to match assignment') + + rargs = self.split_args(m.groups()[2]) + eargs = self.split_args(em.groups()[1]) + result = self.args_match(rargs, eargs) + if result: + self.variables[m.groups()[0]] = em.groups()[2] + return self.match_report(runline, errline, verbose, skiplines, + result, 'syscall to match assignment') + + # pattern groups using example ASSERT_EQ(close(fd), 0); + # 0 : comparison op ("EQ") + # 1 : function call name "close" + # 2 : function call args "(fd)" + # 3 : comparitor "0" + m = re.match(assertpat, runline) + if m: + if m.groups()[1] != gotcall: + return self.match_report(runline, errline, verbose, skiplines, + False, 'syscall to match ASSERT') + + rargs = self.split_args(m.groups()[2]) + eargs = self.split_args(em.groups()[1]) + result = self.args_match(rargs, eargs) + if not result: + return self.match_report(runline, errline, verbose, skiplines, + result, 'syscall to match ASSERT') + result = self.compare(m.groups()[0], em.groups()[2], + m.groups()[3], errline) + return self.match_report(runline, errline, verbose, skiplines, + result, 'ASSERT') + + # A call without an enclosing ASSERT is reduced to an ASSERT, + # depending on the particular system call. + m = re.match(callpat, runline) + if m: + if m.groups()[0] != gotcall: + return self.match_report(runline, errline, verbose, skiplines, + False, 'syscall') + + rargs = self.split_args(m.groups()[1]) + eargs = self.split_args(em.groups()[1]) + result = self.args_match(rargs, eargs) + if not result: + return self.match_report(runline, errline, verbose, skiplines, + result, 'syscall') + result = self.call_compare(m.groups()[0], em.groups()[2], + eargs, errline) + return self.match_report(runline, errline, verbose, skiplines, + result, 'syscall') + + self.fail(runline, 'unrecognized pattern in runfile:' + runline) + return False + + def match_lines(self): + outfile = FileReader(self.wttopdir, self.outfilename, True) + errfile = FileReader(self.wttopdir, self.errfilename, True) + + if outfile.readline(): + self.fail(None, 'output file has content, expected to be empty') + return False + + with outfile, errfile: + runlines = self.order_runfile(self.runfile) + errline = errfile.readline() + if re.match(dtruss_init_pat, errline): + errline = errfile.readline() + skiplines = False + for runline in runlines: + if runline == '...': + skiplines = True + if self.args.verbose: + print('Fuzzy matching:') + print(' ' + runline.prefix() + runline) + continue + first_errline = errline + while errline and not self.match(runline, errline, + self.args.verbose, skiplines): + if skiplines or hasattr(errline, 'skip'): + errline = errfile.readline() + else: + self.fail(runline, "expecting " + runline) + self.failrange(first_errline, errline, "does not match") + return False + if not errline: + self.fail(runline, "failed to match line: " + runline) + self.failrange(first_errline, errline, "does not match") + return False + errline = errfile.readline() + if re.match(dtruss_init_pat, errline): + errline = errfile.readline() + skiplines = False + if errline and not skiplines: + self.fail(errline, "extra lines seen starting at " + errline) + return False + return True + + def order_runfile(self, f): + # In OS X, dtruss is implemented using dtrace's apparently buffered + # printf writes to stdout, but that is all redirected to stderr. + # Because of that, the test program's writes to stderr do not + # interleave with dtruss output as it does with Linux's strace + # (which writes directly to stderr). On OS X, we get the program's + # output first, we compensate for this by moving all the + # OUTPUT statements in the runfile to match first. This simple + # approach will break if there is more data generated by OUTPUT + # statements than a stdio buffer's size. + matchout = (self.args.systype == 'Darwin') + out = [] + nonout = [] + s = f.readline() + while s: + if matchout and re.match(outputpat, s): + out.append(s) + elif not re.match(discardpat, s): + nonout.append(s) + s = f.readline() + out.extend(nonout) + return out + + def run(self): + if not self.exedir: + self.fail(None, "Execution directory not set") + return False + if not os.path.isfile(self.testexe): + msg("'" + self.testexe + "': no such file") + return False + + shutil.rmtree(self.exedir, ignore_errors=True) + os.mkdir(self.exedir) + self.dircreated = True + os.chdir(self.exedir) + + callargs = list(self.strace) + trace_syscalls = self.headopts.trace_syscalls + if self.args.systype == 'Linux': + callargs.extend(['-e', 'trace=' + trace_syscalls ]) + elif self.args.systype == 'Darwin': + # dtrace has no option to limit the syscalls to be traced, + # so we'll filter the output. + self.strip_syscalls = self.headopts.trace_syscalls.split(',') + callargs.append(self.testexe) + callargs.extend(self.runargs) + + outfile = open(self.outfilename, 'w') + errfile = open(self.errfilename, 'w') + if self.args.verbose: + print('RUNNING: ' + str(callargs)) + subret = subprocess.call(callargs, stdout=outfile, stderr=errfile) + outfile.close() + errfile.close() + if subret != 0: + msg("'" + self.testexe + "': exit value " + str(subret)) + printfile(self.outfilename, "output") + printfile(self.errfilename, "error") + return False + return True + +# Run the syscall program. +class SyscallCommand: + def __init__(self, disttop, builddir): + self.disttop = disttop + self.builddir = builddir + + def parse_args(self, argv): + srcdir = os.path.join(self.disttop, 'test', 'syscall') + self.exetopdir = os.path.join(self.builddir, 'test', 'syscall') + self.incdir1 = os.path.join(self.disttop, 'src', 'include') + self.incdir2 = self.builddir + + ap = argparse.ArgumentParser('Syscall test runner') + ap.add_argument('--systype', + help='override system type (Linux/Windows/Darwin)') + ap.add_argument('--errfile', dest='errfilename', + help='do not run the program, use this file as stderr') + ap.add_argument('--outfile', dest='outfilename', + help='do not run the program, use this file as stdout') + ap.add_argument('--preserve', action="store_true", + help='keep the WT_TEST.* directories') + ap.add_argument('--verbose', action="store_true", + help='add some verbose information') + ap.add_argument('tests', nargs='*', + help='the tests to run (defaults to all)') + args = ap.parse_args() + + if not args.systype: + args.systype = platform.system() # Linux, Windows, Darwin + + self.dorun = True + if args.errfilename or args.outfilename: + if len(args.tests) != 1: + msg("one test is required when --errfile or --outfile" + + " is specified") + return False + if not args.outfilename: + args.outfilename = os.devnull + if not args.errfilename: + args.errfilename = os.devnull + self.dorun = False + + # for now, we permit Linux and Darwin + straceexe = None + if args.systype == 'Linux': + strace = [ 'strace' ] + straceexe = 'strace' + elif args.systype == 'Darwin': + strace = [ 'sudo', 'dtruss' ] + straceexe = 'dtruss' + else: + msg("systype '" + args.systype + "' unsupported") + return False + if not distutils.spawn.find_executable(straceexe): + msg("strace: does not exist") + return False + self.args = args + self.strace = strace + return True + + def runone(self, runfilename, exedir, testexe, args): + result = True + runner = Runner(self.disttop, runfilename, exedir, testexe, + self.strace, args, self.variables, self.defines) + okay, skip = runner.init(args.systype) + if not okay: + if not skip: + result = False + else: + if testexe: + print('running ' + testexe) + if not runner.run(): + result = False + if result: + print('comparing:') + print(' ' + simplify_path(self.disttop, runfilename)) + print(' ' + simplify_path(self.disttop, runner.errfilename)) + result = runner.match_lines() + if not result and args.verbose: + printfile(runfilename, "runfile") + printfile(runner.errfilename, "trace output") + runner.close(not result) + if not result: + print('************************ FAILED ************************') + print(' see results in ' + exedir) + print('') + return result + + # Create a C program to get values for all defines we need. + # The output of the program is Python code that we'll execute + # directly to set the values. + def build_system_defines(self): + # variables is a symbol table that is used to + # evaluate expressions both in the .run file and + # in the output file. This is needed for strace, + # which shows system call flags in symbolic form. + self.variables = VariableContext() + # defines is a symbol table that is used to + # create preprocessor defines, effectively evaluating + # all flag defines in the .run file. + self.defines = VariableContext() + program = \ + '#include <stdio.h>\n' + \ + '#include <fcntl.h>\n' + \ + '#include <wt_internal.h>\n' + \ + 'int main() {\n' + for define in defines_used: + program += '#ifdef ' + define + '\n' + # output is Python that sets attributes of 'o'. + program += ' printf("o.' + define + '=%d\\n", ' + \ + define + ');\n' + program += '#endif\n' + program += \ + ' return(0);\n' + \ + '}\n' + probe_c = os.path.join(self.exetopdir, "syscall_probe.c") + probe_exe = os.path.join(self.exetopdir, "syscall_probe") + with open(probe_c, "w") as f: + f.write(program) + ccargs = ['cc', '-o', probe_exe] + ccargs.append('-I' + self.incdir1) + ccargs.append('-I' + self.incdir2) + if self.args.systype == 'Linux': + ccargs.append('-D_GNU_SOURCE') + ccargs.append(probe_c) + subret = subprocess.call(ccargs) + if subret != 0: + msg("probe compilation returned " + str(subret)) + return False + proc = subprocess.Popen([probe_exe], stdout=subprocess.PIPE) + out, err = proc.communicate() + subret = proc.returncode + if subret != 0 or err: + msg("probe run returned " + str(subret) + ", error=" + str(err)) + return False + if self.args.verbose: + print('probe output:\n' + out) + o = self.defines # The 'o' object will be modified. + exec(out) # Run the produced Python. + o = self.variables # Set these in variables too, so strace + exec(out) # symbolic output is evaluated. + if not self.args.preserve: + os.remove(probe_c) + os.remove(probe_exe) + return True + + def execute(self): + args = self.args + result = True + if not self.build_system_defines(): + die('cannot build system defines') + if not self.dorun: + for testname in args.tests: + result = self.runone(testname, None, None, args) and result + else: + if len(args.tests) > 0: + tests = [] + for arg in args.tests: + abspath = os.path.abspath(arg) + tests.append([os.path.dirname(abspath), [], + [os.path.basename(abspath)]]) + else: + tests = os.walk(syscalldir) + os.chdir(self.exetopdir) + for path, subdirs, files in tests: + testnum = -1 if len(files) <= 1 else 0 + for name in files: + if fnmatch.fnmatch(name, '*.run'): + testname = os.path.basename(os.path.normpath(path)) + runfilename = os.path.join(path, name) + testexe = os.path.join(self.exetopdir, + 'test_' + testname) + exedir = os.path.join(self.exetopdir, + 'WT_TEST.' + testname) + # If there are multiple tests in this directory, + # give each one its own execution dir. + if testnum >= 0: + exedir += '.' + str(testnum) + testnum += 1 + result = self.runone(runfilename, exedir, + testexe, args) and result + return result + +# Set paths, determining the top of the build. +syscalldir = sys.path[0] +wt_disttop = os.path.dirname(os.path.dirname(syscalldir)) + +# Note: this code is borrowed from test/suite/run.py +# Check for a local build that contains the wt utility. First check in +# current working directory, then in build_posix and finally in the disttop +# directory. This isn't ideal - if a user has multiple builds in a tree we +# could pick the wrong one. +if os.path.isfile(os.path.join(os.getcwd(), 'wt')): + wt_builddir = os.getcwd() +elif os.path.isfile(os.path.join(wt_disttop, 'wt')): + wt_builddir = wt_disttop +elif os.path.isfile(os.path.join(wt_disttop, 'build_posix', 'wt')): + wt_builddir = os.path.join(wt_disttop, 'build_posix') +elif os.path.isfile(os.path.join(wt_disttop, 'wt.exe')): + wt_builddir = wt_disttop +else: + die('unable to find useable WiredTiger build') + +cmd = SyscallCommand(wt_disttop, wt_builddir) +if not cmd.parse_args(sys.argv): + die('bad usage') +if not cmd.execute(): + sys.exit(1) +sys.exit(0) diff --git a/test/syscall/wt2336_base/base.run b/test/syscall/wt2336_base/base.run new file mode 100644 index 00000000000..482eece476d --- /dev/null +++ b/test/syscall/wt2336_base/base.run @@ -0,0 +1,176 @@ +// Public Domain 2014-2016 MongoDB, Inc. +// Public Domain 2008-2014 WiredTiger, Inc. +// +// This is free and unencumbered software released into the public domain. +// +// Anyone is free to copy, modify, publish, use, compile, sell, or +// distribute this software, either in source code form or as a compiled +// binary, for any purpose, commercial or non-commercial, and by any +// means. +// +// In jurisdictions that recognize copyright laws, the author or authors +// of this software dedicate any and all copyright interest in the +// software to the public domain. We make this dedication for the benefit +// of the public at large and to the detriment of our heirs and +// successors. We intend this dedication to be an overt act of +// relinquishment in perpetuity of all present and future rights to this +// software under copyright law. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// +// base.run +// Command line syscall test runner +// +#ifdef __linux__ +SYSTEM("Linux"); +#define OPEN_EXISTING(name, flags) open(name, flags) +#else /* __linux__ */ +SYSTEM("Darwin"); +#define O_NOATIME 0 +#define OPEN_EXISTING(name, flags) open(name, flags, 0) +#endif /* __linux__ */ + +#ifdef HAVE_FTRUNCATE +#ifdef __linux__ +#define FTRUNCATE(fd, len) ftruncate(fd, len) +#else +#define FTRUNCATE(fd, len) ftruncate(fd, len, len) +#endif +#else +#define FTRUNCATE(fd, len) /* do nothing */ +#endif + +TRACE("close,fdatasync,fsync,ftruncate,open,pwrite,rename"); +RUN(""); +... +OUTPUT("--------------wiredtiger_open"); +// lock == 3 +lock = open("./WiredTiger.lock", O_RDWR|O_CREAT|O_CLOEXEC, 0666); +pwrite(lock, "WiredTiger lock file\n", 0x15, 0x0); +fd = open("./WiredTiger", O_RDWR|O_CREAT|O_CLOEXEC, 0666); +pwrite(fd, "WiredTiger\nWiredTiger"..., ...); +#ifdef __linux__ +fdatasync(fd); +#endif /* __linux__ */ +close(fd); + +... // On Linux, there are calls to open and read "/proc/meminfo" here. + +fd = open("./WiredTiger.basecfg.set", O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC, 0666); +pwrite(fd, "# Do not modify this file."..., ...); +#ifdef __linux__ +fdatasync(fd); +#endif /* __linux__ */ +close(fd); +rename("./WiredTiger.basecfg.set", "./WiredTiger.basecfg"); + +#ifdef __linux__ +dir = open("./", O_RDONLY); +fdatasync(dir); +close(dir); +#endif + +fd = open("./WiredTiger.wt", O_RDWR|O_CREAT|O_EXCL|O_NOATIME|O_CLOEXEC, 0666); + +#ifdef __linux__ +dir = open("./", O_RDONLY); +fdatasync(dir); +close(dir); +#endif /* __linux__ */ + +pwrite(fd, ""..., 0x1000, 0x0); +#ifdef __linux__ +fdatasync(fd); +#endif /* __linux__ */ +close(fd); + +wt = OPEN_EXISTING("./WiredTiger.wt\0", O_RDWR|O_NOATIME|O_CLOEXEC); +FTRUNCATE(wt, 0x1000); + +fd = open("./WiredTiger.turtle.set\0", O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC, 0666); +pwrite(fd, "WiredTiger version string\nWiredTiger"..., ...); +#ifdef __linux__ +fdatasync(fd); +#endif /* __linux__ */ +close(fd); +rename("./WiredTiger.turtle.set", "./WiredTiger.turtle"); + +... // There is a second open of turtle here, is it important? + +fd = open("./WiredTigerLAS.wt", O_RDWR|O_CREAT|O_EXCL|O_NOATIME|O_CLOEXEC, 0666); + +#ifdef __linux__ +dir = open("./", O_RDONLY); +fdatasync(dir); +close(dir); +#endif /* __linux__ */ + +pwrite(fd, ""..., 0x1000, 0x0); + +#ifdef __linux__ +fdatasync(fd); +#endif /* __linux__ */ + +close(fd); +fd = OPEN_EXISTING("./WiredTigerLAS.wt", O_RDWR|O_NOATIME|O_CLOEXEC); +FTRUNCATE(fd, 0x1000); +fd = OPEN_EXISTING("./WiredTiger.turtle", O_RDWR|O_CLOEXEC); +close(fd); +pwrite(wt, ""..., 0x1000, 0x1000); +pwrite(wt, ""..., 0x1000, 0x2000); +pwrite(wt, ""..., 0x1000, 0x3000); +fd = OPEN_EXISTING("./WiredTiger.turtle", O_RDWR|O_CLOEXEC); + +close(fd); +fd = open("./WiredTiger.turtle.set", O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC, 0666); +pwrite(fd, "WiredTiger version string\nWiredTiger"..., ...); +#ifdef __linux__ +fdatasync(fd); +#endif /* __linux__ */ +close(fd); +rename("./WiredTiger.turtle.set", "./WiredTiger.turtle"); +#ifdef __linux__ +dir = open("./", O_RDONLY); +fdatasync(dir); +close(dir); +#endif /* __linux__ */ + +OUTPUT("--------------open_session"); +OUTPUT("--------------create"); + +hello = open("./hello.wt", O_RDWR|O_CREAT|O_EXCL|O_NOATIME|O_CLOEXEC, 0666); +#ifdef __linux__ +dir = open("./", O_RDONLY); +fdatasync(dir); +close(dir); +#endif /* __linux__ */ +pwrite(hello, "A\330\001"..., 0x1000, 0x0); +#ifdef __linux__ +fdatasync(hello); +#endif /* __linux__ */ +close(hello); +hello = OPEN_EXISTING("./hello.wt", O_RDWR|O_NOATIME|O_CLOEXEC); +FTRUNCATE(hello, 0x1000); +turtle = OPEN_EXISTING("./WiredTiger.turtle", O_RDWR|O_CLOEXEC); +close(turtle); +... // more changes to turtle +OUTPUT("--------------rename"); +#ifdef __linux__ +FTRUNCATE(hello, 0x1000); +#endif /* __linux__ */ +close(hello); +rename("./hello.wt", "./world.wt"); +// Changes to turtle, more writes to wt. +turtle = OPEN_EXISTING("./WiredTiger.turtle", O_RDWR|O_CLOEXEC); +close(turtle); +... +OUTPUT("--------------drop"); +... +OUTPUT("--------------WT_CONNECTION::close"); +... diff --git a/test/syscall/wt2336_base/main.c b/test/syscall/wt2336_base/main.c new file mode 100644 index 00000000000..22420371dd0 --- /dev/null +++ b/test/syscall/wt2336_base/main.c @@ -0,0 +1,69 @@ +#include <stdlib.h> + +#include <unistd.h> // TODO +#include <fcntl.h> // TODO +#include <wt_internal.h> + +static void fail(int) WT_GCC_FUNC_DECL_ATTRIBUTE((noreturn)); + +static void +fail(int ret) { + fprintf(stderr, + "%s: %d (%s)\n", + "wt2336_fileop_basic", ret, wiredtiger_strerror(ret)); + exit(ret); +} + +#define SEPARATOR "--------------" + +int +main(int argc, char *argv[]) +{ + int ret; + WT_CONNECTION *conn; + WT_SESSION *session; + + (void)argc; + (void)argv; + fprintf(stderr, SEPARATOR "wiredtiger_open\n"); + if ((ret = wiredtiger_open(".", NULL, "create", &conn)) != 0) + fail(ret); + + usleep(100); + fflush(stderr); + fprintf(stderr, SEPARATOR "open_session\n"); + fflush(stderr); + + if ((ret = conn->open_session(conn, NULL, NULL, &session)) != 0) + fail(ret); + + usleep(100); + fflush(stderr); + fprintf(stderr, SEPARATOR "create\n"); + fflush(stderr); + + if ((ret = session->create( + session, "table:hello", "key_format=S,value_format=S")) != 0) + fail(ret); + + usleep(100); + fprintf(stderr, SEPARATOR "rename\n"); + + if ((ret = session->rename( + session, "table:hello", "table:world", NULL)) != 0) + fail(ret); + + fflush(stdout); + fprintf(stderr, SEPARATOR "drop\n"); + fflush(stdout); + + if ((ret = session->drop(session, "table:world", NULL)) != 0) + fail(ret); + + fprintf(stderr, SEPARATOR "WT_CONNECTION::close\n"); + + if ((ret = conn->close(conn, NULL)) != 0) + fail(ret); + + return (0); +} diff --git a/test/windows/windows_shim.h b/test/windows/windows_shim.h index a6050e92bca..648b991b1a2 100644 --- a/test/windows/windows_shim.h +++ b/test/windows/windows_shim.h @@ -87,7 +87,7 @@ int usleep(useconds_t useconds); /* - * Emulate the <pthread.h> support we need for the tests + * Emulate the <pthread.h> support we need for tests and example code. */ typedef CRITICAL_SECTION pthread_mutex_t; typedef CONDITION_VARIABLE pthread_cond_t; diff --git a/tools/wtstats/wtstats.html.template b/tools/wtstats/wtstats.html.template index ef0f60bb4f2..8e26e519456 100644 --- a/tools/wtstats/wtstats.html.template +++ b/tools/wtstats/wtstats.html.template @@ -10011,19 +10011,18 @@ svg.multiline .line { } </style></head><body><div id="app"></div></body><script type="text/javascript">(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ (function (global){ -!function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){var r=(window.$=window.jQuery=e("jquery"),e("../views/app")),o=e("../models/app");e("debug")("index");e("bootstrap/js/dropdown"),e("bootstrap/js/collapse"),e("bootstrap/js/transition"),e("bootstrap/js/button");var data="### INSERT DATA HERE ###",i=window.app=new o(data,{parse:!0}),a=document.getElementById("app"),s=new r({model:i,el:a});s.render()},{"../models/app":2,"../views/app":286,"bootstrap/js/button":274,"bootstrap/js/collapse":275,"bootstrap/js/dropdown":276,"bootstrap/js/transition":277,debug:280,jquery:284}],2:[function(e,t,n){var r=e("ampersand-state"),o=e("./chart"),i=e("./stat-collection"),a=e("./sidebar"),s=e("lodash"),u=e("debug")("model:app");t.exports=r.extend({children:{sidebar:a,chart:o},collections:{stats:i},props:{selectionState:{type:"array","default":function(){return[]}}},parse:function(e,t){var n=(new Date).getFullYear(),r={},o=s.map(e.series,function(e){if(-1!==e.key.indexOf(":"))var t=e.key.split(":"),o=t[0].trim(),i=t[1].trim();else var o="stats",i=e.key;var data=s.sortBy(s.map(e.values,function(e,t){var r=t.split(" ");r.splice(2,0,n.toString());var o=r.join(" ");return{x:new Date(o),y:e}}),"x"),a=Math.min.apply(null,data.map(function(e){return e.x}));return data.forEach(function(e){e.xrel=(e.x-a)/1e3}),r[o]=!0,{group:o,name:i,data:data}});r=s.keys(r).map(function(e){return{title:e}});var i={stats:o,sidebar:{panels:r}};return i},initialize:function(e,t){var n=this.sidebar.panels;n.each(function(e){e.app=this}.bind(this)),this.stats.each(function(e){e.app=this,n.get(e.group).stats.add(e)}.bind(this))},clearSelectionState:function(){this.selectionState=[],u("clear")},toggleAllExcept:function(e){this.stats.filter(function(t){return t!==e}).some(function(e){return e.selected});0!==this.selectionState.length&&e.selected?(this.stats.each(function(e,t){e.selected=this.selectionState.length?this.selectionState[t]:!0}.bind(this)),this.clearSelectionState()):(this.selectionState=this.stats.map(function(e){return e.selected}),this.stats.each(function(t){t.selected=t===e}))}})},{"./chart":3,"./sidebar":7,"./stat-collection":8,"ampersand-state":47,debug:280,lodash:285}],3:[function(e,t,n){var r=e("ampersand-state"),o=e("lodash");e("debug")("model:chart"),t.exports=r.extend({props:{xSetting:{type:"string","default":"relative",values:["relative","absolute"]},ySetting:{type:"string","default":"linear",values:["linear","log-scale"]},allowSampling:{type:"boolean","default":!0},subSampled:{type:"boolean","default":!1},recalcXDomain:{type:"boolean","default":!0}},derived:{series:{deps:["parent"],cache:!1,fn:function(){var e=this.parent.stats.filter(function(e){return e.selected}).map(function(e){return o.pick(e,["color","data","name","cid","selected"])});return e}},empty:{deps:["parent","series"],cache:!1,fn:function(){return 0===this.series.length}}}})},{"ampersand-state":47,debug:280,lodash:285}],4:[function(e,t,n){var r=e("d3");t.exports=function(){function e(){var e=r.scale.category20();return e}var t;return{getInstance:function(){return t||(t=e()),t}}}()},{d3:279}],5:[function(e,t,n){var r=e("ampersand-state"),o=e("./stat-collection");e("debug")("model:panel"),t.exports=r.extend({collections:{stats:o},props:{title:{type:"string",required:!0},open:{type:"boolean","default":!1},app:{type:"object"}},derived:{selected:{deps:["stats"],cache:!1,fn:function(){var e=this.stats.filter(function(e){return e.selected});return e.length===this.stats.length?"all":0===e.length?"none":"some"}},suptitle:{deps:["title"],cache:!1,fn:function(){var e=this.title.split(" ");return e.length>1?e[0]:""}},subtitle:{deps:["title"],fn:function(){var e=this.title.split(" ");return e.length>1?e[1]:this.title}}}})},{"./stat-collection":8,"ampersand-state":47,debug:280}],6:[function(e,t,n){var r=e("ampersand-state");e("debug")("model:search"),t.exports=r.extend({props:{content:{type:"string","default":""}},derived:{empty:{deps:["content"],fn:function(){return""===this.content}}}})},{"ampersand-state":47,debug:280}],7:[function(e,t,n){var r=e("ampersand-state"),o=e("ampersand-collection"),i=e("./search"),a=e("./panel"),s=(e("lodash"),e("debug")("model:sidebar"),o.extend({mainIndex:"title",model:a}));t.exports=r.extend({children:{search:i},collections:{panels:s}})},{"./panel":5,"./search":6,"ampersand-collection":12,"ampersand-state":47,debug:280,lodash:285}],8:[function(e,t,n){var r=e("ampersand-collection"),o=e("ampersand-collection-underscore-mixin"),i=e("./stat");t.exports=r.extend(o,{comparator:"name",model:i})},{"./stat":9,"ampersand-collection":12,"ampersand-collection-underscore-mixin":10}],9:[function(e,t,n){var r=e("ampersand-state"),o=e("./colors").getInstance();e("debug")("model:stat"),t.exports=r.extend({props:{name:{type:"string","default":""},group:{type:"string","default":""},selected:{type:"boolean","default":!1},data:{type:"object"},app:{type:"object"}},derived:{color:{cache:!0,fn:function(){return o(this.cid)}}}})},{"./colors":4,"ampersand-state":47,debug:280}],10:[function(e,t,n){"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-collection-underscore-mixin"]=window.ampersand["ampersand-collection-underscore-mixin"]||[],window.ampersand["ampersand-collection-underscore-mixin"].push("1.0.4"));var r=e("underscore"),o=[].slice,i={},a=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample","partition"];r.each(a,function(e){r[e]&&(i[e]=function(){var t=o.call(arguments);return t.unshift(this.models),r[e].apply(r,t)})});var s=["groupBy","countBy","sortBy","indexBy"];r.each(s,function(e){r[e]&&(i[e]=function(t,n){var o=r.isFunction(t)?t:function(e){return e.get?e.get(t):e[t]};return r[e](this.models,o,n)})}),i.where=function(e,t){return r.isEmpty(e)?t?void 0:[]:this[t?"find":"filter"](function(t){var n;for(var r in e)if(n=t.get?t.get(r):t[r],e[r]!==n)return!1;return!0})},i.findWhere=function(e){return this.where(e,!0)},i.pluck=function(e){return r.invoke(this.models,"get",e)},t.exports=i},{underscore:11}],11:[function(e,t,n){(function(){function e(e){function t(t,n,r,o,i,a){for(;i>=0&&a>i;i+=e){var s=o?o[i]:i;r=n(r,t[s],s,t)}return r}return function(n,r,o,i){r=_(r,i,4);var a=!S(n)&&w.keys(n),s=(a||n).length,u=e>0?0:s-1;return arguments.length<3&&(o=n[a?a[u]:u],u+=e),t(n,r,o,a,u,s)}}function r(e){return function(t,n,r){n=b(n,r);for(var o=C(t),i=e>0?0:o-1;i>=0&&o>i;i+=e)if(n(t[i],i,t))return i;return-1}}function o(e,t,n){return function(r,o,i){var a=0,s=C(r);if("number"==typeof i)e>0?a=i>=0?i:Math.max(i+s,a):s=i>=0?Math.min(i+1,s):i+s+1;else if(n&&i&&s)return i=n(r,o),r[i]===o?i:-1;if(o!==o)return i=t(f.call(r,a,s),w.isNaN),i>=0?i+a:-1;for(i=e>0?a:s-1;i>=0&&s>i;i+=e)if(r[i]===o)return i;return-1}}function i(e,t){var n=q.length,r=e.constructor,o=w.isFunction(r)&&r.prototype||l,i="constructor";for(w.has(e,i)&&!w.contains(t,i)&&t.push(i);n--;)i=q[n],i in e&&e[i]!==o[i]&&!w.contains(t,i)&&t.push(i)}var a=this,s=a._,u=Array.prototype,l=Object.prototype,c=Function.prototype,d=u.push,f=u.slice,h=l.toString,p=l.hasOwnProperty,m=Array.isArray,g=Object.keys,v=c.bind,y=Object.create,x=function(){},w=function(e){return e instanceof w?e:this instanceof w?void(this._wrapped=e):new w(e)};"undefined"!=typeof n?("undefined"!=typeof t&&t.exports&&(n=t.exports=w),n._=w):a._=w,w.VERSION="1.8.3";var _=function(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)};case 4:return function(n,r,o,i){return e.call(t,n,r,o,i)}}return function(){return e.apply(t,arguments)}},b=function(e,t,n){return null==e?w.identity:w.isFunction(e)?_(e,t,n):w.isObject(e)?w.matcher(e):w.property(e)};w.iteratee=function(e,t){return b(e,t,1/0)};var k=function(e,t){return function(n){var r=arguments.length;if(2>r||null==n)return n;for(var o=1;r>o;o++)for(var i=arguments[o],a=e(i),s=a.length,u=0;s>u;u++){var l=a[u];t&&void 0!==n[l]||(n[l]=i[l])}return n}},j=function(e){if(!w.isObject(e))return{};if(y)return y(e);x.prototype=e;var t=new x;return x.prototype=null,t},M=function(e){return function(t){return null==t?void 0:t[e]}},E=Math.pow(2,53)-1,C=M("length"),S=function(e){var t=C(e);return"number"==typeof t&&t>=0&&E>=t};w.each=w.forEach=function(e,t,n){t=_(t,n);var r,o;if(S(e))for(r=0,o=e.length;o>r;r++)t(e[r],r,e);else{var i=w.keys(e);for(r=0,o=i.length;o>r;r++)t(e[i[r]],i[r],e)}return e},w.map=w.collect=function(e,t,n){t=b(t,n);for(var r=!S(e)&&w.keys(e),o=(r||e).length,i=Array(o),a=0;o>a;a++){var s=r?r[a]:a;i[a]=t(e[s],s,e)}return i},w.reduce=w.foldl=w.inject=e(1),w.reduceRight=w.foldr=e(-1),w.find=w.detect=function(e,t,n){var r;return r=S(e)?w.findIndex(e,t,n):w.findKey(e,t,n),void 0!==r&&-1!==r?e[r]:void 0},w.filter=w.select=function(e,t,n){var r=[];return t=b(t,n),w.each(e,function(e,n,o){t(e,n,o)&&r.push(e)}),r},w.reject=function(e,t,n){return w.filter(e,w.negate(b(t)),n)},w.every=w.all=function(e,t,n){t=b(t,n);for(var r=!S(e)&&w.keys(e),o=(r||e).length,i=0;o>i;i++){var a=r?r[i]:i;if(!t(e[a],a,e))return!1}return!0},w.some=w.any=function(e,t,n){t=b(t,n);for(var r=!S(e)&&w.keys(e),o=(r||e).length,i=0;o>i;i++){var a=r?r[i]:i;if(t(e[a],a,e))return!0}return!1},w.contains=w.includes=w.include=function(e,t,n,r){return S(e)||(e=w.values(e)),("number"!=typeof n||r)&&(n=0),w.indexOf(e,t,n)>=0},w.invoke=function(e,t){var n=f.call(arguments,2),r=w.isFunction(t);return w.map(e,function(e){var o=r?t:e[t];return null==o?o:o.apply(e,n)})},w.pluck=function(e,t){return w.map(e,w.property(t))},w.where=function(e,t){return w.filter(e,w.matcher(t))},w.findWhere=function(e,t){return w.find(e,w.matcher(t))},w.max=function(e,t,n){var r,o,i=-(1/0),a=-(1/0);if(null==t&&null!=e){e=S(e)?e:w.values(e);for(var s=0,u=e.length;u>s;s++)r=e[s],r>i&&(i=r)}else t=b(t,n),w.each(e,function(e,n,r){o=t(e,n,r),(o>a||o===-(1/0)&&i===-(1/0))&&(i=e,a=o)});return i},w.min=function(e,t,n){var r,o,i=1/0,a=1/0;if(null==t&&null!=e){e=S(e)?e:w.values(e);for(var s=0,u=e.length;u>s;s++)r=e[s],i>r&&(i=r)}else t=b(t,n),w.each(e,function(e,n,r){o=t(e,n,r),(a>o||o===1/0&&i===1/0)&&(i=e,a=o)});return i},w.shuffle=function(e){for(var t,n=S(e)?e:w.values(e),r=n.length,o=Array(r),i=0;r>i;i++)t=w.random(0,i),t!==i&&(o[i]=o[t]),o[t]=n[i];return o},w.sample=function(e,t,n){return null==t||n?(S(e)||(e=w.values(e)),e[w.random(e.length-1)]):w.shuffle(e).slice(0,Math.max(0,t))},w.sortBy=function(e,t,n){return t=b(t,n),w.pluck(w.map(e,function(e,n,r){return{value:e,index:n,criteria:t(e,n,r)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(r>n||void 0===r)return-1}return e.index-t.index}),"value")};var T=function(e){return function(t,n,r){var o={};return n=b(n,r),w.each(t,function(r,i){var a=n(r,i,t);e(o,r,a)}),o}};w.groupBy=T(function(e,t,n){w.has(e,n)?e[n].push(t):e[n]=[t]}),w.indexBy=T(function(e,t,n){e[n]=t}),w.countBy=T(function(e,t,n){w.has(e,n)?e[n]++:e[n]=1}),w.toArray=function(e){return e?w.isArray(e)?f.call(e):S(e)?w.map(e,w.identity):w.values(e):[]},w.size=function(e){return null==e?0:S(e)?e.length:w.keys(e).length},w.partition=function(e,t,n){t=b(t,n);var r=[],o=[];return w.each(e,function(e,n,i){(t(e,n,i)?r:o).push(e)}),[r,o]},w.first=w.head=w.take=function(e,t,n){return null!=e?null==t||n?e[0]:w.initial(e,e.length-t):void 0},w.initial=function(e,t,n){return f.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))},w.last=function(e,t,n){return null!=e?null==t||n?e[e.length-1]:w.rest(e,Math.max(0,e.length-t)):void 0},w.rest=w.tail=w.drop=function(e,t,n){return f.call(e,null==t||n?1:t)},w.compact=function(e){return w.filter(e,w.identity)};var A=function(e,t,n,r){for(var o=[],i=0,a=r||0,s=C(e);s>a;a++){var u=e[a];if(S(u)&&(w.isArray(u)||w.isArguments(u))){t||(u=A(u,t,n));var l=0,c=u.length;for(o.length+=c;c>l;)o[i++]=u[l++]}else n||(o[i++]=u)}return o};w.flatten=function(e,t){return A(e,t,!1)},w.without=function(e){return w.difference(e,f.call(arguments,1))},w.uniq=w.unique=function(e,t,n,r){w.isBoolean(t)||(r=n,n=t,t=!1),null!=n&&(n=b(n,r));for(var o=[],i=[],a=0,s=C(e);s>a;a++){var u=e[a],l=n?n(u,a,e):u;t?(a&&i===l||o.push(u),i=l):n?w.contains(i,l)||(i.push(l),o.push(u)):w.contains(o,u)||o.push(u)}return o},w.union=function(){return w.uniq(A(arguments,!0,!0))},w.intersection=function(e){for(var t=[],n=arguments.length,r=0,o=C(e);o>r;r++){var i=e[r];if(!w.contains(t,i)){for(var a=1;n>a&&w.contains(arguments[a],i);a++);a===n&&t.push(i)}}return t},w.difference=function(e){var t=A(arguments,!0,!0,1);return w.filter(e,function(e){return!w.contains(t,e)})},w.zip=function(){return w.unzip(arguments)},w.unzip=function(e){for(var t=e&&w.max(e,C).length||0,n=Array(t),r=0;t>r;r++)n[r]=w.pluck(e,r);return n},w.object=function(e,t){for(var n={},r=0,o=C(e);o>r;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},w.findIndex=r(1),w.findLastIndex=r(-1),w.sortedIndex=function(e,t,n,r){n=b(n,r,1);for(var o=n(t),i=0,a=C(e);a>i;){var s=Math.floor((i+a)/2);n(e[s])<o?i=s+1:a=s}return i},w.indexOf=o(1,w.findIndex,w.sortedIndex),w.lastIndexOf=o(-1,w.findLastIndex),w.range=function(e,t,n){null==t&&(t=e||0,e=0),n=n||1;for(var r=Math.max(Math.ceil((t-e)/n),0),o=Array(r),i=0;r>i;i++,e+=n)o[i]=e;return o};var N=function(e,t,n,r,o){if(!(r instanceof t))return e.apply(n,o);var i=j(e.prototype),a=e.apply(i,o);return w.isObject(a)?a:i};w.bind=function(e,t){if(v&&e.bind===v)return v.apply(e,f.call(arguments,1));if(!w.isFunction(e))throw new TypeError("Bind must be called on a function");var n=f.call(arguments,2),r=function(){return N(e,r,t,this,n.concat(f.call(arguments)))};return r},w.partial=function(e){var t=f.call(arguments,1),n=function(){for(var r=0,o=t.length,i=Array(o),a=0;o>a;a++)i[a]=t[a]===w?arguments[r++]:t[a];for(;r<arguments.length;)i.push(arguments[r++]);return N(e,n,this,this,i)};return n},w.bindAll=function(e){var t,n,r=arguments.length;if(1>=r)throw new Error("bindAll must be passed function names");for(t=1;r>t;t++)n=arguments[t],e[n]=w.bind(e[n],e);return e},w.memoize=function(e,t){var n=function(r){var o=n.cache,i=""+(t?t.apply(this,arguments):r);return w.has(o,i)||(o[i]=e.apply(this,arguments)),o[i]};return n.cache={},n},w.delay=function(e,t){var n=f.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},w.defer=w.partial(w.delay,w,1),w.throttle=function(e,t,n){var r,o,i,a=null,s=0;n||(n={});var u=function(){s=n.leading===!1?0:w.now(),a=null,i=e.apply(r,o),a||(r=o=null)};return function(){var l=w.now();s||n.leading!==!1||(s=l);var c=t-(l-s);return r=this,o=arguments,0>=c||c>t?(a&&(clearTimeout(a),a=null),s=l,i=e.apply(r,o),a||(r=o=null)):a||n.trailing===!1||(a=setTimeout(u,c)),i}},w.debounce=function(e,t,n){var r,o,i,a,s,u=function(){var l=w.now()-a;t>l&&l>=0?r=setTimeout(u,t-l):(r=null,n||(s=e.apply(i,o),r||(i=o=null)))};return function(){i=this,o=arguments,a=w.now();var l=n&&!r;return r||(r=setTimeout(u,t)),l&&(s=e.apply(i,o),i=o=null),s}},w.wrap=function(e,t){return w.partial(t,e)},w.negate=function(e){return function(){return!e.apply(this,arguments)}},w.compose=function(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}},w.after=function(e,t){return function(){return--e<1?t.apply(this,arguments):void 0}},w.before=function(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),1>=e&&(t=null),n}},w.once=w.partial(w.before,2);var O=!{toString:null}.propertyIsEnumerable("toString"),q=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];w.keys=function(e){if(!w.isObject(e))return[];if(g)return g(e);var t=[];for(var n in e)w.has(e,n)&&t.push(n);return O&&i(e,t),t},w.allKeys=function(e){if(!w.isObject(e))return[];var t=[];for(var n in e)t.push(n);return O&&i(e,t),t},w.values=function(e){for(var t=w.keys(e),n=t.length,r=Array(n),o=0;n>o;o++)r[o]=e[t[o]];return r},w.mapObject=function(e,t,n){t=b(t,n);for(var r,o=w.keys(e),i=o.length,a={},s=0;i>s;s++)r=o[s],a[r]=t(e[r],r,e);return a},w.pairs=function(e){for(var t=w.keys(e),n=t.length,r=Array(n),o=0;n>o;o++)r[o]=[t[o],e[t[o]]];return r},w.invert=function(e){for(var t={},n=w.keys(e),r=0,o=n.length;o>r;r++)t[e[n[r]]]=n[r];return t},w.functions=w.methods=function(e){var t=[];for(var n in e)w.isFunction(e[n])&&t.push(n);return t.sort()},w.extend=k(w.allKeys),w.extendOwn=w.assign=k(w.keys),w.findKey=function(e,t,n){t=b(t,n);for(var r,o=w.keys(e),i=0,a=o.length;a>i;i++)if(r=o[i],t(e[r],r,e))return r},w.pick=function(e,t,n){var r,o,i={},a=e;if(null==a)return i;w.isFunction(t)?(o=w.allKeys(a),r=_(t,n)):(o=A(arguments,!1,!1,1),r=function(e,t,n){return t in n},a=Object(a));for(var s=0,u=o.length;u>s;s++){var l=o[s],c=a[l];r(c,l,a)&&(i[l]=c)}return i},w.omit=function(e,t,n){if(w.isFunction(t))t=w.negate(t);else{var r=w.map(A(arguments,!1,!1,1),String);t=function(e,t){return!w.contains(r,t)}}return w.pick(e,t,n)},w.defaults=k(w.allKeys,!0),w.create=function(e,t){var n=j(e);return t&&w.extendOwn(n,t),n},w.clone=function(e){return w.isObject(e)?w.isArray(e)?e.slice():w.extend({},e):e},w.tap=function(e,t){return t(e),e},w.isMatch=function(e,t){var n=w.keys(t),r=n.length;if(null==e)return!r;for(var o=Object(e),i=0;r>i;i++){var a=n[i];if(t[a]!==o[a]||!(a in o))return!1}return!0};var D=function(e,t,n,r){if(e===t)return 0!==e||1/e===1/t;if(null==e||null==t)return e===t;e instanceof w&&(e=e._wrapped),t instanceof w&&(t=t._wrapped);var o=h.call(e);if(o!==h.call(t))return!1;switch(o){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!==+e?+t!==+t:0===+e?1/+e===1/t:+e===+t;case"[object Date]":case"[object Boolean]":return+e===+t}var i="[object Array]"===o;if(!i){if("object"!=typeof e||"object"!=typeof t)return!1;var a=e.constructor,s=t.constructor;if(a!==s&&!(w.isFunction(a)&&a instanceof a&&w.isFunction(s)&&s instanceof s)&&"constructor"in e&&"constructor"in t)return!1}n=n||[],r=r||[];for(var u=n.length;u--;)if(n[u]===e)return r[u]===t;if(n.push(e),r.push(t),i){if(u=e.length,u!==t.length)return!1;for(;u--;)if(!D(e[u],t[u],n,r))return!1}else{var l,c=w.keys(e);if(u=c.length,w.keys(t).length!==u)return!1;for(;u--;)if(l=c[u],!w.has(t,l)||!D(e[l],t[l],n,r))return!1}return n.pop(),r.pop(),!0};w.isEqual=function(e,t){return D(e,t)},w.isEmpty=function(e){return null==e?!0:S(e)&&(w.isArray(e)||w.isString(e)||w.isArguments(e))?0===e.length:0===w.keys(e).length},w.isElement=function(e){return!(!e||1!==e.nodeType)},w.isArray=m||function(e){return"[object Array]"===h.call(e)},w.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},w.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(e){w["is"+e]=function(t){return h.call(t)==="[object "+e+"]"}}),w.isArguments(arguments)||(w.isArguments=function(e){return w.has(e,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(w.isFunction=function(e){return"function"==typeof e||!1}),w.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},w.isNaN=function(e){return w.isNumber(e)&&e!==+e},w.isBoolean=function(e){return e===!0||e===!1||"[object Boolean]"===h.call(e)},w.isNull=function(e){return null===e},w.isUndefined=function(e){return void 0===e},w.has=function(e,t){return null!=e&&p.call(e,t)},w.noConflict=function(){return a._=s,this},w.identity=function(e){return e},w.constant=function(e){return function(){return e}},w.noop=function(){},w.property=M,w.propertyOf=function(e){return null==e?function(){}:function(t){return e[t]}},w.matcher=w.matches=function(e){return e=w.extendOwn({},e),function(t){return w.isMatch(t,e)}},w.times=function(e,t,n){var r=Array(Math.max(0,e));t=_(t,n,1);for(var o=0;e>o;o++)r[o]=t(o);return r},w.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},w.now=Date.now||function(){return(new Date).getTime()};var L={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},F=w.invert(L),z=function(e){var t=function(t){return e[t]},n="(?:"+w.keys(e).join("|")+")",r=RegExp(n),o=RegExp(n,"g");return function(e){return e=null==e?"":""+e,r.test(e)?e.replace(o,t):e}};w.escape=z(L),w.unescape=z(F),w.result=function(e,t,n){var r=null==e?void 0:e[t];return void 0===r&&(r=n),w.isFunction(r)?r.call(e):r};var R=0;w.uniqueId=function(e){var t=++R+"";return e?e+t:t},w.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var P=/(.)^/,I={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},H=/\\|'|\r|\n|\u2028|\u2029/g,$=function(e){return"\\"+I[e]};w.template=function(e,t,n){!t&&n&&(t=n),t=w.defaults({},t,w.templateSettings);var r=RegExp([(t.escape||P).source,(t.interpolate||P).source,(t.evaluate||P).source].join("|")+"|$","g"),o=0,i="__p+='";e.replace(r,function(t,n,r,a,s){return i+=e.slice(o,s).replace(H,$),o=s+t.length,n?i+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?i+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(i+="';\n"+a+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var a=new Function(t.variable||"obj","_",i)}catch(s){throw s.source=i,s}var u=function(data){return a.call(this,data,w)},l=t.variable||"obj";return u.source="function("+l+"){\n"+i+"}",u},w.chain=function(e){var t=w(e);return t._chain=!0,t};var B=function(e,t){return e._chain?w(t).chain():t};w.mixin=function(e){w.each(w.functions(e),function(t){var n=w[t]=e[t];w.prototype[t]=function(){var e=[this._wrapped];return d.apply(e,arguments),B(this,n.apply(w,e))}})},w.mixin(w),w.each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=u[e];w.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0],B(this,n)}}),w.each(["concat","join","slice"],function(e){var t=u[e];w.prototype[e]=function(){return B(this,t.apply(this._wrapped,arguments))}}),w.prototype.value=function(){return this._wrapped},w.prototype.valueOf=w.prototype.toJSON=w.prototype.value,w.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return w})}).call(this)},{}],12:[function(e,t,n){function r(e,t){if(t||(t={}),t.model&&(this.model=t.model),t.comparator&&(this.comparator=t.comparator),t.parent&&(this.parent=t.parent),!this.mainIndex){var n=this.model&&this.model.prototype&&this.model.prototype.idAttribute;this.mainIndex=n||"id"}this._reset(),this.initialize.apply(this,arguments),e&&this.reset(e,u({silent:!0},t))}var o=e("ampersand-events"),i=e("ampersand-class-extend"),a=e("lodash.isarray"),s=e("lodash.bind"),u=e("lodash.assign"),l=[].slice;u(r.prototype,o,{initialize:function(){},isModel:function(e){return this.model&&e instanceof this.model},add:function(e,t){return this.set(e,u({merge:!1,add:!0,remove:!1},t))},parse:function(e,t){return e},serialize:function(){return this.map(function(e){if(e.serialize)return e.serialize();var t={};return u(t,e),delete t.collection,t})},toJSON:function(){return this.serialize()},set:function(e,t){t=u({add:!0,remove:!0,merge:!0},t),t.parse&&(e=this.parse(e,t));var n=!a(e);e=n?e?[e]:[]:e.slice();var r,o,i,s,l,c,d,f=t.at,h=this.comparator&&null==f&&t.sort!==!1,p="string"==typeof this.comparator?this.comparator:null,m=[],g=[],v={},y=t.add,x=t.merge,w=t.remove,_=!h&&y&&w?[]:!1,b=this.model&&this.model.prototype||Object.prototype;for(c=0,d=e.length;d>c;c++){if(i=e[c]||{},this.isModel(i)?r=o=i:b.generateId?r=b.generateId(i):(r=i[this.mainIndex],void 0===r&&this._isDerivedIndex(b)&&(r=b._derived[this.mainIndex].fn.call(i))),s=this.get(r))w&&(v[s.cid||s[this.mainIndex]]=!0),x&&(i=i===o?o.attributes:i,t.parse&&(i=s.parse(i,t)),s.set?(s.set(i,t),h&&!l&&s.hasChanged(p)&&(l=!0)):u(s,i)),e[c]=s;else if(y){if(o=e[c]=this._prepareModel(i,t),!o)continue;m.push(o),this._addReference(o,t)}o=s||o,o&&(_&&(o.isNew&&o.isNew()||!o[this.mainIndex]||!v[o.cid||o[this.mainIndex]])&&_.push(o),v[o[this.mainIndex]]=!0)}if(w){for(c=0,d=this.length;d>c;c++)o=this.models[c],v[o.cid||o[this.mainIndex]]||g.push(o);g.length&&this.remove(g,t)}if(m.length||_&&_.length)if(h&&(l=!0),null!=f)for(c=0,d=m.length;d>c;c++)this.models.splice(f+c,0,m[c]);else{var k=_||m;for(c=0,d=k.length;d>c;c++)this.models.push(k[c])}if(l&&this.sort({silent:!0}),!t.silent){for(c=0,d=m.length;d>c;c++)o=m[c],o.trigger?o.trigger("add",o,this,t):this.trigger("add",o,this,t);(l||_&&_.length)&&this.trigger("sort",this,t)}return n?e[0]:e},get:function(e,t){if(null!=e){var n=this._indexes[t||this.mainIndex];return n&&(n[e]||n[e[this.mainIndex]])||this._indexes.cid[e]||this._indexes.cid[e.cid]}},at:function(e){return this.models[e]},remove:function(e,t){var n,r,o,i,s=!a(e);for(e=s?[e]:l.call(e),t||(t={}),n=0,r=e.length;r>n;n++)o=e[n]=this.get(e[n]),o&&(this._deIndex(o),i=this.models.indexOf(o),this.models.splice(i,1),t.silent||(t.index=i,o.trigger?o.trigger("remove",o,this,t):this.trigger("remove",o,this,t)),this._removeReference(o,t));return s?e[0]:e},reset:function(e,t){t||(t={});for(var n=0,r=this.models.length;r>n;n++)this._removeReference(this.models[n],t);return t.previousModels=this.models,this._reset(),e=this.add(e,u({silent:!0},t)),t.silent||this.trigger("reset",this,t),e},sort:function(e){var t=this;if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return e||(e={}),"string"==typeof this.comparator?this.models.sort(function(e,n){return e.get?(e=e.get(t.comparator),n=n.get(t.comparator)):(e=e[t.comparator],n=n[t.comparator]),e>n||void 0===e?1:n>e||void 0===n?-1:0}):1===this.comparator.length?this.models.sort(function(e,n){return e=t.comparator(e),n=t.comparator(n),e>n||void 0===e?1:n>e||void 0===n?-1:0}):this.models.sort(s(this.comparator,this)),e.silent||this.trigger("sort",this,e),this},_reset:function(){var e=l.call(this.indexes||[]),t=0;e.push(this.mainIndex),e.push("cid");var n=e.length;for(this.models=[],this._indexes={};n>t;t++)this._indexes[e[t]]={}},_prepareModel:function(e,t){if(!this.model)return e;if(this.isModel(e))return e.collection||(e.collection=this),e;t=t?u({},t):{},t.collection=this;var n=new this.model(e,t);return n.validationError?(this.trigger("invalid",this,n.validationError,t),!1):n},_deIndex:function(e,t,n){var r;if(void 0!==t){if(void 0===this._indexes[t])throw new Error("Given attribute is not an index");return void delete this._indexes[t][n]}for(t in this._indexes)r=e.hasOwnProperty(t)?e[t]:e.get&&e.get(t),delete this._indexes[t][r]},_index:function(e,t){var n;if(void 0!==t){if(void 0===this._indexes[t])throw new Error("Given attribute is not an index");return n=e[t]||e.get&&e.get(t),void(n&&(this._indexes[t][n]=e))}for(t in this._indexes)n=e.hasOwnProperty(t)?e[t]:e.get&&e.get(t),null!=n&&(this._indexes[t][n]=e)},_isDerivedIndex:function(e){return e&&"object"==typeof e._derived?Object.keys(e._derived).indexOf(this.mainIndex)>=0:!1},_addReference:function(e,t){this._index(e),e.collection||(e.collection=this),e.on&&e.on("all",this._onModelEvent,this)},_removeReference:function(e,t){this===e.collection&&delete e.collection,this._deIndex(e),e.off&&e.off("all",this._onModelEvent,this)},_onModelEvent:function(e,t,n,r){var o=e.split(":")[0],i=e.split(":")[1];("add"!==o&&"remove"!==o||n===this)&&("destroy"===o&&this.remove(t,r),t&&"change"===o&&i&&this._indexes[i]&&(this._deIndex(t,i,t.previousAttributes()[i]),this._index(t,i)),this.trigger.apply(this,arguments))}}),Object.defineProperties(r.prototype,{length:{get:function(){return this.models.length}},isCollection:{value:!0}});var c=["indexOf","lastIndexOf","every","some","forEach","map","filter","reduce","reduceRight"];c.forEach(function(e){r.prototype[e]=function(){return this.models[e].apply(this.models,arguments)}}),r.prototype.each=r.prototype.forEach,r.extend=i,t.exports=r},{"ampersand-class-extend":13,"ampersand-events":14,"lodash.assign":30,"lodash.bind":40,"lodash.isarray":46}],13:[function(e,t,n){var r=e("lodash.assign"),o=function(e){var t,n=this,o=[].slice.call(arguments);t=e&&e.hasOwnProperty("constructor")?e.constructor:function(){return n.apply(this,arguments)},r(t,n);var i=function(){this.constructor=t};return i.prototype=n.prototype,t.prototype=new i,e&&(o.unshift(t.prototype),r.apply(null,o)),t.__super__=n.prototype,t};t.exports=o},{"lodash.assign":30}],14:[function(e,t,n){"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-events"]=window.ampersand["ampersand-events"]||[],window.ampersand["ampersand-events"].push("1.1.1"));var r=e("lodash.once"),o=e("lodash.uniqueid"),i=e("lodash.keys"),a=e("lodash.isempty"),s=e("lodash.foreach"),u=(e("lodash.bind"),e("lodash.assign")),l=Array.prototype.slice,c=/\s+/,d={on:function(e,t,n){if(!f(this,"on",e,[t,n])||!t)return this;this._events||(this._events={});var r=this._events[e]||(this._events[e]=[]);return r.push({callback:t,context:n,ctx:n||this}),this},once:function(e,t,n){if(!f(this,"once",e,[t,n])||!t)return this;var o=this,i=r(function(){o.off(e,i),t.apply(this,arguments)});return i._callback=t,this.on(e,i,n)},off:function(e,t,n){var r,o,a,s,u,l,c,d;if(!this._events||!f(this,"off",e,[t,n]))return this;if(!e&&!t&&!n)return this._events=void 0,this;for(s=e?[e]:i(this._events),u=0,l=s.length;l>u;u++)if(e=s[u],a=this._events[e]){if(this._events[e]=r=[],t||n)for(c=0,d=a.length;d>c;c++)o=a[c],(t&&t!==o.callback&&t!==o.callback._callback||n&&n!==o.context)&&r.push(o);r.length||delete this._events[e]}return this},trigger:function(e){if(!this._events)return this;var t=l.call(arguments,1);if(!f(this,"trigger",e,t))return this;var n=this._events[e],r=this._events.all;return n&&h(n,t),r&&h(r,arguments),this},stopListening:function(e,t,n){var r=this._listeningTo;if(!r)return this;var o=!t&&!n;n||"object"!=typeof t||(n=this),e&&((r={})[e._listenId]=e);for(var i in r)e=r[i],e.off(t,n,this),(o||a(e._events))&&delete this._listeningTo[i];return this},createEmitter:function(e){return u(e||{},d)}};d.bind=d.on,d.unbind=d.off;var f=function(e,t,n,r){if(!n)return!0;if("object"==typeof n){for(var o in n)e[t].apply(e,[o,n[o]].concat(r));return!1}if(c.test(n)){for(var i=n.split(c),a=0,s=i.length;s>a;a++)e[t].apply(e,[i[a]].concat(r));return!1}return!0},h=function(e,t){var n,r=-1,o=e.length,i=t[0],a=t[1],s=t[2];switch(t.length){case 0:for(;++r<o;)(n=e[r]).callback.call(n.ctx);return;case 1:for(;++r<o;)(n=e[r]).callback.call(n.ctx,i);return;case 2:for(;++r<o;)(n=e[r]).callback.call(n.ctx,i,a);return;case 3:for(;++r<o;)(n=e[r]).callback.call(n.ctx,i,a,s);return;default:for(;++r<o;)(n=e[r]).callback.apply(n.ctx,t);return}},p={listenTo:"on",listenToOnce:"once"};s(p,function(e,t){d[t]=function(t,n,r,i){var a=this._listeningTo||(this._listeningTo={}),s=t._listenId||(t._listenId=o("l"));return a[s]=t,r||"object"!=typeof n||(r=this),t[e](n,r,this),this}}),d.listenToAndRun=function(e,t,n){return d.listenTo.apply(this,arguments),n||"object"!=typeof t||(n=this),n.apply(this),this},t.exports=d},{"lodash.assign":30,"lodash.bind":40,"lodash.foreach":15,"lodash.isempty":19,"lodash.keys":23,"lodash.once":26,"lodash.uniqueid":28}],15:[function(e,t,n){function r(e,t){return function(n,r,o){return"function"==typeof r&&void 0===o&&s(n)?e(n,r):t(n,a(r,o,3))}}var o=e("lodash._arrayeach"),i=e("lodash._baseeach"),a=e("lodash._bindcallback"),s=e("lodash.isarray"),u=r(o,i); -t.exports=u},{"lodash._arrayeach":16,"lodash._baseeach":17,"lodash._bindcallback":18,"lodash.isarray":46}],16:[function(e,t,n){function r(e,t){for(var n=-1,r=e.length;++n<r&&t(e[n],n,e)!==!1;);return e}t.exports=r},{}],17:[function(e,t,n){function r(e,t){return h(e,t,c)}function o(e){return function(t){return null==t?void 0:t[e]}}function i(e,t){return function(n,r){var o=n?p(n):0;if(!s(o))return e(n,r);for(var i=t?o:-1,a=u(n);(t?i--:++i<o)&&r(a[i],i,a)!==!1;);return n}}function a(e){return function(t,n,r){for(var o=u(t),i=r(t),a=i.length,s=e?a:-1;e?s--:++s<a;){var l=i[s];if(n(o[l],l,o)===!1)break}return t}}function s(e){return"number"==typeof e&&e>-1&&e%1==0&&d>=e}function u(e){return l(e)?e:Object(e)}function l(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var c=e("lodash.keys"),d=9007199254740991,f=i(r),h=a(),p=o("length");t.exports=f},{"lodash.keys":23}],18:[function(e,t,n){function r(e,t,n){if("function"!=typeof e)return o;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,o){return e.call(t,n,r,o)};case 4:return function(n,r,o,i){return e.call(t,n,r,o,i)};case 5:return function(n,r,o,i,a){return e.call(t,n,r,o,i,a)}}return function(){return e.apply(t,arguments)}}function o(e){return e}t.exports=r},{}],19:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e){return function(t){return null==t?void 0:t[e]}}function i(e){return null!=e&&a(p(e))}function a(e){return"number"==typeof e&&e>-1&&e%1==0&&h>=e}function s(e){return null==e?!0:i(e)&&(l(e)||d(e)||u(e)||r(e)&&c(e.splice))?!e.length:!f(e).length}var u=e("lodash.isarguments"),l=e("lodash.isarray"),c=e("lodash.isfunction"),d=e("lodash.isstring"),f=e("lodash.keys"),h=9007199254740991,p=o("length");t.exports=s},{"lodash.isarguments":20,"lodash.isarray":46,"lodash.isfunction":21,"lodash.isstring":22,"lodash.keys":23}],20:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e){return function(t){return null==t?void 0:t[e]}}function i(e){return null!=e&&a(f(e))}function a(e){return"number"==typeof e&&e>-1&&e%1==0&&d>=e}function s(e){return r(e)&&i(e)&&l.call(e,"callee")&&!c.call(e,"callee")}var u=Object.prototype,l=u.hasOwnProperty,c=u.propertyIsEnumerable,d=9007199254740991,f=o("length");t.exports=s},{}],21:[function(e,t,n){function r(e){return o(e)&&s.call(e)==i}function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var i="[object Function]",a=Object.prototype,s=a.toString;t.exports=r},{}],22:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e){return"string"==typeof e||r(e)&&s.call(e)==i}var i="[object String]",a=Object.prototype,s=a.toString;t.exports=o},{}],23:[function(e,t,n){function r(e){return function(t){return null==t?void 0:t[e]}}function o(e){return null!=e&&a(y(e))}function i(e,t){return e="number"==typeof e||h.test(e)?+e:-1,t=null==t?v:t,e>-1&&e%1==0&&t>e}function a(e){return"number"==typeof e&&e>-1&&e%1==0&&v>=e}function s(e){for(var t=l(e),n=t.length,r=n&&e.length,o=!!r&&a(r)&&(f(e)||d(e)),s=-1,u=[];++s<n;){var c=t[s];(o&&i(c,r)||m.call(e,c))&&u.push(c)}return u}function u(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function l(e){if(null==e)return[];u(e)||(e=Object(e));var t=e.length;t=t&&a(t)&&(f(e)||d(e))&&t||0;for(var n=e.constructor,r=-1,o="function"==typeof n&&n.prototype===e,s=Array(t),l=t>0;++r<t;)s[r]=r+"";for(var c in e)l&&i(c,t)||"constructor"==c&&(o||!m.call(e,c))||s.push(c);return s}var c=e("lodash._getnative"),d=e("lodash.isarguments"),f=e("lodash.isarray"),h=/^\d+$/,p=Object.prototype,m=p.hasOwnProperty,g=c(Object,"keys"),v=9007199254740991,y=r("length"),x=g?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||"function"!=typeof e&&o(e)?s(e):u(e)?g(e):[]}:s;t.exports=x},{"lodash._getnative":24,"lodash.isarguments":25,"lodash.isarray":46}],24:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e,t){var n=null==e?void 0:e[t];return s(n)?n:void 0}function i(e){return a(e)&&h.call(e)==u}function a(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function s(e){return null==e?!1:i(e)?p.test(d.call(e)):r(e)&&l.test(e)}var u="[object Function]",l=/^\[object .+?Constructor\]$/,c=Object.prototype,d=Function.prototype.toString,f=c.hasOwnProperty,h=c.toString,p=RegExp("^"+d.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=o},{}],25:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],26:[function(e,t,n){function r(e){return o(2,e)}var o=e("lodash.before");t.exports=r},{"lodash.before":27}],27:[function(e,t,n){function r(e,t){var n;if("function"!=typeof t){if("function"!=typeof e)throw new TypeError(o);var r=e;e=t,t=r}return function(){return--e>0&&(n=t.apply(this,arguments)),1>=e&&(t=void 0),n}}var o="Expected a function";t.exports=r},{}],28:[function(e,t,n){function r(e){var t=++i;return o(e)+t}var o=e("lodash._basetostring"),i=0;t.exports=r},{"lodash._basetostring":29}],29:[function(e,t,n){function r(e){return null==e?"":e+""}t.exports=r},{}],30:[function(e,t,n){function r(e,t,n){for(var r=-1,o=a(t),i=o.length;++r<i;){var s=o[r],u=e[s],l=n(u,t[s],s,e,t);(l===l?l===u:u!==u)&&(void 0!==u||s in e)||(e[s]=l)}return e}var o=e("lodash._baseassign"),i=e("lodash._createassigner"),a=e("lodash.keys"),s=i(function(e,t,n){return n?r(e,t,n):o(e,t)});t.exports=s},{"lodash._baseassign":31,"lodash._createassigner":33,"lodash.keys":37}],31:[function(e,t,n){function r(e,t){return null==t?e:o(t,i(t),e)}var o=e("lodash._basecopy"),i=e("lodash.keys");t.exports=r},{"lodash._basecopy":32,"lodash.keys":37}],32:[function(e,t,n){function r(e,t,n){n||(n={});for(var r=-1,o=t.length;++r<o;){var i=t[r];n[i]=e[i]}return n}t.exports=r},{}],33:[function(e,t,n){function r(e){return a(function(t,n){var r=-1,a=null==t?0:n.length,s=a>2?n[a-2]:void 0,u=a>2?n[2]:void 0,l=a>1?n[a-1]:void 0;for("function"==typeof s?(s=o(s,l,5),a-=2):(s="function"==typeof l?l:void 0,a-=s?1:0),u&&i(n[0],n[1],u)&&(s=3>a?void 0:s,a=1);++r<a;){var c=n[r];c&&e(t,c,s)}return t})}var o=e("lodash._bindcallback"),i=e("lodash._isiterateecall"),a=e("lodash.restparam");t.exports=r},{"lodash._bindcallback":34,"lodash._isiterateecall":35,"lodash.restparam":36}],34:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],35:[function(e,t,n){function r(e){return function(t){return null==t?void 0:t[e]}}function o(e){return null!=e&&s(d(e))}function i(e,t){return e="number"==typeof e||l.test(e)?+e:-1,t=null==t?c:t,e>-1&&e%1==0&&t>e}function a(e,t,n){if(!u(n))return!1;var r=typeof t;if("number"==r?o(n)&&i(t,n.length):"string"==r&&t in n){var a=n[t];return e===e?e===a:a!==a}return!1}function s(e){return"number"==typeof e&&e>-1&&e%1==0&&c>=e}function u(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var l=/^\d+$/,c=9007199254740991,d=r("length");t.exports=a},{}],36:[function(e,t,n){function r(e,t){if("function"!=typeof e)throw new TypeError(o);return t=i(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,r=-1,o=i(n.length-t,0),a=Array(o);++r<o;)a[r]=n[t+r];switch(t){case 0:return e.call(this,a);case 1:return e.call(this,n[0],a);case 2:return e.call(this,n[0],n[1],a)}var s=Array(t+1);for(r=-1;++r<t;)s[r]=n[r];return s[t]=a,e.apply(this,s)}}var o="Expected a function",i=Math.max;t.exports=r},{}],37:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":38,"lodash.isarguments":39,"lodash.isarray":46}],38:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],39:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],40:[function(e,t,n){var r=e("lodash._createwrapper"),o=e("lodash._replaceholders"),i=e("lodash.restparam"),a=1,s=32,u=i(function(e,t,n){var i=a;if(n.length){var l=o(n,u.placeholder);i|=s}return r(e,i,t,n,l)});u.placeholder={},t.exports=u},{"lodash._createwrapper":41,"lodash._replaceholders":44,"lodash.restparam":45}],41:[function(e,t,n){(function(n){function r(e,t,n){for(var r=n.length,o=-1,i=E(e.length-r,0),a=-1,s=t.length,u=Array(s+i);++a<s;)u[a]=t[a];for(;++o<r;)u[n[o]]=e[o];for(;i--;)u[a++]=e[o++];return u}function o(e,t,n){for(var r=-1,o=n.length,i=-1,a=E(e.length-o,0),s=-1,u=t.length,l=Array(a+u);++i<a;)l[i]=e[i];for(var c=i;++s<u;)l[c+s]=t[s];for(;++r<o;)l[c+n[r]]=e[i++];return l}function i(e,t){function r(){var i=this&&this!==n&&this instanceof r?o:e;return i.apply(t,arguments)}var o=a(e);return r}function a(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=p(e.prototype),r=e.apply(n,t);return f(r)?r:n}}function s(e,t,i,u,l,c,f,p,j,M){function C(){for(var y=arguments.length,x=y,w=Array(y);x--;)w[x]=arguments[x];if(u&&(w=r(w,u,l)),c&&(w=o(w,c,f)),N||q){var k=C.placeholder,L=m(w,k);if(y-=L.length,M>y){var F=p?h(p):void 0,z=E(M-y,0),R=N?L:void 0,P=N?void 0:L,I=N?w:void 0,H=N?void 0:w;t|=N?_:b,t&=~(N?b:_),O||(t&=~(g|v));var $=s(e,t,i,I,R,H,P,F,j,z);return $.placeholder=k,$}}var B=T?i:this,V=A?B[e]:e;return p&&(w=d(w,p)),S&&j<w.length&&(w.length=j),this&&this!==n&&this instanceof C&&(V=D||a(e)),V.apply(B,w)}var S=t&k,T=t&g,A=t&v,N=t&x,O=t&y,q=t&w,D=A?void 0:a(e);return C}function u(e,t,r,o){function i(){for(var t=-1,a=arguments.length,l=-1,c=o.length,d=Array(c+a);++l<c;)d[l]=o[l];for(;a--;)d[l++]=arguments[++t];var f=this&&this!==n&&this instanceof i?u:e;return f.apply(s?r:this,d)}var s=t&g,u=a(e);return i}function l(e,t,n,r,o,a,l,c){var d=t&v;if(!d&&"function"!=typeof e)throw new TypeError(j);var f=r?r.length:0;if(f||(t&=~(_|b),r=o=void 0),f-=o?o.length:0,t&b){var h=r,p=o;r=o=void 0}var m=[e,t,n,r,o,h,p,a,l,c];if(m[9]=null==c?d?0:e.length:E(c-f,0)||0,t==g)var y=i(m[0],m[2]);else y=t!=_&&t!=(g|_)||m[4].length?s.apply(void 0,m):u.apply(void 0,m);return y}function c(e,t){return e="number"==typeof e||M.test(e)?+e:-1,t=null==t?S:t,e>-1&&e%1==0&&t>e}function d(e,t){for(var n=e.length,r=C(t.length,n),o=h(e);r--;){var i=t[r];e[r]=c(i,n)?o[i]:void 0}return e}function f(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var h=e("lodash._arraycopy"),p=e("lodash._basecreate"),m=e("lodash._replaceholders"),g=1,v=2,y=4,x=8,w=16,_=32,b=64,k=128,j="Expected a function",M=/^\d+$/,E=Math.max,C=Math.min,S=9007199254740991;t.exports=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"lodash._arraycopy":42,"lodash._basecreate":43,"lodash._replaceholders":44}],42:[function(e,t,n){function r(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}t.exports=r},{}],43:[function(e,t,n){function r(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var o=function(){function e(){}return function(t){if(r(t)){e.prototype=t;var n=new e;e.prototype=void 0}return n||{}}}();t.exports=o},{}],44:[function(e,t,n){function r(e,t){for(var n=-1,r=e.length,i=-1,a=[];++n<r;)e[n]===t&&(e[n]=o,a[++i]=n);return a}var o="__lodash_placeholder__";t.exports=r},{}],45:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],46:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e,t){var n=null==e?void 0:e[t];return u(n)?n:void 0}function i(e){return"number"==typeof e&&e>-1&&e%1==0&&y>=e}function a(e){return s(e)&&m.call(e)==c}function s(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function u(e){return null==e?!1:a(e)?g.test(h.call(e)):r(e)&&d.test(e)}var l="[object Array]",c="[object Function]",d=/^\[object .+?Constructor\]$/,f=Object.prototype,h=Function.prototype.toString,p=f.hasOwnProperty,m=f.toString,g=RegExp("^"+h.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),v=o(Array,"isArray"),y=9007199254740991,x=v||function(e){return r(e)&&i(e.length)&&m.call(e)==l};t.exports=x},{}],47:[function(e,t,n){"use strict";function r(e,t){t||(t={}),this.cid||(this.cid=s("state")),this._events={},this._values={},this._definition=Object.create(this._definition),t.parse&&(e=this.parse(e,t)),this.parent=t.parent,this.collection=t.collection,this._keyTree=new j,this._initCollections(),this._initChildren(),this._cache={},this._previousAttributes={},e&&this.set(e,u({silent:!0,initial:!0},t)),this._changed={},this._derived&&this._initDerived(),t.init!==!1&&this.initialize.apply(this,arguments)}function o(e,t,n,r){var o,i,a=e._definition[t]={};if(p(n))o=e._ensureValidType(n),o&&(a.type=o);else{if(Array.isArray(n)&&(i=n,n={type:i[0],required:i[1],"default":i[2]}),o=e._ensureValidType(n.type),o&&(a.type=o),n.required&&(a.required=!0),n["default"]&&"object"==typeof n["default"])throw new TypeError("The default value for "+t+" cannot be an object/array, must be a value or a function which returns a value/object/array");a["default"]=n["default"],a.allowNull=n.allowNull?n.allowNull:!1,n.setOnce&&(a.setOnce=!0),a.required&&void 0===a["default"]&&!a.setOnce&&(a["default"]=e._getDefaultForType(o)),a.test=n.test,a.values=n.values}return r&&(a.session=!0),o||(o=p(n)?n:n.type,console.warn("Invalid data type of `"+o+"` for `"+t+"` property. Use one of the default types or define your own")),Object.defineProperty(e,t,{set:function(e){this.set(t,e)},get:function(){if(!this._values)throw Error('You may be trying to `extend` a state object with "'+t+'" which has been defined in `props` on the object being extended');var e=this._values[t],n=this._dataTypes[a.type];return"undefined"!=typeof e?(n&&n.get&&(e=n.get(e)),e):(e=w(a,"default"),this._values[t]=e,e)}}),a}function i(e,t,n){var r=e._derived[t]={fn:v(n)?n:n.fn,cache:n.cache!==!1,depList:n.deps||[]};r.depList.forEach(function(n){e._deps[n]=b(e._deps[n]||[],[t])}),Object.defineProperty(e,t,{get:function(){return this._getDerivedProperty(t)},set:function(){throw new TypeError("`"+t+"` is a derived property, it can't be set directly.")}})}function a(e){var t,n=this;t=e&&e.hasOwnProperty("constructor")?e.constructor:function(){return n.apply(this,arguments)},u(t,n);var r=function(){this.constructor=t};if(r.prototype=n.prototype,t.prototype=new r,t.prototype._derived=u({},n.prototype._derived),t.prototype._deps=u({},n.prototype._deps),t.prototype._definition=u({},n.prototype._definition),t.prototype._collections=u({},n.prototype._collections),t.prototype._children=u({},n.prototype._children),t.prototype._dataTypes=u({},n.prototype._dataTypes||C),e)for(var a=["dataTypes","props","session","derived","collections","children"],s=0;s<arguments.length;s++){var l=arguments[s];l.dataTypes&&f(l.dataTypes,function(e,n){t.prototype._dataTypes[n]=e}),l.props&&f(l.props,function(e,n){o(t.prototype,n,e)}),l.session&&f(l.session,function(e,n){o(t.prototype,n,e,!0)}),l.derived&&f(l.derived,function(e,n){i(t.prototype,n,e)}),l.collections&&f(l.collections,function(e,n){t.prototype._collections[n]=e}),l.children&&f(l.children,function(e,n){t.prototype._children[n]=e}),u(t.prototype,c(l,a))}return t.__super__=n.prototype,t}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-state"]=window.ampersand["ampersand-state"]||[],window.ampersand["ampersand-state"].push("4.8.2"));var s=e("lodash.uniqueid"),u=e("lodash.assign"),l=function(e){return u({},e)},c=e("lodash.omit"),d=e("lodash.escape"),f=e("lodash.forown"),h=e("lodash.includes"),p=e("lodash.isstring"),m=e("lodash.isobject"),g=e("lodash.isdate"),v=e("lodash.isfunction"),y=e("lodash.isequal"),x=e("lodash.has"),w=e("lodash.result"),_=e("lodash.bind"),b=e("lodash.union"),k=e("ampersand-events"),j=e("key-tree-store"),M=e("array-next"),E=/^change:/;u(r.prototype,k,{extraProperties:"ignore",idAttribute:"id",namespaceAttribute:"namespace",typeAttribute:"modelType",initialize:function(){return this},getId:function(){return this[this.idAttribute]},getNamespace:function(){return this[this.namespaceAttribute]},getType:function(){return this[this.typeAttribute]},isNew:function(){return null==this.getId()},escape:function(e){return d(this.get(e))},isValid:function(e){return this._validate({},u(e||{},{validate:!0}))},parse:function(e,t){return e},serialize:function(e){var t=u({props:!0},e),n=this.getAttributes(t,!0);return f(this._children,function(e,t){n[t]=this[t].serialize()},this),f(this._collections,function(e,t){n[t]=this[t].serialize()},this),n},set:function(e,t,n){var r,o,i,a,s,u,l,c,d,f,p,g,v,y,x,_,b=this,k=this.extraProperties;if(m(e)||null===e?(d=e,n=t):(d={},d[e]=t),n=n||{},!this._validate(d,n))return!1;g=n.unset,p=n.silent,y=n.initial,o=[],r=this._changing,this._changing=!0,r||(this._previousAttributes=this.attributes,this._changed={});for(c in d){if(a=d[c],i=typeof a,v=this._values[c],s=this._definition[c],!s){if(this._children[c]||this._collections[c]){this[c].set(a,n);continue}if("ignore"===k)continue;if("reject"===k)throw new TypeError('No "'+c+'" property defined on '+(this.type||"this")+' model and extraProperties not set to "ignore" or "allow"');if("allow"===k)s=this._createPropertyDefinition(c,"any");else if(k)throw new TypeError('Invalid value for extraProperties: "'+k+'"')}if(_=this._getCompareForType(s.type),f=this._dataTypes[s.type],f&&f.set&&(u=f.set(a),a=u.val,i=u.type),s.test&&(l=s.test.call(this,a,i)))throw new TypeError("Property '"+c+"' failed validation with error: "+l);if(void 0===a&&s.required)throw new TypeError("Required property '"+c+"' must be of type "+s.type+". Tried to set "+a);if(null===a&&s.required&&!s.allowNull)throw new TypeError("Property '"+c+"' must be of type "+s.type+" (cannot be null). Tried to set "+a);if(s.type&&"any"!==s.type&&s.type!==i&&null!==a&&void 0!==a)throw new TypeError("Property '"+c+"' must be of type "+s.type+". Tried to set "+a);if(s.values&&!h(s.values,a)){var j=w(s,"default");if(g&&void 0!==j)a=j;else if(!g||g&&void 0!==a)throw new TypeError("Property '"+c+"' must be one of values: "+s.values.join(", ")+". Tried to set "+a)}if(x=!_(v,a,c),s.setOnce&&void 0!==v&&x&&!y)throw new TypeError("Property '"+c+"' can only be set once.");x?(o.push({prev:v,val:a,key:c}),b._changed[c]=a):delete b._changed[c]}if(o.forEach(function(e){b._previousAttributes[e.key]=e.prev,g?delete b._values[e.key]:b._values[e.key]=e.val}),!p&&o.length&&(b._pending=!0),p||o.forEach(function(e){b.trigger("change:"+e.key,b,e.val,n)}),r)return this;if(!p)for(;this._pending;)this._pending=!1,this.trigger("change",this,n);return this._pending=!1,this._changing=!1,this},get:function(e){return this[e]},toggle:function(e){var t=this._definition[e];if("boolean"===t.type)this[e]=!this[e];else{if(!t||!t.values)throw new TypeError("Can only toggle properties that are type `boolean` or have `values` array.");this[e]=M(t.values,this[e])}return this},previousAttributes:function(){return l(this._previousAttributes)},hasChanged:function(e){return null==e?!!Object.keys(this._changed).length:x(this._derived,e)?this._derived[e].depList.some(function(e){return this.hasChanged(e)},this):x(this._changed,e)},changedAttributes:function(e){if(!e)return this.hasChanged()?l(this._changed):!1;var t,n,r,o=!1,i=this._changing?this._previousAttributes:this.attributes;for(var a in e)n=this._definition[a],n&&(r=this._getCompareForType(n.type),r(i[a],t=e[a])||((o||(o={}))[a]=t));return o},toJSON:function(){return this.serialize()},unset:function(e,t){var n=this;e=Array.isArray(e)?e:[e],e.forEach(function(e){var r=n._definition[e];if(r){var o;return r.required?(o=w(r,"default"),n.set(e,o,t)):n.set(e,o,u({},t,{unset:!0}))}})},clear:function(e){var t=this;return Object.keys(this.attributes).forEach(function(n){t.unset(n,e)}),this},previous:function(e){return null!=e&&Object.keys(this._previousAttributes).length?this._previousAttributes[e]:null},_getDefaultForType:function(e){var t=this._dataTypes[e];return t&&t["default"]},_getCompareForType:function(e){var t=this._dataTypes[e];return t&&t.compare?_(t.compare,this):y},_validate:function(e,t){if(!t.validate||!this.validate)return!0;e=u({},this.attributes,e);var n=this.validationError=this.validate(e,t)||null;return n?(this.trigger("invalid",this,n,u(t||{},{validationError:n})),!1):!0},_createPropertyDefinition:function(e,t,n){return o(this,e,t,n)},_ensureValidType:function(e){return h(["string","number","boolean","array","object","date","state","any"].concat(Object.keys(this._dataTypes)),e)?e:void 0},getAttributes:function(e,t){e=u({session:!1,props:!1,derived:!1},e||{});var n,r,o,i={};for(r in this._definition)o=this._definition[r],(e.session&&o.session||e.props&&!o.session)&&(n=t?this._values[r]:this[r],t&&n&&v(n.serialize)&&(n=n.serialize()),"undefined"==typeof n&&(n=w(o,"default")),"undefined"!=typeof n&&(i[r]=n));if(e.derived)for(r in this._derived)i[r]=this[r];return i},_initDerived:function(){var e=this;f(this._derived,function(t,n){var r=e._derived[n];r.deps=r.depList;var o=function(t){t=t||{};var o=r.fn.call(e);e._cache[n]===o&&r.cache||(r.cache&&(e._previousAttributes[n]=e._cache[n]),e._cache[n]=o,e.trigger("change:"+n,e,e._cache[n]))};r.deps.forEach(function(t){e._keyTree.add(t,o)})}),this.on("all",function(t){E.test(t)&&e._keyTree.get(t.split(":")[1]).forEach(function(e){e()})},this)},_getDerivedProperty:function(e,t){return this._derived[e].cache?((t||!this._cache.hasOwnProperty(e))&&(this._cache[e]=this._derived[e].fn.apply(this)),this._cache[e]):this._derived[e].fn.apply(this)},_initCollections:function(){var e;if(this._collections)for(e in this._collections)this._safeSet(e,new this._collections[e](null,{parent:this}))},_initChildren:function(){var e;if(this._children)for(e in this._children)this._safeSet(e,new this._children[e]({},{parent:this})),this.listenTo(this[e],"all",this._getEventBubblingHandler(e))},_getEventBubblingHandler:function(e){return _(function(t,n,r){E.test(t)?this.trigger("change:"+e+"."+t.split(":")[1],n,r):"change"===t&&this.trigger("change",this)},this)},_verifyRequired:function(){var e=this.attributes;for(var t in this._definition)if(this._definition[t].required&&"undefined"==typeof e[t])return!1;return!0},_safeSet:function(e,t){if(e in this)throw new Error("Encountered namespace collision while setting instance property `"+e+"`");return this[e]=t,this}}),Object.defineProperties(r.prototype,{attributes:{get:function(){return this.getAttributes({props:!0,session:!0})}},all:{get:function(){return this.getAttributes({session:!0,props:!0,derived:!0})}},isState:{get:function(){return!0},set:function(){}}});var C={string:{"default":function(){return""}},date:{set:function(e){var t;if(null==e)t="object";else if(g(e))t="date",e=e.valueOf();else{var n=null,r=new Date(e).valueOf();isNaN(r)&&(r=new Date(parseInt(e,10)).valueOf(),isNaN(r)&&(n=!0)),e=r,t="date",n&&(t=typeof e)}return{val:e,type:t}},get:function(e){return null==e?e:new Date(e)},"default":function(){return new Date}},array:{set:function(e){return{val:e,type:Array.isArray(e)?"array":typeof e}},"default":function(){return[]}},object:{set:function(e){var t=typeof e;return"object"!==t&&void 0===e&&(e=null,t="object"),{val:e,type:t}},"default":function(){return{}}},state:{set:function(e){var t=e instanceof r||e&&e.isState;return t?{val:e,type:"state"}:{val:e,type:typeof e}},compare:function(e,t,n){var r=e===t;return r||(e&&this.stopListening(e),null!=t&&this.listenTo(t,"all",this._getEventBubblingHandler(n))),r}}};r.extend=a,t.exports=r},{"ampersand-events":48,"array-next":60,"key-tree-store":61,"lodash.assign":62,"lodash.bind":72,"lodash.escape":78,"lodash.forown":80,"lodash.has":86,"lodash.includes":91,"lodash.isdate":99,"lodash.isequal":100,"lodash.isfunction":107,"lodash.isobject":108,"lodash.isstring":109,"lodash.omit":110,"lodash.result":126,"lodash.union":130,"lodash.uniqueid":139}],48:[function(e,t,n){t.exports=e(14)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/ampersand-events.js":14,"lodash.assign":62,"lodash.bind":72,"lodash.foreach":49,"lodash.isempty":53,"lodash.keys":55,"lodash.once":58,"lodash.uniqueid":139}],49:[function(e,t,n){t.exports=e(15)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/index.js":15,"lodash._arrayeach":50,"lodash._baseeach":51,"lodash._bindcallback":52,"lodash.isarray":98}],50:[function(e,t,n){t.exports=e(16)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._arrayeach/index.js":16}],51:[function(e,t,n){t.exports=e(17)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._baseeach/index.js":17,"lodash.keys":55}],52:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],53:[function(e,t,n){t.exports=e(19)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/index.js":19,"lodash.isarguments":54,"lodash.isarray":98,"lodash.isfunction":107,"lodash.isstring":109,"lodash.keys":55}],54:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],55:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":56,"lodash.isarguments":57,"lodash.isarray":98}],56:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],57:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],58:[function(e,t,n){t.exports=e(26)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.once/index.js":26,"lodash.before":59}],59:[function(e,t,n){t.exports=e(27)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.once/node_modules/lodash.before/index.js":27}],60:[function(e,t,n){t.exports=function(e,t){var n=e.length,r=e.indexOf(t)+1;return r>n-1&&(r=0),e[r]}},{}],61:[function(e,t,n){function r(e){if(e=e||{},"object"!=typeof e)throw new TypeError("Options must be an object");var t=".";this.storage={},this.separator=e.separator||t}var o=Array.prototype.slice;r.prototype.add=function(e,t){var n=this.storage[e]||(this.storage[e]=[]);n.push(t)},r.prototype.remove=function(e){var t,n;for(t in this.storage)n=this.storage[t],n.some(function(t,r){return t===e?(n.splice(r,1),!0):void 0})},r.prototype.get=function(e){var t,n=[];for(t in this.storage)e&&e!==t&&0!==t.indexOf(e+this.separator)||(n=n.concat(this.storage[t]));return n},r.prototype.getGrouped=function(e){var t,n={};for(t in this.storage)e&&e!==t&&0!==t.indexOf(e+this.separator)||(n[t]=o.call(this.storage[t]));return n},r.prototype.getAll=function(e){var t,n={};for(t in this.storage)(e===t||0===t.indexOf(e+this.separator))&&(n[t]=o.call(this.storage[t]));return n},r.prototype.run=function(e,t){var n=o.call(arguments,2);this.get(e).forEach(function(e){e.apply(t||this,n)})},t.exports=r},{}],62:[function(e,t,n){t.exports=e(30)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/index.js":30,"lodash._baseassign":63,"lodash._createassigner":65,"lodash.keys":69}],63:[function(e,t,n){t.exports=e(31)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._baseassign/index.js":31,"lodash._basecopy":64,"lodash.keys":69}],64:[function(e,t,n){t.exports=e(32)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._baseassign/node_modules/lodash._basecopy/index.js":32}],65:[function(e,t,n){t.exports=e(33)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/index.js":33,"lodash._bindcallback":66,"lodash._isiterateecall":67,"lodash.restparam":68}],66:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],67:[function(e,t,n){t.exports=e(35)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._isiterateecall/index.js":35}],68:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],69:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":70,"lodash.isarguments":71,"lodash.isarray":98}],70:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],71:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],72:[function(e,t,n){t.exports=e(40)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/index.js":40,"lodash._createwrapper":73,"lodash._replaceholders":76,"lodash.restparam":77}],73:[function(e,t,n){t.exports=e(41)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._createwrapper/index.js":41,"lodash._arraycopy":74,"lodash._basecreate":75,"lodash._replaceholders":76}],74:[function(e,t,n){t.exports=e(42)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._createwrapper/node_modules/lodash._arraycopy/index.js":42}],75:[function(e,t,n){t.exports=e(43); -},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._createwrapper/node_modules/lodash._basecreate/index.js":43}],76:[function(e,t,n){t.exports=e(44)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._replaceholders/index.js":44}],77:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],78:[function(e,t,n){function r(e){return u[e]}function o(e){return e=i(e),e&&s.test(e)?e.replace(a,r):e}var i=e("lodash._basetostring"),a=/[&<>"'`]/g,s=RegExp(a.source),u={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};t.exports=o},{"lodash._basetostring":79}],79:[function(e,t,n){t.exports=e(29)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.uniqueid/node_modules/lodash._basetostring/index.js":29}],80:[function(e,t,n){function r(e,t){return i(e,t,s)}function o(e){return function(t,n,r){return("function"!=typeof n||void 0!==r)&&(n=a(n,r,3)),e(t,n)}}var i=e("lodash._basefor"),a=e("lodash._bindcallback"),s=e("lodash.keys"),u=o(r);t.exports=u},{"lodash._basefor":81,"lodash._bindcallback":82,"lodash.keys":83}],81:[function(e,t,n){function r(e){return function(t,n,r){for(var i=o(t),a=r(t),s=a.length,u=e?s:-1;e?u--:++u<s;){var l=a[u];if(n(i[l],l,i)===!1)break}return t}}function o(e){return i(e)?e:Object(e)}function i(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var a=r();t.exports=a},{}],82:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],83:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":84,"lodash.isarguments":85,"lodash.isarray":98}],84:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],85:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],86:[function(e,t,n){function r(e,t){return e="number"==typeof e||v.test(e)?+e:-1,t=null==t?w:t,e>-1&&e%1==0&&t>e}function o(e,t){var n=typeof e;if("string"==n&&g.test(e)||"number"==n)return!0;if(p(e))return!1;var r=!m.test(e);return r||null!=t&&e in a(t)}function i(e){return"number"==typeof e&&e>-1&&e%1==0&&w>=e}function a(e){return u(e)?e:Object(e)}function s(e){var t=e?e.length:0;return t?e[t-1]:void 0}function u(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function l(e,t){if(null==e)return!1;var n=x.call(e,t);if(!n&&!o(t)){if(t=f(t),e=1==t.length?e:c(e,d(t,0,-1)),null==e)return!1;t=s(t),n=x.call(e,t)}return n||i(e.length)&&r(t,e.length)&&(p(e)||h(e))}var c=e("lodash._baseget"),d=e("lodash._baseslice"),f=e("lodash._topath"),h=e("lodash.isarguments"),p=e("lodash.isarray"),m=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,g=/^\w*$/,v=/^\d+$/,y=Object.prototype,x=y.hasOwnProperty,w=9007199254740991;t.exports=l},{"lodash._baseget":87,"lodash._baseslice":88,"lodash._topath":89,"lodash.isarguments":90,"lodash.isarray":98}],87:[function(e,t,n){function r(e,t,n){if(null!=e){void 0!==n&&n in o(e)&&(t=[n]);for(var r=0,i=t.length;null!=e&&i>r;)e=e[t[r++]];return r&&r==i?e:void 0}}function o(e){return i(e)?e:Object(e)}function i(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}t.exports=r},{}],88:[function(e,t,n){function r(e,t,n){var r=-1,o=e.length;t=null==t?0:+t||0,0>t&&(t=-t>o?0:o+t),n=void 0===n||n>o?o:+n||0,0>n&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}t.exports=r},{}],89:[function(e,t,n){function r(e){return null==e?"":e+""}function o(e){if(i(e))return e;var t=[];return r(e).replace(a,function(e,n,r,o){t.push(r?o.replace(s,"$1"):n||e)}),t}var i=e("lodash.isarray"),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,s=/\\(\\)?/g;t.exports=o},{"lodash.isarray":98}],90:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],91:[function(e,t,n){function r(e){return function(t){return null==t?void 0:t[e]}}function o(e){return"number"==typeof e&&e>-1&&e%1==0&&p>=e}function i(e,t,n,r){var i=e?m(e):0;return o(i)||(e=a(e),i=e.length),n="number"!=typeof n||r&&l(t,n,r)?0:0>n?h(i+n,0):n||0,"string"==typeof e||!c(e)&&d(e)?i>=n&&e.indexOf(t,n)>-1:!!i&&s(e,t,n)>-1}function a(e){return u(e,f(e))}var s=e("lodash._baseindexof"),u=e("lodash._basevalues"),l=e("lodash._isiterateecall"),c=e("lodash.isarray"),d=e("lodash.isstring"),f=e("lodash.keys"),h=Math.max,p=9007199254740991,m=r("length");t.exports=i},{"lodash._baseindexof":92,"lodash._basevalues":93,"lodash._isiterateecall":94,"lodash.isarray":98,"lodash.isstring":109,"lodash.keys":95}],92:[function(e,t,n){function r(e,t,n){if(t!==t)return o(e,n);for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function o(e,t,n){for(var r=e.length,o=t+(n?0:-1);n?o--:++o<r;){var i=e[o];if(i!==i)return o}return-1}t.exports=r},{}],93:[function(e,t,n){function r(e,t){for(var n=-1,r=t.length,o=Array(r);++n<r;)o[n]=e[t[n]];return o}t.exports=r},{}],94:[function(e,t,n){t.exports=e(35)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._isiterateecall/index.js":35}],95:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":96,"lodash.isarguments":97,"lodash.isarray":98}],96:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],97:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],98:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],99:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e){return r(e)&&s.call(e)==i}var i="[object Date]",a=Object.prototype,s=a.toString;t.exports=o},{}],100:[function(e,t,n){function r(e,t,n,r){n="function"==typeof n?i(n,r,3):void 0;var a=n?n(e,t):void 0;return void 0===a?o(e,t,n):!!a}var o=e("lodash._baseisequal"),i=e("lodash._bindcallback");t.exports=r},{"lodash._baseisequal":101,"lodash._bindcallback":106}],101:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e,t){for(var n=-1,r=e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function i(e,t,n,o,s,u){return e===t?!0:null==e||null==t||!c(e)&&!r(t)?e!==e&&t!==t:a(e,t,i,n,o,s,u)}function a(e,t,n,r,o,i,a){var c=d(e),h=d(t),g=m,v=m;c||(g=M.call(e),g==p?g=w:g!=w&&(c=f(e))),h||(v=M.call(t),v==p?v=w:v!=w&&(h=f(t)));var y=g==w,x=v==w,_=g==v;if(_&&!c&&!y)return u(e,t,g);if(!o){var b=y&&j.call(e,"__wrapped__"),k=x&&j.call(t,"__wrapped__");if(b||k)return n(b?e.value():e,k?t.value():t,r,o,i,a)}if(!_)return!1;i||(i=[]),a||(a=[]);for(var E=i.length;E--;)if(i[E]==e)return a[E]==t;i.push(e),a.push(t);var C=(c?s:l)(e,t,n,r,o,i,a);return i.pop(),a.pop(),C}function s(e,t,n,r,i,a,s){var u=-1,l=e.length,c=t.length;if(l!=c&&!(i&&c>l))return!1;for(;++u<l;){var d=e[u],f=t[u],h=r?r(i?f:d,i?d:f,u):void 0;if(void 0!==h){if(h)continue;return!1}if(i){if(!o(t,function(e){return d===e||n(d,e,r,i,a,s)}))return!1}else if(d!==f&&!n(d,f,r,i,a,s))return!1}return!0}function u(e,t,n){switch(n){case g:case v:return+e==+t;case y:return e.name==t.name&&e.message==t.message;case x:return e!=+e?t!=+t:e==+t;case _:case b:return e==t+""}return!1}function l(e,t,n,r,o,i,a){var s=h(e),u=s.length,l=h(t),c=l.length;if(u!=c&&!o)return!1;for(var d=u;d--;){var f=s[d];if(!(o?f in t:j.call(t,f)))return!1}for(var p=o;++d<u;){f=s[d];var m=e[f],g=t[f],v=r?r(o?g:m,o?m:g,f):void 0;if(!(void 0===v?n(m,g,r,o,i,a):v))return!1;p||(p="constructor"==f)}if(!p){var y=e.constructor,x=t.constructor;if(y!=x&&"constructor"in e&&"constructor"in t&&!("function"==typeof y&&y instanceof y&&"function"==typeof x&&x instanceof x))return!1}return!0}function c(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var d=e("lodash.isarray"),f=e("lodash.istypedarray"),h=e("lodash.keys"),p="[object Arguments]",m="[object Array]",g="[object Boolean]",v="[object Date]",y="[object Error]",x="[object Number]",w="[object Object]",_="[object RegExp]",b="[object String]",k=Object.prototype,j=k.hasOwnProperty,M=k.toString;t.exports=i},{"lodash.isarray":98,"lodash.istypedarray":102,"lodash.keys":103}],102:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e){return"number"==typeof e&&e>-1&&e%1==0&&O>=e}function i(e){return r(e)&&o(e.length)&&!!T[N.call(e)]}var a="[object Arguments]",s="[object Array]",u="[object Boolean]",l="[object Date]",c="[object Error]",d="[object Function]",f="[object Map]",h="[object Number]",p="[object Object]",m="[object RegExp]",g="[object Set]",v="[object String]",y="[object WeakMap]",x="[object ArrayBuffer]",w="[object Float32Array]",_="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",j="[object Int32Array]",M="[object Uint8Array]",E="[object Uint8ClampedArray]",C="[object Uint16Array]",S="[object Uint32Array]",T={};T[w]=T[_]=T[b]=T[k]=T[j]=T[M]=T[E]=T[C]=T[S]=!0,T[a]=T[s]=T[x]=T[u]=T[l]=T[c]=T[d]=T[f]=T[h]=T[p]=T[m]=T[g]=T[v]=T[y]=!1;var A=Object.prototype,N=A.toString,O=9007199254740991;t.exports=i},{}],103:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":104,"lodash.isarguments":105,"lodash.isarray":98}],104:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],105:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],106:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],107:[function(e,t,n){t.exports=e(21)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isfunction/index.js":21}],108:[function(e,t,n){function r(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}t.exports=r},{}],109:[function(e,t,n){t.exports=e(22)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isstring/index.js":22}],110:[function(e,t,n){var r=e("lodash._arraymap"),o=e("lodash._basedifference"),i=e("lodash._baseflatten"),a=e("lodash._bindcallback"),s=e("lodash._pickbyarray"),u=e("lodash._pickbycallback"),l=e("lodash.keysin"),c=e("lodash.restparam"),d=c(function(e,t){if(null==e)return{};if("function"!=typeof t[0]){var t=r(i(t),String);return s(e,o(l(e),t))}var n=a(t[0],t[1],3);return u(e,function(e,t,r){return!n(e,t,r)})});t.exports=d},{"lodash._arraymap":111,"lodash._basedifference":112,"lodash._baseflatten":117,"lodash._bindcallback":119,"lodash._pickbyarray":120,"lodash._pickbycallback":121,"lodash.keysin":123,"lodash.restparam":125}],111:[function(e,t,n){function r(e,t){for(var n=-1,r=e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}t.exports=r},{}],112:[function(e,t,n){function r(e,t){var n=e?e.length:0,r=[];if(!n)return r;var u=-1,l=o,c=!0,d=c&&t.length>=s?a(t):null,f=t.length;d&&(l=i,c=!1,t=d);e:for(;++u<n;){var h=e[u];if(c&&h===h){for(var p=f;p--;)if(t[p]===h)continue e;r.push(h)}else l(t,h,0)<0&&r.push(h)}return r}var o=e("lodash._baseindexof"),i=e("lodash._cacheindexof"),a=e("lodash._createcache"),s=200;t.exports=r},{"lodash._baseindexof":113,"lodash._cacheindexof":114,"lodash._createcache":115}],113:[function(e,t,n){t.exports=e(92)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.includes/node_modules/lodash._baseindexof/index.js":92}],114:[function(e,t,n){function r(e,t){var data=e.data,n="string"==typeof t||o(t)?data.set.has(t):data.hash[t];return n?0:-1}function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}t.exports=r},{}],115:[function(e,t,n){(function(n){function r(e){var t=e?e.length:0;for(this.data={hash:l(null),set:new u};t--;)this.push(e[t])}function o(e){var data=this.data;"string"==typeof e||a(e)?data.set.add(e):data.hash[e]=!0}function i(e){return l&&u?new r(e):null}function a(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var s=e("lodash._getnative"),u=s(n,"Set"),l=s(Object,"create");r.prototype.push=o,t.exports=i}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"lodash._getnative":116}],116:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],117:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}function i(e,t,n,a){a||(a=[]);for(var u=-1,d=e.length;++u<d;){var f=e[u];r(f)&&s(f)&&(n||c(f)||l(f))?t?i(f,t,n,a):o(a,f):n||(a[a.length]=f)}return a}function a(e){return function(t){return null==t?void 0:t[e]}}function s(e){return null!=e&&u(f(e))}function u(e){return"number"==typeof e&&e>-1&&e%1==0&&d>=e}var l=e("lodash.isarguments"),c=e("lodash.isarray"),d=9007199254740991,f=a("length");t.exports=i},{"lodash.isarguments":118,"lodash.isarray":98}],118:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],119:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],120:[function(e,t,n){function r(e,t){e=o(e);for(var n=-1,r=t.length,i={};++n<r;){var a=t[n];a in e&&(i[a]=e[a])}return i}function o(e){return i(e)?e:Object(e)}function i(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}t.exports=r},{}],121:[function(e,t,n){function r(e,t){return i(e,t,a)}function o(e,t){var n={};return r(e,function(e,r,o){t(e,r,o)&&(n[r]=e)}),n}var i=e("lodash._basefor"),a=e("lodash.keysin");t.exports=o},{"lodash._basefor":122,"lodash.keysin":123}],122:[function(e,t,n){t.exports=e(81)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.forown/node_modules/lodash._basefor/index.js":81}],123:[function(e,t,n){function r(e,t){return e="number"==typeof e||l.test(e)?+e:-1,t=null==t?f:t,e>-1&&e%1==0&&t>e}function o(e){return"number"==typeof e&&e>-1&&e%1==0&&f>=e}function i(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function a(e){if(null==e)return[];i(e)||(e=Object(e));var t=e.length;t=t&&o(t)&&(u(e)||s(e))&&t||0;for(var n=e.constructor,a=-1,l="function"==typeof n&&n.prototype===e,c=Array(t),f=t>0;++a<t;)c[a]=a+"";for(var h in e)f&&r(h,t)||"constructor"==h&&(l||!d.call(e,h))||c.push(h);return c}var s=e("lodash.isarguments"),u=e("lodash.isarray"),l=/^\d+$/,c=Object.prototype,d=c.hasOwnProperty,f=9007199254740991;t.exports=a},{"lodash.isarguments":124,"lodash.isarray":98}],124:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],125:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],126:[function(e,t,n){function r(e,t){var n=typeof e;if("string"==n&&p.test(e)||"number"==n)return!0;if(d(e))return!1;var r=!h.test(e);return r||null!=t&&e in o(t)}function o(e){return a(e)?e:Object(e)}function i(e){var t=e?e.length:0;return t?e[t-1]:void 0}function a(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function s(e,t,n){var o=null==e?void 0:e[t];return void 0===o&&(null==e||r(t,e)||(t=c(t),e=1==t.length?e:u(e,l(t,0,-1)),o=null==e?void 0:e[i(t)]),o=void 0===o?n:o),f(o)?o.call(e):o}var u=e("lodash._baseget"),l=e("lodash._baseslice"),c=e("lodash._topath"),d=e("lodash.isarray"),f=e("lodash.isfunction"),h=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,p=/^\w*$/;t.exports=s},{"lodash._baseget":127,"lodash._baseslice":128,"lodash._topath":129,"lodash.isarray":98,"lodash.isfunction":107}],127:[function(e,t,n){t.exports=e(87)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.has/node_modules/lodash._baseget/index.js":87}],128:[function(e,t,n){t.exports=e(88)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.has/node_modules/lodash._baseslice/index.js":88}],129:[function(e,t,n){t.exports=e(89)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.has/node_modules/lodash._topath/index.js":89,"lodash.isarray":98}],130:[function(e,t,n){var r=e("lodash._baseflatten"),o=e("lodash._baseuniq"),i=e("lodash.restparam"),a=i(function(e){return o(r(e,!1,!0))});t.exports=a},{"lodash._baseflatten":131,"lodash._baseuniq":133,"lodash.restparam":138}],131:[function(e,t,n){t.exports=e(117)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._baseflatten/index.js":117,"lodash.isarguments":132,"lodash.isarray":98}],132:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],133:[function(e,t,n){function r(e,t){var n=-1,r=o,u=e.length,l=!0,c=l&&u>=s,d=c?a():null,f=[];d?(r=i,l=!1):(c=!1,d=t?[]:f);e:for(;++n<u;){var h=e[n],p=t?t(h,n,e):h;if(l&&h===h){for(var m=d.length;m--;)if(d[m]===p)continue e;t&&d.push(p),f.push(h)}else r(d,p,0)<0&&((t||c)&&d.push(p),f.push(h))}return f}var o=e("lodash._baseindexof"),i=e("lodash._cacheindexof"),a=e("lodash._createcache"),s=200;t.exports=r},{"lodash._baseindexof":134,"lodash._cacheindexof":135,"lodash._createcache":136}],134:[function(e,t,n){t.exports=e(92)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.includes/node_modules/lodash._baseindexof/index.js":92}],135:[function(e,t,n){t.exports=e(114)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._basedifference/node_modules/lodash._cacheindexof/index.js":114}],136:[function(e,t,n){t.exports=e(115)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._basedifference/node_modules/lodash._createcache/index.js":115,"lodash._getnative":137}],137:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],138:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],139:[function(e,t,n){t.exports=e(28)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.uniqueid/index.js":28,"lodash._basetostring":140}],140:[function(e,t,n){t.exports=e(29)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.uniqueid/node_modules/lodash._basetostring/index.js":29}],141:[function(e,t,n){function r(e,t){t||(t={}),this.collection=e,this._reset(),this._watched=t.watched||[],this._parseFilters(t),this._runFilters(),this.listenTo(this.collection,"all",this._onCollectionEvent)}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-subcollection"]=window.ampersand["ampersand-subcollection"]||[],window.ampersand["ampersand-subcollection"].push("1.5.0"));var o=e("underscore"),i=e("backbone-events-standalone"),a=e("ampersand-class-extend"),s=e("ampersand-collection-underscore-mixin"),u=Array.prototype.slice;o.extend(r.prototype,i,s,{addFilter:function(e){this.swapFilters([e],[])},removeFilter:function(e){this.swapFilters([],[e])},clearFilters:function(){this._reset(),this._runFilters()},swapFilters:function(e,t){var n=this;t?o.isArray(t)||(t=[t]):t=this._filters,e?o.isArray(e)||(e=[e]):e=[],t.forEach(function(e){n._removeFilter(e)}),e.forEach(function(e){n._addFilter(e)}),this._runFilters()},configure:function(e,t){t&&this._resetFilters(),this._parseFilters(e),this._runFilters()},at:function(e){return this.models[e]},get:function(e,t){var n=this.collection.get(e,t);return n&&this.contains(n)?n:void 0},_removeFilter:function(e){var t=this._filters.indexOf(e);-1!==t&&this._filters.splice(t,1)},_reset:function(){this.models=[],this._resetFilters()},_resetFilters:function(){this._filters=[],this._watched=[],this.limit=void 0,this.offset=void 0},_addFilter:function(e){this._filters.push(e)},_watch:function(e){this._watched=o.union(this._watched,o.isArray(e)?e:[e])},_unwatch:function(e){this._watched=o.without(this._watched,e)},_parseFilters:function(e){e.where&&(o.each(e.where,function(e,t){this._addFilter(function(n){return(n.get?n.get(t):n[t])===e})},this),this._watch(o.keys(e.where))),e.hasOwnProperty("limit")&&(this.limit=e.limit),e.hasOwnProperty("offset")&&(this.offset=e.offset),e.filter&&this._addFilter(e.filter,!1),e.filters&&e.filters.forEach(this._addFilter,this),e.comparator&&(this.comparator=e.comparator)},_runFilters:function(){var e,t,n,r=u.call(this.models),i=u.call(this.collection.models),a=this.offset||0;e=this._filters.length?o.reduce(this._filters,function(e,t){return e.filter(t)},i):u.call(i),this.comparator&&(e=o.sortBy(e,this.comparator)),(this.limit||this.offset)&&(e=e.slice(a,this.limit+a)),t=o.difference(e,r),n=o.difference(r,e),this.models=e,o.each(n,function(e){this.trigger("remove",e,this)},this),o.each(t,function(e){this.trigger("add",e,this)},this),o.isEqual(r,e)||this.trigger("sort",this)},_onCollectionEvent:function(e,t){(o.contains(this._watched,e.split(":")[1])||o.contains(["add","remove","reset","sync"],e))&&this._runFilters(),(o.contains(["sync","invalid","destroy"])||-1!==e.indexOf("change"))&&this.contains(t)&&this.trigger.apply(this,arguments)}}),Object.defineProperty(r.prototype,"length",{get:function(){return this.models.length}}),Object.defineProperty(r.prototype,"isCollection",{get:function(){return!0}}),r.extend=a,t.exports=r},{"ampersand-class-extend":142,"ampersand-collection-underscore-mixin":10,"backbone-events-standalone":155,underscore:156}],142:[function(e,t,n){t.exports=e(13)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-class-extend/ampersand-class-extend.js":13,"lodash.assign":143}],143:[function(e,t,n){t.exports=e(30)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/index.js":30,"lodash._baseassign":144,"lodash._createassigner":146,"lodash.keys":150}],144:[function(e,t,n){t.exports=e(31)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._baseassign/index.js":31,"lodash._basecopy":145,"lodash.keys":150}],145:[function(e,t,n){t.exports=e(32)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._baseassign/node_modules/lodash._basecopy/index.js":32}],146:[function(e,t,n){t.exports=e(33)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/index.js":33,"lodash._bindcallback":147,"lodash._isiterateecall":148,"lodash.restparam":149}],147:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],148:[function(e,t,n){t.exports=e(35)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._isiterateecall/index.js":35}],149:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],150:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":151,"lodash.isarguments":152,"lodash.isarray":153}],151:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],152:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],153:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],154:[function(e,t,n){!function(){function e(){return{keys:Object.keys,uniqueId:function(e){var t=++l+"";return e?e+t:t},has:function(e,t){return s.call(e,t)},each:function(e,t,n){if(null!=e)if(a&&e.forEach===a)e.forEach(t,n);else if(e.length===+e.length){for(var r=0,o=e.length;o>r;r++)if(t.call(n,e[r],r,e)===i)return}else for(var s in e)if(this.has(e,s)&&t.call(n,e[s],s,e)===i)return},once:function(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}}}}var r,o=this,i={},a=Array.prototype.forEach,s=Object.prototype.hasOwnProperty,u=Array.prototype.slice,l=0,c=e();r={on:function(e,t,n){if(!f(this,"on",e,[t,n])||!t)return this;this._events||(this._events={});var r=this._events[e]||(this._events[e]=[]);return r.push({callback:t,context:n,ctx:n||this}),this},once:function(e,t,n){if(!f(this,"once",e,[t,n])||!t)return this;var r=this,o=c.once(function(){r.off(e,o),t.apply(this,arguments)});return o._callback=t,this.on(e,o,n)},off:function(e,t,n){var r,o,i,a,s,u,l,d;if(!this._events||!f(this,"off",e,[t,n]))return this;if(!e&&!t&&!n)return this._events={},this;for(a=e?[e]:c.keys(this._events),s=0,u=a.length;u>s;s++)if(e=a[s],i=this._events[e]){if(this._events[e]=r=[],t||n)for(l=0,d=i.length;d>l;l++)o=i[l],(t&&t!==o.callback&&t!==o.callback._callback||n&&n!==o.context)&&r.push(o);r.length||delete this._events[e]}return this},trigger:function(e){if(!this._events)return this;var t=u.call(arguments,1);if(!f(this,"trigger",e,t))return this;var n=this._events[e],r=this._events.all;return n&&h(n,t),r&&h(r,arguments),this},stopListening:function(e,t,n){var r=this._listeners;if(!r)return this;var o=!t&&!n;"object"==typeof t&&(n=this),e&&((r={})[e._listenerId]=e);for(var i in r)r[i].off(t,n,this),o&&delete this._listeners[i];return this}};var d=/\s+/,f=function(e,t,n,r){if(!n)return!0;if("object"==typeof n){for(var o in n)e[t].apply(e,[o,n[o]].concat(r));return!1}if(d.test(n)){for(var i=n.split(d),a=0,s=i.length;s>a;a++)e[t].apply(e,[i[a]].concat(r));return!1}return!0},h=function(e,t){var n,r=-1,o=e.length,i=t[0],a=t[1],s=t[2];switch(t.length){case 0:for(;++r<o;)(n=e[r]).callback.call(n.ctx);return;case 1:for(;++r<o;)(n=e[r]).callback.call(n.ctx,i);return;case 2:for(;++r<o;)(n=e[r]).callback.call(n.ctx,i,a);return;case 3:for(;++r<o;)(n=e[r]).callback.call(n.ctx,i,a,s);return;default:for(;++r<o;)(n=e[r]).callback.apply(n.ctx,t)}},p={listenTo:"on",listenToOnce:"once"};c.each(p,function(e,t){r[t]=function(t,n,r){var o=this._listeners||(this._listeners={}),i=t._listenerId||(t._listenerId=c.uniqueId("l"));return o[i]=t,"object"==typeof n&&(r=this),t[e](n,r,this),this}}),r.bind=r.on,r.unbind=r.off,r.mixin=function(e){var t=["on","once","off","trigger","stopListening","listenTo","listenToOnce","bind","unbind"];return c.each(t,function(t){e[t]=this[t]},this),e},"function"==typeof define?define(function(){return r}):"undefined"!=typeof n?("undefined"!=typeof t&&t.exports&&(n=t.exports=r),n.BackboneEvents=r):o.BackboneEvents=r}(this)},{}],155:[function(e,t,n){t.exports=e("./backbone-events-standalone")},{"./backbone-events-standalone":154}],156:[function(e,t,n){t.exports=e(11)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection-underscore-mixin/node_modules/underscore/underscore.js":11}],157:[function(e,t,n){function r(e){this.cid=s("view"),e||(e={});var t=e.parent;delete e.parent,_.call(this,e,{init:!1,parent:t}),this.on("change:el",this._handleElementChange,this),this._parsedBindings=x(this.bindings,this),this._initializeBindings(),e.el&&!this.autoRender&&this._handleElementChange(),this._initializeSubviews(),this.template=e.template||this.template,this.initialize.apply(this,arguments),this.set(u(e,b)),this.autoRender&&this.template&&this.render()}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-view"]=window.ampersand["ampersand-view"]||[],window.ampersand["ampersand-view"].push("7.4.2"));var o=e("ampersand-state"),i=e("ampersand-collection-view"),a=e("domify"),s=e("lodash.uniqueid"),u=e("lodash.pick"),l=e("lodash.assign"),c=e("lodash.foreach"),d=e("lodash.result"),f=e("lodash.last"),h=e("lodash.isstring"),p=e("lodash.bind"),m=e("lodash.flatten"),g=e("lodash.invoke"),v=e("events-mixin"),y=e("matches-selector"),x=e("ampersand-dom-bindings"),w=e("get-object-path"),_=o.extend({dataTypes:{element:{set:function(e){return{val:e,type:e instanceof Element?"element":typeof e}},compare:function(e,t){return e===t}},collection:{set:function(e){return{val:e,type:e&&e.isCollection?"collection":typeof e}},compare:function(e,t){return e===t}}},props:{model:"state",el:"element",collection:"collection" -},derived:{rendered:{deps:["el"],fn:function(){return!!this.el}},hasData:{deps:["model"],fn:function(){return!!this.model}}}}),b=["model","collection","el"];r.prototype=Object.create(_.prototype),l(r.prototype,{query:function(e){return e?"string"==typeof e?y(this.el,e)?this.el:this.el.querySelector(e)||void 0:e:this.el},queryAll:function(e){var t=[];return this.el?""===e?[this.el]:(y(this.el,e)&&t.push(this.el),t.concat(Array.prototype.slice.call(this.el.querySelectorAll(e)))):t},queryByHook:function(e){return this.query('[data-hook~="'+e+'"]')},queryAllByHook:function(e){return this.queryAll('[data-hook~="'+e+'"]')},initialize:function(){},render:function(){return this.renderWithTemplate(this),this},remove:function(){var e=this._parsedBindings;return this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el),this._subviews&&g(m(this._subviews),"remove"),this.trigger("remove",this),this.stopListening(),c(e,function(t,n){c(t,function(t,r){delete e[n][r]}),delete e[n]}),this},_handleElementChange:function(e,t){return this.eventManager&&this.eventManager.unbind(),this.eventManager=v(this.el,this),this.delegateEvents(),this._applyBindingsForKey(),this},delegateEvents:function(e){if(!e&&!(e=d(this,"events")))return this;this.undelegateEvents();for(var t in e)this.eventManager.bind(t,e[t]);return this},undelegateEvents:function(){return this.eventManager.unbind(),this},registerSubview:function(e){return this._subviews||(this._subviews=[]),this._subviews.push(e),e.parent||(e.parent=this),e},renderSubview:function(e,t){return"string"==typeof t&&(t=this.query(t)),this.registerSubview(e),e.render(),(t||this.el).appendChild(e.el),e},_applyBindingsForKey:function(e){if(this.el){var t,n=this._parsedBindings.getGrouped(e);for(t in n)n[t].forEach(function(e){e(this.el,w(this,t),f(t.split(".")))},this)}},_initializeBindings:function(){this.bindings&&this.on("all",function(e){"change:"===e.slice(0,7)&&this._applyBindingsForKey(e.split(":")[1])},this)},_initializeSubviews:function(){if(this.subviews)for(var e in this.subviews)this._parseSubview(this.subviews[e],e)},_parseSubview:function(e,t){function n(){var e,r;this.el&&(e=this.query(o.selector))&&(!o.waitFor||w(this,o.waitFor))&&(r=this[t]=o.prepareView.call(this,e),r.render(),this.registerSubview(r),this.off("change",n))}var r=this,o={selector:e.container||'[data-hook="'+e.hook+'"]',waitFor:e.waitFor||"",prepareView:e.prepareView||function(t){return new e.constructor({el:t,parent:r})}};this.on("change",n,this)},renderWithTemplate:function(e,t){var n=t||this.template;if(!n)throw new Error("Template string or function needed.");var r=h(n)?n:n.call(this,e||this);h(r)&&(r=a(r));var o=this.el&&this.el.parentNode;if(o&&o.replaceChild(r,this.el),"#document-fragment"===r.nodeName)throw new Error("Views can only have one root element, including comment nodes.");return this.el=r,this},cacheElements:function(e){for(var t in e)this[t]=this.query(e[t]);return this},listenToAndRun:function(e,t,n){var r=p(n,this);this.listenTo(e,t,r),r()},animateRemove:function(){this.remove()},renderCollection:function(e,t,n,r){var o="string"==typeof n?this.query(n):n,a=l({collection:e,el:o||this.el,view:t,parent:this,viewOptions:{parent:this}},r),s=new i(a);return s.render(),this.registerSubview(s)}}),r.extend=_.extend,t.exports=r},{"ampersand-collection-view":158,"ampersand-dom-bindings":194,"ampersand-state":47,domify:203,"events-mixin":204,"get-object-path":209,"lodash.assign":210,"lodash.bind":221,"lodash.flatten":227,"lodash.foreach":232,"lodash.invoke":240,"lodash.isstring":251,"lodash.last":252,"lodash.pick":253,"lodash.result":265,"lodash.uniqueid":271,"matches-selector":273}],158:[function(e,t,n){function r(e){if(!e)throw new ReferenceError("Collection view missing required parameters: collection, el");if(!e.collection)throw new ReferenceError("Collection view requires a collection");if(!e.el&&!this.insertSelf)throw new ReferenceError("Collection view requires an el");o(this,a(e,d)),this.views=[],this.listenTo(this.collection,"add",this._addViewForModel),this.listenTo(this.collection,"remove",this._removeViewForModel),this.listenTo(this.collection,"sort",this._rerenderAll),this.listenTo(this.collection,"refresh reset",this._reset)}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-collection-view"]=window.ampersand["ampersand-collection-view"]||[],window.ampersand["ampersand-collection-view"].push("1.4.0"));var o=e("lodash.assign"),i=e("lodash.invoke"),a=e("lodash.pick"),s=e("lodash.find"),u=e("lodash.difference"),l=e("ampersand-events"),c=e("ampersand-class-extend"),d=["collection","el","viewOptions","view","emptyView","filter","reverse","parent"];o(r.prototype,l,{render:function(){return this._renderAll(),this},remove:function(){i(this.views,"remove"),this.stopListening()},_getViewByModel:function(e){return s(this.views,function(t){return e===t.model})},_createViewForModel:function(e,t){var n={model:e,collection:this.collection,parent:this},r=new this.view(o(n,this.viewOptions));return this.views.push(r),r.renderedByParentView=!0,r.render(t),r},_getOrCreateByModel:function(e,t){return this._getViewByModel(e)||this._createViewForModel(e,t)},_addViewForModel:function(e,t,n){var r=this.filter?this.filter(e):!0;if(r){this.renderedEmptyView&&(this.renderedEmptyView.remove(),delete this.renderedEmptyView);var o=this._getOrCreateByModel(e,{containerEl:this.el});n&&n.rerender?this._insertView(o):this._insertViewAtIndex(o)}},_insertViewAtIndex:function(e){if(!e.insertSelf){var t,n,r=this.collection.indexOf(e.model);t=this.reverse?this.collection.at(r-1):this.collection.at(r+1),n=this._getViewByModel(t),n?this.el.insertBefore(e.el,n&&n.el):this.el.appendChild(e.el)}},_insertView:function(e){e.insertSelf||(this.reverse&&this.el.firstChild?this.el.insertBefore(e.el,this.el.firstChild):this.el.appendChild(e.el))},_removeViewForModel:function(e){var t=this._getViewByModel(e);if(t){var n=this.views.indexOf(t);-1!==n&&(t=this.views.splice(n,1)[0],this._removeView(t),0===this.views.length&&this._renderEmptyView())}},_removeView:function(e){e.animateRemove?e.animateRemove():e.remove()},_renderAll:function(){this.collection.each(this._addViewForModel,this),0===this.views.length&&this._renderEmptyView()},_rerenderAll:function(e,t){t=t||{},this.collection.each(function(e){this._addViewForModel(e,this,o(t,{rerender:!0}))},this)},_renderEmptyView:function(){if(this.emptyView&&!this.renderedEmptyView){var e=this.renderedEmptyView=new this.emptyView({parent:this});this.el.appendChild(e.render().el)}},_reset:function(){var e=this.collection.map(this._getOrCreateByModel,this),t=u(this.views,e);t.forEach(this._removeView,this),this.views=e,this._rerenderAll(),0===this.views.length&&this._renderEmptyView()}}),r.extend=c,t.exports=r},{"ampersand-class-extend":159,"ampersand-events":160,"lodash.assign":210,"lodash.difference":171,"lodash.find":181,"lodash.invoke":240,"lodash.pick":253}],159:[function(e,t,n){t.exports=e(13)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-class-extend/ampersand-class-extend.js":13,"lodash.assign":210}],160:[function(e,t,n){t.exports=e(14)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/ampersand-events.js":14,"lodash.assign":210,"lodash.bind":221,"lodash.foreach":232,"lodash.isempty":161,"lodash.keys":165,"lodash.once":169,"lodash.uniqueid":271}],161:[function(e,t,n){t.exports=e(19)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/index.js":19,"lodash.isarguments":162,"lodash.isarray":163,"lodash.isfunction":164,"lodash.isstring":251,"lodash.keys":165}],162:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],163:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],164:[function(e,t,n){t.exports=e(21)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isfunction/index.js":21}],165:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":166,"lodash.isarguments":167,"lodash.isarray":168}],166:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],167:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],168:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],169:[function(e,t,n){t.exports=e(26)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.once/index.js":26,"lodash.before":170}],170:[function(e,t,n){t.exports=e(27)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.once/node_modules/lodash.before/index.js":27}],171:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}function o(e){return function(t){return null==t?void 0:t[e]}}function i(e){return null!=e&&a(d(e))}function a(e){return"number"==typeof e&&e>-1&&e%1==0&&c>=e}var s=e("lodash._basedifference"),u=e("lodash._baseflatten"),l=e("lodash.restparam"),c=9007199254740991,d=o("length"),f=l(function(e,t){return r(e)&&i(e)?s(e,u(t,!1,!0)):[]});t.exports=f},{"lodash._basedifference":172,"lodash._baseflatten":177,"lodash.restparam":180}],172:[function(e,t,n){t.exports=e(112)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._basedifference/index.js":112,"lodash._baseindexof":173,"lodash._cacheindexof":174,"lodash._createcache":175}],173:[function(e,t,n){t.exports=e(92)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.includes/node_modules/lodash._baseindexof/index.js":92}],174:[function(e,t,n){t.exports=e(114)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._basedifference/node_modules/lodash._cacheindexof/index.js":114}],175:[function(e,t,n){t.exports=e(115)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._basedifference/node_modules/lodash._createcache/index.js":115,"lodash._getnative":176}],176:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],177:[function(e,t,n){t.exports=e(117)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._baseflatten/index.js":117,"lodash.isarguments":178,"lodash.isarray":179}],178:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],179:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],180:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],181:[function(e,t,n){function r(e,t){return function(n,r,i){if(r=o(r,i,3),u(n)){var l=s(n,r,t);return l>-1?n[l]:void 0}return a(n,r,e)}}var o=e("lodash._basecallback"),i=e("lodash._baseeach"),a=e("lodash._basefind"),s=e("lodash._basefindindex"),u=e("lodash.isarray"),l=r(i);t.exports=l},{"lodash._basecallback":182,"lodash._baseeach":187,"lodash._basefind":188,"lodash._basefindindex":189,"lodash.isarray":190}],182:[function(e,t,n){function r(e){return null==e?"":e+""}function o(e,t,n){var r=typeof e;return"function"==r?void 0===t?e:b(e,t,n):null==e?x:"object"==r?s(e):void 0===t?w(e):u(e,t)}function i(e,t,n){if(null!=e){void 0!==n&&n in m(e)&&(t=[n]);for(var r=0,o=t.length;null!=e&&o>r;)e=e[t[r++]];return r&&r==o?e:void 0}}function a(e,t,n){var r=t.length,o=r,i=!n;if(null==e)return!o;for(e=m(e);r--;){var data=t[r];if(i&&data[2]?data[1]!==e[data[0]]:!(data[0]in e))return!1}for(;++r<o;){data=t[r];var a=data[0],s=e[a],u=data[1];if(i&&data[2]){if(void 0===s&&!(a in e))return!1}else{var l=n?n(s,u,a):void 0;if(!(void 0===l?_(u,s,n,!0):l))return!1}}return!0}function s(e){var t=f(e);if(1==t.length&&t[0][2]){var n=t[0][0],r=t[0][1];return function(e){return null==e?!1:e[n]===r&&(void 0!==r||n in m(e))}}return function(e){return a(e,t)}}function u(e,t){var n=k(e),r=h(e)&&p(t),o=e+"";return e=g(e),function(a){if(null==a)return!1;var s=o;if(a=m(a),(n||!r)&&!(s in a)){if(a=1==e.length?a:i(a,d(e,0,-1)),null==a)return!1;s=v(e),a=m(a)}return a[s]===t?void 0!==t||s in a:_(t,a[s],void 0,!0)}}function l(e){return function(t){return null==t?void 0:t[e]}}function c(e){var t=e+"";return e=g(e),function(n){return i(n,e,t)}}function d(e,t,n){var r=-1,o=e.length;t=null==t?0:+t||0,0>t&&(t=-t>o?0:o+t),n=void 0===n||n>o?o:+n||0,0>n&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}function f(e){for(var t=j(e),n=t.length;n--;)t[n][2]=p(t[n][1]);return t}function h(e,t){var n=typeof e;if("string"==n&&E.test(e)||"number"==n)return!0;if(k(e))return!1;var r=!M.test(e);return r||null!=t&&e in m(t)}function p(e){return e===e&&!y(e)}function m(e){return y(e)?e:Object(e)}function g(e){if(k(e))return e;var t=[];return r(e).replace(C,function(e,n,r,o){t.push(r?o.replace(S,"$1"):n||e)}),t}function v(e){var t=e?e.length:0;return t?e[t-1]:void 0}function y(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function x(e){return e}function w(e){return h(e)?l(e):c(e)}var _=e("lodash._baseisequal"),b=e("lodash._bindcallback"),k=e("lodash.isarray"),j=e("lodash.pairs"),M=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,E=/^\w*$/,C=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,S=/\\(\\)?/g;t.exports=o},{"lodash._baseisequal":183,"lodash._bindcallback":185,"lodash.isarray":190,"lodash.pairs":186}],183:[function(e,t,n){t.exports=e(101)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.isequal/node_modules/lodash._baseisequal/index.js":101,"lodash.isarray":190,"lodash.istypedarray":184,"lodash.keys":191}],184:[function(e,t,n){t.exports=e(102)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.isequal/node_modules/lodash._baseisequal/node_modules/lodash.istypedarray/index.js":102}],185:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],186:[function(e,t,n){function r(e){return o(e)?e:Object(e)}function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function i(e){e=r(e);for(var t=-1,n=a(e),o=n.length,i=Array(o);++t<o;){var s=n[t];i[t]=[s,e[s]]}return i}var a=e("lodash.keys");t.exports=i},{"lodash.keys":191}],187:[function(e,t,n){t.exports=e(17)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._baseeach/index.js":17,"lodash.keys":191}],188:[function(e,t,n){function r(e,t,n,r){var o;return n(e,function(e,n,i){return t(e,n,i)?(o=r?n:e,!1):void 0}),o}t.exports=r},{}],189:[function(e,t,n){function r(e,t,n){for(var r=e.length,o=n?r:-1;n?o--:++o<r;)if(t(e[o],o,e))return o;return-1}t.exports=r},{}],190:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],191:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":192,"lodash.isarguments":193,"lodash.isarray":190}],192:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],193:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],194:[function(e,t,n){function r(e,t){if(""===t)return[e];var n=[];return f(e,t)&&n.push(e),n.concat(p.call(e.querySelectorAll(t)))}function o(e,t){for(var n in t)d.setAttribute(e,n,t[n])}function i(e,t){for(var n in t)d.removeAttribute(e,n)}function a(e){return Array.isArray(e)?e:[e]}function s(e,t,n){var o=e.cases[n];for(var i in e.cases){var a=e.cases[i];n!==i&&a!==o&&r(t,a).forEach(function(e){d.hide(e)})}r(t,o).forEach(function(e){d.show(e)})}function u(e){return"string"==typeof e.selector?e.selector:e.hook?'[data-hook~="'+e.hook+'"]':""}function l(e,t){var n,l=e.type||"text",c="function"==typeof l,f=u(e),p=e.yes,m=e.no,g=!(!p&&!m);if(c)return function(e,o){r(e,f).forEach(function(e){l.call(t,e,o,n)}),n=o};if("text"===l)return function(e,t){r(e,f).forEach(function(e){d.text(e,t)})};if("class"===l)return function(e,t){r(e,f).forEach(function(e){d.switchClass(e,n,t)}),n=t};if("attribute"===l){if(!e.name)throw Error('attribute bindings must have a "name"');return function(t,o){var i=a(e.name);r(t,f).forEach(function(e){i.forEach(function(t){d.setAttribute(e,t,o)})}),n=o}}if("value"===l)return function(e,t){r(e,f).forEach(function(e){t||0===t||(t=""),document.activeElement!==e&&(e.value=t)}),n=t};if("booleanClass"===l)return g?(p=a(p||""),m=a(m||""),function(e,t){var n=t?m:p,o=t?p:m;r(e,f).forEach(function(e){n.forEach(function(t){d.removeClass(e,t)}),o.forEach(function(t){d.addClass(e,t)})})}):function(t,n,o){var i=a(e.name||o);r(t,f).forEach(function(e){i.forEach(function(t){d[n?"addClass":"removeClass"](e,t)})})};if("booleanAttribute"===l)return g?(p=a(p||""),m=a(m||""),function(e,t){var n=t?m:p,o=t?p:m;r(e,f).forEach(function(e){n.forEach(function(t){t&&d.removeAttribute(e,t)}),o.forEach(function(t){t&&d.addAttribute(e,t)})})}):function(t,n,o){var i=a(e.name||o);r(t,f).forEach(function(e){i.forEach(function(t){d[n?"addAttribute":"removeAttribute"](e,t)})})};if("toggle"===l){var v=e.mode||"display";return g?function(e,t){r(e,p).forEach(function(e){d[t?"show":"hide"](e,v)}),r(e,m).forEach(function(e){d[t?"hide":"show"](e,v)})}:function(e,t){r(e,f).forEach(function(e){d[t?"show":"hide"](e,v)})}}if("switch"===l){if(!e.cases)throw Error('switch bindings must have "cases"');return h(s,e)}if("innerHTML"===l)return function(e,t){r(e,f).forEach(function(e){d.html(e,t)})};if("switchClass"===l){if(!e.cases)throw Error('switchClass bindings must have "cases"');return function(t,n,o){var i=a(e.name||o);for(var s in e.cases)r(t,e.cases[s]).forEach(function(e){i.forEach(function(t){d[n===s?"addClass":"removeClass"](e,t)})})}}if("switchAttribute"===l){if(!e.cases)throw Error('switchAttribute bindings must have "cases"');return function(t,a,s){r(t,f).forEach(function(t){if(n&&i(t,n),a in e.cases){var r=e.cases[a];"string"==typeof r&&(r={},r[e.name||s]=e.cases[a]),o(t,r),n=r}})}}throw new Error("no such binding type: "+l)}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-dom-bindings"]=window.ampersand["ampersand-dom-bindings"]||[],window.ampersand["ampersand-dom-bindings"].push("3.7.0"));var c=e("key-tree-store"),d=e("ampersand-dom"),f=e("matches-selector"),h=e("lodash.partial"),p=Array.prototype.slice;t.exports=function(e,t){var n,r,o=new c;for(n in e)r=e[n],"string"==typeof r?o.add(n,l({type:"text",selector:r})):r.forEach?r.forEach(function(e){o.add(n,l(e,t))}):o.add(n,l(r,t));return o}},{"ampersand-dom":195,"key-tree-store":196,"lodash.partial":197,"matches-selector":273}],195:[function(e,t,n){function r(e){return e||0===e?e:""}function o(e,t){return e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(e.className)}function i(e,t){var n=e[t];return t in e&&(n===!0||n===!1)}function a(e){return"true"===c.getAttribute(e,"data-anddom-hidden")}function s(e,t){c.setAttribute(e,"data-anddom-"+t,e.style[t])}function u(e,t){e.style[t]=c.getAttribute(e,"data-anddom-"+t)||"",c.removeAttribute(e,"data-anddom-hidden")}function l(e,t){c.setAttribute(e,"data-anddom-hidden","true"),e.style[t]="visibility"===t?"hidden":"none"}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-dom"]=window.ampersand["ampersand-dom"]||[],window.ampersand["ampersand-dom"].push("1.4.0"));var c=t.exports={text:function(e,t){e.textContent=r(t)},addClass:function(e,t){t=r(t),t&&(Array.isArray(t)?t.forEach(function(t){c.addClass(e,t)}):e.classList?e.classList.add(t):o(e,t)||(e.classList?e.classList.add(t):e.className+=" "+t))},removeClass:function(e,t){Array.isArray(t)?t.forEach(function(t){c.removeClass(e,t)}):e.classList?(t=r(t),t&&e.classList.remove(t)):e.className=e.className.replace(new RegExp("(^|\\b)"+t.split(" ").join("|")+"(\\b|$)","gi")," ")},hasClass:o,switchClass:function(e,t,n){t&&this.removeClass(e,t),this.addClass(e,n)},addAttribute:function(e,t){e.setAttribute(t,""),i(e,t)&&(e[t]=!0)},removeAttribute:function(e,t){e.removeAttribute(t),i(e,t)&&(e[t]=!1)},setAttribute:function(e,t,n){e.setAttribute(t,r(n))},getAttribute:function(e,t){return e.getAttribute(t)},hasAttribute:function(e,t){return e.hasAttribute(t)},hide:function(e,t){t||(t="display"),a(e)||(s(e,t),l(e,t))},show:function(e,t){t||(t="display"),u(e,t)},html:function(e,t){e.innerHTML=t}}},{}],196:[function(e,t,n){t.exports=e(61)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/key-tree-store/key-tree-store.js":61}],197:[function(e,t,n){function r(e){var t=a(function(n,r){var a=i(r,t.placeholder);return o(n,e,void 0,r,a)});return t}var o=e("lodash._createwrapper"),i=e("lodash._replaceholders"),a=e("lodash.restparam"),s=32,u=r(s);u.placeholder={},t.exports=u},{"lodash._createwrapper":198,"lodash._replaceholders":201,"lodash.restparam":202}],198:[function(e,t,n){t.exports=e(41)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._createwrapper/index.js":41,"lodash._arraycopy":199,"lodash._basecreate":200,"lodash._replaceholders":201}],199:[function(e,t,n){t.exports=e(42)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._createwrapper/node_modules/lodash._arraycopy/index.js":42}],200:[function(e,t,n){t.exports=e(43)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._createwrapper/node_modules/lodash._basecreate/index.js":43}],201:[function(e,t,n){t.exports=e(44)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._replaceholders/index.js":44}],202:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],203:[function(e,t,n){function r(e,t){if("string"!=typeof e)throw new TypeError("String expected");t||(t=document);var n=/<([\w:]+)/.exec(e);if(!n)return t.createTextNode(e);e=e.replace(/^\s+|\s+$/g,"");var r=n[1];if("body"==r){var o=t.createElement("html");return o.innerHTML=e,o.removeChild(o.lastChild)}var i=a[r]||a._default,s=i[0],u=i[1],l=i[2],o=t.createElement("div");for(o.innerHTML=u+e+l;s--;)o=o.lastChild;if(o.firstChild==o.lastChild)return o.removeChild(o.firstChild);for(var c=t.createDocumentFragment();o.firstChild;)c.appendChild(o.removeChild(o.firstChild));return c}t.exports=r;var o,i=!1;"undefined"!=typeof document&&(o=document.createElement("div"),o.innerHTML=' <link/><table></table><a href="/a">a</a><input type="checkbox"/>',i=!o.getElementsByTagName("link").length,o=void 0);var a={legend:[1,"<fieldset>","</fieldset>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],_default:i?[1,"X<div>","</div>"]:[0,"",""]};a.td=a.th=[3,"<table><tbody><tr>","</tr></tbody></table>"],a.option=a.optgroup=[1,'<select multiple="multiple">',"</select>"],a.thead=a.tbody=a.colgroup=a.caption=a.tfoot=[1,"<table>","</table>"],a.polyline=a.ellipse=a.polygon=a.circle=a.text=a.line=a.path=a.rect=a.g=[1,'<svg xmlns="http://www.w3.org/2000/svg" version="1.1">',"</svg>"]},{}],204:[function(e,t,n){function r(e,t){if(!(this instanceof r))return new r(e,t);if(!e)throw new Error("element required");if(!t)throw new Error("object required");this.el=e,this.obj=t,this._events={}}function o(e){var t=e.split(/ +/);return{name:t.shift(),selector:t.join(" ")}}var i=e("component-event"),a=e("delegate-events"),s=["focus","blur"];t.exports=r,r.prototype.sub=function(e,t,n){this._events[e]=this._events[e]||{},this._events[e][t]=n},r.prototype.bind=function(e,t){var n=function(e,t){function n(){var e=[].slice.call(arguments).concat(c);if("function"==typeof t)return void t.apply(u,e);if(!u[t])throw new Error(t+" method is not defined");u[t].apply(u,e)}var r=o(e),s=this.el,u=this.obj,l=r.name,t=t||"on"+l,c=[].slice.call(arguments,2);return r.selector?n=a.bind(s,r.selector,l,n):i.bind(s,l,n),this.sub(l,t,n),n};if("string"==typeof e)n.apply(this,arguments);else for(var r in e)e.hasOwnProperty(r)&&n.call(this,r,e[r])},r.prototype.unbind=function(e,t){if(0==arguments.length)return this.unbindAll();if(1==arguments.length)return this.unbindAllOf(e);var n=this._events[e],r=-1!==s.indexOf(e);if(n){var o=n[t];o&&i.unbind(this.el,e,o,r)}},r.prototype.unbindAll=function(){for(var e in this._events)this.unbindAllOf(e)},r.prototype.unbindAllOf=function(e){var t=this._events[e];if(t)for(var n in t)this.unbind(e,n)}},{"component-event":205,"delegate-events":206}],205:[function(e,t,n){var r=window.addEventListener?"addEventListener":"attachEvent",o=window.removeEventListener?"removeEventListener":"detachEvent",i="addEventListener"!==r?"on":"";n.bind=function(e,t,n,o){return e[r](i+t,n,o||!1),n},n.unbind=function(e,t,n,r){return e[o](i+t,n,r||!1),n}},{}],206:[function(e,t,n){var r=e("closest"),o=e("component-event"),i=["focus","blur"];n.bind=function(e,t,n,a,s){return-1!==i.indexOf(n)&&(s=!0),o.bind(e,n,function(n){var o=n.target||n.srcElement;n.delegateTarget=r(o,t,!0,e),n.delegateTarget&&a.call(e,n)},s)},n.unbind=function(e,t,n,r){-1!==i.indexOf(t)&&(r=!0),o.unbind(e,t,n,r)}},{closest:207,"component-event":205}],207:[function(e,t,n){var r=e("matches-selector");t.exports=function(e,t,n){for(var o=n?e:e.parentNode;o&&o!==document;){if(r(o,t))return o;o=o.parentNode}}},{"matches-selector":208}],208:[function(e,t,n){function r(e,t){if(i)return i.call(e,t);for(var n=e.parentNode.querySelectorAll(t),r=0;r<n.length;++r)if(n[r]==e)return!0;return!1}var o=Element.prototype,i=o.matchesSelector||o.webkitMatchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector;t.exports=r},{}],209:[function(e,t,n){function r(e,t){if(-1==t.indexOf(".")&&-1==t.indexOf("["))return e[t];for(var n,r=t.split(/\.|\[|\]/g),o=-1,i=r.length;++o<i;)if(0==o&&(n=e),r[o]){if(void 0==n)break;n=n[r[o]]}return n}t.exports=r},{}],210:[function(e,t,n){t.exports=e(30)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/index.js":30,"lodash._baseassign":211,"lodash._createassigner":213,"lodash.keys":217}],211:[function(e,t,n){t.exports=e(31)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._baseassign/index.js":31,"lodash._basecopy":212,"lodash.keys":217}],212:[function(e,t,n){t.exports=e(32)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._baseassign/node_modules/lodash._basecopy/index.js":32}],213:[function(e,t,n){t.exports=e(33)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/index.js":33,"lodash._bindcallback":214,"lodash._isiterateecall":215,"lodash.restparam":216}],214:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],215:[function(e,t,n){t.exports=e(35)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._isiterateecall/index.js":35}],216:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],217:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":218,"lodash.isarguments":219,"lodash.isarray":220}],218:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],219:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],220:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],221:[function(e,t,n){t.exports=e(40)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/index.js":40,"lodash._createwrapper":222,"lodash._replaceholders":225,"lodash.restparam":226}],222:[function(e,t,n){t.exports=e(41)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._createwrapper/index.js":41,"lodash._arraycopy":223,"lodash._basecreate":224,"lodash._replaceholders":225}],223:[function(e,t,n){t.exports=e(42)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._createwrapper/node_modules/lodash._arraycopy/index.js":42}],224:[function(e,t,n){t.exports=e(43)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._createwrapper/node_modules/lodash._basecreate/index.js":43 -}],225:[function(e,t,n){t.exports=e(44)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.bind/node_modules/lodash._replaceholders/index.js":44}],226:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],227:[function(e,t,n){function r(e,t,n){var r=e?e.length:0;return n&&i(e,t,n)&&(t=!1),r?o(e,t):[]}var o=e("lodash._baseflatten"),i=e("lodash._isiterateecall");t.exports=r},{"lodash._baseflatten":228,"lodash._isiterateecall":231}],228:[function(e,t,n){t.exports=e(117)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._baseflatten/index.js":117,"lodash.isarguments":229,"lodash.isarray":230}],229:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],230:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],231:[function(e,t,n){t.exports=e(35)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash._isiterateecall/index.js":35}],232:[function(e,t,n){t.exports=e(15)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/index.js":15,"lodash._arrayeach":233,"lodash._baseeach":234,"lodash._bindcallback":238,"lodash.isarray":239}],233:[function(e,t,n){t.exports=e(16)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._arrayeach/index.js":16}],234:[function(e,t,n){t.exports=e(17)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._baseeach/index.js":17,"lodash.keys":235}],235:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":236,"lodash.isarguments":237,"lodash.isarray":239}],236:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],237:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],238:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],239:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],240:[function(e,t,n){function r(e){return function(t){return null==t?void 0:t[e]}}function o(e){return null!=e&&a(g(e))}function i(e,t){var n=typeof e;if("string"==n&&p.test(e)||"number"==n)return!0;if(d(e))return!1;var r=!h.test(e);return r||null!=t&&e in s(t)}function a(e){return"number"==typeof e&&e>-1&&e%1==0&&m>=e}function s(e){return u(e)?e:Object(e)}function u(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var l=e("lodash._baseeach"),c=e("lodash._invokepath"),d=e("lodash.isarray"),f=e("lodash.restparam"),h=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,p=/^\w*$/,m=9007199254740991,g=r("length"),v=f(function(e,t,n){var r=-1,a="function"==typeof t,s=i(t),u=o(e)?Array(e.length):[];return l(e,function(e){var o=a?t:s&&null!=e?e[t]:void 0;u[++r]=o?o.apply(e,n):c(e,t,n)}),u});t.exports=v},{"lodash._baseeach":241,"lodash._invokepath":245,"lodash.isarray":249,"lodash.restparam":250}],241:[function(e,t,n){t.exports=e(17)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._baseeach/index.js":17,"lodash.keys":242}],242:[function(e,t,n){t.exports=e(23)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/index.js":23,"lodash._getnative":243,"lodash.isarguments":244,"lodash.isarray":249}],243:[function(e,t,n){t.exports=e(24)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.keys/node_modules/lodash._getnative/index.js":24}],244:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],245:[function(e,t,n){function r(e,t,n){null==e||o(t,e)||(t=c(t),e=1==t.length?e:u(e,l(t,0,-1)),t=a(t));var r=null==e?e:e[t];return null==r?void 0:r.apply(e,n)}function o(e,t){var n=typeof e;if("string"==n&&h.test(e)||"number"==n)return!0;if(d(e))return!1;var r=!f.test(e);return r||null!=t&&e in i(t)}function i(e){return s(e)?e:Object(e)}function a(e){var t=e?e.length:0;return t?e[t-1]:void 0}function s(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var u=e("lodash._baseget"),l=e("lodash._baseslice"),c=e("lodash._topath"),d=e("lodash.isarray"),f=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,h=/^\w*$/;t.exports=r},{"lodash._baseget":246,"lodash._baseslice":247,"lodash._topath":248,"lodash.isarray":249}],246:[function(e,t,n){t.exports=e(87)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.has/node_modules/lodash._baseget/index.js":87}],247:[function(e,t,n){t.exports=e(88)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.has/node_modules/lodash._baseslice/index.js":88}],248:[function(e,t,n){t.exports=e(89)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.has/node_modules/lodash._topath/index.js":89,"lodash.isarray":249}],249:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],250:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],251:[function(e,t,n){t.exports=e(22)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isstring/index.js":22}],252:[function(e,t,n){function r(e){var t=e?e.length:0;return t?e[t-1]:void 0}t.exports=r},{}],253:[function(e,t,n){var r=e("lodash._baseflatten"),o=e("lodash._bindcallback"),i=e("lodash._pickbyarray"),a=e("lodash._pickbycallback"),s=e("lodash.restparam"),u=s(function(e,t){return null==e?{}:"function"==typeof t[0]?a(e,o(t[0],t[1],3)):i(e,r(t))});t.exports=u},{"lodash._baseflatten":254,"lodash._bindcallback":257,"lodash._pickbyarray":258,"lodash._pickbycallback":259,"lodash.restparam":264}],254:[function(e,t,n){t.exports=e(117)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._baseflatten/index.js":117,"lodash.isarguments":255,"lodash.isarray":256}],255:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],256:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],257:[function(e,t,n){t.exports=e(18)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.foreach/node_modules/lodash._bindcallback/index.js":18}],258:[function(e,t,n){t.exports=e(120)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._pickbyarray/index.js":120}],259:[function(e,t,n){t.exports=e(121)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash._pickbycallback/index.js":121,"lodash._basefor":260,"lodash.keysin":261}],260:[function(e,t,n){t.exports=e(81)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.forown/node_modules/lodash._basefor/index.js":81}],261:[function(e,t,n){t.exports=e(123)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.omit/node_modules/lodash.keysin/index.js":123,"lodash.isarguments":262,"lodash.isarray":263}],262:[function(e,t,n){t.exports=e(20)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isarguments/index.js":20}],263:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],264:[function(e,t,n){t.exports=e(36)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.assign/node_modules/lodash._createassigner/node_modules/lodash.restparam/index.js":36}],265:[function(e,t,n){t.exports=e(126)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.result/index.js":126,"lodash._baseget":266,"lodash._baseslice":267,"lodash._topath":268,"lodash.isarray":269,"lodash.isfunction":270}],266:[function(e,t,n){t.exports=e(87)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.has/node_modules/lodash._baseget/index.js":87}],267:[function(e,t,n){t.exports=e(88)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.has/node_modules/lodash._baseslice/index.js":88}],268:[function(e,t,n){t.exports=e(89)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-state/node_modules/lodash.has/node_modules/lodash._topath/index.js":89,"lodash.isarray":269}],269:[function(e,t,n){t.exports=e(46)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/lodash.isarray/index.js":46}],270:[function(e,t,n){t.exports=e(21)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.isempty/node_modules/lodash.isfunction/index.js":21}],271:[function(e,t,n){t.exports=e(28)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.uniqueid/index.js":28,"lodash._basetostring":272}],272:[function(e,t,n){t.exports=e(29)},{"/home/alexg/work/wiredtiger/tools/wtstats/template/node_modules/ampersand-collection/node_modules/ampersand-events/node_modules/lodash.uniqueid/node_modules/lodash._basetostring/index.js":29}],273:[function(e,t,n){"use strict";function r(e,t){if(i)return i.call(e,t);for(var n=e.parentNode.querySelectorAll(t),r=0;r<n.length;r++)if(n[r]==e)return!0;return!1}var o=Element.prototype,i=o.matches||o.matchesSelector||o.webkitMatchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector;t.exports=r},{}],274:[function(e,t,n){+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),data=r.data("bs.button"),o="object"==typeof t&&t;data||r.data("bs.button",data=new n(this,o)),"toggle"==t?data.toggle():t&&data.setState(t)})}var n=function(t,r){this.$element=e(t),this.options=e.extend({},n.DEFAULTS,r),this.isLoading=!1};n.VERSION="3.2.0",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(t){var n="disabled",r=this.$element,o=r.is("input")?"val":"html",data=r.data();t+="Text",null==data.resetText&&r.data("resetText",r[o]()),r[o](null==data[t]?this.options[t]:data[t]),setTimeout(e.proxy(function(){"loadingText"==t?(this.isLoading=!0,r.addClass(n).attr(n,n)):this.isLoading&&(this.isLoading=!1,r.removeClass(n).removeAttr(n))},this),0)},n.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var n=this.$element.find("input");"radio"==n.prop("type")&&(n.prop("checked")&&this.$element.hasClass("active")?e=!1:t.find(".active").removeClass("active")),e&&n.prop("checked",!this.$element.hasClass("active")).trigger("change")}e&&this.$element.toggleClass("active")};var r=e.fn.button;e.fn.button=t,e.fn.button.Constructor=n,e.fn.button.noConflict=function(){return e.fn.button=r,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var r=e(n.target);r.hasClass("btn")||(r=r.closest(".btn")),t.call(r,"toggle"),n.preventDefault()})}(jQuery)},{}],275:[function(e,t,n){+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),data=r.data("bs.collapse"),o=e.extend({},n.DEFAULTS,r.data(),"object"==typeof t&&t);!data&&o.toggle&&"show"==t&&(t=!t),data||r.data("bs.collapse",data=new n(this,o)),"string"==typeof t&&data[t]()})}var n=function(t,r){this.$element=e(t),this.options=e.extend({},n.DEFAULTS,r),this.transitioning=null,this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};n.VERSION="3.2.0",n.DEFAULTS={toggle:!0},n.prototype.dimension=function(){var e=this.$element.hasClass("width");return e?"width":"height"},n.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var n=e.Event("show.bs.collapse");if(this.$element.trigger(n),!n.isDefaultPrevented()){var r=this.$parent&&this.$parent.find("> .panel > .in");if(r&&r.length){var o=r.data("bs.collapse");if(o&&o.transitioning)return;t.call(r,"hide"),o||r.data("bs.collapse",null)}var i=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[i](0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[i](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return a.call(this);var s=e.camelCase(["scroll",i].join("-"));this.$element.one("bsTransitionEnd",e.proxy(a,this)).emulateTransitionEnd(350)[i](this.$element[0][s])}}},n.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var t=e.Event("hide.bs.collapse");if(this.$element.trigger(t),!t.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var r=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return e.support.transition?void this.$element[n](0).one("bsTransitionEnd",e.proxy(r,this)).emulateTransitionEnd(350):r.call(this)}}},n.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var r=e.fn.collapse;e.fn.collapse=t,e.fn.collapse.Constructor=n,e.fn.collapse.noConflict=function(){return e.fn.collapse=r,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(n){var r,o=e(this),i=o.attr("data-target")||n.preventDefault()||(r=o.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),a=e(i),data=a.data("bs.collapse"),s=data?"toggle":o.data(),u=o.attr("data-parent"),l=u&&e(u);data&&data.transitioning||(l&&l.find('[data-toggle="collapse"][data-parent="'+u+'"]').not(o).addClass("collapsed"),o[a.hasClass("in")?"addClass":"removeClass"]("collapsed")),t.call(a,s)})}(jQuery)},{}],276:[function(e,t,n){+function(e){"use strict";function t(t){t&&3===t.which||(e(o).remove(),e(i).each(function(){var r=n(e(this)),o={relatedTarget:this};r.hasClass("open")&&(r.trigger(t=e.Event("hide.bs.dropdown",o)),t.isDefaultPrevented()||r.removeClass("open").trigger("hidden.bs.dropdown",o))}))}function n(t){var n=t.attr("data-target");n||(n=t.attr("href"),n=n&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r=n&&e(n);return r&&r.length?r:t.parent()}function r(t){return this.each(function(){var n=e(this),data=n.data("bs.dropdown");data||n.data("bs.dropdown",data=new a(this)),"string"==typeof t&&data[t].call(n)})}var o=".dropdown-backdrop",i='[data-toggle="dropdown"]',a=function(t){e(t).on("click.bs.dropdown",this.toggle)};a.VERSION="3.2.0",a.prototype.toggle=function(r){var o=e(this);if(!o.is(".disabled, :disabled")){var i=n(o),a=i.hasClass("open");if(t(),!a){"ontouchstart"in document.documentElement&&!i.closest(".navbar-nav").length&&e('<div class="dropdown-backdrop"/>').insertAfter(e(this)).on("click",t);var s={relatedTarget:this};if(i.trigger(r=e.Event("show.bs.dropdown",s)),r.isDefaultPrevented())return;o.trigger("focus"),i.toggleClass("open").trigger("shown.bs.dropdown",s)}return!1}},a.prototype.keydown=function(t){if(/(38|40|27)/.test(t.keyCode)){var r=e(this);if(t.preventDefault(),t.stopPropagation(),!r.is(".disabled, :disabled")){var o=n(r),a=o.hasClass("open");if(!a||a&&27==t.keyCode)return 27==t.which&&o.find(i).trigger("focus"),r.trigger("click");var s=" li:not(.divider):visible a",u=o.find('[role="menu"]'+s+', [role="listbox"]'+s);if(u.length){var l=u.index(u.filter(":focus"));38==t.keyCode&&l>0&&l--,40==t.keyCode&&l<u.length-1&&l++,~l||(l=0),u.eq(l).trigger("focus")}}}};var s=e.fn.dropdown;e.fn.dropdown=r,e.fn.dropdown.Constructor=a,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.bs.dropdown.data-api",t).on("click.bs.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.bs.dropdown.data-api",i,a.prototype.toggle).on("keydown.bs.dropdown.data-api",i+', [role="menu"], [role="listbox"]',a.prototype.keydown)}(jQuery)},{}],277:[function(e,t,n){+function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return{end:t[n]};return!1}e.fn.emulateTransitionEnd=function(t){var n=!1,r=this;e(this).one("bsTransitionEnd",function(){n=!0});var o=function(){n||e(r).trigger(e.support.transition.end)};return setTimeout(o,t),this},e(function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){return e(t.target).is(this)?t.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery)},{}],278:[function(e,t,n){},{}],279:[function(e,t,n){!function(){function e(e){return e&&(e.ownerDocument||e.document||e).documentElement}function n(e){return e&&(e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView)}function r(e,t){return t>e?-1:e>t?1:e>=t?0:NaN}function o(e){return null===e?NaN:+e}function i(e){return!isNaN(e)}function a(e){return{left:function(t,n,r,o){for(arguments.length<3&&(r=0),arguments.length<4&&(o=t.length);o>r;){var i=r+o>>>1;e(t[i],n)<0?r=i+1:o=i}return r},right:function(t,n,r,o){for(arguments.length<3&&(r=0),arguments.length<4&&(o=t.length);o>r;){var i=r+o>>>1;e(t[i],n)>0?o=i:r=i+1}return r}}}function s(e){return e.length}function u(e){for(var t=1;e*t%1;)t*=10;return t}function l(e,t){for(var n in t)Object.defineProperty(e.prototype,n,{value:t[n],enumerable:!1})}function c(){this._=Object.create(null)}function d(e){return(e+="")===ba||e[0]===ka?ka+e:e}function f(e){return(e+="")[0]===ka?e.slice(1):e}function h(e){return d(e)in this._}function p(e){return(e=d(e))in this._&&delete this._[e]}function m(){var e=[];for(var t in this._)e.push(f(t));return e}function g(){var e=0;for(var t in this._)++e;return e}function v(){for(var e in this._)return!1;return!0}function y(){this._=Object.create(null)}function x(e){return e}function w(e,t,n){return function(){var r=n.apply(t,arguments);return r===t?e:r}}function _(e,t){if(t in e)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var n=0,r=ja.length;r>n;++n){var o=ja[n]+t;if(o in e)return o}}function b(){}function k(){}function j(e){function t(){for(var t,r=n,o=-1,i=r.length;++o<i;)(t=r[o].on)&&t.apply(this,arguments);return e}var n=[],r=new c;return t.on=function(t,o){var i,a=r.get(t);return arguments.length<2?a&&a.on:(a&&(a.on=null,n=n.slice(0,i=n.indexOf(a)).concat(n.slice(i+1)),r.remove(t)),o&&n.push(r.set(t,{on:o})),e)},t}function M(){la.event.preventDefault()}function E(){for(var e,t=la.event;e=t.sourceEvent;)t=e;return t}function C(e){for(var t=new k,n=0,r=arguments.length;++n<r;)t[arguments[n]]=j(t);return t.of=function(n,r){return function(o){try{var i=o.sourceEvent=la.event;o.target=e,la.event=o,t[o.type].apply(n,r)}finally{la.event=i}}},t}function S(e){return Ea(e,Aa),e}function T(e){return"function"==typeof e?e:function(){return Ca(e,this)}}function A(e){return"function"==typeof e?e:function(){return Sa(e,this)}}function N(e,t){function n(){this.removeAttribute(e)}function r(){this.removeAttributeNS(e.space,e.local)}function o(){this.setAttribute(e,t)}function i(){this.setAttributeNS(e.space,e.local,t)}function a(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}function s(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}return e=la.ns.qualify(e),null==t?e.local?r:n:"function"==typeof t?e.local?s:a:e.local?i:o}function O(e){return e.trim().replace(/\s+/g," ")}function q(e){return new RegExp("(?:^|\\s+)"+la.requote(e)+"(?:\\s+|$)","g")}function D(e){return(e+"").trim().split(/^|\s+/)}function L(e,t){function n(){for(var n=-1;++n<o;)e[n](this,t)}function r(){for(var n=-1,r=t.apply(this,arguments);++n<o;)e[n](this,r)}e=D(e).map(F);var o=e.length;return"function"==typeof t?r:n}function F(e){var t=q(e);return function(n,r){if(o=n.classList)return r?o.add(e):o.remove(e);var o=n.getAttribute("class")||"";r?(t.lastIndex=0,t.test(o)||n.setAttribute("class",O(o+" "+e))):n.setAttribute("class",O(o.replace(t," ")))}}function z(e,t,n){function r(){this.style.removeProperty(e)}function o(){this.style.setProperty(e,t,n)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}return null==t?r:"function"==typeof t?i:o}function R(e,t){function n(){delete this[e]}function r(){this[e]=t}function o(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}return null==t?n:"function"==typeof t?o:r}function P(e){function t(){var t=this.ownerDocument,n=this.namespaceURI;return n?t.createElementNS(n,e):t.createElement(e)}function n(){return this.ownerDocument.createElementNS(e.space,e.local)}return"function"==typeof e?e:(e=la.ns.qualify(e)).local?n:t}function I(){var e=this.parentNode;e&&e.removeChild(this)}function H(data){return{__data__:data}}function $(e){return function(){return Ta(this,e)}}function B(e){return arguments.length||(e=r),function(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}}function V(e,t){for(var n=0,r=e.length;r>n;n++)for(var o,i=e[n],a=0,s=i.length;s>a;a++)(o=i[a])&&t(o,a,n);return e}function U(e){return Ea(e,Oa),e}function W(e){var t,n;return function(r,o,i){var a,s=e[i].update,u=s.length;for(i!=n&&(n=i,t=0),o>=t&&(t=o+1);!(a=s[t])&&++t<u;);return a}}function Y(e,t,n){function r(){var t=this[a];t&&(this.removeEventListener(e,t,t.$),delete this[a])}function o(){var o=u(t,da(arguments));r.call(this),this.addEventListener(e,this[a]=o,o.$=n),o._=t}function i(){var t,n=new RegExp("^__on([^.]+)"+la.requote(e)+"$");for(var r in this)if(t=r.match(n)){var o=this[r];this.removeEventListener(t[1],o,o.$),delete this[r]}}var a="__on"+e,s=e.indexOf("."),u=X;s>0&&(e=e.slice(0,s));var l=qa.get(e);return l&&(e=l,u=J),s?t?o:r:t?b:i}function X(e,t){return function(n){var r=la.event;la.event=n,t[0]=this.__data__;try{e.apply(this,t)}finally{la.event=r}}}function J(e,t){var n=X(e,t);return function(e){var t=this,r=e.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||n.call(t,e)}}function Z(t){var r=".dragsuppress-"+ ++La,o="click"+r,i=la.select(n(t)).on("touchmove"+r,M).on("dragstart"+r,M).on("selectstart"+r,M);if(null==Da&&(Da="onselectstart"in t?!1:_(t.style,"userSelect")),Da){var a=e(t).style,s=a[Da];a[Da]="none"}return function(e){if(i.on(r,null),Da&&(a[Da]=s),e){var t=function(){i.on(o,null)};i.on(o,function(){M(),t()},!0),setTimeout(t,0)}}}function K(e,t){t.changedTouches&&(t=t.changedTouches[0]);var r=e.ownerSVGElement||e;if(r.createSVGPoint){var o=r.createSVGPoint();if(0>Fa){var i=n(e);if(i.scrollX||i.scrollY){r=la.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var a=r[0][0].getScreenCTM();Fa=!(a.f||a.e),r.remove()}}return Fa?(o.x=t.pageX,o.y=t.pageY):(o.x=t.clientX,o.y=t.clientY),o=o.matrixTransform(e.getScreenCTM().inverse()),[o.x,o.y]}var s=e.getBoundingClientRect();return[t.clientX-s.left-e.clientLeft,t.clientY-s.top-e.clientTop]}function G(){return la.event.changedTouches[0].identifier}function Q(e){return e>0?1:0>e?-1:0}function ee(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])}function te(e){return e>1?0:-1>e?Pa:Math.acos(e)}function ne(e){return e>1?$a:-1>e?-$a:Math.asin(e)}function re(e){return((e=Math.exp(e))-1/e)/2}function oe(e){return((e=Math.exp(e))+1/e)/2}function ie(e){return((e=Math.exp(2*e))-1)/(e+1)}function ae(e){return(e=Math.sin(e/2))*e}function se(){}function ue(e,t,n){return this instanceof ue?(this.h=+e,this.s=+t,void(this.l=+n)):arguments.length<2?e instanceof ue?new ue(e.h,e.s,e.l):be(""+e,ke,ue):new ue(e,t,n)}function le(e,t,n){function r(e){return e>360?e-=360:0>e&&(e+=360),60>e?i+(a-i)*e/60:180>e?a:240>e?i+(a-i)*(240-e)/60:i}function o(e){return Math.round(255*r(e))}var i,a;return e=isNaN(e)?0:(e%=360)<0?e+360:e,t=isNaN(t)?0:0>t?0:t>1?1:t,n=0>n?0:n>1?1:n,a=.5>=n?n*(1+t):n+t-n*t,i=2*n-a,new ye(o(e+120),o(e),o(e-120))}function ce(e,t,n){return this instanceof ce?(this.h=+e,this.c=+t,void(this.l=+n)):arguments.length<2?e instanceof ce?new ce(e.h,e.c,e.l):e instanceof fe?pe(e.l,e.a,e.b):pe((e=je((e=la.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new ce(e,t,n)}function de(e,t,n){return isNaN(e)&&(e=0),isNaN(t)&&(t=0),new fe(n,Math.cos(e*=Ba)*t,Math.sin(e)*t)}function fe(e,t,n){return this instanceof fe?(this.l=+e,this.a=+t,void(this.b=+n)):arguments.length<2?e instanceof fe?new fe(e.l,e.a,e.b):e instanceof ce?de(e.h,e.c,e.l):je((e=ye(e)).r,e.g,e.b):new fe(e,t,n)}function he(e,t,n){var r=(e+16)/116,o=r+t/500,i=r-n/200;return o=me(o)*es,r=me(r)*ts,i=me(i)*ns,new ye(ve(3.2404542*o-1.5371385*r-.4985314*i),ve(-.969266*o+1.8760108*r+.041556*i),ve(.0556434*o-.2040259*r+1.0572252*i))}function pe(e,t,n){return e>0?new ce(Math.atan2(n,t)*Va,Math.sqrt(t*t+n*n),e):new ce(NaN,NaN,e)}function me(e){return e>.206893034?e*e*e:(e-4/29)/7.787037}function ge(e){return e>.008856?Math.pow(e,1/3):7.787037*e+4/29}function ve(e){return Math.round(255*(.00304>=e?12.92*e:1.055*Math.pow(e,1/2.4)-.055))}function ye(e,t,n){return this instanceof ye?(this.r=~~e,this.g=~~t,void(this.b=~~n)):arguments.length<2?e instanceof ye?new ye(e.r,e.g,e.b):be(""+e,ye,le):new ye(e,t,n)}function xe(e){return new ye(e>>16,e>>8&255,255&e)}function we(e){return xe(e)+""}function _e(e){return 16>e?"0"+Math.max(0,e).toString(16):Math.min(255,e).toString(16)}function be(e,t,n){var r,o,i,a=0,s=0,u=0;if(r=/([a-z]+)\((.*)\)/.exec(e=e.toLowerCase()))switch(o=r[2].split(","),r[1]){case"hsl":return n(parseFloat(o[0]),parseFloat(o[1])/100,parseFloat(o[2])/100);case"rgb":return t(Ee(o[0]),Ee(o[1]),Ee(o[2]))}return(i=is.get(e))?t(i.r,i.g,i.b):(null==e||"#"!==e.charAt(0)||isNaN(i=parseInt(e.slice(1),16))||(4===e.length?(a=(3840&i)>>4,a=a>>4|a,s=240&i,s=s>>4|s,u=15&i,u=u<<4|u):7===e.length&&(a=(16711680&i)>>16,s=(65280&i)>>8,u=255&i)),t(a,s,u))}function ke(e,t,n){var r,o,i=Math.min(e/=255,t/=255,n/=255),a=Math.max(e,t,n),s=a-i,u=(a+i)/2;return s?(o=.5>u?s/(a+i):s/(2-a-i),r=e==a?(t-n)/s+(n>t?6:0):t==a?(n-e)/s+2:(e-t)/s+4,r*=60):(r=NaN,o=u>0&&1>u?0:r),new ue(r,o,u)}function je(e,t,n){e=Me(e),t=Me(t),n=Me(n);var r=ge((.4124564*e+.3575761*t+.1804375*n)/es),o=ge((.2126729*e+.7151522*t+.072175*n)/ts),i=ge((.0193339*e+.119192*t+.9503041*n)/ns);return fe(116*o-16,500*(r-o),200*(o-i))}function Me(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Ee(e){var t=parseFloat(e);return"%"===e.charAt(e.length-1)?Math.round(2.55*t):t}function Ce(e){return"function"==typeof e?e:function(){return e}}function Se(e){return function(t,n,r){return 2===arguments.length&&"function"==typeof n&&(r=n,n=null),Te(t,n,e,r)}}function Te(e,t,n,r){function o(){var e,t=u.status;if(!t&&Ne(u)||t>=200&&300>t||304===t){try{e=n.call(i,u)}catch(r){return void a.error.call(i,r)}a.load.call(i,e)}else a.error.call(i,u)}var i={},a=la.dispatch("beforesend","progress","load","error"),s={},u=new XMLHttpRequest,l=null;return!this.XDomainRequest||"withCredentials"in u||!/^(http(s)?:)?\/\//.test(e)||(u=new XDomainRequest),"onload"in u?u.onload=u.onerror=o:u.onreadystatechange=function(){u.readyState>3&&o()},u.onprogress=function(e){var t=la.event;la.event=e;try{a.progress.call(i,u)}finally{la.event=t}},i.header=function(e,t){return e=(e+"").toLowerCase(),arguments.length<2?s[e]:(null==t?delete s[e]:s[e]=t+"",i)},i.mimeType=function(e){return arguments.length?(t=null==e?null:e+"",i):t},i.responseType=function(e){return arguments.length?(l=e,i):l},i.response=function(e){return n=e,i},["get","post"].forEach(function(e){i[e]=function(){return i.send.apply(i,[e].concat(da(arguments)))}}),i.send=function(n,data,r){if(2===arguments.length&&"function"==typeof data&&(r=data,data=null),u.open(n,e,!0),null==t||"accept"in s||(s.accept=t+",*/*"),u.setRequestHeader)for(var o in s)u.setRequestHeader(o,s[o]);return null!=t&&u.overrideMimeType&&u.overrideMimeType(t),null!=l&&(u.responseType=l),null!=r&&i.on("error",r).on("load",function(e){r(null,e)}),a.beforesend.call(i,u),u.send(null==data?null:data),i},i.abort=function(){return u.abort(),i},la.rebind(i,a,"on"),null==r?i:i.get(Ae(r))}function Ae(e){return 1===e.length?function(t,n){e(null==t?n:null)}:e}function Ne(e){var t=e.responseType;return t&&"text"!==t?e.response:e.responseText}function Oe(e,t,n){var r=arguments.length;2>r&&(t=0),3>r&&(n=Date.now());var o=n+t,i={c:e,t:o,n:null};return ss?ss.n=i:as=i,ss=i,us||(ls=clearTimeout(ls),us=1,cs(qe)),i}function qe(){var e=De(),t=Le()-e;t>24?(isFinite(t)&&(clearTimeout(ls),ls=setTimeout(qe,t)),us=0):(us=1,cs(qe))}function De(){for(var e=Date.now(),t=as;t;)e>=t.t&&t.c(e-t.t)&&(t.c=null),t=t.n;return e}function Le(){for(var e,t=as,n=1/0;t;)t.c?(t.t<n&&(n=t.t),t=(e=t).n):t=e?e.n=t.n:as=t.n;return ss=e,n}function Fe(e,t){return t-(e?Math.ceil(Math.log(e)/Math.LN10):1)}function ze(e,t){var n=Math.pow(10,3*_a(8-t));return{scale:t>8?function(e){return e/n}:function(e){return e*n},symbol:e}}function Re(e){var t=e.decimal,n=e.thousands,r=e.grouping,o=e.currency,i=r&&n?function(e,t){for(var o=e.length,i=[],a=0,s=r[0],u=0;o>0&&s>0&&(u+s+1>t&&(s=Math.max(1,t-u)),i.push(e.substring(o-=s,o+s)),!((u+=s+1)>t));)s=r[a=(a+1)%r.length];return i.reverse().join(n)}:x;return function(e){var n=fs.exec(e),r=n[1]||" ",a=n[2]||">",s=n[3]||"-",u=n[4]||"",l=n[5],c=+n[6],d=n[7],f=n[8],h=n[9],p=1,m="",g="",v=!1,y=!0;switch(f&&(f=+f.substring(1)),(l||"0"===r&&"="===a)&&(l=r="0", -a="="),h){case"n":d=!0,h="g";break;case"%":p=100,g="%",h="f";break;case"p":p=100,g="%",h="r";break;case"b":case"o":case"x":case"X":"#"===u&&(m="0"+h.toLowerCase());case"c":y=!1;case"d":v=!0,f=0;break;case"s":p=-1,h="r"}"$"===u&&(m=o[0],g=o[1]),"r"!=h||f||(h="g"),null!=f&&("g"==h?f=Math.max(1,Math.min(21,f)):("e"==h||"f"==h)&&(f=Math.max(0,Math.min(20,f)))),h=hs.get(h)||Pe;var x=l&&d;return function(e){var n=g;if(v&&e%1)return"";var o=0>e||0===e&&0>1/e?(e=-e,"-"):"-"===s?"":s;if(0>p){var u=la.formatPrefix(e,f);e=u.scale(e),n=u.symbol+g}else e*=p;e=h(e,f);var w,_,b=e.lastIndexOf(".");if(0>b){var k=y?e.lastIndexOf("e"):-1;0>k?(w=e,_=""):(w=e.substring(0,k),_=e.substring(k))}else w=e.substring(0,b),_=t+e.substring(b+1);!l&&d&&(w=i(w,1/0));var j=m.length+w.length+_.length+(x?0:o.length),M=c>j?new Array(j=c-j+1).join(r):"";return x&&(w=i(M+w,M.length?c-_.length:1/0)),o+=m,e=w+_,("<"===a?o+e+M:">"===a?M+o+e:"^"===a?M.substring(0,j>>=1)+o+e+M.substring(j):o+(x?e:M+e))+n}}}function Pe(e){return e+""}function Ie(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function He(e,t,n){function r(t){var n=e(t),r=i(n,1);return r-t>t-n?n:r}function o(n){return t(n=e(new ms(n-1)),1),n}function i(e,n){return t(e=new ms(+e),n),e}function a(e,r,i){var a=o(e),s=[];if(i>1)for(;r>a;)n(a)%i||s.push(new Date(+a)),t(a,1);else for(;r>a;)s.push(new Date(+a)),t(a,1);return s}function s(e,t,n){try{ms=Ie;var r=new Ie;return r._=e,a(r,t,n)}finally{ms=Date}}e.floor=e,e.round=r,e.ceil=o,e.offset=i,e.range=a;var u=e.utc=$e(e);return u.floor=u,u.round=$e(r),u.ceil=$e(o),u.offset=$e(i),u.range=s,e}function $e(e){return function(t,n){try{ms=Ie;var r=new Ie;return r._=t,e(r,n)._}finally{ms=Date}}}function Be(e){function t(e){function t(t){for(var n,o,i,a=[],s=-1,u=0;++s<r;)37===e.charCodeAt(s)&&(a.push(e.slice(u,s)),null!=(o=vs[n=e.charAt(++s)])&&(n=e.charAt(++s)),(i=S[n])&&(n=i(t,null==o?"e"===n?" ":"0":o)),a.push(n),u=s+1);return a.push(e.slice(u,s)),a.join("")}var r=e.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},o=n(r,e,t,0);if(o!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&ms!==Ie,a=new(i?Ie:ms);return"j"in r?a.setFullYear(r.y,0,r.j):"W"in r||"U"in r?("w"in r||(r.w="W"in r?1:0),a.setFullYear(r.y,0,1),a.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(a.getDay()+5)%7:r.w+7*r.U-(a.getDay()+6)%7)):a.setFullYear(r.y,r.m,r.d),a.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),i?a._:a},t.toString=function(){return e},t}function n(e,t,n,r){for(var o,i,a,s=0,u=t.length,l=n.length;u>s;){if(r>=l)return-1;if(o=t.charCodeAt(s++),37===o){if(a=t.charAt(s++),i=T[a in vs?t.charAt(s++):a],!i||(r=i(e,n,r))<0)return-1}else if(o!=n.charCodeAt(r++))return-1}return r}function r(e,t,n){b.lastIndex=0;var r=b.exec(t.slice(n));return r?(e.w=k.get(r[0].toLowerCase()),n+r[0].length):-1}function o(e,t,n){w.lastIndex=0;var r=w.exec(t.slice(n));return r?(e.w=_.get(r[0].toLowerCase()),n+r[0].length):-1}function i(e,t,n){E.lastIndex=0;var r=E.exec(t.slice(n));return r?(e.m=C.get(r[0].toLowerCase()),n+r[0].length):-1}function a(e,t,n){j.lastIndex=0;var r=j.exec(t.slice(n));return r?(e.m=M.get(r[0].toLowerCase()),n+r[0].length):-1}function s(e,t,r){return n(e,S.c.toString(),t,r)}function u(e,t,r){return n(e,S.x.toString(),t,r)}function l(e,t,r){return n(e,S.X.toString(),t,r)}function c(e,t,n){var r=x.get(t.slice(n,n+=2).toLowerCase());return null==r?-1:(e.p=r,n)}var d=e.dateTime,f=e.date,h=e.time,p=e.periods,m=e.days,g=e.shortDays,v=e.months,y=e.shortMonths;t.utc=function(e){function n(e){try{ms=Ie;var t=new ms;return t._=e,r(t)}finally{ms=Date}}var r=t(e);return n.parse=function(e){try{ms=Ie;var t=r.parse(e);return t&&t._}finally{ms=Date}},n.toString=r.toString,n},t.multi=t.utc.multi=lt;var x=la.map(),w=Ue(m),_=We(m),b=Ue(g),k=We(g),j=Ue(v),M=We(v),E=Ue(y),C=We(y);p.forEach(function(e,t){x.set(e.toLowerCase(),t)});var S={a:function(e){return g[e.getDay()]},A:function(e){return m[e.getDay()]},b:function(e){return y[e.getMonth()]},B:function(e){return v[e.getMonth()]},c:t(d),d:function(e,t){return Ve(e.getDate(),t,2)},e:function(e,t){return Ve(e.getDate(),t,2)},H:function(e,t){return Ve(e.getHours(),t,2)},I:function(e,t){return Ve(e.getHours()%12||12,t,2)},j:function(e,t){return Ve(1+ps.dayOfYear(e),t,3)},L:function(e,t){return Ve(e.getMilliseconds(),t,3)},m:function(e,t){return Ve(e.getMonth()+1,t,2)},M:function(e,t){return Ve(e.getMinutes(),t,2)},p:function(e){return p[+(e.getHours()>=12)]},S:function(e,t){return Ve(e.getSeconds(),t,2)},U:function(e,t){return Ve(ps.sundayOfYear(e),t,2)},w:function(e){return e.getDay()},W:function(e,t){return Ve(ps.mondayOfYear(e),t,2)},x:t(f),X:t(h),y:function(e,t){return Ve(e.getFullYear()%100,t,2)},Y:function(e,t){return Ve(e.getFullYear()%1e4,t,4)},Z:st,"%":function(){return"%"}},T={a:r,A:o,b:i,B:a,c:s,d:tt,e:tt,H:rt,I:rt,j:nt,L:at,m:et,M:ot,p:c,S:it,U:Xe,w:Ye,W:Je,x:u,X:l,y:Ke,Y:Ze,Z:Ge,"%":ut};return t}function Ve(e,t,n){var r=0>e?"-":"",o=(r?-e:e)+"",i=o.length;return r+(n>i?new Array(n-i+1).join(t)+o:o)}function Ue(e){return new RegExp("^(?:"+e.map(la.requote).join("|")+")","i")}function We(e){for(var t=new c,n=-1,r=e.length;++n<r;)t.set(e[n].toLowerCase(),n);return t}function Ye(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Xe(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n));return r?(e.U=+r[0],n+r[0].length):-1}function Je(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n));return r?(e.W=+r[0],n+r[0].length):-1}function Ze(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Ke(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+2));return r?(e.y=Qe(+r[0]),n+r[0].length):-1}function Ge(e,t,n){return/^[+-]\d{4}$/.test(t=t.slice(n,n+5))?(e.Z=-t,n+5):-1}function Qe(e){return e+(e>68?1900:2e3)}function et(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function tt(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function nt(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+3));return r?(e.j=+r[0],n+r[0].length):-1}function rt(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function ot(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function it(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function at(e,t,n){ys.lastIndex=0;var r=ys.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function st(e){var t=e.getTimezoneOffset(),n=t>0?"-":"+",r=_a(t)/60|0,o=_a(t)%60;return n+Ve(r,"0",2)+Ve(o,"0",2)}function ut(e,t,n){xs.lastIndex=0;var r=xs.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function lt(e){for(var t=e.length,n=-1;++n<t;)e[n][0]=this(e[n][0]);return function(t){for(var n=0,r=e[n];!r[1](t);)r=e[++n];return r[0](t)}}function ct(){}function dt(e,t,n){var r=n.s=e+t,o=r-e,i=r-o;n.t=e-i+(t-o)}function ft(e,t){e&&ks.hasOwnProperty(e.type)&&ks[e.type](e,t)}function ht(e,t,n){var r,o=-1,i=e.length-n;for(t.lineStart();++o<i;)r=e[o],t.point(r[0],r[1],r[2]);t.lineEnd()}function pt(e,t){var n=-1,r=e.length;for(t.polygonStart();++n<r;)ht(e[n],t,1);t.polygonEnd()}function mt(){function e(e,t){e*=Ba,t=t*Ba/2+Pa/4;var n=e-r,a=n>=0?1:-1,s=a*n,u=Math.cos(t),l=Math.sin(t),c=i*l,d=o*u+c*Math.cos(s),f=c*a*Math.sin(s);Ms.add(Math.atan2(f,d)),r=e,o=u,i=l}var t,n,r,o,i;Es.point=function(a,s){Es.point=e,r=(t=a)*Ba,o=Math.cos(s=(n=s)*Ba/2+Pa/4),i=Math.sin(s)},Es.lineEnd=function(){e(t,n)}}function gt(e){var t=e[0],n=e[1],r=Math.cos(n);return[r*Math.cos(t),r*Math.sin(t),Math.sin(n)]}function vt(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function yt(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function xt(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function wt(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function _t(e){var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}function bt(e){return[Math.atan2(e[1],e[0]),ne(e[2])]}function kt(e,t){return _a(e[0]-t[0])<za&&_a(e[1]-t[1])<za}function jt(e,t){e*=Ba;var n=Math.cos(t*=Ba);Mt(n*Math.cos(e),n*Math.sin(e),Math.sin(t))}function Mt(e,t,n){++Cs,Ts+=(e-Ts)/Cs,As+=(t-As)/Cs,Ns+=(n-Ns)/Cs}function Et(){function e(e,o){e*=Ba;var i=Math.cos(o*=Ba),a=i*Math.cos(e),s=i*Math.sin(e),u=Math.sin(o),l=Math.atan2(Math.sqrt((l=n*u-r*s)*l+(l=r*a-t*u)*l+(l=t*s-n*a)*l),t*a+n*s+r*u);Ss+=l,Os+=l*(t+(t=a)),qs+=l*(n+(n=s)),Ds+=l*(r+(r=u)),Mt(t,n,r)}var t,n,r;Rs.point=function(o,i){o*=Ba;var a=Math.cos(i*=Ba);t=a*Math.cos(o),n=a*Math.sin(o),r=Math.sin(i),Rs.point=e,Mt(t,n,r)}}function Ct(){Rs.point=jt}function St(){function e(e,t){e*=Ba;var n=Math.cos(t*=Ba),a=n*Math.cos(e),s=n*Math.sin(e),u=Math.sin(t),l=o*u-i*s,c=i*a-r*u,d=r*s-o*a,f=Math.sqrt(l*l+c*c+d*d),h=r*a+o*s+i*u,p=f&&-te(h)/f,m=Math.atan2(f,h);Ls+=p*l,Fs+=p*c,zs+=p*d,Ss+=m,Os+=m*(r+(r=a)),qs+=m*(o+(o=s)),Ds+=m*(i+(i=u)),Mt(r,o,i)}var t,n,r,o,i;Rs.point=function(a,s){t=a,n=s,Rs.point=e,a*=Ba;var u=Math.cos(s*=Ba);r=u*Math.cos(a),o=u*Math.sin(a),i=Math.sin(s),Mt(r,o,i)},Rs.lineEnd=function(){e(t,n),Rs.lineEnd=Ct,Rs.point=jt}}function Tt(e,t){function n(n,r){return n=e(n,r),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,r){return n=t.invert(n,r),n&&e.invert(n[0],n[1])}),n}function At(){return!0}function Nt(e,t,n,r,o){var i=[],a=[];if(e.forEach(function(e){if(!((t=e.length-1)<=0)){var t,n=e[0],r=e[t];if(kt(n,r)){o.lineStart();for(var s=0;t>s;++s)o.point((n=e[s])[0],n[1]);return void o.lineEnd()}var u=new qt(n,e,null,!0),l=new qt(n,null,u,!1);u.o=l,i.push(u),a.push(l),u=new qt(r,e,null,!1),l=new qt(r,null,u,!0),u.o=l,i.push(u),a.push(l)}}),a.sort(t),Ot(i),Ot(a),i.length){for(var s=0,u=n,l=a.length;l>s;++s)a[s].e=u=!u;for(var c,d,f=i[0];;){for(var h=f,p=!0;h.v;)if((h=h.n)===f)return;c=h.z,o.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(var s=0,l=c.length;l>s;++s)o.point((d=c[s])[0],d[1]);else r(h.x,h.n.x,1,o);h=h.n}else{if(p){c=h.p.z;for(var s=c.length-1;s>=0;--s)o.point((d=c[s])[0],d[1])}else r(h.x,h.p.x,-1,o);h=h.p}h=h.o,c=h.z,p=!p}while(!h.v);o.lineEnd()}}}function Ot(e){if(t=e.length){for(var t,n,r=0,o=e[0];++r<t;)o.n=n=e[r],n.p=o,o=n;o.n=n=e[0],n.p=o}}function qt(e,t,n,r){this.x=e,this.z=t,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Dt(e,t,n,r){return function(o,i){function a(t,n){var r=o(t,n);e(t=r[0],n=r[1])&&i.point(t,n)}function s(e,t){var n=o(e,t);g.point(n[0],n[1])}function u(){y.point=s,g.lineStart()}function l(){y.point=a,g.lineEnd()}function c(e,t){m.push([e,t]);var n=o(e,t);w.point(n[0],n[1])}function d(){w.lineStart(),m=[]}function f(){c(m[0][0],m[0][1]),w.lineEnd();var e,t=w.clean(),n=x.buffer(),r=n.length;if(m.pop(),p.push(m),m=null,r)if(1&t){e=n[0];var o,r=e.length-1,a=-1;if(r>0){for(_||(i.polygonStart(),_=!0),i.lineStart();++a<r;)i.point((o=e[a])[0],o[1]);i.lineEnd()}}else r>1&&2&t&&n.push(n.pop().concat(n.shift())),h.push(n.filter(Lt))}var h,p,m,g=t(i),v=o.invert(r[0],r[1]),y={point:a,lineStart:u,lineEnd:l,polygonStart:function(){y.point=c,y.lineStart=d,y.lineEnd=f,h=[],p=[]},polygonEnd:function(){y.point=a,y.lineStart=u,y.lineEnd=l,h=la.merge(h);var e=Ht(v,p);h.length?(_||(i.polygonStart(),_=!0),Nt(h,zt,e,n,i)):e&&(_||(i.polygonStart(),_=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),_&&(i.polygonEnd(),_=!1),h=p=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}},x=Ft(),w=t(x),_=!1;return y}}function Lt(e){return e.length>1}function Ft(){var e,t=[];return{lineStart:function(){t.push(e=[])},point:function(t,n){e.push([t,n])},lineEnd:b,buffer:function(){var n=t;return t=[],e=null,n},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function zt(e,t){return((e=e.x)[0]<0?e[1]-$a-za:$a-e[1])-((t=t.x)[0]<0?t[1]-$a-za:$a-t[1])}function Rt(e){var t,n=NaN,r=NaN,o=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(i,a){var s=i>0?Pa:-Pa,u=_a(i-n);_a(u-Pa)<za?(e.point(n,r=(r+a)/2>0?$a:-$a),e.point(o,r),e.lineEnd(),e.lineStart(),e.point(s,r),e.point(i,r),t=0):o!==s&&u>=Pa&&(_a(n-o)<za&&(n-=o*za),_a(i-s)<za&&(i-=s*za),r=Pt(n,r,i,a),e.point(o,r),e.lineEnd(),e.lineStart(),e.point(s,r),t=0),e.point(n=i,r=a),o=s},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}function Pt(e,t,n,r){var o,i,a=Math.sin(e-n);return _a(a)>za?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(n)-Math.sin(r)*(o=Math.cos(t))*Math.sin(e))/(o*i*a)):(t+r)/2}function It(e,t,n,r){var o;if(null==e)o=n*$a,r.point(-Pa,o),r.point(0,o),r.point(Pa,o),r.point(Pa,0),r.point(Pa,-o),r.point(0,-o),r.point(-Pa,-o),r.point(-Pa,0),r.point(-Pa,o);else if(_a(e[0]-t[0])>za){var i=e[0]<t[0]?Pa:-Pa;o=n*i/2,r.point(-i,o),r.point(0,o),r.point(i,o)}else r.point(t[0],t[1])}function Ht(e,t){var n=e[0],r=e[1],o=[Math.sin(n),-Math.cos(n),0],i=0,a=0;Ms.reset();for(var s=0,u=t.length;u>s;++s){var l=t[s],c=l.length;if(c)for(var d=l[0],f=d[0],h=d[1]/2+Pa/4,p=Math.sin(h),m=Math.cos(h),g=1;;){g===c&&(g=0),e=l[g];var v=e[0],y=e[1]/2+Pa/4,x=Math.sin(y),w=Math.cos(y),_=v-f,b=_>=0?1:-1,k=b*_,j=k>Pa,M=p*x;if(Ms.add(Math.atan2(M*b*Math.sin(k),m*w+M*Math.cos(k))),i+=j?_+b*Ia:_,j^f>=n^v>=n){var E=yt(gt(d),gt(e));_t(E);var C=yt(o,E);_t(C);var S=(j^_>=0?-1:1)*ne(C[2]);(r>S||r===S&&(E[0]||E[1]))&&(a+=j^_>=0?1:-1)}if(!g++)break;f=v,p=x,m=w,d=e}}return(-za>i||za>i&&0>Ms)^1&a}function $t(e){function t(e,t){return Math.cos(e)*Math.cos(t)>i}function n(e){var n,i,u,l,c;return{lineStart:function(){l=u=!1,c=1},point:function(d,f){var h,p=[d,f],m=t(d,f),g=a?m?0:o(d,f):m?o(d+(0>d?Pa:-Pa),f):0;if(!n&&(l=u=m)&&e.lineStart(),m!==u&&(h=r(n,p),(kt(n,h)||kt(p,h))&&(p[0]+=za,p[1]+=za,m=t(p[0],p[1]))),m!==u)c=0,m?(e.lineStart(),h=r(p,n),e.point(h[0],h[1])):(h=r(n,p),e.point(h[0],h[1]),e.lineEnd()),n=h;else if(s&&n&&a^m){var v;g&i||!(v=r(p,n,!0))||(c=0,a?(e.lineStart(),e.point(v[0][0],v[0][1]),e.point(v[1][0],v[1][1]),e.lineEnd()):(e.point(v[1][0],v[1][1]),e.lineEnd(),e.lineStart(),e.point(v[0][0],v[0][1])))}!m||n&&kt(n,p)||e.point(p[0],p[1]),n=p,u=m,i=g},lineEnd:function(){u&&e.lineEnd(),n=null},clean:function(){return c|(l&&u)<<1}}}function r(e,t,n){var r=gt(e),o=gt(t),a=[1,0,0],s=yt(r,o),u=vt(s,s),l=s[0],c=u-l*l;if(!c)return!n&&e;var d=i*u/c,f=-i*l/c,h=yt(a,s),p=wt(a,d),m=wt(s,f);xt(p,m);var g=h,v=vt(p,g),y=vt(g,g),x=v*v-y*(vt(p,p)-1);if(!(0>x)){var w=Math.sqrt(x),_=wt(g,(-v-w)/y);if(xt(_,p),_=bt(_),!n)return _;var b,k=e[0],j=t[0],M=e[1],E=t[1];k>j&&(b=k,k=j,j=b);var C=j-k,S=_a(C-Pa)<za,T=S||za>C;if(!S&&M>E&&(b=M,M=E,E=b),T?S?M+E>0^_[1]<(_a(_[0]-k)<za?M:E):M<=_[1]&&_[1]<=E:C>Pa^(k<=_[0]&&_[0]<=j)){var A=wt(g,(-v+w)/y);return xt(A,p),[_,bt(A)]}}}function o(t,n){var r=a?e:Pa-e,o=0;return-r>t?o|=1:t>r&&(o|=2),-r>n?o|=4:n>r&&(o|=8),o}var i=Math.cos(e),a=i>0,s=_a(i)>za,u=gn(e,6*Ba);return Dt(t,n,u,a?[0,-e]:[-Pa,e-Pa])}function Bt(e,t,n,r){return function(o){var i,a=o.a,s=o.b,u=a.x,l=a.y,c=s.x,d=s.y,f=0,h=1,p=c-u,m=d-l;if(i=e-u,p||!(i>0)){if(i/=p,0>p){if(f>i)return;h>i&&(h=i)}else if(p>0){if(i>h)return;i>f&&(f=i)}if(i=n-u,p||!(0>i)){if(i/=p,0>p){if(i>h)return;i>f&&(f=i)}else if(p>0){if(f>i)return;h>i&&(h=i)}if(i=t-l,m||!(i>0)){if(i/=m,0>m){if(f>i)return;h>i&&(h=i)}else if(m>0){if(i>h)return;i>f&&(f=i)}if(i=r-l,m||!(0>i)){if(i/=m,0>m){if(i>h)return;i>f&&(f=i)}else if(m>0){if(f>i)return;h>i&&(h=i)}return f>0&&(o.a={x:u+f*p,y:l+f*m}),1>h&&(o.b={x:u+h*p,y:l+h*m}),o}}}}}}function Vt(e,t,n,r){function o(r,o){return _a(r[0]-e)<za?o>0?0:3:_a(r[0]-n)<za?o>0?2:1:_a(r[1]-t)<za?o>0?1:0:o>0?3:2}function i(e,t){return a(e.x,t.x)}function a(e,t){var n=o(e,1),r=o(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(s){function u(e){for(var t=0,n=g.length,r=e[1],o=0;n>o;++o)for(var i,a=1,s=g[o],u=s.length,l=s[0];u>a;++a)i=s[a],l[1]<=r?i[1]>r&&ee(l,i,e)>0&&++t:i[1]<=r&&ee(l,i,e)<0&&--t,l=i;return 0!==t}function l(i,s,u,l){var c=0,d=0;if(null==i||(c=o(i,u))!==(d=o(s,u))||a(i,s)<0^u>0){do l.point(0===c||3===c?e:n,c>1?r:t);while((c=(c+u+4)%4)!==d)}else l.point(s[0],s[1])}function c(o,i){return o>=e&&n>=o&&i>=t&&r>=i}function d(e,t){c(e,t)&&s.point(e,t)}function f(){T.point=p,g&&g.push(v=[]),j=!0,k=!1,_=b=NaN}function h(){m&&(p(y,x),w&&k&&C.rejoin(),m.push(C.buffer())),T.point=d,k&&s.lineEnd()}function p(e,t){e=Math.max(-Is,Math.min(Is,e)),t=Math.max(-Is,Math.min(Is,t));var n=c(e,t);if(g&&v.push([e,t]),j)y=e,x=t,w=n,j=!1,n&&(s.lineStart(),s.point(e,t));else if(n&&k)s.point(e,t);else{var r={a:{x:_,y:b},b:{x:e,y:t}};S(r)?(k||(s.lineStart(),s.point(r.a.x,r.a.y)),s.point(r.b.x,r.b.y),n||s.lineEnd(),M=!1):n&&(s.lineStart(),s.point(e,t),M=!1)}_=e,b=t,k=n}var m,g,v,y,x,w,_,b,k,j,M,E=s,C=Ft(),S=Bt(e,t,n,r),T={point:d,lineStart:f,lineEnd:h,polygonStart:function(){s=C,m=[],g=[],M=!0},polygonEnd:function(){s=E,m=la.merge(m);var t=u([e,r]),n=M&&t,o=m.length;(n||o)&&(s.polygonStart(),n&&(s.lineStart(),l(null,null,1,s),s.lineEnd()),o&&Nt(m,i,t,l,s),s.polygonEnd()),m=g=v=null}};return T}}function Ut(e){var t=0,n=Pa/3,r=un(e),o=r(t,n);return o.parallels=function(e){return arguments.length?r(t=e[0]*Pa/180,n=e[1]*Pa/180):[t/Pa*180,n/Pa*180]},o}function Wt(e,t){function n(e,t){var n=Math.sqrt(i-2*o*Math.sin(t))/o;return[n*Math.sin(e*=o),a-n*Math.cos(e)]}var r=Math.sin(e),o=(r+Math.sin(t))/2,i=1+r*(2*o-r),a=Math.sqrt(i)/o;return n.invert=function(e,t){var n=a-t;return[Math.atan2(e,n)/o,ne((i-(e*e+n*n)*o*o)/(2*o))]},n}function Yt(){function e(e,t){$s+=o*e-r*t,r=e,o=t}var t,n,r,o;Ys.point=function(i,a){Ys.point=e,t=r=i,n=o=a},Ys.lineEnd=function(){e(t,n)}}function Xt(e,t){Bs>e&&(Bs=e),e>Us&&(Us=e),Vs>t&&(Vs=t),t>Ws&&(Ws=t)}function Jt(){function e(e,t){a.push("M",e,",",t,i)}function t(e,t){a.push("M",e,",",t),s.point=n}function n(e,t){a.push("L",e,",",t)}function r(){s.point=e}function o(){a.push("Z")}var i=Zt(4.5),a=[],s={point:e,lineStart:function(){s.point=t},lineEnd:r,polygonStart:function(){s.lineEnd=o},polygonEnd:function(){s.lineEnd=r,s.point=e},pointRadius:function(e){return i=Zt(e),s},result:function(){if(a.length){var e=a.join("");return a=[],e}}};return s}function Zt(e){return"m0,"+e+"a"+e+","+e+" 0 1,1 0,"+-2*e+"a"+e+","+e+" 0 1,1 0,"+2*e+"z"}function Kt(e,t){Ts+=e,As+=t,++Ns}function Gt(){function e(e,r){var o=e-t,i=r-n,a=Math.sqrt(o*o+i*i);Os+=a*(t+e)/2,qs+=a*(n+r)/2,Ds+=a,Kt(t=e,n=r)}var t,n;Js.point=function(r,o){Js.point=e,Kt(t=r,n=o)}}function Qt(){Js.point=Kt}function en(){function e(e,t){var n=e-r,i=t-o,a=Math.sqrt(n*n+i*i);Os+=a*(r+e)/2,qs+=a*(o+t)/2,Ds+=a,a=o*e-r*t,Ls+=a*(r+e),Fs+=a*(o+t),zs+=3*a,Kt(r=e,o=t)}var t,n,r,o;Js.point=function(i,a){Js.point=e,Kt(t=r=i,n=o=a)},Js.lineEnd=function(){e(t,n)}}function tn(e){function t(t,n){e.moveTo(t+a,n),e.arc(t,n,a,0,Ia)}function n(t,n){e.moveTo(t,n),s.point=r}function r(t,n){e.lineTo(t,n)}function o(){s.point=t}function i(){e.closePath()}var a=4.5,s={point:t,lineStart:function(){s.point=n},lineEnd:o,polygonStart:function(){s.lineEnd=i},polygonEnd:function(){s.lineEnd=o,s.point=t},pointRadius:function(e){return a=e,s},result:b};return s}function nn(e){function t(e){return(s?r:n)(e)}function n(t){return an(t,function(n,r){n=e(n,r),t.point(n[0],n[1])})}function r(t){function n(n,r){n=e(n,r),t.point(n[0],n[1])}function r(){x=NaN,j.point=i,t.lineStart()}function i(n,r){var i=gt([n,r]),a=e(n,r);o(x,w,y,_,b,k,x=a[0],w=a[1],y=n,_=i[0],b=i[1],k=i[2],s,t),t.point(x,w)}function a(){j.point=n,t.lineEnd()}function u(){r(),j.point=l,j.lineEnd=c}function l(e,t){i(d=e,f=t),h=x,p=w,m=_,g=b,v=k,j.point=i}function c(){o(x,w,y,_,b,k,h,p,d,m,g,v,s,t),j.lineEnd=a,a()}var d,f,h,p,m,g,v,y,x,w,_,b,k,j={point:n,lineStart:r,lineEnd:a,polygonStart:function(){t.polygonStart(),j.lineStart=u},polygonEnd:function(){t.polygonEnd(),j.lineStart=r}};return j}function o(t,n,r,s,u,l,c,d,f,h,p,m,g,v){var y=c-t,x=d-n,w=y*y+x*x;if(w>4*i&&g--){var _=s+h,b=u+p,k=l+m,j=Math.sqrt(_*_+b*b+k*k),M=Math.asin(k/=j),E=_a(_a(k)-1)<za||_a(r-f)<za?(r+f)/2:Math.atan2(b,_),C=e(E,M),S=C[0],T=C[1],A=S-t,N=T-n,O=x*A-y*N;(O*O/w>i||_a((y*A+x*N)/w-.5)>.3||a>s*h+u*p+l*m)&&(o(t,n,r,s,u,l,S,T,E,_/=j,b/=j,k,g,v),v.point(S,T),o(S,T,E,_,b,k,c,d,f,h,p,m,g,v))}}var i=.5,a=Math.cos(30*Ba),s=16;return t.precision=function(e){return arguments.length?(s=(i=e*e)>0&&16,t):Math.sqrt(i)},t}function rn(e){var t=nn(function(t,n){return e([t*Va,n*Va])});return function(e){return ln(t(e))}}function on(e){this.stream=e}function an(e,t){return{point:t,sphere:function(){e.sphere()},lineStart:function(){e.lineStart()},lineEnd:function(){e.lineEnd()},polygonStart:function(){e.polygonStart()},polygonEnd:function(){e.polygonEnd()}}}function sn(e){return un(function(){return e})()}function un(e){function t(e){return e=s(e[0]*Ba,e[1]*Ba),[e[0]*f+u,l-e[1]*f]}function n(e){return e=s.invert((e[0]-u)/f,(l-e[1])/f),e&&[e[0]*Va,e[1]*Va]}function r(){s=Tt(a=fn(v,y,w),i);var e=i(m,g);return u=h-e[0]*f,l=p+e[1]*f,o()}function o(){return c&&(c.valid=!1,c=null),t}var i,a,s,u,l,c,d=nn(function(e,t){return e=i(e,t),[e[0]*f+u,l-e[1]*f]}),f=150,h=480,p=250,m=0,g=0,v=0,y=0,w=0,_=Ps,b=x,k=null,j=null;return t.stream=function(e){return c&&(c.valid=!1),c=ln(_(a,d(b(e)))),c.valid=!0,c},t.clipAngle=function(e){return arguments.length?(_=null==e?(k=e,Ps):$t((k=+e)*Ba),o()):k},t.clipExtent=function(e){return arguments.length?(j=e,b=e?Vt(e[0][0],e[0][1],e[1][0],e[1][1]):x,o()):j},t.scale=function(e){return arguments.length?(f=+e,r()):f},t.translate=function(e){return arguments.length?(h=+e[0],p=+e[1],r()):[h,p]},t.center=function(e){return arguments.length?(m=e[0]%360*Ba,g=e[1]%360*Ba,r()):[m*Va,g*Va]},t.rotate=function(e){return arguments.length?(v=e[0]%360*Ba,y=e[1]%360*Ba,w=e.length>2?e[2]%360*Ba:0,r()):[v*Va,y*Va,w*Va]},la.rebind(t,d,"precision"),function(){return i=e.apply(this,arguments),t.invert=i.invert&&n,r()}}function ln(e){return an(e,function(t,n){e.point(t*Ba,n*Ba)})}function cn(e,t){return[e,t]}function dn(e,t){return[e>Pa?e-Ia:-Pa>e?e+Ia:e,t]}function fn(e,t,n){return e?t||n?Tt(pn(e),mn(t,n)):pn(e):t||n?mn(t,n):dn}function hn(e){return function(t,n){return t+=e,[t>Pa?t-Ia:-Pa>t?t+Ia:t,n]}}function pn(e){var t=hn(e);return t.invert=hn(-e),t}function mn(e,t){function n(e,t){var n=Math.cos(t),s=Math.cos(e)*n,u=Math.sin(e)*n,l=Math.sin(t),c=l*r+s*o;return[Math.atan2(u*i-c*a,s*r-l*o),ne(c*i+u*a)]}var r=Math.cos(e),o=Math.sin(e),i=Math.cos(t),a=Math.sin(t);return n.invert=function(e,t){var n=Math.cos(t),s=Math.cos(e)*n,u=Math.sin(e)*n,l=Math.sin(t),c=l*i-u*a;return[Math.atan2(u*i+l*a,s*r+c*o),ne(c*r-s*o)]},n}function gn(e,t){var n=Math.cos(e),r=Math.sin(e);return function(o,i,a,s){var u=a*t;null!=o?(o=vn(n,o),i=vn(n,i),(a>0?i>o:o>i)&&(o+=a*Ia)):(o=e+a*Ia,i=e-.5*u);for(var l,c=o;a>0?c>i:i>c;c-=u)s.point((l=bt([n,-r*Math.cos(c),-r*Math.sin(c)]))[0],l[1])}}function vn(e,t){var n=gt(t);n[0]-=e,_t(n);var r=te(-n[1]);return((-n[2]<0?-r:r)+2*Math.PI-za)%(2*Math.PI)}function yn(e,t,n){var r=la.range(e,t-za,n).concat(t);return function(e){return r.map(function(t){return[e,t]})}}function xn(e,t,n){var r=la.range(e,t-za,n).concat(t);return function(e){return r.map(function(t){return[t,e]})}}function wn(e){return e.source}function _n(e){return e.target}function bn(e,t,n,r){var o=Math.cos(t),i=Math.sin(t),a=Math.cos(r),s=Math.sin(r),u=o*Math.cos(e),l=o*Math.sin(e),c=a*Math.cos(n),d=a*Math.sin(n),f=2*Math.asin(Math.sqrt(ae(r-t)+o*a*ae(n-e))),h=1/Math.sin(f),p=f?function(e){var t=Math.sin(e*=f)*h,n=Math.sin(f-e)*h,r=n*u+t*c,o=n*l+t*d,a=n*i+t*s;return[Math.atan2(o,r)*Va,Math.atan2(a,Math.sqrt(r*r+o*o))*Va]}:function(){return[e*Va,t*Va]};return p.distance=f,p}function kn(){function e(e,o){var i=Math.sin(o*=Ba),a=Math.cos(o),s=_a((e*=Ba)-t),u=Math.cos(s);Zs+=Math.atan2(Math.sqrt((s=a*Math.sin(s))*s+(s=r*i-n*a*u)*s),n*i+r*a*u),t=e,n=i,r=a}var t,n,r;Ks.point=function(o,i){t=o*Ba,n=Math.sin(i*=Ba),r=Math.cos(i),Ks.point=e},Ks.lineEnd=function(){Ks.point=Ks.lineEnd=b}}function jn(e,t){function n(t,n){var r=Math.cos(t),o=Math.cos(n),i=e(r*o);return[i*o*Math.sin(t),i*Math.sin(n)]}return n.invert=function(e,n){var r=Math.sqrt(e*e+n*n),o=t(r),i=Math.sin(o),a=Math.cos(o);return[Math.atan2(e*i,r*a),Math.asin(r&&n*i/r)]},n}function Mn(e,t){function n(e,t){a>0?-$a+za>t&&(t=-$a+za):t>$a-za&&(t=$a-za);var n=a/Math.pow(o(t),i);return[n*Math.sin(i*e),a-n*Math.cos(i*e)]}var r=Math.cos(e),o=function(e){return Math.tan(Pa/4+e/2)},i=e===t?Math.sin(e):Math.log(r/Math.cos(t))/Math.log(o(t)/o(e)),a=r*Math.pow(o(e),i)/i;return i?(n.invert=function(e,t){var n=a-t,r=Q(i)*Math.sqrt(e*e+n*n);return[Math.atan2(e,n)/i,2*Math.atan(Math.pow(a/r,1/i))-$a]},n):Cn}function En(e,t){function n(e,t){var n=i-t;return[n*Math.sin(o*e),i-n*Math.cos(o*e)]}var r=Math.cos(e),o=e===t?Math.sin(e):(r-Math.cos(t))/(t-e),i=r/o+e;return _a(o)<za?cn:(n.invert=function(e,t){var n=i-t;return[Math.atan2(e,n)/o,i-Q(o)*Math.sqrt(e*e+n*n)]},n)}function Cn(e,t){return[e,Math.log(Math.tan(Pa/4+t/2))]}function Sn(e){var t,n=sn(e),r=n.scale,o=n.translate,i=n.clipExtent;return n.scale=function(){var e=r.apply(n,arguments);return e===n?t?n.clipExtent(null):n:e},n.translate=function(){var e=o.apply(n,arguments);return e===n?t?n.clipExtent(null):n:e},n.clipExtent=function(e){var a=i.apply(n,arguments);if(a===n){if(t=null==e){var s=Pa*r(),u=o();i([[u[0]-s,u[1]-s],[u[0]+s,u[1]+s]])}}else t&&(a=null);return a},n.clipExtent(null)}function Tn(e,t){return[Math.log(Math.tan(Pa/4+t/2)),-e]}function An(e){return e[0]}function Nn(e){return e[1]}function On(e){for(var t=e.length,n=[0,1],r=2,o=2;t>o;o++){for(;r>1&&ee(e[n[r-2]],e[n[r-1]],e[o])<=0;)--r;n[r++]=o}return n.slice(0,r)}function qn(e,t){return e[0]-t[0]||e[1]-t[1]}function Dn(e,t,n){return(n[0]-t[0])*(e[1]-t[1])<(n[1]-t[1])*(e[0]-t[0])}function Ln(e,t,n,r){var o=e[0],i=n[0],a=t[0]-o,s=r[0]-i,u=e[1],l=n[1],c=t[1]-u,d=r[1]-l,f=(s*(u-l)-d*(o-i))/(d*a-s*c);return[o+f*a,u+f*c]}function Fn(e){var t=e[0],n=e[e.length-1];return!(t[0]-n[0]||t[1]-n[1])}function zn(){or(this),this.edge=this.site=this.circle=null}function Rn(e){var t=lu.pop()||new zn;return t.site=e,t}function Pn(e){Jn(e),au.remove(e),lu.push(e),or(e)}function In(e){var t=e.circle,n=t.x,r=t.cy,o={x:n,y:r},i=e.P,a=e.N,s=[e];Pn(e);for(var u=i;u.circle&&_a(n-u.circle.x)<za&&_a(r-u.circle.cy)<za;)i=u.P,s.unshift(u),Pn(u),u=i;s.unshift(u),Jn(u);for(var l=a;l.circle&&_a(n-l.circle.x)<za&&_a(r-l.circle.cy)<za;)a=l.N,s.push(l),Pn(l),l=a;s.push(l),Jn(l);var c,d=s.length;for(c=1;d>c;++c)l=s[c],u=s[c-1],tr(l.edge,u.site,l.site,o);u=s[0],l=s[d-1],l.edge=Qn(u.site,l.site,null,o),Xn(u),Xn(l)}function Hn(e){for(var t,n,r,o,i=e.x,a=e.y,s=au._;s;)if(r=$n(s,a)-i,r>za)s=s.L;else{if(o=i-Bn(s,a),!(o>za)){r>-za?(t=s.P,n=s):o>-za?(t=s,n=s.N):t=n=s;break}if(!s.R){t=s;break}s=s.R}var u=Rn(e);if(au.insert(t,u),t||n){if(t===n)return Jn(t),n=Rn(t.site),au.insert(u,n),u.edge=n.edge=Qn(t.site,u.site),Xn(t),void Xn(n);if(!n)return void(u.edge=Qn(t.site,u.site));Jn(t),Jn(n);var l=t.site,c=l.x,d=l.y,f=e.x-c,h=e.y-d,p=n.site,m=p.x-c,g=p.y-d,v=2*(f*g-h*m),y=f*f+h*h,x=m*m+g*g,w={x:(g*y-h*x)/v+c,y:(f*x-m*y)/v+d};tr(n.edge,l,p,w),u.edge=Qn(l,e,null,w),n.edge=Qn(e,p,null,w),Xn(t),Xn(n)}}function $n(e,t){var n=e.site,r=n.x,o=n.y,i=o-t;if(!i)return r;var a=e.P;if(!a)return-(1/0);n=a.site;var s=n.x,u=n.y,l=u-t;if(!l)return s;var c=s-r,d=1/i-1/l,f=c/l;return d?(-f+Math.sqrt(f*f-2*d*(c*c/(-2*l)-u+l/2+o-i/2)))/d+r:(r+s)/2}function Bn(e,t){var n=e.N;if(n)return $n(n,t);var r=e.site;return r.y===t?r.x:1/0}function Vn(e){this.site=e,this.edges=[]}function Un(e){for(var t,n,r,o,i,a,s,u,l,c,d=e[0][0],f=e[1][0],h=e[0][1],p=e[1][1],m=iu,g=m.length;g--;)if(i=m[g],i&&i.prepare())for(s=i.edges,u=s.length,a=0;u>a;)c=s[a].end(),r=c.x,o=c.y,l=s[++a%u].start(),t=l.x,n=l.y,(_a(r-t)>za||_a(o-n)>za)&&(s.splice(a,0,new nr(er(i.site,c,_a(r-d)<za&&p-o>za?{x:d,y:_a(t-d)<za?n:p}:_a(o-p)<za&&f-r>za?{x:_a(n-p)<za?t:f,y:p}:_a(r-f)<za&&o-h>za?{x:f,y:_a(t-f)<za?n:h}:_a(o-h)<za&&r-d>za?{x:_a(n-h)<za?t:d,y:h}:null),i.site,null)),++u)}function Wn(e,t){return t.angle-e.angle}function Yn(){or(this),this.x=this.y=this.arc=this.site=this.cy=null}function Xn(e){var t=e.P,n=e.N;if(t&&n){var r=t.site,o=e.site,i=n.site;if(r!==i){var a=o.x,s=o.y,u=r.x-a,l=r.y-s,c=i.x-a,d=i.y-s,f=2*(u*d-l*c);if(!(f>=-Ra)){var h=u*u+l*l,p=c*c+d*d,m=(d*h-l*p)/f,g=(u*p-c*h)/f,d=g+s,v=cu.pop()||new Yn;v.arc=e,v.site=o,v.x=m+a,v.y=d+Math.sqrt(m*m+g*g),v.cy=d,e.circle=v;for(var y=null,x=uu._;x;)if(v.y<x.y||v.y===x.y&&v.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}uu.insert(y,v),y||(su=v)}}}}function Jn(e){var t=e.circle;t&&(t.P||(su=t.N),uu.remove(t),cu.push(t),or(t),e.circle=null)}function Zn(e){for(var t,n=ou,r=Bt(e[0][0],e[0][1],e[1][0],e[1][1]),o=n.length;o--;)t=n[o],(!Kn(t,e)||!r(t)||_a(t.a.x-t.b.x)<za&&_a(t.a.y-t.b.y)<za)&&(t.a=t.b=null,n.splice(o,1))}function Kn(e,t){var n=e.b;if(n)return!0;var r,o,i=e.a,a=t[0][0],s=t[1][0],u=t[0][1],l=t[1][1],c=e.l,d=e.r,f=c.x,h=c.y,p=d.x,m=d.y,g=(f+p)/2,v=(h+m)/2;if(m===h){if(a>g||g>=s)return;if(f>p){if(i){if(i.y>=l)return}else i={x:g,y:u};n={x:g,y:l}}else{if(i){if(i.y<u)return}else i={x:g,y:l};n={x:g,y:u}}}else if(r=(f-p)/(m-h),o=v-r*g,-1>r||r>1)if(f>p){if(i){if(i.y>=l)return}else i={x:(u-o)/r,y:u};n={x:(l-o)/r,y:l}}else{if(i){if(i.y<u)return}else i={x:(l-o)/r,y:l};n={x:(u-o)/r,y:u}}else if(m>h){if(i){if(i.x>=s)return}else i={x:a,y:r*a+o};n={x:s,y:r*s+o}}else{if(i){if(i.x<a)return}else i={x:s,y:r*s+o};n={x:a,y:r*a+o}}return e.a=i,e.b=n,!0}function Gn(e,t){this.l=e,this.r=t,this.a=this.b=null}function Qn(e,t,n,r){var o=new Gn(e,t);return ou.push(o),n&&tr(o,e,t,n),r&&tr(o,t,e,r),iu[e.i].edges.push(new nr(o,e,t)),iu[t.i].edges.push(new nr(o,t,e)),o}function er(e,t,n){var r=new Gn(e,null);return r.a=t,r.b=n,ou.push(r),r}function tr(e,t,n,r){e.a||e.b?e.l===n?e.b=r:e.a=r:(e.a=r,e.l=t,e.r=n)}function nr(e,t,n){var r=e.a,o=e.b;this.edge=e,this.site=t,this.angle=n?Math.atan2(n.y-t.y,n.x-t.x):e.l===t?Math.atan2(o.x-r.x,r.y-o.y):Math.atan2(r.x-o.x,o.y-r.y)}function rr(){this._=null}function or(e){e.U=e.C=e.L=e.R=e.P=e.N=null}function ir(e,t){var n=t,r=t.R,o=n.U;o?o.L===n?o.L=r:o.R=r:e._=r,r.U=o,n.U=r,n.R=r.L,n.R&&(n.R.U=n),r.L=n}function ar(e,t){var n=t,r=t.L,o=n.U;o?o.L===n?o.L=r:o.R=r:e._=r,r.U=o,n.U=r,n.L=r.R,n.L&&(n.L.U=n),r.R=n}function sr(e){for(;e.L;)e=e.L;return e}function ur(e,t){var n,r,o,i=e.sort(lr).pop();for(ou=[],iu=new Array(e.length),au=new rr,uu=new rr;;)if(o=su,i&&(!o||i.y<o.y||i.y===o.y&&i.x<o.x))(i.x!==n||i.y!==r)&&(iu[i.i]=new Vn(i),Hn(i),n=i.x,r=i.y),i=e.pop();else{if(!o)break;In(o.arc)}t&&(Zn(t),Un(t));var a={cells:iu,edges:ou};return au=uu=ou=iu=null,a}function lr(e,t){return t.y-e.y||t.x-e.x}function cr(e,t,n){return(e.x-n.x)*(t.y-e.y)-(e.x-t.x)*(n.y-e.y)}function dr(e){return e.x}function fr(e){return e.y}function hr(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function pr(e,t,n,r,o,i){if(!e(t,n,r,o,i)){var a=.5*(n+o),s=.5*(r+i),u=t.nodes;u[0]&&pr(e,u[0],n,r,a,s),u[1]&&pr(e,u[1],a,r,o,s),u[2]&&pr(e,u[2],n,s,a,i),u[3]&&pr(e,u[3],a,s,o,i)}}function mr(e,t,n,r,o,i,a){var s,u=1/0;return function l(e,c,d,f,h){if(!(c>i||d>a||r>f||o>h)){if(p=e.point){var p,m=t-e.x,g=n-e.y,v=m*m+g*g;if(u>v){var y=Math.sqrt(u=v);r=t-y,o=n-y,i=t+y,a=n+y,s=p}}for(var x=e.nodes,w=.5*(c+f),_=.5*(d+h),b=t>=w,k=n>=_,j=k<<1|b,M=j+4;M>j;++j)if(e=x[3&j])switch(3&j){case 0:l(e,c,d,w,_);break;case 1:l(e,w,d,f,_);break;case 2:l(e,c,_,w,h);break;case 3:l(e,w,_,f,h)}}}(e,r,o,i,a),s}function gr(e,t){e=la.rgb(e),t=la.rgb(t);var n=e.r,r=e.g,o=e.b,i=t.r-n,a=t.g-r,s=t.b-o;return function(e){return"#"+_e(Math.round(n+i*e))+_e(Math.round(r+a*e))+_e(Math.round(o+s*e))}}function vr(e,t){var n,r={},o={};for(n in e)n in t?r[n]=wr(e[n],t[n]):o[n]=e[n];for(n in t)n in e||(o[n]=t[n]);return function(e){for(n in r)o[n]=r[n](e);return o}}function yr(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function xr(e,t){var n,r,o,i=fu.lastIndex=hu.lastIndex=0,a=-1,s=[],u=[];for(e+="",t+="";(n=fu.exec(e))&&(r=hu.exec(t));)(o=r.index)>i&&(o=t.slice(i,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,u.push({i:a,x:yr(n,r)})),i=hu.lastIndex;return i<t.length&&(o=t.slice(i),s[a]?s[a]+=o:s[++a]=o),s.length<2?u[0]?(t=u[0].x,function(e){return t(e)+""}):function(){return t}:(t=u.length,function(e){ -for(var n,r=0;t>r;++r)s[(n=u[r]).i]=n.x(e);return s.join("")})}function wr(e,t){for(var n,r=la.interpolators.length;--r>=0&&!(n=la.interpolators[r](e,t)););return n}function _r(e,t){var n,r=[],o=[],i=e.length,a=t.length,s=Math.min(e.length,t.length);for(n=0;s>n;++n)r.push(wr(e[n],t[n]));for(;i>n;++n)o[n]=e[n];for(;a>n;++n)o[n]=t[n];return function(e){for(n=0;s>n;++n)o[n]=r[n](e);return o}}function br(e){return function(t){return 0>=t?0:t>=1?1:e(t)}}function kr(e){return function(t){return 1-e(1-t)}}function jr(e){return function(t){return.5*(.5>t?e(2*t):2-e(2-2*t))}}function Mr(e){return e*e}function Er(e){return e*e*e}function Cr(e){if(0>=e)return 0;if(e>=1)return 1;var t=e*e,n=t*e;return 4*(.5>e?n:3*(e-t)+n-.75)}function Sr(e){return function(t){return Math.pow(t,e)}}function Tr(e){return 1-Math.cos(e*$a)}function Ar(e){return Math.pow(2,10*(e-1))}function Nr(e){return 1-Math.sqrt(1-e*e)}function Or(e,t){var n;return arguments.length<2&&(t=.45),arguments.length?n=t/Ia*Math.asin(1/e):(e=1,n=t/4),function(r){return 1+e*Math.pow(2,-10*r)*Math.sin((r-n)*Ia/t)}}function qr(e){return e||(e=1.70158),function(t){return t*t*((e+1)*t-e)}}function Dr(e){return 1/2.75>e?7.5625*e*e:2/2.75>e?7.5625*(e-=1.5/2.75)*e+.75:2.5/2.75>e?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}function Lr(e,t){e=la.hcl(e),t=la.hcl(t);var n=e.h,r=e.c,o=e.l,i=t.h-n,a=t.c-r,s=t.l-o;return isNaN(a)&&(a=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,n=isNaN(n)?t.h:n):i>180?i-=360:-180>i&&(i+=360),function(e){return de(n+i*e,r+a*e,o+s*e)+""}}function Fr(e,t){e=la.hsl(e),t=la.hsl(t);var n=e.h,r=e.s,o=e.l,i=t.h-n,a=t.s-r,s=t.l-o;return isNaN(a)&&(a=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,n=isNaN(n)?t.h:n):i>180?i-=360:-180>i&&(i+=360),function(e){return le(n+i*e,r+a*e,o+s*e)+""}}function zr(e,t){e=la.lab(e),t=la.lab(t);var n=e.l,r=e.a,o=e.b,i=t.l-n,a=t.a-r,s=t.b-o;return function(e){return he(n+i*e,r+a*e,o+s*e)+""}}function Rr(e,t){return t-=e,function(n){return Math.round(e+t*n)}}function Pr(e){var t=[e.a,e.b],n=[e.c,e.d],r=Hr(t),o=Ir(t,n),i=Hr($r(n,t,-o))||0;t[0]*n[1]<n[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,o*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-n[0],n[1]))*Va,this.translate=[e.e,e.f],this.scale=[r,i],this.skew=i?Math.atan2(o,i)*Va:0}function Ir(e,t){return e[0]*t[0]+e[1]*t[1]}function Hr(e){var t=Math.sqrt(Ir(e,e));return t&&(e[0]/=t,e[1]/=t),t}function $r(e,t,n){return e[0]+=n*t[0],e[1]+=n*t[1],e}function Br(e){return e.length?e.pop()+",":""}function Vr(e,t,n,r){if(e[0]!==t[0]||e[1]!==t[1]){var o=n.push("translate(",null,",",null,")");r.push({i:o-4,x:yr(e[0],t[0])},{i:o-2,x:yr(e[1],t[1])})}else(t[0]||t[1])&&n.push("translate("+t+")")}function Ur(e,t,n,r){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),r.push({i:n.push(Br(n)+"rotate(",null,")")-2,x:yr(e,t)})):t&&n.push(Br(n)+"rotate("+t+")")}function Wr(e,t,n,r){e!==t?r.push({i:n.push(Br(n)+"skewX(",null,")")-2,x:yr(e,t)}):t&&n.push(Br(n)+"skewX("+t+")")}function Yr(e,t,n,r){if(e[0]!==t[0]||e[1]!==t[1]){var o=n.push(Br(n)+"scale(",null,",",null,")");r.push({i:o-4,x:yr(e[0],t[0])},{i:o-2,x:yr(e[1],t[1])})}else(1!==t[0]||1!==t[1])&&n.push(Br(n)+"scale("+t+")")}function Xr(e,t){var n=[],r=[];return e=la.transform(e),t=la.transform(t),Vr(e.translate,t.translate,n,r),Ur(e.rotate,t.rotate,n,r),Wr(e.skew,t.skew,n,r),Yr(e.scale,t.scale,n,r),e=t=null,function(e){for(var t,o=-1,i=r.length;++o<i;)n[(t=r[o]).i]=t.x(e);return n.join("")}}function Jr(e,t){return t=(t-=e=+e)||1/t,function(n){return(n-e)/t}}function Zr(e,t){return t=(t-=e=+e)||1/t,function(n){return Math.max(0,Math.min(1,(n-e)/t))}}function Kr(e){for(var t=e.source,n=e.target,r=Qr(t,n),o=[t];t!==r;)t=t.parent,o.push(t);for(var i=o.length;n!==r;)o.splice(i,0,n),n=n.parent;return o}function Gr(e){for(var t=[],n=e.parent;null!=n;)t.push(e),e=n,n=n.parent;return t.push(e),t}function Qr(e,t){if(e===t)return e;for(var n=Gr(e),r=Gr(t),o=n.pop(),i=r.pop(),a=null;o===i;)a=o,o=n.pop(),i=r.pop();return a}function eo(e){e.fixed|=2}function to(e){e.fixed&=-7}function no(e){e.fixed|=4,e.px=e.x,e.py=e.y}function ro(e){e.fixed&=-5}function oo(e,t,n){var r=0,o=0;if(e.charge=0,!e.leaf)for(var i,a=e.nodes,s=a.length,u=-1;++u<s;)i=a[u],null!=i&&(oo(i,t,n),e.charge+=i.charge,r+=i.charge*i.cx,o+=i.charge*i.cy);if(e.point){e.leaf||(e.point.x+=Math.random()-.5,e.point.y+=Math.random()-.5);var l=t*n[e.point.index];e.charge+=e.pointCharge=l,r+=l*e.point.x,o+=l*e.point.y}e.cx=r/e.charge,e.cy=o/e.charge}function io(e,t){return la.rebind(e,t,"sort","children","value"),e.nodes=e,e.links=fo,e}function ao(e,t){for(var n=[e];null!=(e=n.pop());)if(t(e),(o=e.children)&&(r=o.length))for(var r,o;--r>=0;)n.push(o[r])}function so(e,t){for(var n=[e],r=[];null!=(e=n.pop());)if(r.push(e),(i=e.children)&&(o=i.length))for(var o,i,a=-1;++a<o;)n.push(i[a]);for(;null!=(e=r.pop());)t(e)}function uo(e){return e.children}function lo(e){return e.value}function co(e,t){return t.value-e.value}function fo(e){return la.merge(e.map(function(e){return(e.children||[]).map(function(t){return{source:e,target:t}})}))}function ho(e){return e.x}function po(e){return e.y}function mo(e,t,n){e.y0=t,e.y=n}function go(data){return la.range(data.length)}function vo(data){for(var e=-1,t=data[0].length,n=[];++e<t;)n[e]=0;return n}function yo(e){for(var t,n=1,r=0,o=e[0][1],i=e.length;i>n;++n)(t=e[n][1])>o&&(r=n,o=t);return r}function xo(e){return e.reduce(wo,0)}function wo(e,t){return e+t[1]}function _o(e,t){return bo(e,Math.ceil(Math.log(t.length)/Math.LN2+1))}function bo(e,t){for(var n=-1,r=+e[0],o=(e[1]-r)/t,i=[];++n<=t;)i[n]=o*n+r;return i}function ko(e){return[la.min(e),la.max(e)]}function jo(e,t){return e.value-t.value}function Mo(e,t){var n=e._pack_next;e._pack_next=t,t._pack_prev=e,t._pack_next=n,n._pack_prev=t}function Eo(e,t){e._pack_next=t,t._pack_prev=e}function Co(e,t){var n=t.x-e.x,r=t.y-e.y,o=e.r+t.r;return.999*o*o>n*n+r*r}function So(e){function t(e){c=Math.min(e.x-e.r,c),d=Math.max(e.x+e.r,d),f=Math.min(e.y-e.r,f),h=Math.max(e.y+e.r,h)}if((n=e.children)&&(l=n.length)){var n,r,o,i,a,s,u,l,c=1/0,d=-(1/0),f=1/0,h=-(1/0);if(n.forEach(To),r=n[0],r.x=-r.r,r.y=0,t(r),l>1&&(o=n[1],o.x=o.r,o.y=0,t(o),l>2))for(i=n[2],Oo(r,o,i),t(i),Mo(r,i),r._pack_prev=i,Mo(i,o),o=r._pack_next,a=3;l>a;a++){Oo(r,o,i=n[a]);var p=0,m=1,g=1;for(s=o._pack_next;s!==o;s=s._pack_next,m++)if(Co(s,i)){p=1;break}if(1==p)for(u=r._pack_prev;u!==s._pack_prev&&!Co(u,i);u=u._pack_prev,g++);p?(g>m||m==g&&o.r<r.r?Eo(r,o=s):Eo(r=u,o),a--):(Mo(r,i),o=i,t(i))}var v=(c+d)/2,y=(f+h)/2,x=0;for(a=0;l>a;a++)i=n[a],i.x-=v,i.y-=y,x=Math.max(x,i.r+Math.sqrt(i.x*i.x+i.y*i.y));e.r=x,n.forEach(Ao)}}function To(e){e._pack_next=e._pack_prev=e}function Ao(e){delete e._pack_next,delete e._pack_prev}function No(e,t,n,r){var o=e.children;if(e.x=t+=r*e.x,e.y=n+=r*e.y,e.r*=r,o)for(var i=-1,a=o.length;++i<a;)No(o[i],t,n,r)}function Oo(e,t,n){var r=e.r+n.r,o=t.x-e.x,i=t.y-e.y;if(r&&(o||i)){var a=t.r+n.r,s=o*o+i*i;a*=a,r*=r;var u=.5+(r-a)/(2*s),l=Math.sqrt(Math.max(0,2*a*(r+s)-(r-=s)*r-a*a))/(2*s);n.x=e.x+u*o+l*i,n.y=e.y+u*i-l*o}else n.x=e.x+r,n.y=e.y}function qo(e,t){return e.parent==t.parent?1:2}function Do(e){var t=e.children;return t.length?t[0]:e.t}function Lo(e){var t,n=e.children;return(t=n.length)?n[t-1]:e.t}function Fo(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function zo(e){for(var t,n=0,r=0,o=e.children,i=o.length;--i>=0;)t=o[i],t.z+=n,t.m+=n,n+=t.s+(r+=t.c)}function Ro(e,t,n){return e.a.parent===t.parent?e.a:n}function Po(e){return 1+la.max(e,function(e){return e.y})}function Io(e){return e.reduce(function(e,t){return e+t.x},0)/e.length}function Ho(e){var t=e.children;return t&&t.length?Ho(t[0]):e}function $o(e){var t,n=e.children;return n&&(t=n.length)?$o(n[t-1]):e}function Bo(e){return{x:e.x,y:e.y,dx:e.dx,dy:e.dy}}function Vo(e,t){var n=e.x+t[3],r=e.y+t[0],o=e.dx-t[1]-t[3],i=e.dy-t[0]-t[2];return 0>o&&(n+=o/2,o=0),0>i&&(r+=i/2,i=0),{x:n,y:r,dx:o,dy:i}}function Uo(e){var t=e[0],n=e[e.length-1];return n>t?[t,n]:[n,t]}function Wo(e){return e.rangeExtent?e.rangeExtent():Uo(e.range())}function Yo(e,t,n,r){var o=n(e[0],e[1]),i=r(t[0],t[1]);return function(e){return i(o(e))}}function Xo(e,t){var n,r=0,o=e.length-1,i=e[r],a=e[o];return i>a&&(n=r,r=o,o=n,n=i,i=a,a=n),e[r]=t.floor(i),e[o]=t.ceil(a),e}function Jo(e){return e?{floor:function(t){return Math.floor(t/e)*e},ceil:function(t){return Math.ceil(t/e)*e}}:ju}function Zo(e,t,n,r){var o=[],i=[],a=0,s=Math.min(e.length,t.length)-1;for(e[s]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<=s;)o.push(n(e[a-1],e[a])),i.push(r(t[a-1],t[a]));return function(t){var n=la.bisect(e,t,1,s)-1;return i[n](o[n](t))}}function Ko(e,t,n,r){function o(){var o=Math.min(e.length,t.length)>2?Zo:Yo,u=r?Zr:Jr;return a=o(e,t,u,n),s=o(t,e,u,wr),i}function i(e){return a(e)}var a,s;return i.invert=function(e){return s(e)},i.domain=function(t){return arguments.length?(e=t.map(Number),o()):e},i.range=function(e){return arguments.length?(t=e,o()):t},i.rangeRound=function(e){return i.range(e).interpolate(Rr)},i.clamp=function(e){return arguments.length?(r=e,o()):r},i.interpolate=function(e){return arguments.length?(n=e,o()):n},i.ticks=function(t){return ti(e,t)},i.tickFormat=function(t,n){return ni(e,t,n)},i.nice=function(t){return Qo(e,t),o()},i.copy=function(){return Ko(e,t,n,r)},o()}function Go(e,t){return la.rebind(e,t,"range","rangeRound","interpolate","clamp")}function Qo(e,t){return Xo(e,Jo(ei(e,t)[2]))}function ei(e,t){null==t&&(t=10);var n=Uo(e),r=n[1]-n[0],o=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*o;return.15>=i?o*=10:.35>=i?o*=5:.75>=i&&(o*=2),n[0]=Math.ceil(n[0]/o)*o,n[1]=Math.floor(n[1]/o)*o+.5*o,n[2]=o,n}function ti(e,t){return la.range.apply(la,ei(e,t))}function ni(e,t,n){var r=ei(e,t);if(n){var o=fs.exec(n);if(o.shift(),"s"===o[8]){var i=la.formatPrefix(Math.max(_a(r[0]),_a(r[1])));return o[7]||(o[7]="."+ri(i.scale(r[2]))),o[8]="f",n=la.format(o.join("")),function(e){return n(i.scale(e))+i.symbol}}o[7]||(o[7]="."+oi(o[8],r)),n=o.join("")}else n=",."+ri(r[2])+"f";return la.format(n)}function ri(e){return-Math.floor(Math.log(e)/Math.LN10+.01)}function oi(e,t){var n=ri(t[2]);return e in Mu?Math.abs(n-ri(Math.max(_a(t[0]),_a(t[1]))))+ +("e"!==e):n-2*("%"===e)}function ii(e,t,n,r){function o(e){return(n?Math.log(0>e?0:e):-Math.log(e>0?0:-e))/Math.log(t)}function i(e){return n?Math.pow(t,e):-Math.pow(t,-e)}function a(t){return e(o(t))}return a.invert=function(t){return i(e.invert(t))},a.domain=function(t){return arguments.length?(n=t[0]>=0,e.domain((r=t.map(Number)).map(o)),a):r},a.base=function(n){return arguments.length?(t=+n,e.domain(r.map(o)),a):t},a.nice=function(){var t=Xo(r.map(o),n?Math:Cu);return e.domain(t),r=t.map(i),a},a.ticks=function(){var e=Uo(r),a=[],s=e[0],u=e[1],l=Math.floor(o(s)),c=Math.ceil(o(u)),d=t%1?2:t;if(isFinite(c-l)){if(n){for(;c>l;l++)for(var f=1;d>f;f++)a.push(i(l)*f);a.push(i(l))}else for(a.push(i(l));l++<c;)for(var f=d-1;f>0;f--)a.push(i(l)*f);for(l=0;a[l]<s;l++);for(c=a.length;a[c-1]>u;c--);a=a.slice(l,c)}return a},a.tickFormat=function(e,t){if(!arguments.length)return Eu;arguments.length<2?t=Eu:"function"!=typeof t&&(t=la.format(t));var r,s=Math.max(.1,e/a.ticks().length),u=n?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(e){return e/i(u(o(e)+r))<=s?t(e):""}},a.copy=function(){return ii(e.copy(),t,n,r)},Go(a,e)}function ai(e,t,n){function r(t){return e(o(t))}var o=si(t),i=si(1/t);return r.invert=function(t){return i(e.invert(t))},r.domain=function(t){return arguments.length?(e.domain((n=t.map(Number)).map(o)),r):n},r.ticks=function(e){return ti(n,e)},r.tickFormat=function(e,t){return ni(n,e,t)},r.nice=function(e){return r.domain(Qo(n,e))},r.exponent=function(a){return arguments.length?(o=si(t=a),i=si(1/t),e.domain(n.map(o)),r):t},r.copy=function(){return ai(e.copy(),t,n)},Go(r,e)}function si(e){return function(t){return 0>t?-Math.pow(-t,e):Math.pow(t,e)}}function ui(e,t){function n(n){return i[((o.get(n)||("range"===t.t?o.set(n,e.push(n)):NaN))-1)%i.length]}function r(t,n){return la.range(e.length).map(function(e){return t+n*e})}var o,i,a;return n.domain=function(r){if(!arguments.length)return e;e=[],o=new c;for(var i,a=-1,s=r.length;++a<s;)o.has(i=r[a])||o.set(i,e.push(i));return n[t.t].apply(n,t.a)},n.range=function(e){return arguments.length?(i=e,a=0,t={t:"range",a:arguments},n):i},n.rangePoints=function(o,s){arguments.length<2&&(s=0);var u=o[0],l=o[1],c=e.length<2?(u=(u+l)/2,0):(l-u)/(e.length-1+s);return i=r(u+c*s/2,c),a=0,t={t:"rangePoints",a:arguments},n},n.rangeRoundPoints=function(o,s){arguments.length<2&&(s=0);var u=o[0],l=o[1],c=e.length<2?(u=l=Math.round((u+l)/2),0):(l-u)/(e.length-1+s)|0;return i=r(u+Math.round(c*s/2+(l-u-(e.length-1+s)*c)/2),c),a=0,t={t:"rangeRoundPoints",a:arguments},n},n.rangeBands=function(o,s,u){arguments.length<2&&(s=0),arguments.length<3&&(u=s);var l=o[1]<o[0],c=o[l-0],d=o[1-l],f=(d-c)/(e.length-s+2*u);return i=r(c+f*u,f),l&&i.reverse(),a=f*(1-s),t={t:"rangeBands",a:arguments},n},n.rangeRoundBands=function(o,s,u){arguments.length<2&&(s=0),arguments.length<3&&(u=s);var l=o[1]<o[0],c=o[l-0],d=o[1-l],f=Math.floor((d-c)/(e.length-s+2*u));return i=r(c+Math.round((d-c-(e.length-s)*f)/2),f),l&&i.reverse(),a=Math.round(f*(1-s)),t={t:"rangeRoundBands",a:arguments},n},n.rangeBand=function(){return a},n.rangeExtent=function(){return Uo(t.a[0])},n.copy=function(){return ui(e,t)},n.domain(e)}function li(e,t){function n(){var n=0,r=t.length;for(s=[];++n<r;)s[n-1]=la.quantile(e,n/r);return a}function a(e){return isNaN(e=+e)?void 0:t[la.bisect(s,e)]}var s;return a.domain=function(t){return arguments.length?(e=t.map(o).filter(i).sort(r),n()):e},a.range=function(e){return arguments.length?(t=e,n()):t},a.quantiles=function(){return s},a.invertExtent=function(n){return n=t.indexOf(n),0>n?[NaN,NaN]:[n>0?s[n-1]:e[0],n<s.length?s[n]:e[e.length-1]]},a.copy=function(){return li(e,t)},n()}function ci(e,t,n){function r(t){return n[Math.max(0,Math.min(a,Math.floor(i*(t-e))))]}function o(){return i=n.length/(t-e),a=n.length-1,r}var i,a;return r.domain=function(n){return arguments.length?(e=+n[0],t=+n[n.length-1],o()):[e,t]},r.range=function(e){return arguments.length?(n=e,o()):n},r.invertExtent=function(t){return t=n.indexOf(t),t=0>t?NaN:t/i+e,[t,t+1/i]},r.copy=function(){return ci(e,t,n)},o()}function di(e,t){function n(n){return n>=n?t[la.bisect(e,n)]:void 0}return n.domain=function(t){return arguments.length?(e=t,n):e},n.range=function(e){return arguments.length?(t=e,n):t},n.invertExtent=function(n){return n=t.indexOf(n),[e[n-1],e[n]]},n.copy=function(){return di(e,t)},n}function fi(e){function t(e){return+e}return t.invert=t,t.domain=t.range=function(n){return arguments.length?(e=n.map(t),t):e},t.ticks=function(t){return ti(e,t)},t.tickFormat=function(t,n){return ni(e,t,n)},t.copy=function(){return fi(e)},t}function hi(){return 0}function pi(e){return e.innerRadius}function mi(e){return e.outerRadius}function gi(e){return e.startAngle}function vi(e){return e.endAngle}function yi(e){return e&&e.padAngle}function xi(e,t,n,r){return(e-n)*t-(t-r)*e>0?0:1}function wi(e,t,n,r,o){var i=e[0]-t[0],a=e[1]-t[1],s=(o?r:-r)/Math.sqrt(i*i+a*a),u=s*a,l=-s*i,c=e[0]+u,d=e[1]+l,f=t[0]+u,h=t[1]+l,p=(c+f)/2,m=(d+h)/2,g=f-c,v=h-d,y=g*g+v*v,x=n-r,w=c*h-f*d,_=(0>v?-1:1)*Math.sqrt(Math.max(0,x*x*y-w*w)),b=(w*v-g*_)/y,k=(-w*g-v*_)/y,j=(w*v+g*_)/y,M=(-w*g+v*_)/y,E=b-p,C=k-m,S=j-p,T=M-m;return E*E+C*C>S*S+T*T&&(b=j,k=M),[[b-u,k-l],[b*n/x,k*n/x]]}function _i(e){function t(data){function t(){u.push("M",i(e(l),s))}for(var a,u=[],l=[],c=-1,d=data.length,f=Ce(n),h=Ce(r);++c<d;)o.call(this,a=data[c],c)?l.push([+f.call(this,a,c),+h.call(this,a,c)]):l.length&&(t(),l=[]);return l.length&&t(),u.length?u.join(""):null}var n=An,r=Nn,o=At,i=bi,a=i.key,s=.7;return t.x=function(e){return arguments.length?(n=e,t):n},t.y=function(e){return arguments.length?(r=e,t):r},t.defined=function(e){return arguments.length?(o=e,t):o},t.interpolate=function(e){return arguments.length?(a="function"==typeof e?i=e:(i=qu.get(e)||bi).key,t):a},t.tension=function(e){return arguments.length?(s=e,t):s},t}function bi(e){return e.length>1?e.join("L"):e+"Z"}function ki(e){return e.join("L")+"Z"}function ji(e){for(var t=0,n=e.length,r=e[0],o=[r[0],",",r[1]];++t<n;)o.push("H",(r[0]+(r=e[t])[0])/2,"V",r[1]);return n>1&&o.push("H",r[0]),o.join("")}function Mi(e){for(var t=0,n=e.length,r=e[0],o=[r[0],",",r[1]];++t<n;)o.push("V",(r=e[t])[1],"H",r[0]);return o.join("")}function Ei(e){for(var t=0,n=e.length,r=e[0],o=[r[0],",",r[1]];++t<n;)o.push("H",(r=e[t])[0],"V",r[1]);return o.join("")}function Ci(e,t){return e.length<4?bi(e):e[1]+Ai(e.slice(1,-1),Ni(e,t))}function Si(e,t){return e.length<3?ki(e):e[0]+Ai((e.push(e[0]),e),Ni([e[e.length-2]].concat(e,[e[1]]),t))}function Ti(e,t){return e.length<3?bi(e):e[0]+Ai(e,Ni(e,t))}function Ai(e,t){if(t.length<1||e.length!=t.length&&e.length!=t.length+2)return bi(e);var n=e.length!=t.length,r="",o=e[0],i=e[1],a=t[0],s=a,u=1;if(n&&(r+="Q"+(i[0]-2*a[0]/3)+","+(i[1]-2*a[1]/3)+","+i[0]+","+i[1],o=e[1],u=2),t.length>1){s=t[1],i=e[u],u++,r+="C"+(o[0]+a[0])+","+(o[1]+a[1])+","+(i[0]-s[0])+","+(i[1]-s[1])+","+i[0]+","+i[1];for(var l=2;l<t.length;l++,u++)i=e[u],s=t[l],r+="S"+(i[0]-s[0])+","+(i[1]-s[1])+","+i[0]+","+i[1]}if(n){var c=e[u];r+="Q"+(i[0]+2*s[0]/3)+","+(i[1]+2*s[1]/3)+","+c[0]+","+c[1]}return r}function Ni(e,t){for(var n,r=[],o=(1-t)/2,i=e[0],a=e[1],s=1,u=e.length;++s<u;)n=i,i=a,a=e[s],r.push([o*(a[0]-n[0]),o*(a[1]-n[1])]);return r}function Oi(e){if(e.length<3)return bi(e);var t=1,n=e.length,r=e[0],o=r[0],i=r[1],a=[o,o,o,(r=e[1])[0]],s=[i,i,i,r[1]],u=[o,",",i,"L",Fi(Fu,a),",",Fi(Fu,s)];for(e.push(e[n-1]);++t<=n;)r=e[t],a.shift(),a.push(r[0]),s.shift(),s.push(r[1]),zi(u,a,s);return e.pop(),u.push("L",r),u.join("")}function qi(e){if(e.length<4)return bi(e);for(var t,n=[],r=-1,o=e.length,i=[0],a=[0];++r<3;)t=e[r],i.push(t[0]),a.push(t[1]);for(n.push(Fi(Fu,i)+","+Fi(Fu,a)),--r;++r<o;)t=e[r],i.shift(),i.push(t[0]),a.shift(),a.push(t[1]),zi(n,i,a);return n.join("")}function Di(e){for(var t,n,r=-1,o=e.length,i=o+4,a=[],s=[];++r<4;)n=e[r%o],a.push(n[0]),s.push(n[1]);for(t=[Fi(Fu,a),",",Fi(Fu,s)],--r;++r<i;)n=e[r%o],a.shift(),a.push(n[0]),s.shift(),s.push(n[1]),zi(t,a,s);return t.join("")}function Li(e,t){var n=e.length-1;if(n)for(var r,o,i=e[0][0],a=e[0][1],s=e[n][0]-i,u=e[n][1]-a,l=-1;++l<=n;)r=e[l],o=l/n,r[0]=t*r[0]+(1-t)*(i+o*s),r[1]=t*r[1]+(1-t)*(a+o*u);return Oi(e)}function Fi(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function zi(e,t,n){e.push("C",Fi(Du,t),",",Fi(Du,n),",",Fi(Lu,t),",",Fi(Lu,n),",",Fi(Fu,t),",",Fi(Fu,n))}function Ri(e,t){return(t[1]-e[1])/(t[0]-e[0])}function Pi(e){for(var t=0,n=e.length-1,r=[],o=e[0],i=e[1],a=r[0]=Ri(o,i);++t<n;)r[t]=(a+(a=Ri(o=i,i=e[t+1])))/2;return r[t]=a,r}function Ii(e){for(var t,n,r,o,i=[],a=Pi(e),s=-1,u=e.length-1;++s<u;)t=Ri(e[s],e[s+1]),_a(t)<za?a[s]=a[s+1]=0:(n=a[s]/t,r=a[s+1]/t,o=n*n+r*r,o>9&&(o=3*t/Math.sqrt(o),a[s]=o*n,a[s+1]=o*r));for(s=-1;++s<=u;)o=(e[Math.min(u,s+1)][0]-e[Math.max(0,s-1)][0])/(6*(1+a[s]*a[s])),i.push([o||0,a[s]*o||0]);return i}function Hi(e){return e.length<3?bi(e):e[0]+Ai(e,Ii(e))}function $i(e){for(var t,n,r,o=-1,i=e.length;++o<i;)t=e[o],n=t[0],r=t[1]-$a,t[0]=n*Math.cos(r),t[1]=n*Math.sin(r);return e}function Bi(e){function t(data){function t(){p.push("M",s(e(g),d),c,l(e(m.reverse()),d),"Z")}for(var u,f,h,p=[],m=[],g=[],v=-1,y=data.length,x=Ce(n),w=Ce(o),_=n===r?function(){return f}:Ce(r),b=o===i?function(){return h}:Ce(i);++v<y;)a.call(this,u=data[v],v)?(m.push([f=+x.call(this,u,v),h=+w.call(this,u,v)]),g.push([+_.call(this,u,v),+b.call(this,u,v)])):m.length&&(t(),m=[],g=[]);return m.length&&t(),p.length?p.join(""):null}var n=An,r=An,o=0,i=Nn,a=At,s=bi,u=s.key,l=s,c="L",d=.7;return t.x=function(e){return arguments.length?(n=r=e,t):r},t.x0=function(e){return arguments.length?(n=e,t):n},t.x1=function(e){return arguments.length?(r=e,t):r},t.y=function(e){return arguments.length?(o=i=e,t):i},t.y0=function(e){return arguments.length?(o=e,t):o},t.y1=function(e){return arguments.length?(i=e,t):i},t.defined=function(e){return arguments.length?(a=e,t):a},t.interpolate=function(e){return arguments.length?(u="function"==typeof e?s=e:(s=qu.get(e)||bi).key,l=s.reverse||s,c=s.closed?"M":"L",t):u},t.tension=function(e){return arguments.length?(d=e,t):d},t}function Vi(e){return e.radius}function Ui(e){return[e.x,e.y]}function Wi(e){return function(){var t=e.apply(this,arguments),n=t[0],r=t[1]-$a;return[n*Math.cos(r),n*Math.sin(r)]}}function Yi(){return 64}function Xi(){return"circle"}function Ji(e){var t=Math.sqrt(e/Pa);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Zi(e){return function(){var t,n,r;(t=this[e])&&(r=t[n=t.active])&&(r.timer.c=null,r.timer.t=NaN,--t.count?delete t[n]:delete this[e],t.active+=.5,r.event&&r.event.interrupt.call(this,this.__data__,r.index))}}function Ki(e,t,n){return Ea(e,Bu),e.namespace=t,e.id=n,e}function Gi(e,t,n,r){var o=e.id,i=e.namespace;return V(e,"function"==typeof n?function(e,a,s){e[i][o].tween.set(t,r(n.call(e,e.__data__,a,s)))}:(n=r(n),function(e){e[i][o].tween.set(t,n)}))}function Qi(e){return null==e&&(e=""),function(){this.textContent=e}}function ea(e){return null==e?"__transition__":"__transition_"+e+"__"}function ta(e,t,n,r,o){function i(e){var t=m.delay;return l.t=t+u,e>=t?a(e-t):void(l.c=a)}function a(n){var o=p.active,i=p[o];i&&(i.timer.c=null,i.timer.t=NaN,--p.count,delete p[o],i.event&&i.event.interrupt.call(e,e.__data__,i.index));for(var a in p)if(r>+a){var c=p[a];c.timer.c=null,c.timer.t=NaN,--p.count,delete p[a]}l.c=s,Oe(function(){return l.c&&s(n||1)&&(l.c=null,l.t=NaN),1},0,u),p.active=r,m.event&&m.event.start.call(e,e.__data__,t),h=[],m.tween.forEach(function(n,r){(r=r.call(e,e.__data__,t))&&h.push(r)}),f=m.ease,d=m.duration}function s(o){for(var i=o/d,a=f(i),s=h.length;s>0;)h[--s].call(e,a);return i>=1?(m.event&&m.event.end.call(e,e.__data__,t),--p.count?delete p[r]:delete e[n],1):void 0}var u,l,d,f,h,p=e[n]||(e[n]={active:0,count:0}),m=p[r];m||(u=o.time,l=Oe(i,0,u),m=p[r]={tween:new c,time:u,timer:l,delay:o.delay,duration:o.duration,ease:o.ease,index:t},o=null,++p.count)}function na(e,t,n){e.attr("transform",function(e){var r=t(e);return"translate("+(isFinite(r)?r:n(e))+",0)"})}function ra(e,t,n){e.attr("transform",function(e){var r=t(e);return"translate(0,"+(isFinite(r)?r:n(e))+")"})}function oa(e){return e.toISOString()}function ia(e,t,n){function r(t){return e(t)}function o(e,n){var r=e[1]-e[0],o=r/n,i=la.bisect(Gu,o);return i==Gu.length?[t.year,ei(e.map(function(e){return e/31536e6}),n)[2]]:i?t[o/Gu[i-1]<Gu[i]/o?i-1:i]:[tl,ei(e,n)[2]]}return r.invert=function(t){return aa(e.invert(t))},r.domain=function(t){return arguments.length?(e.domain(t),r):e.domain().map(aa)},r.nice=function(e,t){function n(n){return!isNaN(n)&&!e.range(n,aa(+n+1),t).length}var i=r.domain(),a=Uo(i),s=null==e?o(a,10):"number"==typeof e&&o(a,e);return s&&(e=s[0],t=s[1]),r.domain(Xo(i,t>1?{floor:function(t){for(;n(t=e.floor(t));)t=aa(t-1);return t},ceil:function(t){for(;n(t=e.ceil(t));)t=aa(+t+1);return t}}:e))},r.ticks=function(e,t){var n=Uo(r.domain()),i=null==e?o(n,10):"number"==typeof e?o(n,e):!e.range&&[{range:e},t];return i&&(e=i[0],t=i[1]),e.range(n[0],aa(+n[1]+1),1>t?1:t)},r.tickFormat=function(){return n},r.copy=function(){return ia(e.copy(),t,n)},Go(r,e)}function aa(e){return new Date(e)}function sa(e){return JSON.parse(e.responseText)}function ua(e){var t=fa.createRange();return t.selectNode(fa.body),t.createContextualFragment(e.responseText)}var la={version:"3.5.10"},ca=[].slice,da=function(e){return ca.call(e)},fa=this.document;if(fa)try{da(fa.documentElement.childNodes)[0].nodeType}catch(ha){da=function(e){for(var t=e.length,n=new Array(t);t--;)n[t]=e[t];return n}}if(Date.now||(Date.now=function(){return+new Date}),fa)try{fa.createElement("DIV").style.setProperty("opacity",0,"")}catch(pa){var ma=this.Element.prototype,ga=ma.setAttribute,va=ma.setAttributeNS,ya=this.CSSStyleDeclaration.prototype,xa=ya.setProperty;ma.setAttribute=function(e,t){ga.call(this,e,t+"")},ma.setAttributeNS=function(e,t,n){va.call(this,e,t,n+"")},ya.setProperty=function(e,t,n){xa.call(this,e,t+"",n)}}la.ascending=r,la.descending=function(e,t){return e>t?-1:t>e?1:t>=e?0:NaN},la.min=function(e,t){var n,r,o=-1,i=e.length;if(1===arguments.length){for(;++o<i;)if(null!=(r=e[o])&&r>=r){n=r;break}for(;++o<i;)null!=(r=e[o])&&n>r&&(n=r)}else{for(;++o<i;)if(null!=(r=t.call(e,e[o],o))&&r>=r){n=r;break}for(;++o<i;)null!=(r=t.call(e,e[o],o))&&n>r&&(n=r)}return n},la.max=function(e,t){var n,r,o=-1,i=e.length;if(1===arguments.length){for(;++o<i;)if(null!=(r=e[o])&&r>=r){n=r;break}for(;++o<i;)null!=(r=e[o])&&r>n&&(n=r)}else{for(;++o<i;)if(null!=(r=t.call(e,e[o],o))&&r>=r){n=r;break}for(;++o<i;)null!=(r=t.call(e,e[o],o))&&r>n&&(n=r)}return n},la.extent=function(e,t){var n,r,o,i=-1,a=e.length;if(1===arguments.length){for(;++i<a;)if(null!=(r=e[i])&&r>=r){n=o=r;break}for(;++i<a;)null!=(r=e[i])&&(n>r&&(n=r),r>o&&(o=r))}else{for(;++i<a;)if(null!=(r=t.call(e,e[i],i))&&r>=r){n=o=r;break}for(;++i<a;)null!=(r=t.call(e,e[i],i))&&(n>r&&(n=r),r>o&&(o=r))}return[n,o]},la.sum=function(e,t){var n,r=0,o=e.length,a=-1;if(1===arguments.length)for(;++a<o;)i(n=+e[a])&&(r+=n);else for(;++a<o;)i(n=+t.call(e,e[a],a))&&(r+=n);return r},la.mean=function(e,t){var n,r=0,a=e.length,s=-1,u=a;if(1===arguments.length)for(;++s<a;)i(n=o(e[s]))?r+=n:--u;else for(;++s<a;)i(n=o(t.call(e,e[s],s)))?r+=n:--u;return u?r/u:void 0},la.quantile=function(e,t){var n=(e.length-1)*t+1,r=Math.floor(n),o=+e[r-1],i=n-r;return i?o+i*(e[r]-o):o},la.median=function(e,t){var n,a=[],s=e.length,u=-1;if(1===arguments.length)for(;++u<s;)i(n=o(e[u]))&&a.push(n);else for(;++u<s;)i(n=o(t.call(e,e[u],u)))&&a.push(n);return a.length?la.quantile(a.sort(r),.5):void 0},la.variance=function(e,t){var n,r,a=e.length,s=0,u=0,l=-1,c=0;if(1===arguments.length)for(;++l<a;)i(n=o(e[l]))&&(r=n-s,s+=r/++c,u+=r*(n-s));else for(;++l<a;)i(n=o(t.call(e,e[l],l)))&&(r=n-s,s+=r/++c,u+=r*(n-s));return c>1?u/(c-1):void 0},la.deviation=function(){var e=la.variance.apply(this,arguments);return e?Math.sqrt(e):e};var wa=a(r);la.bisectLeft=wa.left,la.bisect=la.bisectRight=wa.right,la.bisector=function(e){return a(1===e.length?function(t,n){return r(e(t),n)}:e)},la.shuffle=function(e,t,n){(i=arguments.length)<3&&(n=e.length,2>i&&(t=0));for(var r,o,i=n-t;i;)o=Math.random()*i--|0,r=e[i+t],e[i+t]=e[o+t],e[o+t]=r;return e},la.permute=function(e,t){for(var n=t.length,r=new Array(n);n--;)r[n]=e[t[n]];return r},la.pairs=function(e){for(var t,n=0,r=e.length-1,o=e[0],i=new Array(0>r?0:r);r>n;)i[n]=[t=o,o=e[++n]];return i},la.zip=function(){if(!(r=arguments.length))return[];for(var e=-1,t=la.min(arguments,s),n=new Array(t);++e<t;)for(var r,o=-1,i=n[e]=new Array(r);++o<r;)i[o]=arguments[o][e];return n},la.transpose=function(e){return la.zip.apply(la,e)},la.keys=function(e){var t=[];for(var n in e)t.push(n);return t},la.values=function(e){var t=[];for(var n in e)t.push(e[n]);return t},la.entries=function(e){var t=[];for(var n in e)t.push({key:n,value:e[n]});return t},la.merge=function(e){for(var t,n,r,o=e.length,i=-1,a=0;++i<o;)a+=e[i].length;for(n=new Array(a);--o>=0;)for(r=e[o],t=r.length;--t>=0;)n[--a]=r[t];return n};var _a=Math.abs;la.range=function(e,t,n){if(arguments.length<3&&(n=1,arguments.length<2&&(t=e,e=0)),(t-e)/n===1/0)throw new Error("infinite range");var r,o=[],i=u(_a(n)),a=-1;if(e*=i,t*=i,n*=i,0>n)for(;(r=e+n*++a)>t;)o.push(r/i);else for(;(r=e+n*++a)<t;)o.push(r/i);return o},la.map=function(e,t){var n=new c;if(e instanceof c)e.forEach(function(e,t){n.set(e,t)});else if(Array.isArray(e)){var r,o=-1,i=e.length;if(1===arguments.length)for(;++o<i;)n.set(o,e[o]);else for(;++o<i;)n.set(t.call(e,r=e[o],o),r)}else for(var a in e)n.set(a,e[a]);return n};var ba="__proto__",ka="\x00";l(c,{has:h,get:function(e){return this._[d(e)]},set:function(e,t){return this._[d(e)]=t},remove:p,keys:m,values:function(){var e=[];for(var t in this._)e.push(this._[t]);return e},entries:function(){var e=[];for(var t in this._)e.push({key:f(t),value:this._[t]});return e},size:g,empty:v,forEach:function(e){for(var t in this._)e.call(this,f(t),this._[t])}}),la.nest=function(){function e(t,a,s){if(s>=i.length)return r?r.call(o,a):n?a.sort(n):a;for(var u,l,d,f,h=-1,p=a.length,m=i[s++],g=new c;++h<p;)(f=g.get(u=m(l=a[h])))?f.push(l):g.set(u,[l]);return t?(l=t(),d=function(n,r){l.set(n,e(t,r,s))}):(l={},d=function(n,r){l[n]=e(t,r,s)}),g.forEach(d),l}function t(e,n){if(n>=i.length)return e;var r=[],o=a[n++];return e.forEach(function(e,o){r.push({key:e,values:t(o,n)})}),o?r.sort(function(e,t){return o(e.key,t.key)}):r}var n,r,o={},i=[],a=[];return o.map=function(t,n){return e(n,t,0)},o.entries=function(n){return t(e(la.map,n,0),0)},o.key=function(e){return i.push(e),o},o.sortKeys=function(e){return a[i.length-1]=e,o},o.sortValues=function(e){return n=e,o},o.rollup=function(e){return r=e,o},o},la.set=function(e){var t=new y;if(e)for(var n=0,r=e.length;r>n;++n)t.add(e[n]);return t},l(y,{has:h,add:function(e){return this._[d(e+="")]=!0,e},remove:p,values:m,size:g,empty:v,forEach:function(e){for(var t in this._)e.call(this,f(t))}}),la.behavior={},la.rebind=function(e,t){for(var n,r=1,o=arguments.length;++r<o;)e[n=arguments[r]]=w(e,t,t[n]);return e};var ja=["webkit","ms","moz","Moz","o","O"];la.dispatch=function(){for(var e=new k,t=-1,n=arguments.length;++t<n;)e[arguments[t]]=j(e);return e},k.prototype.on=function(e,t){var n=e.indexOf("."),r="";if(n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),e)return arguments.length<2?this[e].on(r):this[e].on(r,t);if(2===arguments.length){if(null==t)for(e in this)this.hasOwnProperty(e)&&this[e].on(r,null);return this}},la.event=null,la.requote=function(e){return e.replace(Ma,"\\$&")};var Ma=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,Ea={}.__proto__?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)e[n]=t[n]},Ca=function(e,t){return t.querySelector(e)},Sa=function(e,t){return t.querySelectorAll(e)},Ta=function(e,t){var n=e.matches||e[_(e,"matchesSelector")];return(Ta=function(e,t){return n.call(e,t)})(e,t)};"function"==typeof Sizzle&&(Ca=function(e,t){return Sizzle(e,t)[0]||null},Sa=Sizzle,Ta=Sizzle.matchesSelector),la.selection=function(){return la.select(fa.documentElement)};var Aa=la.selection.prototype=[];Aa.select=function(e){var t,n,r,o,i=[];e=T(e);for(var a=-1,s=this.length;++a<s;){i.push(t=[]),t.parentNode=(r=this[a]).parentNode;for(var u=-1,l=r.length;++u<l;)(o=r[u])?(t.push(n=e.call(o,o.__data__,u,a)),n&&"__data__"in o&&(n.__data__=o.__data__)):t.push(null)}return S(i)},Aa.selectAll=function(e){var t,n,r=[];e=A(e);for(var o=-1,i=this.length;++o<i;)for(var a=this[o],s=-1,u=a.length;++s<u;)(n=a[s])&&(r.push(t=da(e.call(n,n.__data__,s,o))),t.parentNode=n);return S(r)};var Na={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};la.ns={prefix:Na,qualify:function(e){var t=e.indexOf(":"),n=e;return t>=0&&"xmlns"!==(n=e.slice(0,t))&&(e=e.slice(t+1)),Na.hasOwnProperty(n)?{space:Na[n],local:e}:e}},Aa.attr=function(e,t){if(arguments.length<2){if("string"==typeof e){var n=this.node();return e=la.ns.qualify(e),e.local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(t in e)this.each(N(t,e[t]));return this}return this.each(N(e,t))},Aa.classed=function(e,t){if(arguments.length<2){if("string"==typeof e){var n=this.node(),r=(e=D(e)).length,o=-1;if(t=n.classList){for(;++o<r;)if(!t.contains(e[o]))return!1}else for(t=n.getAttribute("class");++o<r;)if(!q(e[o]).test(t))return!1;return!0}for(t in e)this.each(L(t,e[t]));return this}return this.each(L(e,t))},Aa.style=function(e,t,r){var o=arguments.length;if(3>o){if("string"!=typeof e){2>o&&(t="");for(r in e)this.each(z(r,e[r],t));return this}if(2>o){var i=this.node();return n(i).getComputedStyle(i,null).getPropertyValue(e)}r=""}return this.each(z(e,t,r))},Aa.property=function(e,t){if(arguments.length<2){if("string"==typeof e)return this.node()[e];for(t in e)this.each(R(t,e[t])); -return this}return this.each(R(e,t))},Aa.text=function(e){return arguments.length?this.each("function"==typeof e?function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}:null==e?function(){this.textContent=""}:function(){this.textContent=e}):this.node().textContent},Aa.html=function(e){return arguments.length?this.each("function"==typeof e?function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}:null==e?function(){this.innerHTML=""}:function(){this.innerHTML=e}):this.node().innerHTML},Aa.append=function(e){return e=P(e),this.select(function(){return this.appendChild(e.apply(this,arguments))})},Aa.insert=function(e,t){return e=P(e),t=T(t),this.select(function(){return this.insertBefore(e.apply(this,arguments),t.apply(this,arguments)||null)})},Aa.remove=function(){return this.each(I)},Aa.data=function(e,t){function n(e,n){var r,o,i,a=e.length,d=n.length,f=Math.min(a,d),h=new Array(d),p=new Array(d),m=new Array(a);if(t){var g,v=new c,y=new Array(a);for(r=-1;++r<a;)(o=e[r])&&(v.has(g=t.call(o,o.__data__,r))?m[r]=o:v.set(g,o),y[r]=g);for(r=-1;++r<d;)(o=v.get(g=t.call(n,i=n[r],r)))?o!==!0&&(h[r]=o,o.__data__=i):p[r]=H(i),v.set(g,!0);for(r=-1;++r<a;)r in y&&v.get(y[r])!==!0&&(m[r]=e[r])}else{for(r=-1;++r<f;)o=e[r],i=n[r],o?(o.__data__=i,h[r]=o):p[r]=H(i);for(;d>r;++r)p[r]=H(n[r]);for(;a>r;++r)m[r]=e[r]}p.update=h,p.parentNode=h.parentNode=m.parentNode=e.parentNode,s.push(p),u.push(h),l.push(m)}var r,o,i=-1,a=this.length;if(!arguments.length){for(e=new Array(a=(r=this[0]).length);++i<a;)(o=r[i])&&(e[i]=o.__data__);return e}var s=U([]),u=S([]),l=S([]);if("function"==typeof e)for(;++i<a;)n(r=this[i],e.call(r,r.parentNode.__data__,i));else for(;++i<a;)n(r=this[i],e);return u.enter=function(){return s},u.exit=function(){return l},u},Aa.datum=function(e){return arguments.length?this.property("__data__",e):this.property("__data__")},Aa.filter=function(e){var t,n,r,o=[];"function"!=typeof e&&(e=$(e));for(var i=0,a=this.length;a>i;i++){o.push(t=[]),t.parentNode=(n=this[i]).parentNode;for(var s=0,u=n.length;u>s;s++)(r=n[s])&&e.call(r,r.__data__,s,i)&&t.push(r)}return S(o)},Aa.order=function(){for(var e=-1,t=this.length;++e<t;)for(var n,r=this[e],o=r.length-1,i=r[o];--o>=0;)(n=r[o])&&(i&&i!==n.nextSibling&&i.parentNode.insertBefore(n,i),i=n);return this},Aa.sort=function(e){e=B.apply(this,arguments);for(var t=-1,n=this.length;++t<n;)this[t].sort(e);return this.order()},Aa.each=function(e){return V(this,function(t,n,r){e.call(t,t.__data__,n,r)})},Aa.call=function(e){var t=da(arguments);return e.apply(t[0]=this,t),this},Aa.empty=function(){return!this.node()},Aa.node=function(){for(var e=0,t=this.length;t>e;e++)for(var n=this[e],r=0,o=n.length;o>r;r++){var i=n[r];if(i)return i}return null},Aa.size=function(){var e=0;return V(this,function(){++e}),e};var Oa=[];la.selection.enter=U,la.selection.enter.prototype=Oa,Oa.append=Aa.append,Oa.empty=Aa.empty,Oa.node=Aa.node,Oa.call=Aa.call,Oa.size=Aa.size,Oa.select=function(e){for(var t,n,r,o,i,a=[],s=-1,u=this.length;++s<u;){r=(o=this[s]).update,a.push(t=[]),t.parentNode=o.parentNode;for(var l=-1,c=o.length;++l<c;)(i=o[l])?(t.push(r[l]=n=e.call(o.parentNode,i.__data__,l,s)),n.__data__=i.__data__):t.push(null)}return S(a)},Oa.insert=function(e,t){return arguments.length<2&&(t=W(this)),Aa.insert.call(this,e,t)},la.select=function(t){var n;return"string"==typeof t?(n=[Ca(t,fa)],n.parentNode=fa.documentElement):(n=[t],n.parentNode=e(t)),S([n])},la.selectAll=function(e){var t;return"string"==typeof e?(t=da(Sa(e,fa)),t.parentNode=fa.documentElement):(t=da(e),t.parentNode=null),S([t])},Aa.on=function(e,t,n){var r=arguments.length;if(3>r){if("string"!=typeof e){2>r&&(t=!1);for(n in e)this.each(Y(n,e[n],t));return this}if(2>r)return(r=this.node()["__on"+e])&&r._;n=!1}return this.each(Y(e,t,n))};var qa=la.map({mouseenter:"mouseover",mouseleave:"mouseout"});fa&&qa.forEach(function(e){"on"+e in fa&&qa.remove(e)});var Da,La=0;la.mouse=function(e){return K(e,E())};var Fa=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;la.touch=function(e,t,n){if(arguments.length<3&&(n=t,t=E().changedTouches),t)for(var r,o=0,i=t.length;i>o;++o)if((r=t[o]).identifier===n)return K(e,r)},la.behavior.drag=function(){function e(){this.on("mousedown.drag",i).on("touchstart.drag",a)}function t(e,t,n,i,a){return function(){function s(){var e,n,r=t(f,m);r&&(e=r[0]-x[0],n=r[1]-x[1],p|=e|n,x=r,h({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:e,dy:n}))}function u(){t(f,m)&&(v.on(i+g,null).on(a+g,null),y(p),h({type:"dragend"}))}var l,c=this,d=la.event.target,f=c.parentNode,h=r.of(c,arguments),p=0,m=e(),g=".drag"+(null==m?"":"-"+m),v=la.select(n(d)).on(i+g,s).on(a+g,u),y=Z(d),x=t(f,m);o?(l=o.apply(c,arguments),l=[l.x-x[0],l.y-x[1]]):l=[0,0],h({type:"dragstart"})}}var r=C(e,"drag","dragstart","dragend"),o=null,i=t(b,la.mouse,n,"mousemove","mouseup"),a=t(G,la.touch,x,"touchmove","touchend");return e.origin=function(t){return arguments.length?(o=t,e):o},la.rebind(e,r,"on")},la.touches=function(e,t){return arguments.length<2&&(t=E().touches),t?da(t).map(function(t){var n=K(e,t);return n.identifier=t.identifier,n}):[]};var za=1e-6,Ra=za*za,Pa=Math.PI,Ia=2*Pa,Ha=Ia-za,$a=Pa/2,Ba=Pa/180,Va=180/Pa,Ua=Math.SQRT2,Wa=2,Ya=4;la.interpolateZoom=function(e,t){var n,r,o=e[0],i=e[1],a=e[2],s=t[0],u=t[1],l=t[2],c=s-o,d=u-i,f=c*c+d*d;if(Ra>f)r=Math.log(l/a)/Ua,n=function(e){return[o+e*c,i+e*d,a*Math.exp(Ua*e*r)]};else{var h=Math.sqrt(f),p=(l*l-a*a+Ya*f)/(2*a*Wa*h),m=(l*l-a*a-Ya*f)/(2*l*Wa*h),g=Math.log(Math.sqrt(p*p+1)-p),v=Math.log(Math.sqrt(m*m+1)-m);r=(v-g)/Ua,n=function(e){var t=e*r,n=oe(g),s=a/(Wa*h)*(n*ie(Ua*t+g)-re(g));return[o+s*c,i+s*d,a*n/oe(Ua*t+g)]}}return n.duration=1e3*r,n},la.behavior.zoom=function(){function e(e){e.on(N,d).on(Ja+".zoom",h).on("dblclick.zoom",p).on(D,f)}function t(e){return[(e[0]-j.x)/j.k,(e[1]-j.y)/j.k]}function r(e){return[e[0]*j.k+j.x,e[1]*j.k+j.y]}function o(e){j.k=Math.max(S[0],Math.min(S[1],e))}function i(e,t){t=r(t),j.x+=e[0]-t[0],j.y+=e[1]-t[1]}function a(t,n,r,a){t.__chart__={x:j.x,y:j.y,k:j.k},o(Math.pow(2,a)),i(g=n,r),t=la.select(t),T>0&&(t=t.transition().duration(T)),t.call(e.event)}function s(){_&&_.domain(w.range().map(function(e){return(e-j.x)/j.k}).map(w.invert)),k&&k.domain(b.range().map(function(e){return(e-j.y)/j.k}).map(b.invert))}function u(e){A++||e({type:"zoomstart"})}function l(e){s(),e({type:"zoom",scale:j.k,translate:[j.x,j.y]})}function c(e){--A||(e({type:"zoomend"}),g=null)}function d(){function e(){s=1,i(la.mouse(o),f),l(a)}function r(){d.on(O,null).on(q,null),h(s),c(a)}var o=this,a=L.of(o,arguments),s=0,d=la.select(n(o)).on(O,e).on(q,r),f=t(la.mouse(o)),h=Z(o);$u.call(o),u(a)}function f(){function e(){var e=la.touches(p);return h=j.k,e.forEach(function(e){e.identifier in g&&(g[e.identifier]=t(e))}),e}function n(){var t=la.event.target;la.select(t).on(w,r).on(_,s),b.push(t);for(var n=la.event.changedTouches,o=0,i=n.length;i>o;++o)g[n[o].identifier]=null;var u=e(),l=Date.now();if(1===u.length){if(500>l-x){var c=u[0];a(p,c,g[c.identifier],Math.floor(Math.log(j.k)/Math.LN2)+1),M()}x=l}else if(u.length>1){var c=u[0],d=u[1],f=c[0]-d[0],h=c[1]-d[1];v=f*f+h*h}}function r(){var e,t,n,r,a=la.touches(p);$u.call(p);for(var s=0,u=a.length;u>s;++s,r=null)if(n=a[s],r=g[n.identifier]){if(t)break;e=n,t=r}if(r){var c=(c=n[0]-e[0])*c+(c=n[1]-e[1])*c,d=v&&Math.sqrt(c/v);e=[(e[0]+n[0])/2,(e[1]+n[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],o(d*h)}x=null,i(e,t),l(m)}function s(){if(la.event.touches.length){for(var t=la.event.changedTouches,n=0,r=t.length;r>n;++n)delete g[t[n].identifier];for(var o in g)return void e()}la.selectAll(b).on(y,null),k.on(N,d).on(D,f),E(),c(m)}var h,p=this,m=L.of(p,arguments),g={},v=0,y=".zoom-"+la.event.changedTouches[0].identifier,w="touchmove"+y,_="touchend"+y,b=[],k=la.select(p),E=Z(p);n(),u(m),k.on(N,null).on(D,n)}function h(){var e=L.of(this,arguments);y?clearTimeout(y):($u.call(this),m=t(g=v||la.mouse(this)),u(e)),y=setTimeout(function(){y=null,c(e)},50),M(),o(Math.pow(2,.002*Xa())*j.k),i(g,m),l(e)}function p(){var e=la.mouse(this),n=Math.log(j.k)/Math.LN2;a(this,e,t(e),la.event.shiftKey?Math.ceil(n)-1:Math.floor(n)+1)}var m,g,v,y,x,w,_,b,k,j={x:0,y:0,k:1},E=[960,500],S=Za,T=250,A=0,N="mousedown.zoom",O="mousemove.zoom",q="mouseup.zoom",D="touchstart.zoom",L=C(e,"zoomstart","zoom","zoomend");return Ja||(Ja="onwheel"in fa?(Xa=function(){return-la.event.deltaY*(la.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fa?(Xa=function(){return la.event.wheelDelta},"mousewheel"):(Xa=function(){return-la.event.detail},"MozMousePixelScroll")),e.event=function(e){e.each(function(){var e=L.of(this,arguments),t=j;Iu?la.select(this).transition().each("start.zoom",function(){j=this.__chart__||{x:0,y:0,k:1},u(e)}).tween("zoom:zoom",function(){var n=E[0],r=E[1],o=g?g[0]:n/2,i=g?g[1]:r/2,a=la.interpolateZoom([(o-j.x)/j.k,(i-j.y)/j.k,n/j.k],[(o-t.x)/t.k,(i-t.y)/t.k,n/t.k]);return function(t){var r=a(t),s=n/r[2];this.__chart__=j={x:o-r[0]*s,y:i-r[1]*s,k:s},l(e)}}).each("interrupt.zoom",function(){c(e)}).each("end.zoom",function(){c(e)}):(this.__chart__=j,u(e),l(e),c(e))})},e.translate=function(t){return arguments.length?(j={x:+t[0],y:+t[1],k:j.k},s(),e):[j.x,j.y]},e.scale=function(t){return arguments.length?(j={x:j.x,y:j.y,k:null},o(+t),s(),e):j.k},e.scaleExtent=function(t){return arguments.length?(S=null==t?Za:[+t[0],+t[1]],e):S},e.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],e):v},e.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],e):E},e.duration=function(t){return arguments.length?(T=+t,e):T},e.x=function(t){return arguments.length?(_=t,w=t.copy(),j={x:0,y:0,k:1},e):_},e.y=function(t){return arguments.length?(k=t,b=t.copy(),j={x:0,y:0,k:1},e):k},la.rebind(e,L,"on")};var Xa,Ja,Za=[0,1/0];la.color=se,se.prototype.toString=function(){return this.rgb()+""},la.hsl=ue;var Ka=ue.prototype=new se;Ka.brighter=function(e){return e=Math.pow(.7,arguments.length?e:1),new ue(this.h,this.s,this.l/e)},Ka.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),new ue(this.h,this.s,e*this.l)},Ka.rgb=function(){return le(this.h,this.s,this.l)},la.hcl=ce;var Ga=ce.prototype=new se;Ga.brighter=function(e){return new ce(this.h,this.c,Math.min(100,this.l+Qa*(arguments.length?e:1)))},Ga.darker=function(e){return new ce(this.h,this.c,Math.max(0,this.l-Qa*(arguments.length?e:1)))},Ga.rgb=function(){return de(this.h,this.c,this.l).rgb()},la.lab=fe;var Qa=18,es=.95047,ts=1,ns=1.08883,rs=fe.prototype=new se;rs.brighter=function(e){return new fe(Math.min(100,this.l+Qa*(arguments.length?e:1)),this.a,this.b)},rs.darker=function(e){return new fe(Math.max(0,this.l-Qa*(arguments.length?e:1)),this.a,this.b)},rs.rgb=function(){return he(this.l,this.a,this.b)},la.rgb=ye;var os=ye.prototype=new se;os.brighter=function(e){e=Math.pow(.7,arguments.length?e:1);var t=this.r,n=this.g,r=this.b,o=30;return t||n||r?(t&&o>t&&(t=o),n&&o>n&&(n=o),r&&o>r&&(r=o),new ye(Math.min(255,t/e),Math.min(255,n/e),Math.min(255,r/e))):new ye(o,o,o)},os.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),new ye(e*this.r,e*this.g,e*this.b)},os.hsl=function(){return ke(this.r,this.g,this.b)},os.toString=function(){return"#"+_e(this.r)+_e(this.g)+_e(this.b)};var is=la.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});is.forEach(function(e,t){is.set(e,xe(t))}),la.functor=Ce,la.xhr=Se(x),la.dsv=function(e,t){function n(e,n,i){arguments.length<3&&(i=n,n=null);var a=Te(e,t,null==n?r:o(n),i);return a.row=function(e){return arguments.length?a.response(null==(n=e)?r:o(e)):n},a}function r(e){return n.parse(e.responseText)}function o(e){return function(t){return n.parse(t.responseText,e)}}function i(t){return t.map(a).join(e)}function a(e){return s.test(e)?'"'+e.replace(/\"/g,'""')+'"':e}var s=new RegExp('["'+e+"\n]"),u=e.charCodeAt(0);return n.parse=function(e,t){var r;return n.parseRows(e,function(e,n){if(r)return r(e,n-1);var o=new Function("d","return {"+e.map(function(e,t){return JSON.stringify(e)+": d["+t+"]"}).join(",")+"}");r=t?function(e,n){return t(o(e),n)}:o})},n.parseRows=function(e,t){function n(){if(c>=l)return a;if(o)return o=!1,i;var t=c;if(34===e.charCodeAt(t)){for(var n=t;n++<l;)if(34===e.charCodeAt(n)){if(34!==e.charCodeAt(n+1))break;++n}c=n+2;var r=e.charCodeAt(n+1);return 13===r?(o=!0,10===e.charCodeAt(n+2)&&++c):10===r&&(o=!0),e.slice(t+1,n).replace(/""/g,'"')}for(;l>c;){var r=e.charCodeAt(c++),s=1;if(10===r)o=!0;else if(13===r)o=!0,10===e.charCodeAt(c)&&(++c,++s);else if(r!==u)continue;return e.slice(t,c-s)}return e.slice(t)}for(var r,o,i={},a={},s=[],l=e.length,c=0,d=0;(r=n())!==a;){for(var f=[];r!==i&&r!==a;)f.push(r),r=n();t&&null==(f=t(f,d++))||s.push(f)}return s},n.format=function(t){if(Array.isArray(t[0]))return n.formatRows(t);var r=new y,o=[];return t.forEach(function(e){for(var t in e)r.has(t)||o.push(r.add(t))}),[o.map(a).join(e)].concat(t.map(function(t){return o.map(function(e){return a(t[e])}).join(e)})).join("\n")},n.formatRows=function(e){return e.map(i).join("\n")},n},la.csv=la.dsv(",","text/csv"),la.tsv=la.dsv(" ","text/tab-separated-values");var as,ss,us,ls,cs=this[_(this,"requestAnimationFrame")]||function(e){setTimeout(e,17)};la.timer=function(){Oe.apply(this,arguments)},la.timer.flush=function(){De(),Le()},la.round=function(e,t){return t?Math.round(e*(t=Math.pow(10,t)))/t:Math.round(e)};var ds=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(ze);la.formatPrefix=function(e,t){var n=0;return(e=+e)&&(0>e&&(e*=-1),t&&(e=la.round(e,Fe(e,t))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),ds[8+n/3]};var fs=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,hs=la.map({b:function(e){return e.toString(2)},c:function(e){return String.fromCharCode(e)},o:function(e){return e.toString(8)},x:function(e){return e.toString(16)},X:function(e){return e.toString(16).toUpperCase()},g:function(e,t){return e.toPrecision(t)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},r:function(e,t){return(e=la.round(e,Fe(e,t))).toFixed(Math.max(0,Math.min(20,Fe(e*(1+1e-15),t))))}}),ps=la.time={},ms=Date;Ie.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){gs.setUTCDate.apply(this._,arguments)},setDay:function(){gs.setUTCDay.apply(this._,arguments)},setFullYear:function(){gs.setUTCFullYear.apply(this._,arguments)},setHours:function(){gs.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){gs.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){gs.setUTCMinutes.apply(this._,arguments)},setMonth:function(){gs.setUTCMonth.apply(this._,arguments)},setSeconds:function(){gs.setUTCSeconds.apply(this._,arguments)},setTime:function(){gs.setTime.apply(this._,arguments)}};var gs=Date.prototype;ps.year=He(function(e){return e=ps.day(e),e.setMonth(0,1),e},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e){return e.getFullYear()}),ps.years=ps.year.range,ps.years.utc=ps.year.utc.range,ps.day=He(function(e){var t=new ms(2e3,0);return t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),t},function(e,t){e.setDate(e.getDate()+t)},function(e){return e.getDate()-1}),ps.days=ps.day.range,ps.days.utc=ps.day.utc.range,ps.dayOfYear=function(e){var t=ps.year(e);return Math.floor((e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(e,t){t=7-t;var n=ps[e]=He(function(e){return(e=ps.day(e)).setDate(e.getDate()-(e.getDay()+t)%7),e},function(e,t){e.setDate(e.getDate()+7*Math.floor(t))},function(e){var n=ps.year(e).getDay();return Math.floor((ps.dayOfYear(e)+(n+t)%7)/7)-(n!==t)});ps[e+"s"]=n.range,ps[e+"s"].utc=n.utc.range,ps[e+"OfYear"]=function(e){var n=ps.year(e).getDay();return Math.floor((ps.dayOfYear(e)+(n+t)%7)/7)}}),ps.week=ps.sunday,ps.weeks=ps.sunday.range,ps.weeks.utc=ps.sunday.utc.range,ps.weekOfYear=ps.sundayOfYear;var vs={"-":"",_:" ",0:"0"},ys=/^\s*\d+/,xs=/^%/;la.locale=function(e){return{numberFormat:Re(e),timeFormat:Be(e)}};var ws=la.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});la.format=ws.numberFormat,la.geo={},ct.prototype={s:0,t:0,add:function(e){dt(e,this.t,_s),dt(_s.s,this.s,this),this.s?this.t+=_s.t:this.s=_s.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var _s=new ct;la.geo.stream=function(e,t){e&&bs.hasOwnProperty(e.type)?bs[e.type](e,t):ft(e,t)};var bs={Feature:function(e,t){ft(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,o=n.length;++r<o;)ft(n[r].geometry,t)}},ks={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)e=n[r],t.point(e[0],e[1],e[2])},LineString:function(e,t){ht(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)ht(n[r],t,0)},Polygon:function(e,t){pt(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)pt(n[r],t)},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,o=n.length;++r<o;)ft(n[r],t)}};la.geo.area=function(e){return js=0,la.geo.stream(e,Es),js};var js,Ms=new ct,Es={sphere:function(){js+=4*Pa},point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ms.reset(),Es.lineStart=mt},polygonEnd:function(){var e=2*Ms;js+=0>e?4*Pa+e:e,Es.lineStart=Es.lineEnd=Es.point=b}};la.geo.bounds=function(){function e(e,t){x.push(w=[c=e,f=e]),d>t&&(d=t),t>h&&(h=t)}function t(t,n){var r=gt([t*Ba,n*Ba]);if(v){var o=yt(v,r),i=[o[1],-o[0],0],a=yt(i,o);_t(a),a=bt(a);var u=t-p,l=u>0?1:-1,m=a[0]*Va*l,g=_a(u)>180;if(g^(m>l*p&&l*t>m)){var y=a[1]*Va;y>h&&(h=y)}else if(m=(m+360)%360-180,g^(m>l*p&&l*t>m)){var y=-a[1]*Va;d>y&&(d=y)}else d>n&&(d=n),n>h&&(h=n);g?p>t?s(c,t)>s(c,f)&&(f=t):s(t,f)>s(c,f)&&(c=t):f>=c?(c>t&&(c=t),t>f&&(f=t)):t>p?s(c,t)>s(c,f)&&(f=t):s(t,f)>s(c,f)&&(c=t)}else e(t,n);v=r,p=t}function n(){_.point=t}function r(){w[0]=c,w[1]=f,_.point=e,v=null}function o(e,n){if(v){var r=e-p;y+=_a(r)>180?r+(r>0?360:-360):r}else m=e,g=n;Es.point(e,n),t(e,n)}function i(){Es.lineStart()}function a(){o(m,g),Es.lineEnd(),_a(y)>za&&(c=-(f=180)),w[0]=c,w[1]=f,v=null}function s(e,t){return(t-=e)<0?t+360:t}function u(e,t){return e[0]-t[0]}function l(e,t){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}var c,d,f,h,p,m,g,v,y,x,w,_={point:e,lineStart:n,lineEnd:r,polygonStart:function(){_.point=o,_.lineStart=i,_.lineEnd=a,y=0,Es.polygonStart()},polygonEnd:function(){Es.polygonEnd(),_.point=e,_.lineStart=n,_.lineEnd=r,0>Ms?(c=-(f=180),d=-(h=90)):y>za?h=90:-za>y&&(d=-90),w[0]=c,w[1]=f}};return function(e){h=f=-(c=d=1/0),x=[],la.geo.stream(e,_);var t=x.length;if(t){x.sort(u);for(var n,r=1,o=x[0],i=[o];t>r;++r)n=x[r],l(n[0],o)||l(n[1],o)?(s(o[0],n[1])>s(o[0],o[1])&&(o[1]=n[1]),s(n[0],o[1])>s(o[0],o[1])&&(o[0]=n[0])):i.push(o=n);for(var a,n,p=-(1/0),t=i.length-1,r=0,o=i[t];t>=r;o=n,++r)n=i[r],(a=s(o[1],n[0]))>p&&(p=a,c=n[0],f=o[1])}return x=w=null,c===1/0||d===1/0?[[NaN,NaN],[NaN,NaN]]:[[c,d],[f,h]]}}(),la.geo.centroid=function(e){Cs=Ss=Ts=As=Ns=Os=qs=Ds=Ls=Fs=zs=0,la.geo.stream(e,Rs);var t=Ls,n=Fs,r=zs,o=t*t+n*n+r*r;return Ra>o&&(t=Os,n=qs,r=Ds,za>Ss&&(t=Ts,n=As,r=Ns),o=t*t+n*n+r*r,Ra>o)?[NaN,NaN]:[Math.atan2(n,t)*Va,ne(r/Math.sqrt(o))*Va]};var Cs,Ss,Ts,As,Ns,Os,qs,Ds,Ls,Fs,zs,Rs={sphere:b,point:jt,lineStart:Et,lineEnd:Ct,polygonStart:function(){Rs.lineStart=St},polygonEnd:function(){Rs.lineStart=Et}},Ps=Dt(At,Rt,It,[-Pa,-Pa/2]),Is=1e9;la.geo.clipExtent=function(){var e,t,n,r,o,i,a={stream:function(e){return o&&(o.valid=!1),o=i(e),o.valid=!0,o},extent:function(s){return arguments.length?(i=Vt(e=+s[0][0],t=+s[0][1],n=+s[1][0],r=+s[1][1]),o&&(o.valid=!1,o=null),a):[[e,t],[n,r]]}};return a.extent([[0,0],[960,500]])},(la.geo.conicEqualArea=function(){return Ut(Wt)}).raw=Wt,la.geo.albers=function(){return la.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},la.geo.albersUsa=function(){function e(e){var i=e[0],a=e[1];return t=null,n(i,a),t||(r(i,a),t)||o(i,a),t}var t,n,r,o,i=la.geo.albers(),a=la.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=la.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(e,n){t=[e,n]}};return e.invert=function(e){var t=i.scale(),n=i.translate(),r=(e[0]-n[0])/t,o=(e[1]-n[1])/t;return(o>=.12&&.234>o&&r>=-.425&&-.214>r?a:o>=.166&&.234>o&&r>=-.214&&-.115>r?s:i).invert(e)},e.stream=function(e){var t=i.stream(e),n=a.stream(e),r=s.stream(e);return{point:function(e,o){t.point(e,o),n.point(e,o),r.point(e,o)},sphere:function(){t.sphere(),n.sphere(),r.sphere()},lineStart:function(){t.lineStart(),n.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),n.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),n.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),n.polygonEnd(),r.polygonEnd()}}},e.precision=function(t){return arguments.length?(i.precision(t),a.precision(t),s.precision(t),e):i.precision()},e.scale=function(t){return arguments.length?(i.scale(t),a.scale(.35*t),s.scale(t),e.translate(i.translate())):i.scale()},e.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),c=+t[0],d=+t[1];return n=i.translate(t).clipExtent([[c-.455*l,d-.238*l],[c+.455*l,d+.238*l]]).stream(u).point,r=a.translate([c-.307*l,d+.201*l]).clipExtent([[c-.425*l+za,d+.12*l+za],[c-.214*l-za,d+.234*l-za]]).stream(u).point,o=s.translate([c-.205*l,d+.212*l]).clipExtent([[c-.214*l+za,d+.166*l+za],[c-.115*l-za,d+.234*l-za]]).stream(u).point,e},e.scale(1070)};var Hs,$s,Bs,Vs,Us,Ws,Ys={point:b,lineStart:b,lineEnd:b,polygonStart:function(){$s=0,Ys.lineStart=Yt},polygonEnd:function(){Ys.lineStart=Ys.lineEnd=Ys.point=b,Hs+=_a($s/2)}},Xs={point:Xt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Js={point:Kt,lineStart:Gt,lineEnd:Qt,polygonStart:function(){Js.lineStart=en},polygonEnd:function(){Js.point=Kt,Js.lineStart=Gt,Js.lineEnd=Qt}};la.geo.path=function(){function e(e){return e&&("function"==typeof s&&i.pointRadius(+s.apply(this,arguments)),a&&a.valid||(a=o(i)),la.geo.stream(e,a)),i.result()}function t(){return a=null,e}var n,r,o,i,a,s=4.5;return e.area=function(e){return Hs=0,la.geo.stream(e,o(Ys)),Hs},e.centroid=function(e){return Ts=As=Ns=Os=qs=Ds=Ls=Fs=zs=0,la.geo.stream(e,o(Js)),zs?[Ls/zs,Fs/zs]:Ds?[Os/Ds,qs/Ds]:Ns?[Ts/Ns,As/Ns]:[NaN,NaN]},e.bounds=function(e){return Us=Ws=-(Bs=Vs=1/0),la.geo.stream(e,o(Xs)),[[Bs,Vs],[Us,Ws]]},e.projection=function(e){return arguments.length?(o=(n=e)?e.stream||rn(e):x,t()):n},e.context=function(e){return arguments.length?(i=null==(r=e)?new Jt:new tn(e),"function"!=typeof s&&i.pointRadius(s),t()):r},e.pointRadius=function(t){return arguments.length?(s="function"==typeof t?t:(i.pointRadius(+t),+t),e):s},e.projection(la.geo.albersUsa()).context(null)},la.geo.transform=function(e){return{stream:function(t){var n=new on(t);for(var r in e)n[r]=e[r];return n}}},on.prototype={point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},la.geo.projection=sn,la.geo.projectionMutator=un,(la.geo.equirectangular=function(){return sn(cn)}).raw=cn.invert=cn,la.geo.rotation=function(e){function t(t){return t=e(t[0]*Ba,t[1]*Ba),t[0]*=Va,t[1]*=Va,t}return e=fn(e[0]%360*Ba,e[1]*Ba,e.length>2?e[2]*Ba:0),t.invert=function(t){return t=e.invert(t[0]*Ba,t[1]*Ba),t[0]*=Va,t[1]*=Va,t},t},dn.invert=cn,la.geo.circle=function(){function e(){var e="function"==typeof r?r.apply(this,arguments):r,t=fn(-e[0]*Ba,-e[1]*Ba,0).invert,o=[];return n(null,null,1,{point:function(e,n){o.push(e=t(e,n)),e[0]*=Va,e[1]*=Va}}),{type:"Polygon",coordinates:[o]}}var t,n,r=[0,0],o=6;return e.origin=function(t){return arguments.length?(r=t,e):r},e.angle=function(r){return arguments.length?(n=gn((t=+r)*Ba,o*Ba),e):t},e.precision=function(r){return arguments.length?(n=gn(t*Ba,(o=+r)*Ba),e):o},e.angle(90)},la.geo.distance=function(e,t){var n,r=(t[0]-e[0])*Ba,o=e[1]*Ba,i=t[1]*Ba,a=Math.sin(r),s=Math.cos(r),u=Math.sin(o),l=Math.cos(o),c=Math.sin(i),d=Math.cos(i);return Math.atan2(Math.sqrt((n=d*a)*n+(n=l*c-u*d*s)*n),u*c+l*d*s)},la.geo.graticule=function(){function e(){return{type:"MultiLineString",coordinates:t()}}function t(){return la.range(Math.ceil(i/g)*g,o,g).map(f).concat(la.range(Math.ceil(l/v)*v,u,v).map(h)).concat(la.range(Math.ceil(r/p)*p,n,p).filter(function(e){return _a(e%g)>za}).map(c)).concat(la.range(Math.ceil(s/m)*m,a,m).filter(function(e){return _a(e%v)>za}).map(d))}var n,r,o,i,a,s,u,l,c,d,f,h,p=10,m=p,g=90,v=360,y=2.5;return e.lines=function(){return t().map(function(e){return{type:"LineString",coordinates:e}})},e.outline=function(){return{type:"Polygon",coordinates:[f(i).concat(h(u).slice(1),f(o).reverse().slice(1),h(l).reverse().slice(1))]}},e.extent=function(t){return arguments.length?e.majorExtent(t).minorExtent(t):e.minorExtent()},e.majorExtent=function(t){return arguments.length?(i=+t[0][0],o=+t[1][0],l=+t[0][1],u=+t[1][1],i>o&&(t=i,i=o,o=t),l>u&&(t=l,l=u,u=t),e.precision(y)):[[i,l],[o,u]]},e.minorExtent=function(t){return arguments.length?(r=+t[0][0],n=+t[1][0],s=+t[0][1],a=+t[1][1],r>n&&(t=r,r=n,n=t),s>a&&(t=s,s=a,a=t),e.precision(y)):[[r,s],[n,a]]},e.step=function(t){return arguments.length?e.majorStep(t).minorStep(t):e.minorStep()},e.majorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],e):[g,v]},e.minorStep=function(t){return arguments.length?(p=+t[0],m=+t[1],e):[p,m]},e.precision=function(t){return arguments.length?(y=+t,c=yn(s,a,90),d=xn(r,n,y),f=yn(l,u,90),h=xn(i,o,y),e):y},e.majorExtent([[-180,-90+za],[180,90-za]]).minorExtent([[-180,-80-za],[180,80+za]])},la.geo.greatArc=function(){function e(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),n||o.apply(this,arguments)]}}var t,n,r=wn,o=_n;return e.distance=function(){return la.geo.distance(t||r.apply(this,arguments),n||o.apply(this,arguments))},e.source=function(n){return arguments.length?(r=n,t="function"==typeof n?null:n,e):r},e.target=function(t){return arguments.length?(o=t,n="function"==typeof t?null:t,e):o},e.precision=function(){return arguments.length?e:0},e},la.geo.interpolate=function(e,t){return bn(e[0]*Ba,e[1]*Ba,t[0]*Ba,t[1]*Ba)},la.geo.length=function(e){return Zs=0,la.geo.stream(e,Ks),Zs};var Zs,Ks={sphere:b,point:b,lineStart:kn,lineEnd:b,polygonStart:b,polygonEnd:b},Gs=jn(function(e){return Math.sqrt(2/(1+e))},function(e){return 2*Math.asin(e/2)});(la.geo.azimuthalEqualArea=function(){return sn(Gs)}).raw=Gs;var Qs=jn(function(e){var t=Math.acos(e);return t&&t/Math.sin(t)},x);(la.geo.azimuthalEquidistant=function(){return sn(Qs)}).raw=Qs,(la.geo.conicConformal=function(){return Ut(Mn)}).raw=Mn,(la.geo.conicEquidistant=function(){return Ut(En)}).raw=En;var eu=jn(function(e){return 1/e},Math.atan);(la.geo.gnomonic=function(){return sn(eu)}).raw=eu,Cn.invert=function(e,t){return[e,2*Math.atan(Math.exp(t))-$a]},(la.geo.mercator=function(){return Sn(Cn)}).raw=Cn;var tu=jn(function(){return 1},Math.asin);(la.geo.orthographic=function(){return sn(tu)}).raw=tu;var nu=jn(function(e){return 1/(1+e)},function(e){return 2*Math.atan(e)});(la.geo.stereographic=function(){return sn(nu)}).raw=nu,Tn.invert=function(e,t){return[-t,2*Math.atan(Math.exp(e))-$a]},(la.geo.transverseMercator=function(){var e=Sn(Tn),t=e.center,n=e.rotate;return e.center=function(e){return e?t([-e[1],e[0]]):(e=t(),[e[1],-e[0]])},e.rotate=function(e){return e?n([e[0],e[1],e.length>2?e[2]+90:90]):(e=n(),[e[0],e[1],e[2]-90])},n([0,0,90])}).raw=Tn,la.geom={},la.geom.hull=function(e){function t(data){if(data.length<3)return[];var e,t=Ce(n),o=Ce(r),i=data.length,a=[],s=[];for(e=0;i>e;e++)a.push([+t.call(this,data[e],e),+o.call(this,data[e],e),e]);for(a.sort(qn),e=0;i>e;e++)s.push([a[e][0],-a[e][1]]);var u=On(a),l=On(s),c=l[0]===u[0],d=l[l.length-1]===u[u.length-1],f=[];for(e=u.length-1;e>=0;--e)f.push(data[a[u[e]][2]]);for(e=+c;e<l.length-d;++e)f.push(data[a[l[e]][2]]);return f}var n=An,r=Nn;return arguments.length?t(e):(t.x=function(e){return arguments.length?(n=e,t):n},t.y=function(e){return arguments.length?(r=e,t):r},t)},la.geom.polygon=function(e){return Ea(e,ru),e};var ru=la.geom.polygon.prototype=[];ru.area=function(){for(var e,t=-1,n=this.length,r=this[n-1],o=0;++t<n;)e=r,r=this[t],o+=e[1]*r[0]-e[0]*r[1];return.5*o}, -ru.centroid=function(e){var t,n,r=-1,o=this.length,i=0,a=0,s=this[o-1];for(arguments.length||(e=-1/(6*this.area()));++r<o;)t=s,s=this[r],n=t[0]*s[1]-s[0]*t[1],i+=(t[0]+s[0])*n,a+=(t[1]+s[1])*n;return[i*e,a*e]},ru.clip=function(e){for(var t,n,r,o,i,a,s=Fn(e),u=-1,l=this.length-Fn(this),c=this[l-1];++u<l;){for(t=e.slice(),e.length=0,o=this[u],i=t[(r=t.length-s)-1],n=-1;++n<r;)a=t[n],Dn(a,c,o)?(Dn(i,c,o)||e.push(Ln(i,a,c,o)),e.push(a)):Dn(i,c,o)&&e.push(Ln(i,a,c,o)),i=a;s&&e.push(e[0]),c=o}return e};var ou,iu,au,su,uu,lu=[],cu=[];Vn.prototype.prepare=function(){for(var e,t=this.edges,n=t.length;n--;)e=t[n].edge,e.b&&e.a||t.splice(n,1);return t.sort(Wn),t.length},nr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},rr.prototype={insert:function(e,t){var n,r,o;if(e){if(t.P=e,t.N=e.N,e.N&&(e.N.P=t),e.N=t,e.R){for(e=e.R;e.L;)e=e.L;e.L=t}else e.R=t;n=e}else this._?(e=sr(this._),t.P=null,t.N=e,e.P=e.L=t,n=e):(t.P=t.N=null,this._=t,n=null);for(t.L=t.R=null,t.U=n,t.C=!0,e=t;n&&n.C;)r=n.U,n===r.L?(o=r.R,o&&o.C?(n.C=o.C=!1,r.C=!0,e=r):(e===n.R&&(ir(this,n),e=n,n=e.U),n.C=!1,r.C=!0,ar(this,r))):(o=r.L,o&&o.C?(n.C=o.C=!1,r.C=!0,e=r):(e===n.L&&(ar(this,n),e=n,n=e.U),n.C=!1,r.C=!0,ir(this,r))),n=e.U;this._.C=!1},remove:function(e){e.N&&(e.N.P=e.P),e.P&&(e.P.N=e.N),e.N=e.P=null;var t,n,r,o=e.U,i=e.L,a=e.R;if(n=i?a?sr(a):i:a,o?o.L===e?o.L=n:o.R=n:this._=n,i&&a?(r=n.C,n.C=e.C,n.L=i,i.U=n,n!==a?(o=n.U,n.U=e.U,e=n.R,o.L=e,n.R=a,a.U=n):(n.U=o,o=n,e=n.R)):(r=e.C,e=n),e&&(e.U=o),!r){if(e&&e.C)return void(e.C=!1);do{if(e===this._)break;if(e===o.L){if(t=o.R,t.C&&(t.C=!1,o.C=!0,ir(this,o),t=o.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ar(this,t),t=o.R),t.C=o.C,o.C=t.R.C=!1,ir(this,o),e=this._;break}}else if(t=o.L,t.C&&(t.C=!1,o.C=!0,ar(this,o),t=o.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,ir(this,t),t=o.L),t.C=o.C,o.C=t.L.C=!1,ar(this,o),e=this._;break}t.C=!0,e=o,o=o.U}while(!e.C);e&&(e.C=!1)}}},la.geom.voronoi=function(e){function t(data){var e=new Array(data.length),t=s[0][0],r=s[0][1],o=s[1][0],i=s[1][1];return ur(n(data),s).cells.forEach(function(n,a){var s=n.edges,u=n.site,l=e[a]=s.length?s.map(function(e){var t=e.start();return[t.x,t.y]}):u.x>=t&&u.x<=o&&u.y>=r&&u.y<=i?[[t,i],[o,i],[o,r],[t,r]]:[];l.point=data[a]}),e}function n(data){return data.map(function(e,t){return{x:Math.round(i(e,t)/za)*za,y:Math.round(a(e,t)/za)*za,i:t}})}var r=An,o=Nn,i=r,a=o,s=du;return e?t(e):(t.links=function(data){return ur(n(data)).edges.filter(function(e){return e.l&&e.r}).map(function(e){return{source:data[e.l.i],target:data[e.r.i]}})},t.triangles=function(data){var e=[];return ur(n(data)).cells.forEach(function(t,n){for(var r,o,i=t.site,a=t.edges.sort(Wn),s=-1,u=a.length,l=a[u-1].edge,c=l.l===i?l.r:l.l;++s<u;)r=l,o=c,l=a[s].edge,c=l.l===i?l.r:l.l,n<o.i&&n<c.i&&cr(i,o,c)<0&&e.push([data[n],data[o.i],data[c.i]])}),e},t.x=function(e){return arguments.length?(i=Ce(r=e),t):r},t.y=function(e){return arguments.length?(a=Ce(o=e),t):o},t.clipExtent=function(e){return arguments.length?(s=null==e?du:e,t):s===du?null:s},t.size=function(e){return arguments.length?t.clipExtent(e&&[[0,0],e]):s===du?null:s&&s[1]},t)};var du=[[-1e6,-1e6],[1e6,1e6]];la.geom.delaunay=function(e){return la.geom.voronoi().triangles(e)},la.geom.quadtree=function(e,t,n,r,o){function i(data){function e(e,t,n,r,o,a,s,u){if(!isNaN(n)&&!isNaN(r))if(e.leaf){var l=e.x,c=e.y;if(null!=l)if(_a(l-n)+_a(c-r)<.01)i(e,t,n,r,o,a,s,u);else{var d=e.point;e.x=e.y=e.point=null,i(e,d,l,c,o,a,s,u),i(e,t,n,r,o,a,s,u)}else e.x=n,e.y=r,e.point=t}else i(e,t,n,r,o,a,s,u)}function i(t,n,r,o,i,a,s,u){var l=.5*(i+s),c=.5*(a+u),d=r>=l,f=o>=c,h=f<<1|d;t.leaf=!1,t=t.nodes[h]||(t.nodes[h]=hr()),d?i=l:s=l,f?a=c:u=c,e(t,n,r,o,i,a,s,u)}var l,c,d,f,h,p,m,g,v,y=Ce(s),x=Ce(u);if(null!=t)p=t,m=n,g=r,v=o;else if(g=v=-(p=m=1/0),c=[],d=[],h=data.length,a)for(f=0;h>f;++f)l=data[f],l.x<p&&(p=l.x),l.y<m&&(m=l.y),l.x>g&&(g=l.x),l.y>v&&(v=l.y),c.push(l.x),d.push(l.y);else for(f=0;h>f;++f){var w=+y(l=data[f],f),_=+x(l,f);p>w&&(p=w),m>_&&(m=_),w>g&&(g=w),_>v&&(v=_),c.push(w),d.push(_)}var b=g-p,k=v-m;b>k?v=m+b:g=p+k;var j=hr();if(j.add=function(t){e(j,t,+y(t,++f),+x(t,f),p,m,g,v)},j.visit=function(e){pr(e,j,p,m,g,v)},j.find=function(e){return mr(j,e[0],e[1],p,m,g,v)},f=-1,null==t){for(;++f<h;)e(j,data[f],c[f],d[f],p,m,g,v);--f}else data.forEach(j.add);return c=d=data=l=null,j}var a,s=An,u=Nn;return(a=arguments.length)?(s=dr,u=fr,3===a&&(o=n,r=t,n=t=0),i(e)):(i.x=function(e){return arguments.length?(s=e,i):s},i.y=function(e){return arguments.length?(u=e,i):u},i.extent=function(e){return arguments.length?(null==e?t=n=r=o=null:(t=+e[0][0],n=+e[0][1],r=+e[1][0],o=+e[1][1]),i):null==t?null:[[t,n],[r,o]]},i.size=function(e){return arguments.length?(null==e?t=n=r=o=null:(t=n=0,r=+e[0],o=+e[1]),i):null==t?null:[r-t,o-n]},i)},la.interpolateRgb=gr,la.interpolateObject=vr,la.interpolateNumber=yr,la.interpolateString=xr;var fu=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hu=new RegExp(fu.source,"g");la.interpolate=wr,la.interpolators=[function(e,t){var n=typeof t;return("string"===n?is.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?gr:xr:t instanceof se?gr:Array.isArray(t)?_r:"object"===n&&isNaN(t)?vr:yr)(e,t)}],la.interpolateArray=_r;var pu=function(){return x},mu=la.map({linear:pu,poly:Sr,quad:function(){return Mr},cubic:function(){return Er},sin:function(){return Tr},exp:function(){return Ar},circle:function(){return Nr},elastic:Or,back:qr,bounce:function(){return Dr}}),gu=la.map({"in":x,out:kr,"in-out":jr,"out-in":function(e){return jr(kr(e))}});la.ease=function(e){var t=e.indexOf("-"),n=t>=0?e.slice(0,t):e,r=t>=0?e.slice(t+1):"in";return n=mu.get(n)||pu,r=gu.get(r)||x,br(r(n.apply(null,ca.call(arguments,1))))},la.interpolateHcl=Lr,la.interpolateHsl=Fr,la.interpolateLab=zr,la.interpolateRound=Rr,la.transform=function(e){var t=fa.createElementNS(la.ns.prefix.svg,"g");return(la.transform=function(e){if(null!=e){t.setAttribute("transform",e);var n=t.transform.baseVal.consolidate()}return new Pr(n?n.matrix:vu)})(e)},Pr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var vu={a:1,b:0,c:0,d:1,e:0,f:0};la.interpolateTransform=Xr,la.layout={},la.layout.bundle=function(){return function(e){for(var t=[],n=-1,r=e.length;++n<r;)t.push(Kr(e[n]));return t}},la.layout.chord=function(){function e(){var e,l,d,f,h,p={},m=[],g=la.range(i),v=[];for(n=[],r=[],e=0,f=-1;++f<i;){for(l=0,h=-1;++h<i;)l+=o[f][h];m.push(l),v.push(la.range(i)),e+=l}for(a&&g.sort(function(e,t){return a(m[e],m[t])}),s&&v.forEach(function(e,t){e.sort(function(e,n){return s(o[t][e],o[t][n])})}),e=(Ia-c*i)/e,l=0,f=-1;++f<i;){for(d=l,h=-1;++h<i;){var y=g[f],x=v[y][h],w=o[y][x],_=l,b=l+=w*e;p[y+"-"+x]={index:y,subindex:x,startAngle:_,endAngle:b,value:w}}r[y]={index:y,startAngle:d,endAngle:l,value:(l-d)/e},l+=c}for(f=-1;++f<i;)for(h=f-1;++h<i;){var k=p[f+"-"+h],j=p[h+"-"+f];(k.value||j.value)&&n.push(k.value<j.value?{source:j,target:k}:{source:k,target:j})}u&&t()}function t(){n.sort(function(e,t){return u((e.source.value+e.target.value)/2,(t.source.value+t.target.value)/2)})}var n,r,o,i,a,s,u,l={},c=0;return l.matrix=function(e){return arguments.length?(i=(o=e)&&o.length,n=r=null,l):o},l.padding=function(e){return arguments.length?(c=e,n=r=null,l):c},l.sortGroups=function(e){return arguments.length?(a=e,n=r=null,l):a},l.sortSubgroups=function(e){return arguments.length?(s=e,n=null,l):s},l.sortChords=function(e){return arguments.length?(u=e,n&&t(),l):u},l.chords=function(){return n||e(),n},l.groups=function(){return r||e(),r},l},la.layout.force=function(){function e(e){return function(t,n,r,o){if(t.point!==e){var i=t.cx-e.x,a=t.cy-e.y,s=o-n,u=i*i+a*a;if(u>s*s/v){if(m>u){var l=t.charge/u;e.px-=i*l,e.py-=a*l}return!0}if(t.point&&u&&m>u){var l=t.pointCharge/u;e.px-=i*l,e.py-=a*l}}return!t.charge}}function t(e){e.px=la.event.x,e.py=la.event.y,u.resume()}var n,r,o,i,a,s,u={},l=la.dispatch("start","tick","end"),c=[1,1],d=.9,f=yu,h=xu,p=-30,m=wu,g=.1,v=.64,y=[],w=[];return u.tick=function(){if((o*=.99)<.005)return n=null,l.end({type:"end",alpha:o=0}),!0;var t,r,u,f,h,m,v,x,_,b=y.length,k=w.length;for(r=0;k>r;++r)u=w[r],f=u.source,h=u.target,x=h.x-f.x,_=h.y-f.y,(m=x*x+_*_)&&(m=o*a[r]*((m=Math.sqrt(m))-i[r])/m,x*=m,_*=m,h.x-=x*(v=f.weight+h.weight?f.weight/(f.weight+h.weight):.5),h.y-=_*v,f.x+=x*(v=1-v),f.y+=_*v);if((v=o*g)&&(x=c[0]/2,_=c[1]/2,r=-1,v))for(;++r<b;)u=y[r],u.x+=(x-u.x)*v,u.y+=(_-u.y)*v;if(p)for(oo(t=la.geom.quadtree(y),o,s),r=-1;++r<b;)(u=y[r]).fixed||t.visit(e(u));for(r=-1;++r<b;)u=y[r],u.fixed?(u.x=u.px,u.y=u.py):(u.x-=(u.px-(u.px=u.x))*d,u.y-=(u.py-(u.py=u.y))*d);l.tick({type:"tick",alpha:o})},u.nodes=function(e){return arguments.length?(y=e,u):y},u.links=function(e){return arguments.length?(w=e,u):w},u.size=function(e){return arguments.length?(c=e,u):c},u.linkDistance=function(e){return arguments.length?(f="function"==typeof e?e:+e,u):f},u.distance=u.linkDistance,u.linkStrength=function(e){return arguments.length?(h="function"==typeof e?e:+e,u):h},u.friction=function(e){return arguments.length?(d=+e,u):d},u.charge=function(e){return arguments.length?(p="function"==typeof e?e:+e,u):p},u.chargeDistance=function(e){return arguments.length?(m=e*e,u):Math.sqrt(m)},u.gravity=function(e){return arguments.length?(g=+e,u):g},u.theta=function(e){return arguments.length?(v=e*e,u):Math.sqrt(v)},u.alpha=function(e){return arguments.length?(e=+e,o?e>0?o=e:(n.c=null,n.t=NaN,n=null,l.end({type:"end",alpha:o=0})):e>0&&(l.start({type:"start",alpha:o=e}),n=Oe(u.tick)),u):o},u.start=function(){function e(e,r){if(!n){for(n=new Array(o),u=0;o>u;++u)n[u]=[];for(u=0;l>u;++u){var i=w[u];n[i.source.index].push(i.target),n[i.target.index].push(i.source)}}for(var a,s=n[t],u=-1,c=s.length;++u<c;)if(!isNaN(a=s[u][e]))return a;return Math.random()*r}var t,n,r,o=y.length,l=w.length,d=c[0],m=c[1];for(t=0;o>t;++t)(r=y[t]).index=t,r.weight=0;for(t=0;l>t;++t)r=w[t],"number"==typeof r.source&&(r.source=y[r.source]),"number"==typeof r.target&&(r.target=y[r.target]),++r.source.weight,++r.target.weight;for(t=0;o>t;++t)r=y[t],isNaN(r.x)&&(r.x=e("x",d)),isNaN(r.y)&&(r.y=e("y",m)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(i=[],"function"==typeof f)for(t=0;l>t;++t)i[t]=+f.call(this,w[t],t);else for(t=0;l>t;++t)i[t]=f;if(a=[],"function"==typeof h)for(t=0;l>t;++t)a[t]=+h.call(this,w[t],t);else for(t=0;l>t;++t)a[t]=h;if(s=[],"function"==typeof p)for(t=0;o>t;++t)s[t]=+p.call(this,y[t],t);else for(t=0;o>t;++t)s[t]=p;return u.resume()},u.resume=function(){return u.alpha(.1)},u.stop=function(){return u.alpha(0)},u.drag=function(){return r||(r=la.behavior.drag().origin(x).on("dragstart.force",eo).on("drag.force",t).on("dragend.force",to)),arguments.length?void this.on("mouseover.force",no).on("mouseout.force",ro).call(r):r},la.rebind(u,l,"on")};var yu=20,xu=1,wu=1/0;la.layout.hierarchy=function(){function e(o){var i,a=[o],s=[];for(o.depth=0;null!=(i=a.pop());)if(s.push(i),(l=n.call(e,i,i.depth))&&(u=l.length)){for(var u,l,c;--u>=0;)a.push(c=l[u]),c.parent=i,c.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(e,i,i.depth)||0),delete i.children;return so(o,function(e){var n,o;t&&(n=e.children)&&n.sort(t),r&&(o=e.parent)&&(o.value+=e.value)}),s}var t=co,n=uo,r=lo;return e.sort=function(n){return arguments.length?(t=n,e):t},e.children=function(t){return arguments.length?(n=t,e):n},e.value=function(t){return arguments.length?(r=t,e):r},e.revalue=function(t){return r&&(ao(t,function(e){e.children&&(e.value=0)}),so(t,function(t){var n;t.children||(t.value=+r.call(e,t,t.depth)||0),(n=t.parent)&&(n.value+=t.value)})),t},e},la.layout.partition=function(){function e(t,n,r,o){var i=t.children;if(t.x=n,t.y=t.depth*o,t.dx=r,t.dy=o,i&&(a=i.length)){var a,s,u,l=-1;for(r=t.value?r/t.value:0;++l<a;)e(s=i[l],n,u=s.value*r,o),n+=u}}function t(e){var n=e.children,r=0;if(n&&(o=n.length))for(var o,i=-1;++i<o;)r=Math.max(r,t(n[i]));return 1+r}function n(n,i){var a=r.call(this,n,i);return e(a[0],0,o[0],o[1]/t(a[0])),a}var r=la.layout.hierarchy(),o=[1,1];return n.size=function(e){return arguments.length?(o=e,n):o},io(n,r)},la.layout.pie=function(){function e(data){var a,s=data.length,u=data.map(function(n,r){return+t.call(e,n,r)}),l=+("function"==typeof r?r.apply(this,arguments):r),c=("function"==typeof o?o.apply(this,arguments):o)-l,d=Math.min(Math.abs(c)/s,+("function"==typeof i?i.apply(this,arguments):i)),f=d*(0>c?-1:1),h=la.sum(u),p=h?(c-s*f)/h:0,m=la.range(s),g=[];return null!=n&&m.sort(n===_u?function(e,t){return u[t]-u[e]}:function(e,t){return n(data[e],data[t])}),m.forEach(function(e){g[e]={data:data[e],value:a=u[e],startAngle:l,endAngle:l+=a*p+f,padAngle:d}}),g}var t=Number,n=_u,r=0,o=Ia,i=0;return e.value=function(n){return arguments.length?(t=n,e):t},e.sort=function(t){return arguments.length?(n=t,e):n},e.startAngle=function(t){return arguments.length?(r=t,e):r},e.endAngle=function(t){return arguments.length?(o=t,e):o},e.padAngle=function(t){return arguments.length?(i=t,e):i},e};var _u={};la.layout.stack=function(){function e(data,s){if(!(d=data.length))return data;var u=data.map(function(n,r){return t.call(e,n,r)}),l=u.map(function(t){return t.map(function(t,n){return[i.call(e,t,n),a.call(e,t,n)]})}),c=n.call(e,l,s);u=la.permute(u,c),l=la.permute(l,c);var d,f,h,p,m=r.call(e,l,s),g=u[0].length;for(h=0;g>h;++h)for(o.call(e,u[0][h],p=m[h],l[0][h][1]),f=1;d>f;++f)o.call(e,u[f][h],p+=l[f-1][h][1],l[f][h][1]);return data}var t=x,n=go,r=vo,o=mo,i=ho,a=po;return e.values=function(n){return arguments.length?(t=n,e):t},e.order=function(t){return arguments.length?(n="function"==typeof t?t:bu.get(t)||go,e):n},e.offset=function(t){return arguments.length?(r="function"==typeof t?t:ku.get(t)||vo,e):r},e.x=function(t){return arguments.length?(i=t,e):i},e.y=function(t){return arguments.length?(a=t,e):a},e.out=function(t){return arguments.length?(o=t,e):o},e};var bu=la.map({"inside-out":function(data){var e,t,n=data.length,r=data.map(yo),o=data.map(xo),i=la.range(n).sort(function(e,t){return r[e]-r[t]}),a=0,s=0,u=[],l=[];for(e=0;n>e;++e)t=i[e],s>a?(a+=o[t],u.push(t)):(s+=o[t],l.push(t));return l.reverse().concat(u)},reverse:function(data){return la.range(data.length).reverse()},"default":go}),ku=la.map({silhouette:function(data){var e,t,n,r=data.length,o=data[0].length,i=[],a=0,s=[];for(t=0;o>t;++t){for(e=0,n=0;r>e;e++)n+=data[e][t][1];n>a&&(a=n),i.push(n)}for(t=0;o>t;++t)s[t]=(a-i[t])/2;return s},wiggle:function(data){var e,t,n,r,o,i,a,s,u,l=data.length,c=data[0],d=c.length,f=[];for(f[0]=s=u=0,t=1;d>t;++t){for(e=0,r=0;l>e;++e)r+=data[e][t][1];for(e=0,o=0,a=c[t][0]-c[t-1][0];l>e;++e){for(n=0,i=(data[e][t][1]-data[e][t-1][1])/(2*a);e>n;++n)i+=(data[n][t][1]-data[n][t-1][1])/a;o+=i*data[e][t][1]}f[t]=s-=r?o/r*a:0,u>s&&(u=s)}for(t=0;d>t;++t)f[t]-=u;return f},expand:function(data){var e,t,n,r=data.length,o=data[0].length,i=1/r,a=[];for(t=0;o>t;++t){for(e=0,n=0;r>e;e++)n+=data[e][t][1];if(n)for(e=0;r>e;e++)data[e][t][1]/=n;else for(e=0;r>e;e++)data[e][t][1]=i}for(t=0;o>t;++t)a[t]=0;return a},zero:vo});la.layout.histogram=function(){function e(data,e){for(var i,a,s=[],u=data.map(n,this),l=r.call(this,u,e),c=o.call(this,l,u,e),e=-1,d=u.length,f=c.length-1,h=t?1:1/d;++e<f;)i=s[e]=[],i.dx=c[e+1]-(i.x=c[e]),i.y=0;if(f>0)for(e=-1;++e<d;)a=u[e],a>=l[0]&&a<=l[1]&&(i=s[la.bisect(c,a,1,f)-1],i.y+=h,i.push(data[e]));return s}var t=!0,n=Number,r=ko,o=_o;return e.value=function(t){return arguments.length?(n=t,e):n},e.range=function(t){return arguments.length?(r=Ce(t),e):r},e.bins=function(t){return arguments.length?(o="number"==typeof t?function(e){return bo(e,t)}:Ce(t),e):o},e.frequency=function(n){return arguments.length?(t=!!n,e):t},e},la.layout.pack=function(){function e(e,i){var a=n.call(this,e,i),s=a[0],u=o[0],l=o[1],c=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(s.x=s.y=0,so(s,function(e){e.r=+c(e.value)}),so(s,So),r){var d=r*(t?1:Math.max(2*s.r/u,2*s.r/l))/2;so(s,function(e){e.r+=d}),so(s,So),so(s,function(e){e.r-=d})}return No(s,u/2,l/2,t?1:1/Math.max(2*s.r/u,2*s.r/l)),a}var t,n=la.layout.hierarchy().sort(jo),r=0,o=[1,1];return e.size=function(t){return arguments.length?(o=t,e):o},e.radius=function(n){return arguments.length?(t=null==n||"function"==typeof n?n:+n,e):t},e.padding=function(t){return arguments.length?(r=+t,e):r},io(e,n)},la.layout.tree=function(){function e(e,o){var c=a.call(this,e,o),d=c[0],f=t(d);if(so(f,n),f.parent.m=-f.z,ao(f,r),l)ao(d,i);else{var h=d,p=d,m=d;ao(d,function(e){e.x<h.x&&(h=e),e.x>p.x&&(p=e),e.depth>m.depth&&(m=e)});var g=s(h,p)/2-h.x,v=u[0]/(p.x+s(p,h)/2+g),y=u[1]/(m.depth||1);ao(d,function(e){e.x=(e.x+g)*v,e.y=e.depth*y})}return c}function t(e){for(var t,n={A:null,children:[e]},r=[n];null!=(t=r.pop());)for(var o,i=t.children,a=0,s=i.length;s>a;++a)r.push((i[a]=o={_:i[a],parent:t,children:(o=i[a].children)&&o.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:a}).a=o);return n.children[0]}function n(e){var t=e.children,n=e.parent.children,r=e.i?n[e.i-1]:null;if(t.length){zo(e);var i=(t[0].z+t[t.length-1].z)/2;r?(e.z=r.z+s(e._,r._),e.m=e.z-i):e.z=i}else r&&(e.z=r.z+s(e._,r._));e.parent.A=o(e,r,e.parent.A||n[0])}function r(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function o(e,t,n){if(t){for(var r,o=e,i=e,a=t,u=o.parent.children[0],l=o.m,c=i.m,d=a.m,f=u.m;a=Lo(a),o=Do(o),a&&o;)u=Do(u),i=Lo(i),i.a=e,r=a.z+d-o.z-l+s(a._,o._),r>0&&(Fo(Ro(a,e,n),e,r),l+=r,c+=r),d+=a.m,l+=o.m,f+=u.m,c+=i.m;a&&!Lo(i)&&(i.t=a,i.m+=d-c),o&&!Do(u)&&(u.t=o,u.m+=l-f,n=e)}return n}function i(e){e.x*=u[0],e.y=e.depth*u[1]}var a=la.layout.hierarchy().sort(null).value(null),s=qo,u=[1,1],l=null;return e.separation=function(t){return arguments.length?(s=t,e):s},e.size=function(t){return arguments.length?(l=null==(u=t)?i:null,e):l?null:u},e.nodeSize=function(t){return arguments.length?(l=null==(u=t)?null:i,e):l?u:null},io(e,a)},la.layout.cluster=function(){function e(e,i){var a,s=t.call(this,e,i),u=s[0],l=0;so(u,function(e){var t=e.children;t&&t.length?(e.x=Io(t),e.y=Po(t)):(e.x=a?l+=n(e,a):0,e.y=0,a=e)});var c=Ho(u),d=$o(u),f=c.x-n(c,d)/2,h=d.x+n(d,c)/2;return so(u,o?function(e){e.x=(e.x-u.x)*r[0],e.y=(u.y-e.y)*r[1]}:function(e){e.x=(e.x-f)/(h-f)*r[0],e.y=(1-(u.y?e.y/u.y:1))*r[1]}),s}var t=la.layout.hierarchy().sort(null).value(null),n=qo,r=[1,1],o=!1;return e.separation=function(t){return arguments.length?(n=t,e):n},e.size=function(t){return arguments.length?(o=null==(r=t),e):o?null:r},e.nodeSize=function(t){return arguments.length?(o=null!=(r=t),e):o?r:null},io(e,t)},la.layout.treemap=function(){function e(e,t){for(var n,r,o=-1,i=e.length;++o<i;)r=(n=e[o]).value*(0>t?0:t),n.area=isNaN(r)||0>=r?0:r}function t(n){var i=n.children;if(i&&i.length){var a,s,u,l=d(n),c=[],f=i.slice(),p=1/0,m="slice"===h?l.dx:"dice"===h?l.dy:"slice-dice"===h?1&n.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(e(f,l.dx*l.dy/n.value),c.area=0;(u=f.length)>0;)c.push(a=f[u-1]),c.area+=a.area,"squarify"!==h||(s=r(c,m))<=p?(f.pop(),p=s):(c.area-=c.pop().area,o(c,m,l,!1),m=Math.min(l.dx,l.dy),c.length=c.area=0,p=1/0);c.length&&(o(c,m,l,!0),c.length=c.area=0),i.forEach(t)}}function n(t){var r=t.children;if(r&&r.length){var i,a=d(t),s=r.slice(),u=[];for(e(s,a.dx*a.dy/t.value),u.area=0;i=s.pop();)u.push(i),u.area+=i.area,null!=i.z&&(o(u,i.z?a.dx:a.dy,a,!s.length),u.length=u.area=0);r.forEach(n)}}function r(e,t){for(var n,r=e.area,o=0,i=1/0,a=-1,s=e.length;++a<s;)(n=e[a].area)&&(i>n&&(i=n),n>o&&(o=n));return r*=r,t*=t,r?Math.max(t*o*p/r,r/(t*i*p)):1/0}function o(e,t,n,r){var o,i=-1,a=e.length,s=n.x,l=n.y,c=t?u(e.area/t):0;if(t==n.dx){for((r||c>n.dy)&&(c=n.dy);++i<a;)o=e[i],o.x=s,o.y=l,o.dy=c,s+=o.dx=Math.min(n.x+n.dx-s,c?u(o.area/c):0);o.z=!0,o.dx+=n.x+n.dx-s,n.y+=c,n.dy-=c}else{for((r||c>n.dx)&&(c=n.dx);++i<a;)o=e[i],o.x=s,o.y=l,o.dx=c,l+=o.dy=Math.min(n.y+n.dy-l,c?u(o.area/c):0);o.z=!1,o.dy+=n.y+n.dy-l,n.x+=c,n.dx-=c}}function i(r){var o=a||s(r),i=o[0];return i.x=i.y=0,i.value?(i.dx=l[0],i.dy=l[1]):i.dx=i.dy=0,a&&s.revalue(i),e([i],i.dx*i.dy/i.value),(a?n:t)(i),f&&(a=o),o}var a,s=la.layout.hierarchy(),u=Math.round,l=[1,1],c=null,d=Bo,f=!1,h="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(e){return arguments.length?(l=e,i):l},i.padding=function(e){function t(t){var n=e.call(i,t,t.depth);return null==n?Bo(t):Vo(t,"number"==typeof n?[n,n,n,n]:n)}function n(t){return Vo(t,e)}if(!arguments.length)return c;var r;return d=null==(c=e)?Bo:"function"==(r=typeof e)?t:"number"===r?(e=[e,e,e,e],n):n,i},i.round=function(e){return arguments.length?(u=e?Math.round:Number,i):u!=Number},i.sticky=function(e){return arguments.length?(f=e,a=null,i):f},i.ratio=function(e){return arguments.length?(p=e,i):p},i.mode=function(e){return arguments.length?(h=e+"",i):h},io(i,s)},la.random={normal:function(e,t){var n=arguments.length;return 2>n&&(t=1),1>n&&(e=0),function(){var n,r,o;do n=2*Math.random()-1,r=2*Math.random()-1,o=n*n+r*r;while(!o||o>1);return e+t*n*Math.sqrt(-2*Math.log(o)/o)}},logNormal:function(){var e=la.random.normal.apply(la,arguments);return function(){return Math.exp(e())}},bates:function(e){var t=la.random.irwinHall(e);return function(){return t()/e}},irwinHall:function(e){return function(){for(var t=0,n=0;e>n;n++)t+=Math.random();return t}}},la.scale={};var ju={floor:x,ceil:x};la.scale.linear=function(){return Ko([0,1],[0,1],wr,!1)};var Mu={s:1,g:1,p:1,r:1,e:1};la.scale.log=function(){return ii(la.scale.linear().domain([0,1]),10,!0,[1,10])};var Eu=la.format(".0e"),Cu={floor:function(e){return-Math.ceil(-e)},ceil:function(e){return-Math.floor(-e)}};la.scale.pow=function(){return ai(la.scale.linear(),1,[0,1])},la.scale.sqrt=function(){return la.scale.pow().exponent(.5)},la.scale.ordinal=function(){return ui([],{t:"range",a:[[]]})},la.scale.category10=function(){return la.scale.ordinal().range(Su)},la.scale.category20=function(){return la.scale.ordinal().range(Tu)},la.scale.category20b=function(){return la.scale.ordinal().range(Au)},la.scale.category20c=function(){return la.scale.ordinal().range(Nu)};var Su=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(we),Tu=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(we),Au=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(we),Nu=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(we);la.scale.quantile=function(){return li([],[])},la.scale.quantize=function(){return ci(0,1,[0,1])},la.scale.threshold=function(){return di([.5],[0,1])},la.scale.identity=function(){return fi([0,1])},la.svg={},la.svg.arc=function(){function e(){var e=Math.max(0,+n.apply(this,arguments)),l=Math.max(0,+r.apply(this,arguments)),c=a.apply(this,arguments)-$a,d=s.apply(this,arguments)-$a,f=Math.abs(d-c),h=c>d?0:1;if(e>l&&(p=l,l=e,e=p),f>=Ha)return t(l,h)+(e?t(e,1-h):"")+"Z";var p,m,g,v,y,x,w,_,b,k,j,M,E=0,C=0,S=[];if((v=(+u.apply(this,arguments)||0)/2)&&(g=i===Ou?Math.sqrt(e*e+l*l):+i.apply(this,arguments),h||(C*=-1),l&&(C=ne(g/l*Math.sin(v))),e&&(E=ne(g/e*Math.sin(v)))),l){y=l*Math.cos(c+C),x=l*Math.sin(c+C),w=l*Math.cos(d-C),_=l*Math.sin(d-C);var T=Math.abs(d-c-2*C)<=Pa?0:1;if(C&&xi(y,x,w,_)===h^T){var A=(c+d)/2;y=l*Math.cos(A),x=l*Math.sin(A),w=_=null}}else y=x=0;if(e){b=e*Math.cos(d-E),k=e*Math.sin(d-E),j=e*Math.cos(c+E),M=e*Math.sin(c+E);var N=Math.abs(c-d+2*E)<=Pa?0:1;if(E&&xi(b,k,j,M)===1-h^N){var O=(c+d)/2;b=e*Math.cos(O),k=e*Math.sin(O),j=M=null}}else b=k=0;if(f>za&&(p=Math.min(Math.abs(l-e)/2,+o.apply(this,arguments)))>.001){m=l>e^h?0:1;var q=p,D=p;if(Pa>f){var L=null==j?[b,k]:null==w?[y,x]:Ln([y,x],[j,M],[w,_],[b,k]),F=y-L[0],z=x-L[1],R=w-L[0],P=_-L[1],I=1/Math.sin(Math.acos((F*R+z*P)/(Math.sqrt(F*F+z*z)*Math.sqrt(R*R+P*P)))/2),H=Math.sqrt(L[0]*L[0]+L[1]*L[1]);D=Math.min(p,(e-H)/(I-1)),q=Math.min(p,(l-H)/(I+1))}if(null!=w){var $=wi(null==j?[b,k]:[j,M],[y,x],l,q,h),B=wi([w,_],[b,k],l,q,h);p===q?S.push("M",$[0],"A",q,",",q," 0 0,",m," ",$[1],"A",l,",",l," 0 ",1-h^xi($[1][0],$[1][1],B[1][0],B[1][1]),",",h," ",B[1],"A",q,",",q," 0 0,",m," ",B[0]):S.push("M",$[0],"A",q,",",q," 0 1,",m," ",B[0])}else S.push("M",y,",",x);if(null!=j){var V=wi([y,x],[j,M],e,-D,h),U=wi([b,k],null==w?[y,x]:[w,_],e,-D,h);p===D?S.push("L",U[0],"A",D,",",D," 0 0,",m," ",U[1],"A",e,",",e," 0 ",h^xi(U[1][0],U[1][1],V[1][0],V[1][1]),",",1-h," ",V[1],"A",D,",",D," 0 0,",m," ",V[0]):S.push("L",U[0],"A",D,",",D," 0 0,",m," ",V[0])}else S.push("L",b,",",k)}else S.push("M",y,",",x),null!=w&&S.push("A",l,",",l," 0 ",T,",",h," ",w,",",_),S.push("L",b,",",k),null!=j&&S.push("A",e,",",e," 0 ",N,",",1-h," ",j,",",M);return S.push("Z"),S.join("")}function t(e,t){return"M0,"+e+"A"+e+","+e+" 0 1,"+t+" 0,"+-e+"A"+e+","+e+" 0 1,"+t+" 0,"+e}var n=pi,r=mi,o=hi,i=Ou,a=gi,s=vi,u=yi;return e.innerRadius=function(t){return arguments.length?(n=Ce(t),e):n},e.outerRadius=function(t){return arguments.length?(r=Ce(t),e):r},e.cornerRadius=function(t){return arguments.length?(o=Ce(t),e):o},e.padRadius=function(t){return arguments.length?(i=t==Ou?Ou:Ce(t),e):i},e.startAngle=function(t){return arguments.length?(a=Ce(t),e):a},e.endAngle=function(t){return arguments.length?(s=Ce(t),e):s},e.padAngle=function(t){return arguments.length?(u=Ce(t),e):u},e.centroid=function(){var e=(+n.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+a.apply(this,arguments)+ +s.apply(this,arguments))/2-$a;return[Math.cos(t)*e,Math.sin(t)*e]},e};var Ou="auto";la.svg.line=function(){return _i(x)};var qu=la.map({linear:bi,"linear-closed":ki,step:ji,"step-before":Mi,"step-after":Ei,basis:Oi,"basis-open":qi,"basis-closed":Di,bundle:Li,cardinal:Ti,"cardinal-open":Ci,"cardinal-closed":Si,monotone:Hi});qu.forEach(function(e,t){t.key=e,t.closed=/-closed$/.test(e)});var Du=[0,2/3,1/3,0],Lu=[0,1/3,2/3,0],Fu=[0,1/6,2/3,1/6];la.svg.line.radial=function(){var e=_i($i);return e.radius=e.x,delete e.x,e.angle=e.y,delete e.y,e},Mi.reverse=Ei,Ei.reverse=Mi,la.svg.area=function(){return Bi(x)},la.svg.area.radial=function(){var e=Bi($i);return e.radius=e.x,delete e.x,e.innerRadius=e.x0,delete e.x0,e.outerRadius=e.x1,delete e.x1,e.angle=e.y,delete e.y,e.startAngle=e.y0,delete e.y0,e.endAngle=e.y1,delete e.y1,e},la.svg.chord=function(){function e(e,s){var u=t(this,i,e,s),l=t(this,a,e,s);return"M"+u.p0+r(u.r,u.p1,u.a1-u.a0)+(n(u,l)?o(u.r,u.p1,u.r,u.p0):o(u.r,u.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+o(l.r,l.p1,u.r,u.p0))+"Z"}function t(e,t,n,r){var o=t.call(e,n,r),i=s.call(e,o,r),a=u.call(e,o,r)-$a,c=l.call(e,o,r)-$a;return{r:i,a0:a,a1:c,p0:[i*Math.cos(a),i*Math.sin(a)],p1:[i*Math.cos(c),i*Math.sin(c)]}}function n(e,t){return e.a0==t.a0&&e.a1==t.a1}function r(e,t,n){return"A"+e+","+e+" 0 "+ +(n>Pa)+",1 "+t}function o(e,t,n,r){return"Q 0,0 "+r}var i=wn,a=_n,s=Vi,u=gi,l=vi;return e.radius=function(t){return arguments.length?(s=Ce(t),e):s},e.source=function(t){return arguments.length?(i=Ce(t),e):i},e.target=function(t){return arguments.length?(a=Ce(t),e):a},e.startAngle=function(t){return arguments.length?(u=Ce(t),e):u},e.endAngle=function(t){return arguments.length?(l=Ce(t),e):l},e},la.svg.diagonal=function(){function e(e,o){var i=t.call(this,e,o),a=n.call(this,e,o),s=(i.y+a.y)/2,u=[i,{x:i.x,y:s},{x:a.x,y:s},a];return u=u.map(r),"M"+u[0]+"C"+u[1]+" "+u[2]+" "+u[3]}var t=wn,n=_n,r=Ui;return e.source=function(n){return arguments.length?(t=Ce(n),e):t},e.target=function(t){return arguments.length?(n=Ce(t),e):n},e.projection=function(t){return arguments.length?(r=t,e):r},e},la.svg.diagonal.radial=function(){var e=la.svg.diagonal(),t=Ui,n=e.projection;return e.projection=function(e){return arguments.length?n(Wi(t=e)):t},e},la.svg.symbol=function(){function e(e,r){return(zu.get(t.call(this,e,r))||Ji)(n.call(this,e,r))}var t=Xi,n=Yi;return e.type=function(n){return arguments.length?(t=Ce(n),e):t},e.size=function(t){return arguments.length?(n=Ce(t),e):n},e};var zu=la.map({circle:Ji,cross:function(e){var t=Math.sqrt(e/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(e){var t=Math.sqrt(e/(2*Pu)),n=t*Pu;return"M0,"+-t+"L"+n+",0 0,"+t+" "+-n+",0Z"},square:function(e){var t=Math.sqrt(e)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(e){var t=Math.sqrt(e/Ru),n=t*Ru/2;return"M0,"+n+"L"+t+","+-n+" "+-t+","+-n+"Z"},"triangle-up":function(e){var t=Math.sqrt(e/Ru),n=t*Ru/2;return"M0,"+-n+"L"+t+","+n+" "+-t+","+n+"Z"}});la.svg.symbolTypes=zu.keys();var Ru=Math.sqrt(3),Pu=Math.tan(30*Ba);Aa.transition=function(e){for(var t,n,r=Iu||++Vu,o=ea(e),i=[],a=Hu||{time:Date.now(),ease:Cr,delay:0,duration:250},s=-1,u=this.length;++s<u;){i.push(t=[]);for(var l=this[s],c=-1,d=l.length;++c<d;)(n=l[c])&&ta(n,c,o,r,a),t.push(n)}return Ki(i,o,r)},Aa.interrupt=function(e){return this.each(null==e?$u:Zi(ea(e)))};var Iu,Hu,$u=Zi(ea()),Bu=[],Vu=0;Bu.call=Aa.call,Bu.empty=Aa.empty,Bu.node=Aa.node,Bu.size=Aa.size,la.transition=function(e,t){return e&&e.transition?Iu?e.transition(t):e:la.selection().transition(e)},la.transition.prototype=Bu,Bu.select=function(e){var t,n,r,o=this.id,i=this.namespace,a=[];e=T(e);for(var s=-1,u=this.length;++s<u;){a.push(t=[]);for(var l=this[s],c=-1,d=l.length;++c<d;)(r=l[c])&&(n=e.call(r,r.__data__,c,s))?("__data__"in r&&(n.__data__=r.__data__),ta(n,c,i,o,r[i][o]),t.push(n)):t.push(null)}return Ki(a,i,o)},Bu.selectAll=function(e){var t,n,r,o,i,a=this.id,s=this.namespace,u=[];e=A(e);for(var l=-1,c=this.length;++l<c;)for(var d=this[l],f=-1,h=d.length;++f<h;)if(r=d[f]){i=r[s][a],n=e.call(r,r.__data__,f,l),u.push(t=[]);for(var p=-1,m=n.length;++p<m;)(o=n[p])&&ta(o,p,s,a,i),t.push(o)}return Ki(u,s,a)},Bu.filter=function(e){var t,n,r,o=[];"function"!=typeof e&&(e=$(e));for(var i=0,a=this.length;a>i;i++){o.push(t=[]);for(var n=this[i],s=0,u=n.length;u>s;s++)(r=n[s])&&e.call(r,r.__data__,s,i)&&t.push(r)}return Ki(o,this.namespace,this.id)},Bu.tween=function(e,t){var n=this.id,r=this.namespace;return arguments.length<2?this.node()[r][n].tween.get(e):V(this,null==t?function(t){t[r][n].tween.remove(e)}:function(o){o[r][n].tween.set(e,t)})},Bu.attr=function(e,t){function n(){this.removeAttribute(s)}function r(){this.removeAttributeNS(s.space,s.local)}function o(e){return null==e?n:(e+="",function(){var t,n=this.getAttribute(s);return n!==e&&(t=a(n,e),function(e){this.setAttribute(s,t(e))})})}function i(e){return null==e?r:(e+="",function(){var t,n=this.getAttributeNS(s.space,s.local);return n!==e&&(t=a(n,e),function(e){this.setAttributeNS(s.space,s.local,t(e))})})}if(arguments.length<2){for(t in e)this.attr(t,e[t]);return this}var a="transform"==e?Xr:wr,s=la.ns.qualify(e);return Gi(this,"attr."+e,t,s.local?i:o)},Bu.attrTween=function(e,t){function n(e,n){var r=t.call(this,e,n,this.getAttribute(o));return r&&function(e){this.setAttribute(o,r(e))}}function r(e,n){var r=t.call(this,e,n,this.getAttributeNS(o.space,o.local));return r&&function(e){this.setAttributeNS(o.space,o.local,r(e))}}var o=la.ns.qualify(e);return this.tween("attr."+e,o.local?r:n)},Bu.style=function(e,t,r){function o(){this.style.removeProperty(e)}function i(t){return null==t?o:(t+="",function(){var o,i=n(this).getComputedStyle(this,null).getPropertyValue(e);return i!==t&&(o=wr(i,t),function(t){this.style.setProperty(e,o(t),r)})})}var a=arguments.length;if(3>a){if("string"!=typeof e){2>a&&(t="");for(r in e)this.style(r,e[r],t);return this}r=""}return Gi(this,"style."+e,t,i)},Bu.styleTween=function(e,t,r){function o(o,i){var a=t.call(this,o,i,n(this).getComputedStyle(this,null).getPropertyValue(e));return a&&function(t){this.style.setProperty(e,a(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+e,o)},Bu.text=function(e){return Gi(this,"text",e,Qi); -},Bu.remove=function(){var e=this.namespace;return this.each("end.transition",function(){var t;this[e].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Bu.ease=function(e){var t=this.id,n=this.namespace;return arguments.length<1?this.node()[n][t].ease:("function"!=typeof e&&(e=la.ease.apply(la,arguments)),V(this,function(r){r[n][t].ease=e}))},Bu.delay=function(e){var t=this.id,n=this.namespace;return arguments.length<1?this.node()[n][t].delay:V(this,"function"==typeof e?function(r,o,i){r[n][t].delay=+e.call(r,r.__data__,o,i)}:(e=+e,function(r){r[n][t].delay=e}))},Bu.duration=function(e){var t=this.id,n=this.namespace;return arguments.length<1?this.node()[n][t].duration:V(this,"function"==typeof e?function(r,o,i){r[n][t].duration=Math.max(1,e.call(r,r.__data__,o,i))}:(e=Math.max(1,e),function(r){r[n][t].duration=e}))},Bu.each=function(e,t){var n=this.id,r=this.namespace;if(arguments.length<2){var o=Hu,i=Iu;try{Iu=n,V(this,function(t,o,i){Hu=t[r][n],e.call(t,t.__data__,o,i)})}finally{Hu=o,Iu=i}}else V(this,function(o){var i=o[r][n];(i.event||(i.event=la.dispatch("start","end","interrupt"))).on(e,t)});return this},Bu.transition=function(){for(var e,t,n,r,o=this.id,i=++Vu,a=this.namespace,s=[],u=0,l=this.length;l>u;u++){s.push(e=[]);for(var t=this[u],c=0,d=t.length;d>c;c++)(n=t[c])&&(r=n[a][o],ta(n,c,a,i,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),e.push(n)}return Ki(s,a,i)},la.svg.axis=function(){function e(e){e.each(function(){var e,l=la.select(this),c=this.__chart__||n,d=this.__chart__=n.copy(),f=null==u?d.ticks?d.ticks.apply(d,s):d.domain():u,h=null==t?d.tickFormat?d.tickFormat.apply(d,s):x:t,p=l.selectAll(".tick").data(f,d),m=p.enter().insert("g",".domain").attr("class","tick").style("opacity",za),g=la.transition(p.exit()).style("opacity",za).remove(),v=la.transition(p.order()).style("opacity",1),y=Math.max(o,0)+a,w=Wo(d),_=l.selectAll(".domain").data([0]),b=(_.enter().append("path").attr("class","domain"),la.transition(_));m.append("line"),m.append("text");var k,j,M,E,C=m.select("line"),S=v.select("line"),T=p.select("text").text(h),A=m.select("text"),N=v.select("text"),O="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(e=na,k="x",M="y",j="x2",E="y2",T.attr("dy",0>O?"0em":".71em").style("text-anchor","middle"),b.attr("d","M"+w[0]+","+O*i+"V0H"+w[1]+"V"+O*i)):(e=ra,k="y",M="x",j="y2",E="x2",T.attr("dy",".32em").style("text-anchor",0>O?"end":"start"),b.attr("d","M"+O*i+","+w[0]+"H0V"+w[1]+"H"+O*i)),C.attr(E,O*o),A.attr(M,O*y),S.attr(j,0).attr(E,O*o),N.attr(k,0).attr(M,O*y),d.rangeBand){var q=d,D=q.rangeBand()/2;c=d=function(e){return q(e)+D}}else c.rangeBand?c=d:g.call(e,d,c);m.call(e,c,d),v.call(e,d,d)})}var t,n=la.scale.linear(),r=Uu,o=6,i=6,a=3,s=[10],u=null;return e.scale=function(t){return arguments.length?(n=t,e):n},e.orient=function(t){return arguments.length?(r=t in Wu?t+"":Uu,e):r},e.ticks=function(){return arguments.length?(s=da(arguments),e):s},e.tickValues=function(t){return arguments.length?(u=t,e):u},e.tickFormat=function(n){return arguments.length?(t=n,e):t},e.tickSize=function(t){var n=arguments.length;return n?(o=+t,i=+arguments[n-1],e):o},e.innerTickSize=function(t){return arguments.length?(o=+t,e):o},e.outerTickSize=function(t){return arguments.length?(i=+t,e):i},e.tickPadding=function(t){return arguments.length?(a=+t,e):a},e.tickSubdivide=function(){return arguments.length&&e},e};var Uu="bottom",Wu={top:1,right:1,bottom:1,left:1};la.svg.brush=function(){function e(n){n.each(function(){var n=la.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),a=n.selectAll(".background").data([0]);a.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),n.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var s=n.selectAll(".resize").data(m,x);s.exit().remove(),s.enter().append("g").attr("class",function(e){return"resize "+e}).style("cursor",function(e){return Yu[e]}).append("rect").attr("x",function(e){return/[ew]$/.test(e)?-3:null}).attr("y",function(e){return/^[ns]/.test(e)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),s.style("display",e.empty()?"none":null);var u,d=la.transition(n),f=la.transition(a);l&&(u=Wo(l),f.attr("x",u[0]).attr("width",u[1]-u[0]),r(d)),c&&(u=Wo(c),f.attr("y",u[0]).attr("height",u[1]-u[0]),o(d)),t(d)})}function t(e){e.selectAll(".resize").attr("transform",function(e){return"translate("+d[+/e$/.test(e)]+","+f[+/^s/.test(e)]+")"})}function r(e){e.select(".extent").attr("x",d[0]),e.selectAll(".extent,.n>rect,.s>rect").attr("width",d[1]-d[0])}function o(e){e.select(".extent").attr("y",f[0]),e.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1]-f[0])}function i(){function i(){32==la.event.keyCode&&(T||(x=null,N[0]-=d[1],N[1]-=f[1],T=2),M())}function m(){32==la.event.keyCode&&2==T&&(N[0]+=d[1],N[1]+=f[1],T=0,M())}function g(){var e=la.mouse(_),n=!1;w&&(e[0]+=w[0],e[1]+=w[1]),T||(la.event.altKey?(x||(x=[(d[0]+d[1])/2,(f[0]+f[1])/2]),N[0]=d[+(e[0]<x[0])],N[1]=f[+(e[1]<x[1])]):x=null),C&&v(e,l,0)&&(r(j),n=!0),S&&v(e,c,1)&&(o(j),n=!0),n&&(t(j),k({type:"brush",mode:T?"move":"resize"}))}function v(e,t,n){var r,o,i=Wo(t),u=i[0],l=i[1],c=N[n],m=n?f:d,g=m[1]-m[0];return T&&(u-=c,l-=g+c),r=(n?p:h)?Math.max(u,Math.min(l,e[n])):e[n],T?o=(r+=c)+g:(x&&(c=Math.max(u,Math.min(l,2*x[n]-r))),r>c?(o=r,r=c):o=c),m[0]!=r||m[1]!=o?(n?s=null:a=null,m[0]=r,m[1]=o,!0):void 0}function y(){g(),j.style("pointer-events","all").selectAll(".resize").style("display",e.empty()?"none":null),la.select("body").style("cursor",null),O.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),A(),k({type:"brushend"})}var x,w,_=this,b=la.select(la.event.target),k=u.of(_,arguments),j=la.select(_),E=b.datum(),C=!/^(n|s)$/.test(E)&&l,S=!/^(e|w)$/.test(E)&&c,T=b.classed("extent"),A=Z(_),N=la.mouse(_),O=la.select(n(_)).on("keydown.brush",i).on("keyup.brush",m);if(la.event.changedTouches?O.on("touchmove.brush",g).on("touchend.brush",y):O.on("mousemove.brush",g).on("mouseup.brush",y),j.interrupt().selectAll("*").interrupt(),T)N[0]=d[0]-N[0],N[1]=f[0]-N[1];else if(E){var q=+/w$/.test(E),D=+/^n/.test(E);w=[d[1-q]-N[0],f[1-D]-N[1]],N[0]=d[q],N[1]=f[D]}else la.event.altKey&&(x=N.slice());j.style("pointer-events","none").selectAll(".resize").style("display",null),la.select("body").style("cursor",b.style("cursor")),k({type:"brushstart"}),g()}var a,s,u=C(e,"brushstart","brush","brushend"),l=null,c=null,d=[0,0],f=[0,0],h=!0,p=!0,m=Xu[0];return e.event=function(e){e.each(function(){var e=u.of(this,arguments),t={x:d,y:f,i:a,j:s},n=this.__chart__||t;this.__chart__=t,Iu?la.select(this).transition().each("start.brush",function(){a=n.i,s=n.j,d=n.x,f=n.y,e({type:"brushstart"})}).tween("brush:brush",function(){var n=_r(d,t.x),r=_r(f,t.y);return a=s=null,function(o){d=t.x=n(o),f=t.y=r(o),e({type:"brush",mode:"resize"})}}).each("end.brush",function(){a=t.i,s=t.j,e({type:"brush",mode:"resize"}),e({type:"brushend"})}):(e({type:"brushstart"}),e({type:"brush",mode:"resize"}),e({type:"brushend"}))})},e.x=function(t){return arguments.length?(l=t,m=Xu[!l<<1|!c],e):l},e.y=function(t){return arguments.length?(c=t,m=Xu[!l<<1|!c],e):c},e.clamp=function(t){return arguments.length?(l&&c?(h=!!t[0],p=!!t[1]):l?h=!!t:c&&(p=!!t),e):l&&c?[h,p]:l?h:c?p:null},e.extent=function(t){var n,r,o,i,u;return arguments.length?(l&&(n=t[0],r=t[1],c&&(n=n[0],r=r[0]),a=[n,r],l.invert&&(n=l(n),r=l(r)),n>r&&(u=n,n=r,r=u),(n!=d[0]||r!=d[1])&&(d=[n,r])),c&&(o=t[0],i=t[1],l&&(o=o[1],i=i[1]),s=[o,i],c.invert&&(o=c(o),i=c(i)),o>i&&(u=o,o=i,i=u),(o!=f[0]||i!=f[1])&&(f=[o,i])),e):(l&&(a?(n=a[0],r=a[1]):(n=d[0],r=d[1],l.invert&&(n=l.invert(n),r=l.invert(r)),n>r&&(u=n,n=r,r=u))),c&&(s?(o=s[0],i=s[1]):(o=f[0],i=f[1],c.invert&&(o=c.invert(o),i=c.invert(i)),o>i&&(u=o,o=i,i=u))),l&&c?[[n,o],[r,i]]:l?[n,r]:c&&[o,i])},e.clear=function(){return e.empty()||(d=[0,0],f=[0,0],a=s=null),e},e.empty=function(){return!!l&&d[0]==d[1]||!!c&&f[0]==f[1]},la.rebind(e,u,"on")};var Yu={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Xu=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Ju=ps.format=ws.timeFormat,Zu=Ju.utc,Ku=Zu("%Y-%m-%dT%H:%M:%S.%LZ");Ju.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?oa:Ku,oa.parse=function(e){var t=new Date(e);return isNaN(t)?null:t},oa.toString=Ku.toString,ps.second=He(function(e){return new ms(1e3*Math.floor(e/1e3))},function(e,t){e.setTime(e.getTime()+1e3*Math.floor(t))},function(e){return e.getSeconds()}),ps.seconds=ps.second.range,ps.seconds.utc=ps.second.utc.range,ps.minute=He(function(e){return new ms(6e4*Math.floor(e/6e4))},function(e,t){e.setTime(e.getTime()+6e4*Math.floor(t))},function(e){return e.getMinutes()}),ps.minutes=ps.minute.range,ps.minutes.utc=ps.minute.utc.range,ps.hour=He(function(e){var t=e.getTimezoneOffset()/60;return new ms(36e5*(Math.floor(e/36e5-t)+t))},function(e,t){e.setTime(e.getTime()+36e5*Math.floor(t))},function(e){return e.getHours()}),ps.hours=ps.hour.range,ps.hours.utc=ps.hour.utc.range,ps.month=He(function(e){return e=ps.day(e),e.setDate(1),e},function(e,t){e.setMonth(e.getMonth()+t)},function(e){return e.getMonth()}),ps.months=ps.month.range,ps.months.utc=ps.month.utc.range;var Gu=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Qu=[[ps.second,1],[ps.second,5],[ps.second,15],[ps.second,30],[ps.minute,1],[ps.minute,5],[ps.minute,15],[ps.minute,30],[ps.hour,1],[ps.hour,3],[ps.hour,6],[ps.hour,12],[ps.day,1],[ps.day,2],[ps.week,1],[ps.month,1],[ps.month,3],[ps.year,1]],el=Ju.multi([[".%L",function(e){return e.getMilliseconds()}],[":%S",function(e){return e.getSeconds()}],["%I:%M",function(e){return e.getMinutes()}],["%I %p",function(e){return e.getHours()}],["%a %d",function(e){return e.getDay()&&1!=e.getDate()}],["%b %d",function(e){return 1!=e.getDate()}],["%B",function(e){return e.getMonth()}],["%Y",At]]),tl={range:function(e,t,n){return la.range(Math.ceil(e/n)*n,+t,n).map(aa)},floor:x,ceil:x};Qu.year=ps.year,ps.scale=function(){return ia(la.scale.linear(),Qu,el)};var nl=Qu.map(function(e){return[e[0].utc,e[1]]}),rl=Zu.multi([[".%L",function(e){return e.getUTCMilliseconds()}],[":%S",function(e){return e.getUTCSeconds()}],["%I:%M",function(e){return e.getUTCMinutes()}],["%I %p",function(e){return e.getUTCHours()}],["%a %d",function(e){return e.getUTCDay()&&1!=e.getUTCDate()}],["%b %d",function(e){return 1!=e.getUTCDate()}],["%B",function(e){return e.getUTCMonth()}],["%Y",At]]);nl.year=ps.year.utc,ps.scale.utc=function(){return ia(la.scale.linear(),nl,rl)},la.text=Se(function(e){return e.responseText}),la.json=function(e,t){return Te(e,"application/json",sa,t)},la.html=function(e,t){return Te(e,"text/html",ua,t)},la.xml=Se(function(e){return e.responseXML}),"function"==typeof define&&define.amd?(this.d3=la,define(la)):"object"==typeof t&&t.exports?t.exports=la:this.d3=la}()},{}],280:[function(e,t,n){function r(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function o(){var e=arguments,t=this.useColors;if(e[0]=(t?"%c":"")+this.namespace+(t?" %c":" ")+e[0]+(t?"%c ":" ")+"+"+n.humanize(this.diff),!t)return e;var r="color: "+this.color;e=[e[0],r,"color: inherit"].concat(Array.prototype.slice.call(e,1));var o=0,i=0;return e[0].replace(/%[a-z%]/g,function(e){"%%"!==e&&(o++,"%c"===e&&(i=o))}),e.splice(i,0,r),e}function i(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(e){try{null==e?n.storage.removeItem("debug"):n.storage.debug=e}catch(t){}}function s(){var e;try{e=n.storage.debug}catch(t){}return e}function u(){try{return window.localStorage}catch(e){}}n=t.exports=e("./debug"),n.log=i,n.formatArgs=o,n.save=a,n.load=s,n.useColors=r,n.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:u(),n.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],n.formatters.j=function(e){return JSON.stringify(e)},n.enable(s())},{"./debug":281}],281:[function(e,t,n){function r(){return n.colors[c++%n.colors.length]}function o(e){function t(){}function o(){var e=o,t=+new Date,i=t-(l||t);e.diff=i,e.prev=l,e.curr=t,l=t,null==e.useColors&&(e.useColors=n.useColors()),null==e.color&&e.useColors&&(e.color=r());var a=Array.prototype.slice.call(arguments);a[0]=n.coerce(a[0]),"string"!=typeof a[0]&&(a=["%o"].concat(a));var s=0;a[0]=a[0].replace(/%([a-z%])/g,function(t,r){if("%%"===t)return t;s++;var o=n.formatters[r];if("function"==typeof o){var i=a[s];t=o.call(e,i),a.splice(s,1),s--}return t}),"function"==typeof n.formatArgs&&(a=n.formatArgs.apply(e,a));var u=o.log||n.log||console.log.bind(console);u.apply(e,a)}t.enabled=!1,o.enabled=!0;var i=n.enabled(e)?o:t;return i.namespace=e,i}function i(e){n.save(e);for(var t=(e||"").split(/[\s,]+/),r=t.length,o=0;r>o;o++)t[o]&&(e=t[o].replace(/\*/g,".*?"),"-"===e[0]?n.skips.push(new RegExp("^"+e.substr(1)+"$")):n.names.push(new RegExp("^"+e+"$")))}function a(){n.enable("")}function s(e){var t,r;for(t=0,r=n.skips.length;r>t;t++)if(n.skips[t].test(e))return!1;for(t=0,r=n.names.length;r>t;t++)if(n.names[t].test(e))return!0;return!1}function u(e){return e instanceof Error?e.stack||e.message:e}n=t.exports=o,n.coerce=u,n.disable=a,n.enable=i,n.enabled=s,n.humanize=e("ms"),n.names=[],n.skips=[],n.formatters={};var l,c=0},{ms:282}],282:[function(e,t,n){function r(e){if(e=""+e,!(e.length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*d;case"days":case"day":case"d":return n*c;case"hours":case"hour":case"hrs":case"hr":case"h":return n*l;case"minutes":case"minute":case"mins":case"min":case"m":return n*u;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}}}function o(e){return e>=c?Math.round(e/c)+"d":e>=l?Math.round(e/l)+"h":e>=u?Math.round(e/u)+"m":e>=s?Math.round(e/s)+"s":e+"ms"}function i(e){return a(e,c,"day")||a(e,l,"hour")||a(e,u,"minute")||a(e,s,"second")||e+" ms"}function a(e,t,n){return t>e?void 0:1.5*t>e?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var s=1e3,u=60*s,l=60*u,c=24*l,d=365.25*c;t.exports=function(e,t){return t=t||{},"string"==typeof e?r(e):t["long"]?i(e):o(e)}},{}],283:[function(e,t,n){(function(r){!function(e){if("object"==typeof n&&"undefined"!=typeof t)t.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var o;o="undefined"!=typeof window?window:"undefined"!=typeof r?r:"undefined"!=typeof self?self:this,o.jade=e()}}(function(){return function t(n,r,o){function i(s,u){if(!r[s]){if(!n[s]){var l="function"==typeof e&&e;if(!u&&l)return l(s,!0);if(a)return a(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var d=r[s]={exports:{}};n[s][0].call(d.exports,function(e){var t=n[s][1][e];return i(t?t:e)},d,d.exports,t,n,r,o)}return r[s].exports}for(var a="function"==typeof e&&e,s=0;s<o.length;s++)i(o[s]);return i}({1:[function(e,t,n){"use strict";function r(e){return null!=e&&""!==e}function o(e){return(Array.isArray(e)?e.map(o):e&&"object"==typeof e?Object.keys(e).filter(function(t){return e[t]}):[e]).filter(r).join(" ")}function i(e){return s[e]||e}function a(e){var t=String(e).replace(u,i);return t===""+e?e:t}n.merge=function l(e,t){if(1===arguments.length){for(var n=e[0],o=1;o<e.length;o++)n=l(n,e[o]);return n}var i=e["class"],a=t["class"];(i||a)&&(i=i||[],a=a||[],Array.isArray(i)||(i=[i]),Array.isArray(a)||(a=[a]),e["class"]=i.concat(a).filter(r));for(var s in t)"class"!=s&&(e[s]=t[s]);return e},n.joinClasses=o,n.cls=function(e,t){for(var r=[],i=0;i<e.length;i++)t&&t[i]?r.push(n.escape(o([e[i]]))):r.push(o(e[i]));var a=o(r);return a.length?' class="'+a+'"':""},n.style=function(e){return e&&"object"==typeof e?Object.keys(e).map(function(t){return t+":"+e[t]}).join(";"):e},n.attr=function(e,t,r,o){return"style"===e&&(t=n.style(t)),"boolean"==typeof t||null==t?t?" "+(o?e:e+'="'+e+'"'):"":0==e.indexOf("data")&&"string"!=typeof t?(-1!==JSON.stringify(t).indexOf("&")&&console.warn("Since Jade 2.0.0, ampersands (`&`) in data attributes will be escaped to `&`"),t&&"function"==typeof t.toISOString&&console.warn("Jade will eliminate the double quotes around dates in ISO form after 2.0.0")," "+e+"='"+JSON.stringify(t).replace(/'/g,"'")+"'"):r?(t&&"function"==typeof t.toISOString&&console.warn("Jade will stringify dates in ISO form after 2.0.0")," "+e+'="'+n.escape(t)+'"'):(t&&"function"==typeof t.toISOString&&console.warn("Jade will stringify dates in ISO form after 2.0.0")," "+e+'="'+t+'"')},n.attrs=function(e,t){var r=[],i=Object.keys(e);if(i.length)for(var a=0;a<i.length;++a){var s=i[a],u=e[s];"class"==s?(u=o(u))&&r.push(" "+s+'="'+u+'"'):r.push(n.attr(s,u,!1,t))}return r.join("")};var s={"&":"&","<":"<",">":">",'"':"""},u=/[&<>"]/g;n.escape=a,n.rethrow=function c(t,n,r,o){if(!(t instanceof Error))throw t;if(!("undefined"==typeof window&&n||o))throw t.message+=" on line "+r,t;try{o=o||e("fs").readFileSync(n,"utf8")}catch(i){c(t,null,r)}var a=3,s=o.split("\n"),u=Math.max(r-a,0),l=Math.min(s.length,r+a),a=s.slice(u,l).map(function(e,t){var n=t+u+1;return(n==r?" > ":" ")+n+"| "+e}).join("\n");throw t.path=n,t.message=(n||"Jade")+":"+r+"\n"+a+"\n\n"+t.message,t},n.DebugItem=function(e,t){this.lineno=e,this.filename=t}},{fs:2}],2:[function(e,t,n){},{}]},{},[1])(1)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{fs:278}],284:[function(e,t,n){!function(e,n){"object"==typeof t&&"object"==typeof t.exports?t.exports=e.document?n(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t="length"in e&&e.length,n=Q.type(e);return"function"===n||Q.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function r(e,t,n){if(Q.isFunction(t))return Q.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return Q.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(se.test(t))return Q.filter(t,e,n);t=Q.filter(t,e)}return Q.grep(e,function(e){return W.call(t,e)>=0!==n})}function o(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function i(e){var t=pe[e]={};return Q.each(e.match(he)||[],function(e,n){t[n]=!0}),t}function a(){K.removeEventListener("DOMContentLoaded",a,!1),e.removeEventListener("load",a,!1),Q.ready()}function s(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=Q.expando+s.uid++}function u(e,t,data){var n;if(void 0===data&&1===e.nodeType)if(n="data-"+t.replace(we,"-$1").toLowerCase(),data=e.getAttribute(n),"string"==typeof data){try{data="true"===data?!0:"false"===data?!1:"null"===data?null:+data+""===data?+data:xe.test(data)?Q.parseJSON(data):data}catch(r){}ye.set(e,t,data)}else data=void 0;return data}function l(){return!0}function c(){return!1}function d(){try{return K.activeElement}catch(e){}}function f(e,t){return Q.nodeName(e,"table")&&Q.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function h(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function p(e){var t=Fe.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function m(e,t){for(var n=0,r=e.length;r>n;n++)ve.set(e[n],"globalEval",!t||ve.get(t[n],"globalEval"))}function g(e,t){var n,r,o,i,a,s,u,l;if(1===t.nodeType){if(ve.hasData(e)&&(i=ve.access(e),a=ve.set(t,i),l=i.events)){delete a.handle,a.events={};for(o in l)for(n=0,r=l[o].length;r>n;n++)Q.event.add(t,o,l[o][n])}ye.hasData(e)&&(s=ye.access(e),u=Q.extend({},s),ye.set(t,u))}}function v(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&Q.nodeName(e,t)?Q.merge([e],n):n}function y(e,t){var n=t.nodeName.toLowerCase();"input"===n&&je.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function x(t,n){var r,o=Q(n.createElement(t)).appendTo(n.body),i=e.getDefaultComputedStyle&&(r=e.getDefaultComputedStyle(o[0]))?r.display:Q.css(o[0],"display");return o.detach(),i}function w(e){var t=K,n=Ie[e];return n||(n=x(e,t),"none"!==n&&n||(Pe=(Pe||Q("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=Pe[0].contentDocument,t.write(),t.close(),n=x(e,t),Pe.detach()),Ie[e]=n),n}function _(e,t,n){var r,o,i,a,s=e.style;return n=n||Be(e),n&&(a=n.getPropertyValue(t)||n[t]),n&&(""!==a||Q.contains(e.ownerDocument,e)||(a=Q.style(e,t)),$e.test(a)&&He.test(t)&&(r=s.width,o=s.minWidth,i=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=o,s.maxWidth=i)),void 0!==a?a+"":a}function b(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function k(e,t){if(t in e)return t;for(var n=t[0].toUpperCase()+t.slice(1),r=t,o=Je.length;o--;)if(t=Je[o]+n,t in e)return t;return r}function j(e,t,n){var r=Ue.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function M(e,t,n,r,o){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>i;i+=2)"margin"===n&&(a+=Q.css(e,n+be[i],!0,o)),r?("content"===n&&(a-=Q.css(e,"padding"+be[i],!0,o)),"margin"!==n&&(a-=Q.css(e,"border"+be[i]+"Width",!0,o))):(a+=Q.css(e,"padding"+be[i],!0,o),"padding"!==n&&(a+=Q.css(e,"border"+be[i]+"Width",!0,o)));return a}function E(e,t,n){var r=!0,o="width"===t?e.offsetWidth:e.offsetHeight,i=Be(e),a="border-box"===Q.css(e,"boxSizing",!1,i);if(0>=o||null==o){if(o=_(e,t,i),(0>o||null==o)&&(o=e.style[t]),$e.test(o))return o;r=a&&(Z.boxSizingReliable()||o===e.style[t]),o=parseFloat(o)||0}return o+M(e,t,n||(a?"border":"content"),r,i)+"px"}function C(e,t){for(var n,r,o,i=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(i[a]=ve.get(r,"olddisplay"),n=r.style.display,t?(i[a]||"none"!==n||(r.style.display=""),""===r.style.display&&ke(r)&&(i[a]=ve.access(r,"olddisplay",w(r.nodeName)))):(o=ke(r),"none"===n&&o||ve.set(r,"olddisplay",o?n:Q.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?i[a]||"":"none"));return e}function S(e,t,n,r,o){return new S.prototype.init(e,t,n,r,o)}function T(){return setTimeout(function(){Ze=void 0}),Ze=Q.now()}function A(e,t){var n,r=0,o={height:e};for(t=t?1:0;4>r;r+=2-t)n=be[r],o["margin"+n]=o["padding"+n]=e;return t&&(o.opacity=o.width=e),o}function N(e,t,n){for(var r,o=(nt[t]||[]).concat(nt["*"]),i=0,a=o.length;a>i;i++)if(r=o[i].call(n,t,e))return r}function O(e,t,n){var r,o,i,a,s,u,l,c,d=this,f={},h=e.style,p=e.nodeType&&ke(e),m=ve.get(e,"fxshow");n.queue||(s=Q._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,Q.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],l=Q.css(e,"display"),c="none"===l?ve.get(e,"olddisplay")||w(e.nodeName):l,"inline"===c&&"none"===Q.css(e,"float")&&(h.display="inline-block")),n.overflow&&(h.overflow="hidden",d.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],Ge.exec(o)){if(delete t[r],i=i||"toggle"===o,o===(p?"hide":"show")){if("show"!==o||!m||void 0===m[r])continue;p=!0}f[r]=m&&m[r]||Q.style(e,r)}else l=void 0;if(Q.isEmptyObject(f))"inline"===("none"===l?w(e.nodeName):l)&&(h.display=l);else{m?"hidden"in m&&(p=m.hidden):m=ve.access(e,"fxshow",{}),i&&(m.hidden=!p),p?Q(e).show():d.done(function(){Q(e).hide()}),d.done(function(){var t;ve.remove(e,"fxshow");for(t in f)Q.style(e,t,f[t])});for(r in f)a=N(p?m[r]:0,r,d),r in m||(m[r]=a.start,p&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function q(e,t){var n,r,o,i,a;for(n in e)if(r=Q.camelCase(n),o=t[r],i=e[n],Q.isArray(i)&&(o=i[1],i=e[n]=i[0]),n!==r&&(e[r]=i,delete e[n]),a=Q.cssHooks[r],a&&"expand"in a){i=a.expand(i),delete e[r];for(n in i)n in e||(e[n]=i[n],t[n]=o)}else t[r]=o}function D(e,t,n){var r,o,i=0,a=tt.length,s=Q.Deferred().always(function(){delete u.elem}),u=function(){if(o)return!1;for(var t=Ze||T(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,i=1-r,a=0,u=l.tweens.length;u>a;a++)l.tweens[a].run(i);return s.notifyWith(e,[l,i,n]),1>i&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:Q.extend({},t),opts:Q.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Ze||T(),duration:n.duration,tweens:[],createTween:function(t,n){var r=Q.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(o)return this;for(o=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(q(c,l.opts.specialEasing);a>i;i++)if(r=tt[i].call(l,e,c,l.opts))return r;return Q.map(c,N,l),Q.isFunction(l.opts.start)&&l.opts.start.call(e,l),Q.fx.timer(Q.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function L(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,o=0,i=t.toLowerCase().match(he)||[];if(Q.isFunction(n))for(;r=i[o++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function F(e,t,n,r){function o(s){var u;return i[s]=!0,Q.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||a||i[l]?a?!(u=l):void 0:(t.dataTypes.unshift(l),o(l),!1)}),u}var i={},a=e===xt;return o(t.dataTypes[0])||!i["*"]&&o("*")}function z(e,t){var n,r,o=Q.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((o[n]?e:r||(r={}))[n]=t[n]);return r&&Q.extend(!0,e,r),e}function R(e,t,n){for(var r,o,i,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(o in s)if(s[o]&&s[o].test(r)){u.unshift(o);break}if(u[0]in n)i=u[0];else{for(o in n){if(!u[0]||e.converters[o+" "+u[0]]){i=o;break}a||(a=o)}i=i||a}return i?(i!==u[0]&&u.unshift(i),n[i]):void 0}function P(e,t,n,r){var o,i,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(i=c.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=i,i=c.shift())if("*"===i)i=u;else if("*"!==u&&u!==i){if(a=l[u+" "+i]||l["* "+i],!a)for(o in l)if(s=o.split(" "),s[1]===i&&(a=l[u+" "+s[0]]||l["* "+s[0]])){a===!0?a=l[o]:l[o]!==!0&&(i=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(d){return{state:"parsererror",error:a?d:"No conversion from "+u+" to "+i}}}return{state:"success",data:t}}function I(e,t,n,r){var o;if(Q.isArray(t))Q.each(t,function(t,o){n||jt.test(e)?r(e,o):I(e+"["+("object"==typeof o?t:"")+"]",o,n,r)});else if(n||"object"!==Q.type(t))r(e,t);else for(o in t)I(e+"["+o+"]",t[o],n,r)}function H(e){return Q.isWindow(e)?e:9===e.nodeType&&e.defaultView}var $=[],B=$.slice,V=$.concat,U=$.push,W=$.indexOf,Y={},X=Y.toString,J=Y.hasOwnProperty,Z={},K=e.document,G="2.1.4",Q=function(e,t){return new Q.fn.init(e,t)},ee=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,te=/^-ms-/,ne=/-([\da-z])/gi,re=function(e,t){return t.toUpperCase()};Q.fn=Q.prototype={jquery:G,constructor:Q,selector:"",length:0,toArray:function(){return B.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:B.call(this)},pushStack:function(e){var t=Q.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return Q.each(this,e,t)},map:function(e){return this.pushStack(Q.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(B.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:U,sort:$.sort,splice:$.splice},Q.extend=Q.fn.extend=function(){var e,t,n,r,o,i,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||Q.isFunction(a)||(a={}),s===u&&(a=this,s--);u>s;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],r=e[t],a!==r&&(l&&r&&(Q.isPlainObject(r)||(o=Q.isArray(r)))?(o?(o=!1,i=n&&Q.isArray(n)?n:[]):i=n&&Q.isPlainObject(n)?n:{},a[t]=Q.extend(l,i,r)):void 0!==r&&(a[t]=r));return a},Q.extend({expando:"jQuery"+(G+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===Q.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!Q.isArray(e)&&e-parseFloat(e)+1>=0},isPlainObject:function(e){return"object"!==Q.type(e)||e.nodeType||Q.isWindow(e)?!1:e.constructor&&!J.call(e.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Y[X.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;e=Q.trim(e),e&&(1===e.indexOf("use strict")?(t=K.createElement("script"),t.text=e,K.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(te,"ms-").replace(ne,re)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var o,i=0,a=e.length,s=n(e);if(r){if(s)for(;a>i&&(o=t.apply(e[i],r),o!==!1);i++);else for(i in e)if(o=t.apply(e[i],r),o===!1)break}else if(s)for(;a>i&&(o=t.call(e[i],i,e[i]),o!==!1);i++);else for(i in e)if(o=t.call(e[i],i,e[i]),o===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ee,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?Q.merge(r,"string"==typeof e?[e]:e):U.call(r,e)),r},inArray:function(e,t,n){return null==t?-1:W.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,o=e.length;n>r;r++)e[o++]=t[r];return e.length=o,e},grep:function(e,t,n){for(var r,o=[],i=0,a=e.length,s=!n;a>i;i++)r=!t(e[i],i),r!==s&&o.push(e[i]);return o},map:function(e,t,r){var o,i=0,a=e.length,s=n(e),u=[];if(s)for(;a>i;i++)o=t(e[i],i,r),null!=o&&u.push(o);else for(i in e)o=t(e[i],i,r),null!=o&&u.push(o);return V.apply([],u)},guid:1,proxy:function(e,t){var n,r,o;return"string"==typeof t&&(n=e[t],t=e,e=n),Q.isFunction(e)?(r=B.call(arguments,2),o=function(){return e.apply(t||this,r.concat(B.call(arguments)))},o.guid=e.guid=e.guid||Q.guid++,o):void 0},now:Date.now,support:Z}),Q.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Y["[object "+t+"]"]=t.toLowerCase()});var oe=function(e){function t(e,t,n,r){var o,i,a,s,u,l,d,h,p,m;if((t?t.ownerDocument||t:I)!==O&&N(t),t=t||O,n=n||[],s=t.nodeType,"string"!=typeof e||!e||1!==s&&9!==s&&11!==s)return n;if(!r&&D){if(11!==s&&(o=ye.exec(e)))if(a=o[1]){if(9===s){if(i=t.getElementById(a),!i||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&R(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return G.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&_.getElementsByClassName)return G.apply(n,t.getElementsByClassName(a)),n}if(_.qsa&&(!L||!L.test(e))){if(h=d=P,p=t,m=1!==s&&e, -1===s&&"object"!==t.nodeName.toLowerCase()){for(l=M(e),(d=t.getAttribute("id"))?h=d.replace(we,"\\$&"):t.setAttribute("id",h),h="[id='"+h+"'] ",u=l.length;u--;)l[u]=h+f(l[u]);p=xe.test(e)&&c(t.parentNode)||t,m=l.join(",")}if(m)try{return G.apply(n,p.querySelectorAll(m)),n}catch(g){}finally{d||t.removeAttribute("id")}}}return C(e.replace(ue,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>b.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function o(e){var t=O.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function i(e,t){for(var n=e.split("|"),r=e.length;r--;)b.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||Y)-(~e.sourceIndex||Y);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var o,i=e([],n.length,t),a=i.length;a--;)n[o=i[a]]&&(n[o]=!(r[o]=n[o]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function h(e,t,n){var r=t.dir,o=n&&"parentNode"===r,i=$++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,a){var s,u,l=[H,i];if(a){for(;t=t[r];)if((1===t.nodeType||o)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||o){if(u=t[P]||(t[P]={}),(s=u[r])&&s[0]===H&&s[1]===i)return l[2]=s[2];if(u[r]=l,l[2]=e(t,n,a))return!0}}}function p(e){return e.length>1?function(t,n,r){for(var o=e.length;o--;)if(!e[o](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var o=0,i=n.length;i>o;o++)t(e,n[o],r);return r}function g(e,t,n,r,o){for(var i,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(i=e[s])&&(!n||n(i,r,o))&&(a.push(i),l&&t.push(s));return a}function v(e,t,n,o,i,a){return o&&!o[P]&&(o=v(o)),i&&!i[P]&&(i=v(i,a)),r(function(r,a,s,u){var l,c,d,f=[],h=[],p=a.length,v=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?v:g(v,f,e,s,u),x=n?i||(r?e:p||o)?[]:a:y;if(n&&n(y,x,s,u),o)for(l=g(x,h),o(l,[],s,u),c=l.length;c--;)(d=l[c])&&(x[h[c]]=!(y[h[c]]=d));if(r){if(i||e){if(i){for(l=[],c=x.length;c--;)(d=x[c])&&l.push(y[c]=d);i(null,x=[],l,u)}for(c=x.length;c--;)(d=x[c])&&(l=i?ee(r,d):f[c])>-1&&(r[l]=!(a[l]=d))}}else x=g(x===a?x.splice(p,x.length):x),i?i(null,a,x,u):G.apply(a,x)})}function y(e){for(var t,n,r,o=e.length,i=b.relative[e[0].type],a=i||b.relative[" "],s=i?1:0,u=h(function(e){return e===t},a,!0),l=h(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var o=!i&&(r||n!==S)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,o}];o>s;s++)if(n=b.relative[e[s].type])c=[h(p(c),n)];else{if(n=b.filter[e[s].type].apply(null,e[s].matches),n[P]){for(r=++s;o>r&&!b.relative[e[r].type];r++);return v(s>1&&p(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ue,"$1"),n,r>s&&y(e.slice(s,r)),o>r&&y(e=e.slice(r)),o>r&&f(e))}c.push(n)}return p(c)}function x(e,n){var o=n.length>0,i=e.length>0,a=function(r,a,s,u,l){var c,d,f,h=0,p="0",m=r&&[],v=[],y=S,x=r||i&&b.find.TAG("*",l),w=H+=null==y?1:Math.random()||.1,_=x.length;for(l&&(S=a!==O&&a);p!==_&&null!=(c=x[p]);p++){if(i&&c){for(d=0;f=e[d++];)if(f(c,a,s)){u.push(c);break}l&&(H=w)}o&&((c=!f&&c)&&h--,r&&m.push(c))}if(h+=p,o&&p!==h){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(h>0)for(;p--;)m[p]||v[p]||(v[p]=Z.call(u));v=g(v)}G.apply(u,v),l&&!r&&v.length>0&&h+n.length>1&&t.uniqueSort(u)}return l&&(H=w,S=y),m};return o?r(a):a}var w,_,b,k,j,M,E,C,S,T,A,N,O,q,D,L,F,z,R,P="sizzle"+1*new Date,I=e.document,H=0,$=0,B=n(),V=n(),U=n(),W=function(e,t){return e===t&&(A=!0),0},Y=1<<31,X={}.hasOwnProperty,J=[],Z=J.pop,K=J.push,G=J.push,Q=J.slice,ee=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",oe=re.replace("w","w#"),ie="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+oe+"))|)"+ne+"*\\]",ae=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ie+")*)|.*)\\)|)",se=new RegExp(ne+"+","g"),ue=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),le=new RegExp("^"+ne+"*,"+ne+"*"),ce=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),de=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(ae),he=new RegExp("^"+oe+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},me=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,ve=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,xe=/[+~]/,we=/'|\\/g,_e=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),be=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},ke=function(){N()};try{G.apply(J=Q.call(I.childNodes),I.childNodes),J[I.childNodes.length].nodeType}catch(je){G={apply:J.length?function(e,t){K.apply(e,Q.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}_=t.support={},j=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},N=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:I;return r!==O&&9===r.nodeType&&r.documentElement?(O=r,q=r.documentElement,n=r.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",ke,!1):n.attachEvent&&n.attachEvent("onunload",ke)),D=!j(r),_.attributes=o(function(e){return e.className="i",!e.getAttribute("className")}),_.getElementsByTagName=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),_.getElementsByClassName=ve.test(r.getElementsByClassName),_.getById=o(function(e){return q.appendChild(e).id=P,!r.getElementsByName||!r.getElementsByName(P).length}),_.getById?(b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&D){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},b.filter.ID=function(e){var t=e.replace(_e,be);return function(e){return e.getAttribute("id")===t}}):(delete b.find.ID,b.filter.ID=function(e){var t=e.replace(_e,be);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),b.find.TAG=_.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):_.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},b.find.CLASS=_.getElementsByClassName&&function(e,t){return D?t.getElementsByClassName(e):void 0},F=[],L=[],(_.qsa=ve.test(r.querySelectorAll))&&(o(function(e){q.appendChild(e).innerHTML="<a id='"+P+"'></a><select id='"+P+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&L.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||L.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||L.push("~="),e.querySelectorAll(":checked").length||L.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||L.push(".#.+[+~]")}),o(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&L.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||L.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),L.push(",.*:")})),(_.matchesSelector=ve.test(z=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&o(function(e){_.disconnectedMatch=z.call(e,"div"),z.call(e,"[s!='']:x"),F.push("!=",ae)}),L=L.length&&new RegExp(L.join("|")),F=F.length&&new RegExp(F.join("|")),t=ve.test(q.compareDocumentPosition),R=t||ve.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},W=t?function(e,t){if(e===t)return A=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!_.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===I&&R(I,e)?-1:t===r||t.ownerDocument===I&&R(I,t)?1:T?ee(T,e)-ee(T,t):0:4&n?-1:1)}:function(e,t){if(e===t)return A=!0,0;var n,o=0,i=e.parentNode,s=t.parentNode,u=[e],l=[t];if(!i||!s)return e===r?-1:t===r?1:i?-1:s?1:T?ee(T,e)-ee(T,t):0;if(i===s)return a(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;u[o]===l[o];)o++;return o?a(u[o],l[o]):u[o]===I?-1:l[o]===I?1:0},r):O},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==O&&N(e),n=n.replace(de,"='$1']"),_.matchesSelector&&D&&(!F||!F.test(n))&&(!L||!L.test(n)))try{var r=z.call(e,n);if(r||_.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(o){}return t(n,O,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==O&&N(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==O&&N(e);var n=b.attrHandle[t.toLowerCase()],r=n&&X.call(b.attrHandle,t.toLowerCase())?n(e,t,!D):void 0;return void 0!==r?r:_.attributes||!D?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,o=0;if(A=!_.detectDuplicates,T=!_.sortStable&&e.slice(0),e.sort(W),A){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return T=null,e},k=t.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=k(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=k(t);return n},b=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(_e,be),e[3]=(e[3]||e[4]||e[5]||"").replace(_e,be),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=M(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(_e,be).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=B[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&B(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(o){var i=t.attr(o,e);return null==i?"!="===n:n?(i+="","="===n?i===r:"!="===n?i!==r:"^="===n?r&&0===i.indexOf(r):"*="===n?r&&i.indexOf(r)>-1:"$="===n?r&&i.slice(-r.length)===r:"~="===n?(" "+i.replace(se," ")+" ").indexOf(r)>-1:"|="===n?i===r||i.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,o){var i="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===o?function(e){return!!e.parentNode}:function(t,n,u){var l,c,d,f,h,p,m=i!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!u&&!s;if(g){if(i){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;p=m="only"===e&&!p&&"nextSibling"}return!0}if(p=[a?g.firstChild:g.lastChild],a&&y){for(c=g[P]||(g[P]={}),l=c[e]||[],h=l[0]===H&&l[1],f=l[0]===H&&l[2],d=h&&g.childNodes[h];d=++h&&d&&d[m]||(f=h=0)||p.pop();)if(1===d.nodeType&&++f&&d===t){c[e]=[H,h,f];break}}else if(y&&(l=(t[P]||(t[P]={}))[e])&&l[0]===H)f=l[1];else for(;(d=++h&&d&&d[m]||(f=h=0)||p.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[P]||(d[P]={}))[e]=[H,f]),d!==t)););return f-=o,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,n){var o,i=b.pseudos[e]||b.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return i[P]?i(n):i.length>1?(o=[e,e,"",n],b.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,o=i(e,n),a=o.length;a--;)r=ee(e,o[a]),e[r]=!(t[r]=o[a])}):function(e){return i(e,0,o)}):i}},pseudos:{not:r(function(e){var t=[],n=[],o=E(e.replace(ue,"$1"));return o[P]?r(function(e,t,n,r){for(var i,a=o(e,null,r,[]),s=e.length;s--;)(i=a[s])&&(e[s]=!(t[s]=i))}):function(e,r,i){return t[0]=e,o(t,null,i,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(_e,be),function(t){return(t.textContent||t.innerText||k(t)).indexOf(e)>-1}}),lang:r(function(e){return he.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(_e,be).toLowerCase(),function(t){var n;do if(n=D?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===O.activeElement&&(!O.hasFocus||O.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return me.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[0>n?n+t:n]}),even:l(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:l(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:l(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},b.pseudos.nth=b.pseudos.eq;for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[w]=s(w);for(w in{submit:!0,reset:!0})b.pseudos[w]=u(w);return d.prototype=b.filters=b.pseudos,b.setFilters=new d,M=t.tokenize=function(e,n){var r,o,i,a,s,u,l,c=V[e+" "];if(c)return n?0:c.slice(0);for(s=e,u=[],l=b.preFilter;s;){(!r||(o=le.exec(s)))&&(o&&(s=s.slice(o[0].length)||s),u.push(i=[])),r=!1,(o=ce.exec(s))&&(r=o.shift(),i.push({value:r,type:o[0].replace(ue," ")}),s=s.slice(r.length));for(a in b.filter)!(o=pe[a].exec(s))||l[a]&&!(o=l[a](o))||(r=o.shift(),i.push({value:r,type:a,matches:o}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):V(e,u).slice(0)},E=t.compile=function(e,t){var n,r=[],o=[],i=U[e+" "];if(!i){for(t||(t=M(e)),n=t.length;n--;)i=y(t[n]),i[P]?r.push(i):o.push(i);i=U(e,x(o,r)),i.selector=e}return i},C=t.select=function(e,t,n,r){var o,i,a,s,u,l="function"==typeof e&&e,d=!r&&M(e=l.selector||e);if(n=n||[],1===d.length){if(i=d[0]=d[0].slice(0),i.length>2&&"ID"===(a=i[0]).type&&_.getById&&9===t.nodeType&&D&&b.relative[i[1].type]){if(t=(b.find.ID(a.matches[0].replace(_e,be),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=pe.needsContext.test(e)?0:i.length;o--&&(a=i[o],!b.relative[s=a.type]);)if((u=b.find[s])&&(r=u(a.matches[0].replace(_e,be),xe.test(i[0].type)&&c(t.parentNode)||t))){if(i.splice(o,1),e=r.length&&f(i),!e)return G.apply(n,r),n;break}}return(l||E(e,d))(r,t,!D,n,xe.test(e)&&c(t.parentNode)||t),n},_.sortStable=P.split("").sort(W).join("")===P,_.detectDuplicates=!!A,N(),_.sortDetached=o(function(e){return 1&e.compareDocumentPosition(O.createElement("div"))}),o(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||i("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),_.attributes&&o(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||i("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),o(function(e){return null==e.getAttribute("disabled")})||i(te,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);Q.find=oe,Q.expr=oe.selectors,Q.expr[":"]=Q.expr.pseudos,Q.unique=oe.uniqueSort,Q.text=oe.getText,Q.isXMLDoc=oe.isXML,Q.contains=oe.contains;var ie=Q.expr.match.needsContext,ae=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,se=/^.[^:#\[\.,]*$/;Q.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?Q.find.matchesSelector(r,e)?[r]:[]:Q.find.matches(e,Q.grep(t,function(e){return 1===e.nodeType}))},Q.fn.extend({find:function(e){var t,n=this.length,r=[],o=this;if("string"!=typeof e)return this.pushStack(Q(e).filter(function(){for(t=0;n>t;t++)if(Q.contains(o[t],this))return!0}));for(t=0;n>t;t++)Q.find(e,o[t],r);return r=this.pushStack(n>1?Q.unique(r):r),r.selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&ie.test(e)?Q(e):e||[],!1).length}});var ue,le=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ce=Q.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(n="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:le.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||ue).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof Q?t[0]:t,Q.merge(this,Q.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:K,!0)),ae.test(n[1])&&Q.isPlainObject(t))for(n in t)Q.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}return r=K.getElementById(n[2]),r&&r.parentNode&&(this.length=1,this[0]=r),this.context=K,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):Q.isFunction(e)?"undefined"!=typeof ue.ready?ue.ready(e):e(Q):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),Q.makeArray(e,this))};ce.prototype=Q.fn,ue=Q(K);var de=/^(?:parents|prev(?:Until|All))/,fe={children:!0,contents:!0,next:!0,prev:!0};Q.extend({dir:function(e,t,n){for(var r=[],o=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(o&&Q(e).is(n))break;r.push(e)}return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),Q.fn.extend({has:function(e){var t=Q(e,this),n=t.length;return this.filter(function(){for(var e=0;n>e;e++)if(Q.contains(this,t[e]))return!0})},closest:function(e,t){for(var n,r=0,o=this.length,i=[],a=ie.test(e)||"string"!=typeof e?Q(e,t||this.context):0;o>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&Q.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?Q.unique(i):i)},index:function(e){return e?"string"==typeof e?W.call(Q(e),this[0]):W.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(Q.unique(Q.merge(this.get(),Q(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Q.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Q.dir(e,"parentNode")},parentsUntil:function(e,t,n){return Q.dir(e,"parentNode",n)},next:function(e){return o(e,"nextSibling")},prev:function(e){return o(e,"previousSibling")},nextAll:function(e){return Q.dir(e,"nextSibling")},prevAll:function(e){return Q.dir(e,"previousSibling")},nextUntil:function(e,t,n){return Q.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return Q.dir(e,"previousSibling",n)},siblings:function(e){return Q.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return Q.sibling(e.firstChild)},contents:function(e){return e.contentDocument||Q.merge([],e.childNodes)}},function(e,t){Q.fn[e]=function(n,r){var o=Q.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(o=Q.filter(r,o)),this.length>1&&(fe[e]||Q.unique(o),de.test(e)&&o.reverse()),this.pushStack(o)}});var he=/\S+/g,pe={};Q.Callbacks=function(e){e="string"==typeof e?pe[e]||i(e):Q.extend({},e);var t,n,r,o,a,s,u=[],l=!e.once&&[],c=function(data){for(t=e.memory&&data,n=!0,s=o||0,o=0,a=u.length,r=!0;u&&a>s;s++)if(u[s].apply(data[0],data[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,u&&(l?l.length&&c(l.shift()):t?u=[]:d.disable())},d={add:function(){if(u){var n=u.length;!function i(t){Q.each(t,function(t,n){var r=Q.type(n);"function"===r?e.unique&&d.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})}(arguments),r?a=u.length:t&&(o=n,c(t))}return this},remove:function(){return u&&Q.each(arguments,function(e,t){for(var n;(n=Q.inArray(t,u,n))>-1;)u.splice(n,1),r&&(a>=n&&a--,s>=n&&s--)}),this},has:function(e){return e?Q.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],a=0,this},disable:function(){return u=l=t=void 0,this},disabled:function(){return!u},lock:function(){return l=void 0,t||d.disable(),this},locked:function(){return!l},fireWith:function(e,t){return!u||n&&!l||(t=t||[],t=[e,t.slice?t.slice():t],r?l.push(t):c(t)),this},fire:function(){return d.fireWith(this,arguments),this},fired:function(){return!!n}};return d},Q.extend({Deferred:function(e){var t=[["resolve","done",Q.Callbacks("once memory"),"resolved"],["reject","fail",Q.Callbacks("once memory"),"rejected"],["notify","progress",Q.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},then:function(){var e=arguments;return Q.Deferred(function(n){Q.each(t,function(t,i){var a=Q.isFunction(e[t])&&e[t];o[i[1]](function(){var e=a&&a.apply(this,arguments);e&&Q.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[i[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?Q.extend(e,r):r}},o={};return r.pipe=r.then,Q.each(t,function(e,i){var a=i[2],s=i[3];r[i[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),o[i[0]]=function(){return o[i[0]+"With"](this===o?r:this,arguments),this},o[i[0]+"With"]=a.fireWith}),r.promise(o),e&&e.call(o,o),o},when:function(e){var t,n,r,o=0,i=B.call(arguments),a=i.length,s=1!==a||e&&Q.isFunction(e.promise)?a:0,u=1===s?e:Q.Deferred(),l=function(e,n,r){return function(o){n[e]=this,r[e]=arguments.length>1?B.call(arguments):o,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);a>o;o++)i[o]&&Q.isFunction(i[o].promise)?i[o].promise().done(l(o,r,i)).fail(u.reject).progress(l(o,n,t)):--s;return s||u.resolveWith(r,i),u.promise()}});var me;Q.fn.ready=function(e){return Q.ready.promise().done(e),this},Q.extend({isReady:!1,readyWait:1,holdReady:function(e){e?Q.readyWait++:Q.ready(!0)},ready:function(e){(e===!0?--Q.readyWait:Q.isReady)||(Q.isReady=!0,e!==!0&&--Q.readyWait>0||(me.resolveWith(K,[Q]),Q.fn.triggerHandler&&(Q(K).triggerHandler("ready"),Q(K).off("ready"))))}}),Q.ready.promise=function(t){return me||(me=Q.Deferred(),"complete"===K.readyState?setTimeout(Q.ready):(K.addEventListener("DOMContentLoaded",a,!1),e.addEventListener("load",a,!1))),me.promise(t)},Q.ready.promise();var ge=Q.access=function(e,t,n,r,o,i,a){var s=0,u=e.length,l=null==n;if("object"===Q.type(n)){o=!0;for(s in n)Q.access(e,t,s,n[s],!0,i,a)}else if(void 0!==r&&(o=!0,Q.isFunction(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(Q(e),n)})),t))for(;u>s;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return o?e:l?t.call(e):u?t(e[0],n):i};Q.acceptData=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType},s.uid=1,s.accepts=Q.acceptData,s.prototype={key:function(e){if(!s.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=s.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,Q.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,data,t){var n,r=this.key(e),o=this.cache[r];if("string"==typeof data)o[data]=t;else if(Q.isEmptyObject(o))Q.extend(this.cache[r],data);else for(n in data)o[n]=data[n];return o},get:function(e,t){var n=this.cache[this.key(e)];return void 0===t?n:n[t]},access:function(e,t,n){var r;return void 0===t||t&&"string"==typeof t&&void 0===n?(r=this.get(e,t),void 0!==r?r:this.get(e,Q.camelCase(t))):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r,o,i=this.key(e),a=this.cache[i];if(void 0===t)this.cache[i]={};else{Q.isArray(t)?r=t.concat(t.map(Q.camelCase)):(o=Q.camelCase(t),t in a?r=[t,o]:(r=o,r=r in a?[r]:r.match(he)||[])),n=r.length;for(;n--;)delete a[r[n]]}},hasData:function(e){return!Q.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}};var ve=new s,ye=new s,xe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,we=/([A-Z])/g;Q.extend({hasData:function(e){return ye.hasData(e)||ve.hasData(e)},data:function(e,t,data){return ye.access(e,t,data)},removeData:function(e,t){ye.remove(e,t)},_data:function(e,t,data){return ve.access(e,t,data)},_removeData:function(e,t){ve.remove(e,t)}}),Q.fn.extend({data:function(e,t){var n,r,data,o=this[0],i=o&&o.attributes;if(void 0===e){if(this.length&&(data=ye.get(o),1===o.nodeType&&!ve.get(o,"hasDataAttrs"))){for(n=i.length;n--;)i[n]&&(r=i[n].name,0===r.indexOf("data-")&&(r=Q.camelCase(r.slice(5)),u(o,r,data[r])));ve.set(o,"hasDataAttrs",!0)}return data}return"object"==typeof e?this.each(function(){ye.set(this,e)}):ge(this,function(t){var data,n=Q.camelCase(e);if(o&&void 0===t){if(data=ye.get(o,e),void 0!==data)return data;if(data=ye.get(o,n),void 0!==data)return data;if(data=u(o,n,void 0),void 0!==data)return data}else this.each(function(){var data=ye.get(this,n);ye.set(this,n,t),-1!==e.indexOf("-")&&void 0!==data&&ye.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){ye.remove(this,e)})}}),Q.extend({queue:function(e,t,data){var n;return e?(t=(t||"fx")+"queue",n=ve.get(e,t),data&&(!n||Q.isArray(data)?n=ve.access(e,t,Q.makeArray(data)):n.push(data)),n||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=Q.queue(e,t),r=n.length,o=n.shift(),i=Q._queueHooks(e,t),a=function(){Q.dequeue(e,t)};"inprogress"===o&&(o=n.shift(),r--),o&&("fx"===t&&n.unshift("inprogress"),delete i.stop,o.call(e,a,i)),!r&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ve.get(e,n)||ve.access(e,n,{empty:Q.Callbacks("once memory").add(function(){ve.remove(e,[t+"queue",n])})})}}),Q.fn.extend({queue:function(e,data){var t=2;return"string"!=typeof e&&(data=e,e="fx",t--),arguments.length<t?Q.queue(this[0],e):void 0===data?this:this.each(function(){var t=Q.queue(this,e,data);Q._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&Q.dequeue(this,e)})},dequeue:function(e){return this.each(function(){Q.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,o=Q.Deferred(),i=this,a=this.length,s=function(){--r||o.resolveWith(i,[i])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)n=ve.get(i[a],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(s));return s(),o.promise(t)}});var _e=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,be=["Top","Right","Bottom","Left"],ke=function(e,t){return e=t||e,"none"===Q.css(e,"display")||!Q.contains(e.ownerDocument,e)},je=/^(?:checkbox|radio)$/i;!function(){var e=K.createDocumentFragment(),t=e.appendChild(K.createElement("div")),n=K.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),Z.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",Z.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Me="undefined";Z.focusinBubbles="onfocusin"in e;var Ee=/^key/,Ce=/^(?:mouse|pointer|contextmenu)|click/,Se=/^(?:focusinfocus|focusoutblur)$/,Te=/^([^.]*)(?:\.(.+)|)$/;Q.event={global:{},add:function(e,t,n,data,r){var o,i,a,s,u,l,c,d,f,h,p,m=ve.get(e);if(m)for(n.handler&&(o=n,n=o.handler,r=o.selector),n.guid||(n.guid=Q.guid++),(s=m.events)||(s=m.events={}),(i=m.handle)||(i=m.handle=function(t){return typeof Q!==Me&&Q.event.triggered!==t.type?Q.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(he)||[""],u=t.length;u--;)a=Te.exec(t[u])||[],f=p=a[1],h=(a[2]||"").split(".").sort(),f&&(c=Q.event.special[f]||{},f=(r?c.delegateType:c.bindType)||f,c=Q.event.special[f]||{},l=Q.extend({type:f,origType:p,data:data,handler:n,guid:n.guid,selector:r,needsContext:r&&Q.expr.match.needsContext.test(r),namespace:h.join(".")},o),(d=s[f])||(d=s[f]=[],d.delegateCount=0,c.setup&&c.setup.call(e,data,h,i)!==!1||e.addEventListener&&e.addEventListener(f,i,!1)),c.add&&(c.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),r?d.splice(d.delegateCount++,0,l):d.push(l),Q.event.global[f]=!0)},remove:function(e,t,n,r,o){var i,a,s,u,l,c,d,f,h,p,m,g=ve.hasData(e)&&ve.get(e);if(g&&(u=g.events)){for(t=(t||"").match(he)||[""],l=t.length;l--;)if(s=Te.exec(t[l])||[],h=m=s[1],p=(s[2]||"").split(".").sort(),h){for(d=Q.event.special[h]||{},h=(r?d.delegateType:d.bindType)||h,f=u[h]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=i=f.length;i--;)c=f[i],!o&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(i,1),c.selector&&f.delegateCount--,d.remove&&d.remove.call(e,c));a&&!f.length&&(d.teardown&&d.teardown.call(e,p,g.handle)!==!1||Q.removeEvent(e,h,g.handle),delete u[h])}else for(h in u)Q.event.remove(e,h+t[l],n,r,!0);Q.isEmptyObject(u)&&(delete g.handle,ve.remove(e,"events"))}},trigger:function(t,data,n,r){var o,i,a,s,u,l,c,d=[n||K],f=J.call(t,"type")?t.type:t,h=J.call(t,"namespace")?t.namespace.split("."):[];if(i=a=n=n||K,3!==n.nodeType&&8!==n.nodeType&&!Se.test(f+Q.event.triggered)&&(f.indexOf(".")>=0&&(h=f.split("."),f=h.shift(),h.sort()),u=f.indexOf(":")<0&&"on"+f,t=t[Q.expando]?t:new Q.Event(f,"object"==typeof t&&t),t.isTrigger=r?2:3,t.namespace=h.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=n),data=null==data?[t]:Q.makeArray(data,[t]),c=Q.event.special[f]||{},r||!c.trigger||c.trigger.apply(n,data)!==!1)){if(!r&&!c.noBubble&&!Q.isWindow(n)){for(s=c.delegateType||f,Se.test(s+f)||(i=i.parentNode);i;i=i.parentNode)d.push(i),a=i;a===(n.ownerDocument||K)&&d.push(a.defaultView||a.parentWindow||e)}for(o=0;(i=d[o++])&&!t.isPropagationStopped();)t.type=o>1?s:c.bindType||f,l=(ve.get(i,"events")||{})[t.type]&&ve.get(i,"handle"),l&&l.apply(i,data),l=u&&i[u],l&&l.apply&&Q.acceptData(i)&&(t.result=l.apply(i,data), -t.result===!1&&t.preventDefault());return t.type=f,r||t.isDefaultPrevented()||c._default&&c._default.apply(d.pop(),data)!==!1||!Q.acceptData(n)||u&&Q.isFunction(n[f])&&!Q.isWindow(n)&&(a=n[u],a&&(n[u]=null),Q.event.triggered=f,n[f](),Q.event.triggered=void 0,a&&(n[u]=a)),t.result}},dispatch:function(e){e=Q.event.fix(e);var t,n,r,o,i,a=[],s=B.call(arguments),u=(ve.get(this,"events")||{})[e.type]||[],l=Q.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=Q.event.handlers.call(this,e,u),t=0;(o=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,n=0;(i=o.handlers[n++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((Q.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,o,i,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;s>n;n++)i=t[n],o=i.selector+" ",void 0===r[o]&&(r[o]=i.needsContext?Q(o,this).index(u)>=0:Q.find(o,this,null,[u]).length),r[o]&&r.push(i);r.length&&a.push({elem:u,handlers:r})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,o,i=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||K,r=n.documentElement,o=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||o&&o.scrollLeft||0)-(r&&r.clientLeft||o&&o.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||o&&o.scrollTop||0)-(r&&r.clientTop||o&&o.clientTop||0)),e.which||void 0===i||(e.which=1&i?1:2&i?3:4&i?2:0),e}},fix:function(e){if(e[Q.expando])return e;var t,n,r,o=e.type,i=e,a=this.fixHooks[o];for(a||(this.fixHooks[o]=a=Ce.test(o)?this.mouseHooks:Ee.test(o)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new Q.Event(i),t=r.length;t--;)n=r[t],e[n]=i[n];return e.target||(e.target=K),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,i):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==d()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===d()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&Q.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(e){return Q.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var o=Q.extend(new Q.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?Q.event.trigger(o,null,t):Q.event.dispatch.call(t,o),o.isDefaultPrevented()&&n.preventDefault()}},Q.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},Q.Event=function(e,t){return this instanceof Q.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?l:c):this.type=e,t&&Q.extend(this,t),this.timeStamp=e&&e.timeStamp||Q.now(),void(this[Q.expando]=!0)):new Q.Event(e,t)},Q.Event.prototype={isDefaultPrevented:c,isPropagationStopped:c,isImmediatePropagationStopped:c,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=l,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=l,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=l,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},Q.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){Q.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,o=e.relatedTarget,i=e.handleObj;return(!o||o!==r&&!Q.contains(r,o))&&(e.type=i.origType,n=i.handler.apply(this,arguments),e.type=t),n}}}),Z.focusinBubbles||Q.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){Q.event.simulate(t,e.target,Q.event.fix(e),!0)};Q.event.special[t]={setup:function(){var r=this.ownerDocument||this,o=ve.access(r,t);o||r.addEventListener(e,n,!0),ve.access(r,t,(o||0)+1)},teardown:function(){var r=this.ownerDocument||this,o=ve.access(r,t)-1;o?ve.access(r,t,o):(r.removeEventListener(e,n,!0),ve.remove(r,t))}}}),Q.fn.extend({on:function(e,t,data,n,r){var o,i;if("object"==typeof e){"string"!=typeof t&&(data=data||t,t=void 0);for(i in e)this.on(i,t,data,e[i],r);return this}if(null==data&&null==n?(n=t,data=t=void 0):null==n&&("string"==typeof t?(n=data,data=void 0):(n=data,data=t,t=void 0)),n===!1)n=c;else if(!n)return this;return 1===r&&(o=n,n=function(e){return Q().off(e),o.apply(this,arguments)},n.guid=o.guid||(o.guid=Q.guid++)),this.each(function(){Q.event.add(this,e,n,data,t)})},one:function(e,t,data,n){return this.on(e,t,data,n,1)},off:function(e,t,n){var r,o;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,Q(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(o in e)this.off(o,t,e[o]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=c),this.each(function(){Q.event.remove(this,e,n,t)})},trigger:function(e,data){return this.each(function(){Q.event.trigger(e,data,this)})},triggerHandler:function(e,data){var t=this[0];return t?Q.event.trigger(e,data,t,!0):void 0}});var Ae=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ne=/<([\w:]+)/,Oe=/<|&#?\w+;/,qe=/<(?:script|style|link)/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,Le=/^$|\/(?:java|ecma)script/i,Fe=/^true\/(.*)/,ze=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Re={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,"",""]};Re.optgroup=Re.option,Re.tbody=Re.tfoot=Re.colgroup=Re.caption=Re.thead,Re.th=Re.td,Q.extend({clone:function(e,t,n){var r,o,i,a,s=e.cloneNode(!0),u=Q.contains(e.ownerDocument,e);if(!(Z.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||Q.isXMLDoc(e)))for(a=v(s),i=v(e),r=0,o=i.length;o>r;r++)y(i[r],a[r]);if(t)if(n)for(i=i||v(e),a=a||v(s),r=0,o=i.length;o>r;r++)g(i[r],a[r]);else g(e,s);return a=v(s,"script"),a.length>0&&m(a,!u&&v(e,"script")),s},buildFragment:function(e,t,n,r){for(var o,i,a,s,u,l,c=t.createDocumentFragment(),d=[],f=0,h=e.length;h>f;f++)if(o=e[f],o||0===o)if("object"===Q.type(o))Q.merge(d,o.nodeType?[o]:o);else if(Oe.test(o)){for(i=i||c.appendChild(t.createElement("div")),a=(Ne.exec(o)||["",""])[1].toLowerCase(),s=Re[a]||Re._default,i.innerHTML=s[1]+o.replace(Ae,"<$1></$2>")+s[2],l=s[0];l--;)i=i.lastChild;Q.merge(d,i.childNodes),i=c.firstChild,i.textContent=""}else d.push(t.createTextNode(o));for(c.textContent="",f=0;o=d[f++];)if((!r||-1===Q.inArray(o,r))&&(u=Q.contains(o.ownerDocument,o),i=v(c.appendChild(o),"script"),u&&m(i),n))for(l=0;o=i[l++];)Le.test(o.type||"")&&n.push(o);return c},cleanData:function(e){for(var data,t,n,r,o=Q.event.special,i=0;void 0!==(t=e[i]);i++){if(Q.acceptData(t)&&(r=t[ve.expando],r&&(data=ve.cache[r]))){if(data.events)for(n in data.events)o[n]?Q.event.remove(t,n):Q.removeEvent(t,n,data.handle);ve.cache[r]&&delete ve.cache[r]}delete ye.cache[t[ye.expando]]}}}),Q.fn.extend({text:function(e){return ge(this,function(e){return void 0===e?Q.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=e)})},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=f(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=f(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?Q.filter(e,this):this,o=0;null!=(n=r[o]);o++)t||1!==n.nodeType||Q.cleanData(v(n)),n.parentNode&&(t&&Q.contains(n.ownerDocument,n)&&m(v(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(Q.cleanData(v(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return Q.clone(this,e,t)})},html:function(e){return ge(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!Re[(Ne.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(Ae,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(Q.cleanData(v(t,!1)),t.innerHTML=e);t=0}catch(o){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,Q.cleanData(v(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=V.apply([],e);var n,r,o,i,a,s,u=0,l=this.length,c=this,d=l-1,f=e[0],m=Q.isFunction(f);if(m||l>1&&"string"==typeof f&&!Z.checkClone&&De.test(f))return this.each(function(n){var r=c.eq(n);m&&(e[0]=f.call(this,n,r.html())),r.domManip(e,t)});if(l&&(n=Q.buildFragment(e,this[0].ownerDocument,!1,this),r=n.firstChild,1===n.childNodes.length&&(n=r),r)){for(o=Q.map(v(n,"script"),h),i=o.length;l>u;u++)a=n,u!==d&&(a=Q.clone(a,!0,!0),i&&Q.merge(o,v(a,"script"))),t.call(this[u],a,u);if(i)for(s=o[o.length-1].ownerDocument,Q.map(o,p),u=0;i>u;u++)a=o[u],Le.test(a.type||"")&&!ve.access(a,"globalEval")&&Q.contains(s,a)&&(a.src?Q._evalUrl&&Q._evalUrl(a.src):Q.globalEval(a.textContent.replace(ze,"")))}return this}}),Q.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){Q.fn[e]=function(e){for(var n,r=[],o=Q(e),i=o.length-1,a=0;i>=a;a++)n=a===i?this:this.clone(!0),Q(o[a])[t](n),U.apply(r,n.get());return this.pushStack(r)}});var Pe,Ie={},He=/^margin/,$e=new RegExp("^("+_e+")(?!px)[a-z%]+$","i"),Be=function(t){return t.ownerDocument.defaultView.opener?t.ownerDocument.defaultView.getComputedStyle(t,null):e.getComputedStyle(t,null)};!function(){function t(){a.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",a.innerHTML="",o.appendChild(i);var t=e.getComputedStyle(a,null);n="1%"!==t.top,r="4px"===t.width,o.removeChild(i)}var n,r,o=K.documentElement,i=K.createElement("div"),a=K.createElement("div");a.style&&(a.style.backgroundClip="content-box",a.cloneNode(!0).style.backgroundClip="",Z.clearCloneStyle="content-box"===a.style.backgroundClip,i.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",i.appendChild(a),e.getComputedStyle&&Q.extend(Z,{pixelPosition:function(){return t(),n},boxSizingReliable:function(){return null==r&&t(),r},reliableMarginRight:function(){var t,n=a.appendChild(K.createElement("div"));return n.style.cssText=a.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",a.style.width="1px",o.appendChild(i),t=!parseFloat(e.getComputedStyle(n,null).marginRight),o.removeChild(i),a.removeChild(n),t}}))}(),Q.swap=function(e,t,n,r){var o,i,a={};for(i in t)a[i]=e.style[i],e.style[i]=t[i];o=n.apply(e,r||[]);for(i in t)e.style[i]=a[i];return o};var Ve=/^(none|table(?!-c[ea]).+)/,Ue=new RegExp("^("+_e+")(.*)$","i"),We=new RegExp("^([+-])=("+_e+")","i"),Ye={position:"absolute",visibility:"hidden",display:"block"},Xe={letterSpacing:"0",fontWeight:"400"},Je=["Webkit","O","Moz","ms"];Q.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_(e,"opacity");return""===n?"1":n}}}},cssNumber:{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(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,i,a,s=Q.camelCase(t),u=e.style;return t=Q.cssProps[s]||(Q.cssProps[s]=k(u,s)),a=Q.cssHooks[t]||Q.cssHooks[s],void 0===n?a&&"get"in a&&void 0!==(o=a.get(e,!1,r))?o:u[t]:(i=typeof n,"string"===i&&(o=We.exec(n))&&(n=(o[1]+1)*o[2]+parseFloat(Q.css(e,t)),i="number"),null!=n&&n===n&&("number"!==i||Q.cssNumber[s]||(n+="px"),Z.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u[t]=n)),void 0)}},css:function(e,t,n,r){var o,i,a,s=Q.camelCase(t);return t=Q.cssProps[s]||(Q.cssProps[s]=k(e.style,s)),a=Q.cssHooks[t]||Q.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=_(e,t,r)),"normal"===o&&t in Xe&&(o=Xe[t]),""===n||n?(i=parseFloat(o),n===!0||Q.isNumeric(i)?i||0:o):o}}),Q.each(["height","width"],function(e,t){Q.cssHooks[t]={get:function(e,n,r){return n?Ve.test(Q.css(e,"display"))&&0===e.offsetWidth?Q.swap(e,Ye,function(){return E(e,t,r)}):E(e,t,r):void 0},set:function(e,n,r){var o=r&&Be(e);return j(e,n,r?M(e,t,r,"border-box"===Q.css(e,"boxSizing",!1,o),o):0)}}}),Q.cssHooks.marginRight=b(Z.reliableMarginRight,function(e,t){return t?Q.swap(e,{display:"inline-block"},_,[e,"marginRight"]):void 0}),Q.each({margin:"",padding:"",border:"Width"},function(e,t){Q.cssHooks[e+t]={expand:function(n){for(var r=0,o={},i="string"==typeof n?n.split(" "):[n];4>r;r++)o[e+be[r]+t]=i[r]||i[r-2]||i[0];return o}},He.test(e)||(Q.cssHooks[e+t].set=j)}),Q.fn.extend({css:function(e,t){return ge(this,function(e,t,n){var r,o,i={},a=0;if(Q.isArray(t)){for(r=Be(e),o=t.length;o>a;a++)i[t[a]]=Q.css(e,t[a],!1,r);return i}return void 0!==n?Q.style(e,t,n):Q.css(e,t)},e,t,arguments.length>1)},show:function(){return C(this,!0)},hide:function(){return C(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ke(this)?Q(this).show():Q(this).hide()})}}),Q.Tween=S,S.prototype={constructor:S,init:function(e,t,n,r,o,i){this.elem=e,this.prop=n,this.easing=o||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=i||(Q.cssNumber[n]?"":"px")},cur:function(){var e=S.propHooks[this.prop];return e&&e.get?e.get(this):S.propHooks._default.get(this)},run:function(e){var t,n=S.propHooks[this.prop];return this.options.duration?this.pos=t=Q.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):S.propHooks._default.set(this),this}},S.prototype.init.prototype=S.prototype,S.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=Q.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){Q.fx.step[e.prop]?Q.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[Q.cssProps[e.prop]]||Q.cssHooks[e.prop])?Q.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},S.propHooks.scrollTop=S.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},Q.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},Q.fx=S.prototype.init,Q.fx.step={};var Ze,Ke,Ge=/^(?:toggle|show|hide)$/,Qe=new RegExp("^(?:([+-])=|)("+_e+")([a-z%]*)$","i"),et=/queueHooks$/,tt=[O],nt={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),o=Qe.exec(t),i=o&&o[3]||(Q.cssNumber[e]?"":"px"),a=(Q.cssNumber[e]||"px"!==i&&+r)&&Qe.exec(Q.css(n.elem,e)),s=1,u=20;if(a&&a[3]!==i){i=i||a[3],o=o||[],a=+r||1;do s=s||".5",a/=s,Q.style(n.elem,e,a+i);while(s!==(s=n.cur()/r)&&1!==s&&--u)}return o&&(a=n.start=+a||+r||0,n.unit=i,n.end=o[1]?a+(o[1]+1)*o[2]:+o[2]),n}]};Q.Animation=Q.extend(D,{tweener:function(e,t){Q.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,o=e.length;o>r;r++)n=e[r],nt[n]=nt[n]||[],nt[n].unshift(t)},prefilter:function(e,t){t?tt.unshift(e):tt.push(e)}}),Q.speed=function(e,t,n){var r=e&&"object"==typeof e?Q.extend({},e):{complete:n||!n&&t||Q.isFunction(e)&&e,duration:e,easing:n&&t||t&&!Q.isFunction(t)&&t};return r.duration=Q.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in Q.fx.speeds?Q.fx.speeds[r.duration]:Q.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){Q.isFunction(r.old)&&r.old.call(this),r.queue&&Q.dequeue(this,r.queue)},r},Q.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ke).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var o=Q.isEmptyObject(e),i=Q.speed(t,n,r),a=function(){var t=D(this,Q.extend({},e),i);(o||ve.get(this,"finish"))&&t.stop(!0)};return a.finish=a,o||i.queue===!1?this.each(a):this.queue(i.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,o=null!=e&&e+"queueHooks",i=Q.timers,data=ve.get(this);if(o)data[o]&&data[o].stop&&r(data[o]);else for(o in data)data[o]&&data[o].stop&&et.test(o)&&r(data[o]);for(o=i.length;o--;)i[o].elem!==this||null!=e&&i[o].queue!==e||(i[o].anim.stop(n),t=!1,i.splice(o,1));(t||!n)&&Q.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,data=ve.get(this),n=data[e+"queue"],r=data[e+"queueHooks"],o=Q.timers,i=n?n.length:0;for(data.finish=!0,Q.queue(this,e,[]),r&&r.stop&&r.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;i>t;t++)n[t]&&n[t].finish&&n[t].finish.call(this);delete data.finish})}}),Q.each(["toggle","show","hide"],function(e,t){var n=Q.fn[t];Q.fn[t]=function(e,r,o){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(A(t,!0),e,r,o)}}),Q.each({slideDown:A("show"),slideUp:A("hide"),slideToggle:A("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){Q.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),Q.timers=[],Q.fx.tick=function(){var e,t=0,n=Q.timers;for(Ze=Q.now();t<n.length;t++)e=n[t],e()||n[t]!==e||n.splice(t--,1);n.length||Q.fx.stop(),Ze=void 0},Q.fx.timer=function(e){Q.timers.push(e),e()?Q.fx.start():Q.timers.pop()},Q.fx.interval=13,Q.fx.start=function(){Ke||(Ke=setInterval(Q.fx.tick,Q.fx.interval))},Q.fx.stop=function(){clearInterval(Ke),Ke=null},Q.fx.speeds={slow:600,fast:200,_default:400},Q.fn.delay=function(e,t){return e=Q.fx?Q.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},function(){var e=K.createElement("input"),t=K.createElement("select"),n=t.appendChild(K.createElement("option"));e.type="checkbox",Z.checkOn=""!==e.value,Z.optSelected=n.selected,t.disabled=!0,Z.optDisabled=!n.disabled,e=K.createElement("input"),e.value="t",e.type="radio",Z.radioValue="t"===e.value}();var rt,ot,it=Q.expr.attrHandle;Q.fn.extend({attr:function(e,t){return ge(this,Q.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){Q.removeAttr(this,e)})}}),Q.extend({attr:function(e,t,n){var r,o,i=e.nodeType;if(e&&3!==i&&8!==i&&2!==i)return typeof e.getAttribute===Me?Q.prop(e,t,n):(1===i&&Q.isXMLDoc(e)||(t=t.toLowerCase(),r=Q.attrHooks[t]||(Q.expr.match.bool.test(t)?ot:rt)),void 0===n?r&&"get"in r&&null!==(o=r.get(e,t))?o:(o=Q.find.attr(e,t),null==o?void 0:o):null!==n?r&&"set"in r&&void 0!==(o=r.set(e,n,t))?o:(e.setAttribute(t,n+""),n):void Q.removeAttr(e,t))},removeAttr:function(e,t){var n,r,o=0,i=t&&t.match(he);if(i&&1===e.nodeType)for(;n=i[o++];)r=Q.propFix[n]||n,Q.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!Z.radioValue&&"radio"===t&&Q.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),ot={set:function(e,t,n){return t===!1?Q.removeAttr(e,n):e.setAttribute(n,n),n}},Q.each(Q.expr.match.bool.source.match(/\w+/g),function(e,t){var n=it[t]||Q.find.attr;it[t]=function(e,t,r){var o,i;return r||(i=it[t],it[t]=o,o=null!=n(e,t,r)?t.toLowerCase():null,it[t]=i),o}});var at=/^(?:input|select|textarea|button)$/i;Q.fn.extend({prop:function(e,t){return ge(this,Q.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[Q.propFix[e]||e]})}}),Q.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,o,i,a=e.nodeType;if(e&&3!==a&&8!==a&&2!==a)return i=1!==a||!Q.isXMLDoc(e),i&&(t=Q.propFix[t]||t,o=Q.propHooks[t]),void 0!==n?o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:e[t]=n:o&&"get"in o&&null!==(r=o.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||at.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),Z.optSelected||(Q.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),Q.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){Q.propFix[this.toLowerCase()]=this});var st=/[\t\r\n\f]/g;Q.fn.extend({addClass:function(e){var t,n,r,o,i,a,s="string"==typeof e&&e,u=0,l=this.length;if(Q.isFunction(e))return this.each(function(t){Q(this).addClass(e.call(this,t,this.className))});if(s)for(t=(e||"").match(he)||[];l>u;u++)if(n=this[u],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(st," "):" ")){for(i=0;o=t[i++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");a=Q.trim(r),n.className!==a&&(n.className=a)}return this},removeClass:function(e){var t,n,r,o,i,a,s=0===arguments.length||"string"==typeof e&&e,u=0,l=this.length;if(Q.isFunction(e))return this.each(function(t){Q(this).removeClass(e.call(this,t,this.className))});if(s)for(t=(e||"").match(he)||[];l>u;u++)if(n=this[u],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(st," "):"")){for(i=0;o=t[i++];)for(;r.indexOf(" "+o+" ")>=0;)r=r.replace(" "+o+" "," ");a=e?Q.trim(r):"",n.className!==a&&(n.className=a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):Q.isFunction(e)?this.each(function(n){Q(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var t,r=0,o=Q(this),i=e.match(he)||[];t=i[r++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else(n===Me||"boolean"===n)&&(this.className&&ve.set(this,"__className__",this.className),this.className=this.className||e===!1?"":ve.get(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(st," ").indexOf(t)>=0)return!0;return!1}});var ut=/\r/g;Q.fn.extend({val:function(e){var t,n,r,o=this[0];{if(arguments.length)return r=Q.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=r?e.call(this,n,Q(this).val()):e,null==o?o="":"number"==typeof o?o+="":Q.isArray(o)&&(o=Q.map(o,function(e){return null==e?"":e+""})),t=Q.valHooks[this.type]||Q.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,o,"value")||(this.value=o))});if(o)return t=Q.valHooks[o.type]||Q.valHooks[o.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(o,"value"))?n:(n=o.value,"string"==typeof n?n.replace(ut,""):null==n?"":n)}}}),Q.extend({valHooks:{option:{get:function(e){var t=Q.find.attr(e,"value");return null!=t?t:Q.trim(Q.text(e))}},select:{get:function(e){for(var t,n,r=e.options,o=e.selectedIndex,i="select-one"===e.type||0>o,a=i?null:[],s=i?o+1:r.length,u=0>o?s:i?o:0;s>u;u++)if(n=r[u],(n.selected||u===o)&&(Z.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!Q.nodeName(n.parentNode,"optgroup"))){if(t=Q(n).val(),i)return t;a.push(t)}return a},set:function(e,t){for(var n,r,o=e.options,i=Q.makeArray(t),a=o.length;a--;)r=o[a],(r.selected=Q.inArray(r.value,i)>=0)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),Q.each(["radio","checkbox"],function(){Q.valHooks[this]={set:function(e,t){return Q.isArray(t)?e.checked=Q.inArray(Q(e).val(),t)>=0:void 0}},Z.checkOn||(Q.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),Q.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){Q.fn[t]=function(data,e){return arguments.length>0?this.on(t,null,data,e):this.trigger(t)}}),Q.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,data,t){return this.on(e,null,data,t)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,data,n){return this.on(t,e,data,n)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var lt=Q.now(),ct=/\?/;Q.parseJSON=function(data){return JSON.parse(data+"")},Q.parseXML=function(data){var e,t;if(!data||"string"!=typeof data)return null;try{t=new DOMParser,e=t.parseFromString(data,"text/xml")}catch(n){e=void 0}return(!e||e.getElementsByTagName("parsererror").length)&&Q.error("Invalid XML: "+data),e};var dt=/#.*$/,ft=/([?&])_=[^&]*/,ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,mt=/^(?:GET|HEAD)$/,gt=/^\/\//,vt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,yt={},xt={},wt="*/".concat("*"),_t=e.location.href,bt=vt.exec(_t.toLowerCase())||[];Q.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:_t,type:"GET",isLocal:pt.test(bt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":wt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":Q.parseJSON,"text xml":Q.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?z(z(e,Q.ajaxSettings),t):z(Q.ajaxSettings,e)},ajaxPrefilter:L(yt),ajaxTransport:L(xt),ajax:function(e,t){function n(e,t,n,a){var u,c,v,y,w,b=t;2!==x&&(x=2,s&&clearTimeout(s),r=void 0,i=a||"",_.readyState=e>0?4:0,u=e>=200&&300>e||304===e,n&&(y=R(d,_,n)),y=P(d,y,_,u),u?(d.ifModified&&(w=_.getResponseHeader("Last-Modified"),w&&(Q.lastModified[o]=w),w=_.getResponseHeader("etag"),w&&(Q.etag[o]=w)),204===e||"HEAD"===d.type?b="nocontent":304===e?b="notmodified":(b=y.state,c=y.data,v=y.error,u=!v)):(v=b,(e||!b)&&(b="error",0>e&&(e=0))),_.status=e,_.statusText=(t||b)+"",u?p.resolveWith(f,[c,b,_]):p.rejectWith(f,[_,b,v]),_.statusCode(g),g=void 0,l&&h.trigger(u?"ajaxSuccess":"ajaxError",[_,d,u?c:v]),m.fireWith(f,[_,b]),l&&(h.trigger("ajaxComplete",[_,d]),--Q.active||Q.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,o,i,a,s,u,l,c,d=Q.ajaxSetup({},t),f=d.context||d,h=d.context&&(f.nodeType||f.jquery)?Q(f):Q.event,p=Q.Deferred(),m=Q.Callbacks("once memory"),g=d.statusCode||{},v={},y={},x=0,w="canceled",_={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!a)for(a={};t=ht.exec(i);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?i:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=y[n]=y[n]||e,v[e]=t),this},overrideMimeType:function(e){return x||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)g[t]=[g[t],e[t]];else _.always(e[_.status]);return this},abort:function(e){var t=e||w;return r&&r.abort(t),n(0,t),this}};if(p.promise(_).complete=m.add,_.success=_.done,_.error=_.fail,d.url=((e||d.url||_t)+"").replace(dt,"").replace(gt,bt[1]+"//"),d.type=t.method||t.type||d.method||d.type,d.dataTypes=Q.trim(d.dataType||"*").toLowerCase().match(he)||[""],null==d.crossDomain&&(u=vt.exec(d.url.toLowerCase()),d.crossDomain=!(!u||u[1]===bt[1]&&u[2]===bt[2]&&(u[3]||("http:"===u[1]?"80":"443"))===(bt[3]||("http:"===bt[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=Q.param(d.data,d.traditional)),F(yt,d,t,_),2===x)return _;l=Q.event&&d.global,l&&0===Q.active++&&Q.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!mt.test(d.type),o=d.url,d.hasContent||(d.data&&(o=d.url+=(ct.test(o)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=ft.test(o)?o.replace(ft,"$1_="+lt++):o+(ct.test(o)?"&":"?")+"_="+lt++)),d.ifModified&&(Q.lastModified[o]&&_.setRequestHeader("If-Modified-Since",Q.lastModified[o]),Q.etag[o]&&_.setRequestHeader("If-None-Match",Q.etag[o])),(d.data&&d.hasContent&&d.contentType!==!1||t.contentType)&&_.setRequestHeader("Content-Type",d.contentType),_.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+wt+"; q=0.01":""):d.accepts["*"]);for(c in d.headers)_.setRequestHeader(c,d.headers[c]);if(d.beforeSend&&(d.beforeSend.call(f,_,d)===!1||2===x))return _.abort();w="abort";for(c in{success:1,error:1,complete:1})_[c](d[c]);if(r=F(xt,d,t,_)){_.readyState=1,l&&h.trigger("ajaxSend",[_,d]),d.async&&d.timeout>0&&(s=setTimeout(function(){_.abort("timeout")},d.timeout));try{x=1,r.send(v,n)}catch(b){if(!(2>x))throw b;n(-1,b)}}else n(-1,"No Transport");return _},getJSON:function(e,data,t){return Q.get(e,data,t,"json")},getScript:function(e,t){return Q.get(e,void 0,t,"script")}}),Q.each(["get","post"],function(e,t){Q[t]=function(e,data,n,r){return Q.isFunction(data)&&(r=r||n,n=data,data=void 0),Q.ajax({url:e,type:t,dataType:r,data:data,success:n})}}),Q._evalUrl=function(e){return Q.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},Q.fn.extend({wrapAll:function(e){var t;return Q.isFunction(e)?this.each(function(t){Q(this).wrapAll(e.call(this,t))}):(this[0]&&(t=Q(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return Q.isFunction(e)?this.each(function(t){Q(this).wrapInner(e.call(this,t))}):this.each(function(){var t=Q(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=Q.isFunction(e);return this.each(function(n){Q(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){Q.nodeName(this,"body")||Q(this).replaceWith(this.childNodes)}).end()}}),Q.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0},Q.expr.filters.visible=function(e){return!Q.expr.filters.hidden(e)};var kt=/%20/g,jt=/\[\]$/,Mt=/\r?\n/g,Et=/^(?:submit|button|image|reset|file)$/i,Ct=/^(?:input|select|textarea|keygen)/i;Q.param=function(e,t){var n,r=[],o=function(e,t){t=Q.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=Q.ajaxSettings&&Q.ajaxSettings.traditional),Q.isArray(e)||e.jquery&&!Q.isPlainObject(e))Q.each(e,function(){o(this.name,this.value)});else for(n in e)I(n,e[n],t,o);return r.join("&").replace(kt,"+")},Q.fn.extend({serialize:function(){ -return Q.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=Q.prop(this,"elements");return e?Q.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!Q(this).is(":disabled")&&Ct.test(this.nodeName)&&!Et.test(e)&&(this.checked||!je.test(e))}).map(function(e,t){var n=Q(this).val();return null==n?null:Q.isArray(n)?Q.map(n,function(e){return{name:t.name,value:e.replace(Mt,"\r\n")}}):{name:t.name,value:n.replace(Mt,"\r\n")}}).get()}}),Q.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var St=0,Tt={},At={0:200,1223:204},Nt=Q.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in Tt)Tt[e]()}),Z.cors=!!Nt&&"withCredentials"in Nt,Z.ajax=Nt=!!Nt,Q.ajaxTransport(function(e){var t;return Z.cors||Nt&&!e.crossDomain?{send:function(n,r){var o,i=e.xhr(),a=++St;if(i.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)i[o]=e.xhrFields[o];e.mimeType&&i.overrideMimeType&&i.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(o in n)i.setRequestHeader(o,n[o]);t=function(e){return function(){t&&(delete Tt[a],t=i.onload=i.onerror=null,"abort"===e?i.abort():"error"===e?r(i.status,i.statusText):r(At[i.status]||i.status,i.statusText,"string"==typeof i.responseText?{text:i.responseText}:void 0,i.getAllResponseHeaders()))}},i.onload=t(),i.onerror=t("error"),t=Tt[a]=t("abort");try{i.send(e.hasContent&&e.data||null)}catch(s){if(t)throw s}},abort:function(){t&&t()}}:void 0}),Q.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return Q.globalEval(e),e}}}),Q.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),Q.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,o){t=Q("<script>").prop({async:!0,charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),K.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Ot=[],qt=/(=)\?(?=&|$)|\?\?/;Q.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Ot.pop()||Q.expando+"_"+lt++;return this[e]=!0,e}}),Q.ajaxPrefilter("json jsonp",function(t,n,r){var o,i,a,s=t.jsonp!==!1&&(qt.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&qt.test(t.data)&&"data");return s||"jsonp"===t.dataTypes[0]?(o=t.jsonpCallback=Q.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(qt,"$1"+o):t.jsonp!==!1&&(t.url+=(ct.test(t.url)?"&":"?")+t.jsonp+"="+o),t.converters["script json"]=function(){return a||Q.error(o+" was not called"),a[0]},t.dataTypes[0]="json",i=e[o],e[o]=function(){a=arguments},r.always(function(){e[o]=i,t[o]&&(t.jsonpCallback=n.jsonpCallback,Ot.push(o)),a&&Q.isFunction(i)&&i(a[0]),a=i=void 0}),"script"):void 0}),Q.parseHTML=function(data,e,t){if(!data||"string"!=typeof data)return null;"boolean"==typeof e&&(t=e,e=!1),e=e||K;var n=ae.exec(data),r=!t&&[];return n?[e.createElement(n[1])]:(n=Q.buildFragment([data],e,r),r&&r.length&&Q(r).remove(),Q.merge([],n.childNodes))};var Dt=Q.fn.load;Q.fn.load=function(e,t,n){if("string"!=typeof e&&Dt)return Dt.apply(this,arguments);var r,o,i,a=this,s=e.indexOf(" ");return s>=0&&(r=Q.trim(e.slice(s)),e=e.slice(0,s)),Q.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(o="POST"),a.length>0&&Q.ajax({url:e,type:o,dataType:"html",data:t}).done(function(e){i=arguments,a.html(r?Q("<div>").append(Q.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){a.each(n,i||[e.responseText,t,e])}),this},Q.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){Q.fn[t]=function(e){return this.on(t,e)}}),Q.expr.filters.animated=function(e){return Q.grep(Q.timers,function(t){return e===t.elem}).length};var Lt=e.document.documentElement;Q.offset={setOffset:function(e,t,n){var r,o,i,a,s,u,l,c=Q.css(e,"position"),d=Q(e),f={};"static"===c&&(e.style.position="relative"),s=d.offset(),i=Q.css(e,"top"),u=Q.css(e,"left"),l=("absolute"===c||"fixed"===c)&&(i+u).indexOf("auto")>-1,l?(r=d.position(),a=r.top,o=r.left):(a=parseFloat(i)||0,o=parseFloat(u)||0),Q.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+o),"using"in t?t.using.call(e,f):d.css(f)}},Q.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){Q.offset.setOffset(this,e,t)});var t,n,r=this[0],o={top:0,left:0},i=r&&r.ownerDocument;if(i)return t=i.documentElement,Q.contains(t,r)?(typeof r.getBoundingClientRect!==Me&&(o=r.getBoundingClientRect()),n=H(i),{top:o.top+n.pageYOffset-t.clientTop,left:o.left+n.pageXOffset-t.clientLeft}):o},position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===Q.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),Q.nodeName(e[0],"html")||(r=e.offset()),r.top+=Q.css(e[0],"borderTopWidth",!0),r.left+=Q.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-Q.css(n,"marginTop",!0),left:t.left-r.left-Q.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||Lt;e&&!Q.nodeName(e,"html")&&"static"===Q.css(e,"position");)e=e.offsetParent;return e||Lt})}}),Q.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,n){var r="pageYOffset"===n;Q.fn[t]=function(o){return ge(this,function(t,o,i){var a=H(t);return void 0===i?a?a[n]:t[o]:void(a?a.scrollTo(r?e.pageXOffset:i,r?i:e.pageYOffset):t[o]=i)},t,o,arguments.length,null)}}),Q.each(["top","left"],function(e,t){Q.cssHooks[t]=b(Z.pixelPosition,function(e,n){return n?(n=_(e,t),$e.test(n)?Q(e).position()[t]+"px":n):void 0})}),Q.each({Height:"height",Width:"width"},function(e,t){Q.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){Q.fn[r]=function(r,o){var i=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||o===!0?"margin":"border");return ge(this,function(t,n,r){var o;return Q.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===r?Q.css(t,n,a):Q.style(t,n,r,a)},t,i?r:void 0,i,null)}})}),Q.fn.size=function(){return this.length},Q.fn.andSelf=Q.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return Q});var Ft=e.jQuery,zt=e.$;return Q.noConflict=function(t){return e.$===Q&&(e.$=zt),t&&e.jQuery===Q&&(e.jQuery=Ft),Q},typeof t===Me&&(e.jQuery=e.$=Q),Q})},{}],285:[function(e,t,n){(function(e){(function(){function r(e,t,n){for(var r=(n||0)-1,o=e?e.length:0;++r<o;)if(e[r]===t)return r;return-1}function o(e,t){var n=typeof t;if(e=e.cache,"boolean"==n||null==t)return e[t]?0:-1;"number"!=n&&"string"!=n&&(n="object");var o="number"==n?t:w+t;return e=(e=e[n])&&e[o],"object"==n?e&&r(e,t)>-1?0:-1:e?0:-1}function i(e){var t=this.cache,n=typeof e;if("boolean"==n||null==e)t[e]=!0;else{"number"!=n&&"string"!=n&&(n="object");var r="number"==n?e:w+e,o=t[n]||(t[n]={});"object"==n?(o[r]||(o[r]=[])).push(e):o[r]=!0}}function a(e){return e.charCodeAt(0)}function s(e,t){for(var n=e.criteria,r=t.criteria,o=-1,i=n.length;++o<i;){var a=n[o],s=r[o];if(a!==s){if(a>s||"undefined"==typeof a)return 1;if(s>a||"undefined"==typeof s)return-1}}return e.index-t.index}function u(e){var t=-1,n=e.length,r=e[0],o=e[n/2|0],a=e[n-1];if(r&&"object"==typeof r&&o&&"object"==typeof o&&a&&"object"==typeof a)return!1;var s=d();s["false"]=s["null"]=s["true"]=s.undefined=!1;var u=d();for(u.array=e,u.cache=s,u.push=i;++t<n;)u.push(e[t]);return u}function l(e){return"\\"+Z[e]}function c(){return v.pop()||[]}function d(){return y.pop()||{array:null,cache:null,criteria:null,"false":!1,index:0,"null":!1,number:null,object:null,push:null,string:null,"true":!1,undefined:!1,value:null}}function f(e){e.length=0,v.length<b&&v.push(e)}function h(e){var t=e.cache;t&&h(t),e.array=e.cache=e.criteria=e.object=e.number=e.string=e.value=null,y.length<b&&y.push(e)}function p(e,t,n){t||(t=0),"undefined"==typeof n&&(n=e?e.length:0);for(var r=-1,o=n-t||0,i=Array(0>o?0:o);++r<o;)i[r]=e[t+r];return i}function m(e){function t(e){return e&&"object"==typeof e&&!Gn(e)&&Dn.call(e,"__wrapped__")?e:new n(e)}function n(e,t){this.__chain__=!!t,this.__wrapped__=e}function i(e){function t(){if(r){var e=p(r);Ln.apply(e,arguments)}if(this instanceof t){var i=y(n.prototype),a=n.apply(i,e||arguments);return Ae(a)?a:i}return n.apply(o,e||arguments)}var n=e[0],r=e[2],o=e[4];return Kn(t,e),t}function v(e,t,n,r,o){if(n){var i=n(e);if("undefined"!=typeof i)return i}var a=Ae(e);if(!a)return e;var s=Cn.call(e);if(!W[s])return e;var u=Jn[s];switch(s){case P:case I:return new u(+e);case $:case U:return new u(e);case V:return i=u(e.source,S.exec(e)),i.lastIndex=e.lastIndex,i}var l=Gn(e);if(t){var d=!r;r||(r=c()),o||(o=c());for(var h=r.length;h--;)if(r[h]==e)return o[h];i=l?u(e.length):{}}else i=l?p(e):ir({},e);return l&&(Dn.call(e,"index")&&(i.index=e.index),Dn.call(e,"input")&&(i.input=e.input)),t?(r.push(e),o.push(i),(l?Ze:ur)(e,function(e,a){i[a]=v(e,t,n,r,o)}),d&&(f(r),f(o)),i):i}function y(e,t){return Ae(e)?In(e):{}}function b(e,t,n){if("function"!=typeof e)return Kt;if("undefined"==typeof t||!("prototype"in e))return e;var r=e.__bindData__;if("undefined"==typeof r&&(Zn.funcNames&&(r=!e.name),r=r||!Zn.funcDecomp,!r)){var o=On.call(e);Zn.funcNames||(r=!T.test(o)),r||(r=q.test(o),Kn(e,r))}if(r===!1||r!==!0&&1&r[1])return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)};case 4:return function(n,r,o,i){return e.call(t,n,r,o,i)}}return Dt(e,t)}function Z(e){function t(){var e=u?a:this;if(o){var h=p(o);Ln.apply(h,arguments)}if((i||c)&&(h||(h=p(arguments)),i&&Ln.apply(h,i),c&&h.length<s))return r|=16,Z([n,d?r:-4&r,h,null,a,s]);if(h||(h=arguments),l&&(n=e[f]),this instanceof t){e=y(n.prototype);var m=n.apply(e,h);return Ae(m)?m:e}return n.apply(e,h)}var n=e[0],r=e[1],o=e[2],i=e[3],a=e[4],s=e[5],u=1&r,l=2&r,c=4&r,d=8&r,f=n;return Kn(t,e),t}function G(e,t){var n=-1,i=ue(),a=e?e.length:0,s=a>=_&&i===r,l=[];if(s){var c=u(t);c?(i=o,t=c):s=!1}for(;++n<a;){var d=e[n];i(t,d)<0&&l.push(d)}return s&&h(t),l}function Q(e,t,n,r){for(var o=(r||0)-1,i=e?e.length:0,a=[];++o<i;){var s=e[o];if(s&&"object"==typeof s&&"number"==typeof s.length&&(Gn(s)||fe(s))){t||(s=Q(s,t,n));var u=-1,l=s.length,c=a.length;for(a.length+=l;++u<l;)a[c++]=s[u]}else n||a.push(s)}return a}function ee(e,t,n,r,o,i){if(n){var a=n(e,t);if("undefined"!=typeof a)return!!a}if(e===t)return 0!==e||1/e==1/t;var s=typeof e,u=typeof t;if(!(e!==e||e&&J[s]||t&&J[u]))return!1;if(null==e||null==t)return e===t;var l=Cn.call(e),d=Cn.call(t);if(l==z&&(l=B),d==z&&(d=B),l!=d)return!1;switch(l){case P:case I:return+e==+t;case $:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case V:case U:return e==bn(t)}var h=l==R;if(!h){var p=Dn.call(e,"__wrapped__"),m=Dn.call(t,"__wrapped__");if(p||m)return ee(p?e.__wrapped__:e,m?t.__wrapped__:t,n,r,o,i);if(l!=B)return!1;var g=e.constructor,v=t.constructor;if(g!=v&&!(Te(g)&&g instanceof g&&Te(v)&&v instanceof v)&&"constructor"in e&&"constructor"in t)return!1}var y=!o;o||(o=c()),i||(i=c());for(var x=o.length;x--;)if(o[x]==e)return i[x]==t;var w=0;if(a=!0,o.push(e),i.push(t),h){if(x=e.length,w=t.length,a=w==x,a||r)for(;w--;){var _=x,b=t[w];if(r)for(;_--&&!(a=ee(e[_],b,n,r,o,i)););else if(!(a=ee(e[w],b,n,r,o,i)))break}}else sr(t,function(t,s,u){return Dn.call(u,s)?(w++,a=Dn.call(e,s)&&ee(e[s],t,n,r,o,i)):void 0}),a&&!r&&sr(e,function(e,t,n){return Dn.call(n,t)?a=--w>-1:void 0});return o.pop(),i.pop(),y&&(f(o),f(i)),a}function te(e,t,n,r,o){(Gn(t)?Ze:ur)(t,function(t,i){var a,s,u=t,l=e[i];if(t&&((s=Gn(t))||lr(t))){for(var c=r.length;c--;)if(a=r[c]==t){l=o[c];break}if(!a){var d;n&&(u=n(l,t),(d="undefined"!=typeof u)&&(l=u)),d||(l=s?Gn(l)?l:[]:lr(l)?l:{}),r.push(t),o.push(l),d||te(l,t,n,r,o)}}else n&&(u=n(l,t),"undefined"==typeof u&&(u=t)),"undefined"!=typeof u&&(l=u);e[i]=l})}function re(e,t){return e+Nn(Xn()*(t-e+1))}function oe(e,t,n){var i=-1,a=ue(),s=e?e.length:0,l=[],d=!t&&s>=_&&a===r,p=n||d?c():l;if(d){var m=u(p);a=o,p=m}for(;++i<s;){var g=e[i],v=n?n(g,i,e):g;(t?!i||p[p.length-1]!==v:a(p,v)<0)&&((n||d)&&p.push(v),l.push(g))}return d?(f(p.array),h(p)):n&&f(p),l}function ie(e){return function(n,r,o){var i={};r=t.createCallback(r,o,3);var a=-1,s=n?n.length:0;if("number"==typeof s)for(;++a<s;){var u=n[a];e(i,u,r(u,a,n),n)}else ur(n,function(t,n,o){e(i,t,r(t,n,o),o)});return i}}function ae(e,t,n,r,o,a){var s=1&t,u=2&t,l=4&t,c=16&t,d=32&t;if(!u&&!Te(e))throw new kn;c&&!n.length&&(t&=-17,c=n=!1),d&&!r.length&&(t&=-33,d=r=!1);var f=e&&e.__bindData__;if(f&&f!==!0)return f=p(f),f[2]&&(f[2]=p(f[2])),f[3]&&(f[3]=p(f[3])),!s||1&f[1]||(f[4]=o),!s&&1&f[1]&&(t|=8),!l||4&f[1]||(f[5]=a),c&&Ln.apply(f[2]||(f[2]=[]),n),d&&Rn.apply(f[3]||(f[3]=[]),r),f[1]|=t,ae.apply(null,f);var h=1==t||17===t?i:Z;return h([e,t,n,r,o,a])}function se(e){return tr[e]}function ue(){var e=(e=t.indexOf)===vt?r:e;return e}function le(e){return"function"==typeof e&&Sn.test(e)}function ce(e){var t,n;return e&&Cn.call(e)==B&&(t=e.constructor,!Te(t)||t instanceof t)?(sr(e,function(e,t){n=t}),"undefined"==typeof n||Dn.call(e,n)):!1}function de(e){return nr[e]}function fe(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Cn.call(e)==z||!1}function he(e,t,n,r){return"boolean"!=typeof t&&null!=t&&(r=n,n=t,t=!1),v(e,t,"function"==typeof n&&b(n,r,1))}function pe(e,t,n){return v(e,!0,"function"==typeof t&&b(t,n,1))}function me(e,t){var n=y(e);return t?ir(n,t):n}function ge(e,n,r){var o;return n=t.createCallback(n,r,3),ur(e,function(e,t,r){return n(e,t,r)?(o=t,!1):void 0}),o}function ve(e,n,r){var o;return n=t.createCallback(n,r,3),xe(e,function(e,t,r){return n(e,t,r)?(o=t,!1):void 0}),o}function ye(e,t,n){var r=[];sr(e,function(e,t){r.push(t,e)});var o=r.length;for(t=b(t,n,3);o--&&t(r[o--],r[o],e)!==!1;);return e}function xe(e,t,n){var r=er(e),o=r.length;for(t=b(t,n,3);o--;){var i=r[o];if(t(e[i],i,e)===!1)break}return e}function we(e){var t=[];return sr(e,function(e,n){Te(e)&&t.push(n)}),t.sort()}function _e(e,t){return e?Dn.call(e,t):!1}function be(e){for(var t=-1,n=er(e),r=n.length,o={};++t<r;){var i=n[t];o[e[i]]=i}return o}function ke(e){return e===!0||e===!1||e&&"object"==typeof e&&Cn.call(e)==P||!1}function je(e){return e&&"object"==typeof e&&Cn.call(e)==I||!1}function Me(e){return e&&1===e.nodeType||!1}function Ee(e){var t=!0;if(!e)return t;var n=Cn.call(e),r=e.length;return n==R||n==U||n==z||n==B&&"number"==typeof r&&Te(e.splice)?!r:(ur(e,function(){return t=!1}),t)}function Ce(e,t,n,r){return ee(e,t,"function"==typeof n&&b(n,r,2))}function Se(e){return $n(e)&&!Bn(parseFloat(e))}function Te(e){return"function"==typeof e}function Ae(e){return!(!e||!J[typeof e])}function Ne(e){return qe(e)&&e!=+e}function Oe(e){return null===e}function qe(e){return"number"==typeof e||e&&"object"==typeof e&&Cn.call(e)==$||!1}function De(e){return e&&"object"==typeof e&&Cn.call(e)==V||!1}function Le(e){return"string"==typeof e||e&&"object"==typeof e&&Cn.call(e)==U||!1}function Fe(e){return"undefined"==typeof e}function ze(e,n,r){var o={};return n=t.createCallback(n,r,3),ur(e,function(e,t,r){o[t]=n(e,t,r)}),o}function Re(e){var t=arguments,n=2;if(!Ae(e))return e;if("number"!=typeof t[2]&&(n=t.length),n>3&&"function"==typeof t[n-2])var r=b(t[--n-1],t[n--],2);else n>2&&"function"==typeof t[n-1]&&(r=t[--n]);for(var o=p(arguments,1,n),i=-1,a=c(),s=c();++i<n;)te(e,o[i],r,a,s);return f(a),f(s),e}function Pe(e,n,r){var o={};if("function"!=typeof n){var i=[];sr(e,function(e,t){i.push(t)}),i=G(i,Q(arguments,!0,!1,1));for(var a=-1,s=i.length;++a<s;){var u=i[a];o[u]=e[u]}}else n=t.createCallback(n,r,3),sr(e,function(e,t,r){n(e,t,r)||(o[t]=e)});return o}function Ie(e){for(var t=-1,n=er(e),r=n.length,o=pn(r);++t<r;){var i=n[t];o[t]=[i,e[i]]}return o}function He(e,n,r){var o={};if("function"!=typeof n)for(var i=-1,a=Q(arguments,!0,!1,1),s=Ae(e)?a.length:0;++i<s;){var u=a[i];u in e&&(o[u]=e[u])}else n=t.createCallback(n,r,3),sr(e,function(e,t,r){n(e,t,r)&&(o[t]=e)});return o}function $e(e,n,r,o){var i=Gn(e);if(null==r)if(i)r=[];else{var a=e&&e.constructor,s=a&&a.prototype;r=y(s)}return n&&(n=t.createCallback(n,o,4),(i?Ze:ur)(e,function(e,t,o){return n(r,e,t,o)})),r}function Be(e){for(var t=-1,n=er(e),r=n.length,o=pn(r);++t<r;)o[t]=e[n[t]];return o}function Ve(e){for(var t=arguments,n=-1,r=Q(t,!0,!1,1),o=t[2]&&t[2][t[1]]===e?1:r.length,i=pn(o);++n<o;)i[n]=e[r[n]];return i}function Ue(e,t,n){var r=-1,o=ue(),i=e?e.length:0,a=!1;return n=(0>n?Un(0,i+n):n)||0,Gn(e)?a=o(e,t,n)>-1:"number"==typeof i?a=(Le(e)?e.indexOf(t,n):o(e,t,n))>-1:ur(e,function(e){return++r>=n?!(a=e===t):void 0}),a}function We(e,n,r){var o=!0;n=t.createCallback(n,r,3);var i=-1,a=e?e.length:0;if("number"==typeof a)for(;++i<a&&(o=!!n(e[i],i,e)););else ur(e,function(e,t,r){return o=!!n(e,t,r)});return o}function Ye(e,n,r){var o=[];n=t.createCallback(n,r,3);var i=-1,a=e?e.length:0;if("number"==typeof a)for(;++i<a;){var s=e[i];n(s,i,e)&&o.push(s)}else ur(e,function(e,t,r){n(e,t,r)&&o.push(e)});return o}function Xe(e,n,r){n=t.createCallback(n,r,3);var o=-1,i=e?e.length:0;if("number"!=typeof i){var a;return ur(e,function(e,t,r){return n(e,t,r)?(a=e,!1):void 0}),a}for(;++o<i;){var s=e[o];if(n(s,o,e))return s}}function Je(e,n,r){var o;return n=t.createCallback(n,r,3),Ke(e,function(e,t,r){return n(e,t,r)?(o=e,!1):void 0}),o}function Ze(e,t,n){var r=-1,o=e?e.length:0;if(t=t&&"undefined"==typeof n?t:b(t,n,3),"number"==typeof o)for(;++r<o&&t(e[r],r,e)!==!1;);else ur(e,t);return e}function Ke(e,t,n){var r=e?e.length:0;if(t=t&&"undefined"==typeof n?t:b(t,n,3),"number"==typeof r)for(;r--&&t(e[r],r,e)!==!1;);else{var o=er(e);r=o.length,ur(e,function(e,n,i){return n=o?o[--r]:--r,t(i[n],n,i)})}return e}function Ge(e,t){var n=p(arguments,2),r=-1,o="function"==typeof t,i=e?e.length:0,a=pn("number"==typeof i?i:0);return Ze(e,function(e){a[++r]=(o?t:e[t]).apply(e,n)}),a}function Qe(e,n,r){var o=-1,i=e?e.length:0;if(n=t.createCallback(n,r,3),"number"==typeof i)for(var a=pn(i);++o<i;)a[o]=n(e[o],o,e);else a=[],ur(e,function(e,t,r){a[++o]=n(e,t,r)});return a}function et(e,n,r){var o=-(1/0),i=o;if("function"!=typeof n&&r&&r[n]===e&&(n=null),null==n&&Gn(e))for(var s=-1,u=e.length;++s<u;){var l=e[s];l>i&&(i=l)}else n=null==n&&Le(e)?a:t.createCallback(n,r,3),Ze(e,function(e,t,r){var a=n(e,t,r);a>o&&(o=a,i=e)});return i}function tt(e,n,r){var o=1/0,i=o;if("function"!=typeof n&&r&&r[n]===e&&(n=null),null==n&&Gn(e))for(var s=-1,u=e.length;++s<u;){var l=e[s];i>l&&(i=l)}else n=null==n&&Le(e)?a:t.createCallback(n,r,3),Ze(e,function(e,t,r){var a=n(e,t,r);o>a&&(o=a,i=e)});return i}function nt(e,n,r,o){if(!e)return r;var i=arguments.length<3;n=t.createCallback(n,o,4);var a=-1,s=e.length;if("number"==typeof s)for(i&&(r=e[++a]);++a<s;)r=n(r,e[a],a,e);else ur(e,function(e,t,o){r=i?(i=!1,e):n(r,e,t,o)});return r}function rt(e,n,r,o){var i=arguments.length<3;return n=t.createCallback(n,o,4),Ke(e,function(e,t,o){r=i?(i=!1,e):n(r,e,t,o)}),r}function ot(e,n,r){return n=t.createCallback(n,r,3),Ye(e,function(e,t,r){return!n(e,t,r)})}function it(e,t,n){if(e&&"number"!=typeof e.length&&(e=Be(e)),null==t||n)return e?e[re(0,e.length-1)]:g;var r=at(e);return r.length=Wn(Un(0,t),r.length),r}function at(e){var t=-1,n=e?e.length:0,r=pn("number"==typeof n?n:0);return Ze(e,function(e){var n=re(0,++t);r[t]=r[n],r[n]=e}),r}function st(e){var t=e?e.length:0;return"number"==typeof t?t:er(e).length}function ut(e,n,r){var o;n=t.createCallback(n,r,3);var i=-1,a=e?e.length:0;if("number"==typeof a)for(;++i<a&&!(o=n(e[i],i,e)););else ur(e,function(e,t,r){return!(o=n(e,t,r))});return!!o}function lt(e,n,r){var o=-1,i=Gn(n),a=e?e.length:0,u=pn("number"==typeof a?a:0);for(i||(n=t.createCallback(n,r,3)),Ze(e,function(e,t,r){var a=u[++o]=d();i?a.criteria=Qe(n,function(t){return e[t]}):(a.criteria=c())[0]=n(e,t,r),a.index=o,a.value=e}),a=u.length,u.sort(s);a--;){var l=u[a];u[a]=l.value,i||f(l.criteria),h(l)}return u}function ct(e){return e&&"number"==typeof e.length?p(e):Be(e)}function dt(e){for(var t=-1,n=e?e.length:0,r=[];++t<n;){var o=e[t];o&&r.push(o)}return r}function ft(e){return G(e,Q(arguments,!0,!0,1))}function ht(e,n,r){var o=-1,i=e?e.length:0;for(n=t.createCallback(n,r,3);++o<i;)if(n(e[o],o,e))return o;return-1}function pt(e,n,r){var o=e?e.length:0;for(n=t.createCallback(n,r,3);o--;)if(n(e[o],o,e))return o;return-1}function mt(e,n,r){var o=0,i=e?e.length:0;if("number"!=typeof n&&null!=n){var a=-1;for(n=t.createCallback(n,r,3);++a<i&&n(e[a],a,e);)o++}else if(o=n,null==o||r)return e?e[0]:g;return p(e,0,Wn(Un(0,o),i))}function gt(e,t,n,r){return"boolean"!=typeof t&&null!=t&&(r=n,n="function"!=typeof t&&r&&r[t]===e?null:t,t=!1),null!=n&&(e=Qe(e,n,r)),Q(e,t)}function vt(e,t,n){if("number"==typeof n){var o=e?e.length:0;n=0>n?Un(0,o+n):n||0}else if(n){var i=Et(e,t);return e[i]===t?i:-1}return r(e,t,n)}function yt(e,n,r){var o=0,i=e?e.length:0;if("number"!=typeof n&&null!=n){var a=i;for(n=t.createCallback(n,r,3);a--&&n(e[a],a,e);)o++}else o=null==n||r?1:n||o;return p(e,0,Wn(Un(0,i-o),i))}function xt(){for(var e=[],t=-1,n=arguments.length,i=c(),a=ue(),s=a===r,l=c();++t<n;){var d=arguments[t];(Gn(d)||fe(d))&&(e.push(d),i.push(s&&d.length>=_&&u(t?e[t]:l)))}var p=e[0],m=-1,g=p?p.length:0,v=[];e:for(;++m<g;){var y=i[0];if(d=p[m],(y?o(y,d):a(l,d))<0){for(t=n,(y||l).push(d);--t;)if(y=i[t],(y?o(y,d):a(e[t],d))<0)continue e;v.push(d)}}for(;n--;)y=i[n],y&&h(y);return f(i),f(l),v}function wt(e,n,r){var o=0,i=e?e.length:0;if("number"!=typeof n&&null!=n){var a=i;for(n=t.createCallback(n,r,3);a--&&n(e[a],a,e);)o++}else if(o=n,null==o||r)return e?e[i-1]:g;return p(e,Un(0,i-o))}function _t(e,t,n){var r=e?e.length:0;for("number"==typeof n&&(r=(0>n?Un(0,r+n):Wn(n,r-1))+1);r--;)if(e[r]===t)return r;return-1}function bt(e){for(var t=arguments,n=0,r=t.length,o=e?e.length:0;++n<r;)for(var i=-1,a=t[n];++i<o;)e[i]===a&&(zn.call(e,i--,1),o--);return e}function kt(e,t,n){e=+e||0,n="number"==typeof n?n:+n||1,null==t&&(t=e,e=0);for(var r=-1,o=Un(0,Tn((t-e)/(n||1))),i=pn(o);++r<o;)i[r]=e,e+=n;return i}function jt(e,n,r){var o=-1,i=e?e.length:0,a=[];for(n=t.createCallback(n,r,3);++o<i;){var s=e[o];n(s,o,e)&&(a.push(s),zn.call(e,o--,1),i--)}return a}function Mt(e,n,r){if("number"!=typeof n&&null!=n){var o=0,i=-1,a=e?e.length:0;for(n=t.createCallback(n,r,3);++i<a&&n(e[i],i,e);)o++}else o=null==n||r?1:Un(0,n);return p(e,o)}function Et(e,n,r,o){var i=0,a=e?e.length:i;for(r=r?t.createCallback(r,o,1):Kt,n=r(n);a>i;){var s=i+a>>>1;r(e[s])<n?i=s+1:a=s}return i}function Ct(){return oe(Q(arguments,!0,!0))}function St(e,n,r,o){return"boolean"!=typeof n&&null!=n&&(o=r,r="function"!=typeof n&&o&&o[n]===e?null:n,n=!1),null!=r&&(r=t.createCallback(r,o,3)),oe(e,n,r)}function Tt(e){return G(e,p(arguments,1))}function At(){for(var e=-1,t=arguments.length;++e<t;){var n=arguments[e];if(Gn(n)||fe(n))var r=r?oe(G(r,n).concat(G(n,r))):n}return r||[]}function Nt(){for(var e=arguments.length>1?arguments:arguments[0],t=-1,n=e?et(hr(e,"length")):0,r=pn(0>n?0:n);++t<n;)r[t]=hr(e,t);return r}function Ot(e,t){var n=-1,r=e?e.length:0,o={};for(t||!r||Gn(e[0])||(t=[]);++n<r;){var i=e[n];t?o[i]=t[n]:i&&(o[i[0]]=i[1])}return o}function qt(e,t){if(!Te(t))throw new kn;return function(){return--e<1?t.apply(this,arguments):void 0}}function Dt(e,t){return arguments.length>2?ae(e,17,p(arguments,2),null,t):ae(e,1,null,null,t)}function Lt(e){for(var t=arguments.length>1?Q(arguments,!0,!1,1):we(e),n=-1,r=t.length;++n<r;){var o=t[n];e[o]=ae(e[o],1,null,null,e)}return e}function Ft(e,t){return arguments.length>2?ae(t,19,p(arguments,2),null,e):ae(t,3,null,null,e)}function zt(){for(var e=arguments,t=e.length;t--;)if(!Te(e[t]))throw new kn;return function(){for(var t=arguments,n=e.length;n--;)t=[e[n].apply(this,t)];return t[0]}}function Rt(e,t){return t="number"==typeof t?t:+t||e.length,ae(e,4,null,null,null,t)}function Pt(e,t,n){var r,o,i,a,s,u,l,c=0,d=!1,f=!0;if(!Te(e))throw new kn;if(t=Un(0,t)||0,n===!0){var h=!0;f=!1}else Ae(n)&&(h=n.leading,d="maxWait"in n&&(Un(t,n.maxWait)||0),f="trailing"in n?n.trailing:f);var p=function(){var n=t-(mr()-a);if(0>=n){o&&An(o);var d=l;o=u=l=g,d&&(c=mr(),i=e.apply(s,r),u||o||(r=s=null))}else u=Fn(p,n)},m=function(){u&&An(u),o=u=l=g,(f||d!==t)&&(c=mr(),i=e.apply(s,r),u||o||(r=s=null))};return function(){if(r=arguments,a=mr(),s=this,l=f&&(u||!h),d===!1)var n=h&&!u;else{o||h||(c=a);var g=d-(a-c),v=0>=g;v?(o&&(o=An(o)),c=a,i=e.apply(s,r)):o||(o=Fn(m,g))}return v&&u?u=An(u):u||t===d||(u=Fn(p,t)),n&&(v=!0,i=e.apply(s,r)),!v||u||o||(r=s=null),i}}function It(e){if(!Te(e))throw new kn;var t=p(arguments,1);return Fn(function(){e.apply(g,t)},1)}function Ht(e,t){if(!Te(e))throw new kn;var n=p(arguments,2);return Fn(function(){e.apply(g,n)},t)}function $t(e,t){if(!Te(e))throw new kn;var n=function(){var r=n.cache,o=t?t.apply(this,arguments):w+arguments[0];return Dn.call(r,o)?r[o]:r[o]=e.apply(this,arguments)};return n.cache={},n}function Bt(e){var t,n;if(!Te(e))throw new kn;return function(){return t?n:(t=!0,n=e.apply(this,arguments),e=null,n)}}function Vt(e){return ae(e,16,p(arguments,1))}function Ut(e){return ae(e,32,null,p(arguments,1))}function Wt(e,t,n){var r=!0,o=!0;if(!Te(e))throw new kn;return n===!1?r=!1:Ae(n)&&(r="leading"in n?n.leading:r,o="trailing"in n?n.trailing:o),Y.leading=r,Y.maxWait=t,Y.trailing=o,Pt(e,t,Y)}function Yt(e,t){return ae(t,16,[e])}function Xt(e){return function(){return e}}function Jt(e,t,n){var r=typeof e;if(null==e||"function"==r)return b(e,t,n);if("object"!=r)return tn(e);var o=er(e),i=o[0],a=e[i];return 1!=o.length||a!==a||Ae(a)?function(t){for(var n=o.length,r=!1;n--&&(r=ee(t[o[n]],e[o[n]],null,!0)););return r}:function(e){var t=e[i];return a===t&&(0!==a||1/a==1/t)}}function Zt(e){return null==e?"":bn(e).replace(or,se)}function Kt(e){return e}function Gt(e,r,o){var i=!0,a=r&&we(r);r&&(o||a.length)||(null==o&&(o=r),s=n,r=e,e=t,a=we(r)),o===!1?i=!1:Ae(o)&&"chain"in o&&(i=o.chain);var s=e,u=Te(s);Ze(a,function(t){var n=e[t]=r[t];u&&(s.prototype[t]=function(){var t=this.__chain__,r=this.__wrapped__,o=[r];Ln.apply(o,arguments);var a=n.apply(e,o);if(i||t){if(r===a&&Ae(a))return this;a=new s(a),a.__chain__=t}return a})})}function Qt(){return e._=En,this}function en(){}function tn(e){return function(t){return t[e]}}function nn(e,t,n){var r=null==e,o=null==t;if(null==n&&("boolean"==typeof e&&o?(n=e,e=1):o||"boolean"!=typeof t||(n=t,o=!0)),r&&o&&(t=1),e=+e||0,o?(t=e,e=0):t=+t||0,n||e%1||t%1){var i=Xn();return Wn(e+i*(t-e+parseFloat("1e-"+((i+"").length-1))),t)}return re(e,t)}function rn(e,t){if(e){var n=e[t];return Te(n)?e[t]():n}}function on(e,data,n){var r=t.templateSettings;e=bn(e||""),n=ar({},n,r);var o,i=ar({},n.imports,r.imports),a=er(i),s=Be(i),u=0,c=n.interpolate||O,d="__p += '",f=_n((n.escape||O).source+"|"+c.source+"|"+(c===A?C:O).source+"|"+(n.evaluate||O).source+"|$","g");e.replace(f,function(t,n,r,i,a,s){return r||(r=i),d+=e.slice(u,s).replace(D,l),n&&(d+="' +\n__e("+n+") +\n'"),a&&(o=!0,d+="';\n"+a+";\n__p += '"),r&&(d+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),u=s+t.length,t}),d+="';\n";var h=n.variable,p=h;p||(h="obj",d="with ("+h+") {\n"+d+"\n}\n"),d=(o?d.replace(j,""):d).replace(M,"$1").replace(E,"$1;"),d="function("+h+") {\n"+(p?"":h+" || ("+h+" = {});\n")+"var __t, __p = '', __e = _.escape"+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var m="\n/*\n//# sourceURL="+(n.sourceURL||"/lodash/template/source["+F++ +"]")+"\n*/";try{var v=vn(a,"return "+d+m).apply(g,s)}catch(y){throw y.source=d,y}return data?v(data):(v.source=d,v)}function an(e,t,n){e=(e=+e)>-1?e:0;var r=-1,o=pn(e);for(t=b(t,n,1);++r<e;)o[r]=t(r);return o}function sn(e){return null==e?"":bn(e).replace(rr,de)}function un(e){var t=++x;return bn(null==e?"":e)+t}function ln(e){return e=new n(e),e.__chain__=!0,e}function cn(e,t){return t(e),e}function dn(){return this.__chain__=!0,this}function fn(){return bn(this.__wrapped__)}function hn(){return this.__wrapped__}e=e?ne.defaults(K.Object(),e,ne.pick(K,L)):K;var pn=e.Array,mn=e.Boolean,gn=e.Date,vn=e.Function,yn=e.Math,xn=e.Number,wn=e.Object,_n=e.RegExp,bn=e.String,kn=e.TypeError,jn=[],Mn=wn.prototype,En=e._,Cn=Mn.toString,Sn=_n("^"+bn(Cn).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),Tn=yn.ceil,An=e.clearTimeout,Nn=yn.floor,On=vn.prototype.toString,qn=le(qn=wn.getPrototypeOf)&&qn,Dn=Mn.hasOwnProperty,Ln=jn.push,Fn=e.setTimeout,zn=jn.splice,Rn=jn.unshift,Pn=function(){try{var e={},t=le(t=wn.defineProperty)&&t,n=t(e,e,e)&&t}catch(r){}return n}(),In=le(In=wn.create)&&In,Hn=le(Hn=pn.isArray)&&Hn,$n=e.isFinite,Bn=e.isNaN,Vn=le(Vn=wn.keys)&&Vn,Un=yn.max,Wn=yn.min,Yn=e.parseInt,Xn=yn.random,Jn={};Jn[R]=pn,Jn[P]=mn,Jn[I]=gn,Jn[H]=vn,Jn[B]=wn,Jn[$]=xn,Jn[V]=_n,Jn[U]=bn,n.prototype=t.prototype;var Zn=t.support={};Zn.funcDecomp=!le(e.WinRTError)&&q.test(m),Zn.funcNames="string"==typeof vn.name,t.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:A,variable:"",imports:{_:t}},In||(y=function(){function t(){}return function(n){if(Ae(n)){t.prototype=n;var r=new t;t.prototype=null}return r||e.Object()}}());var Kn=Pn?function(e,t){X.value=t,Pn(e,"__bindData__",X),X.value=null}:en,Gn=Hn||function(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Cn.call(e)==R||!1},Qn=function(e){var t,n=e,r=[];if(!n)return r;if(!J[typeof e])return r;for(t in n)Dn.call(n,t)&&r.push(t);return r},er=Vn?function(e){return Ae(e)?Vn(e):[]}:Qn,tr={"&":"&","<":"<",">":">",'"':""","'":"'"},nr=be(tr),rr=_n("("+er(nr).join("|")+")","g"),or=_n("["+er(tr).join("")+"]","g"),ir=function(e,t,n){var r,o=e,i=o;if(!o)return i;var a=arguments,s=0,u="number"==typeof n?2:a.length;if(u>3&&"function"==typeof a[u-2])var l=b(a[--u-1],a[u--],2);else u>2&&"function"==typeof a[u-1]&&(l=a[--u]);for(;++s<u;)if(o=a[s],o&&J[typeof o])for(var c=-1,d=J[typeof o]&&er(o),f=d?d.length:0;++c<f;)r=d[c],i[r]=l?l(i[r],o[r]):o[r];return i},ar=function(e,t,n){var r,o=e,i=o;if(!o)return i;for(var a=arguments,s=0,u="number"==typeof n?2:a.length;++s<u;)if(o=a[s],o&&J[typeof o])for(var l=-1,c=J[typeof o]&&er(o),d=c?c.length:0;++l<d;)r=c[l],"undefined"==typeof i[r]&&(i[r]=o[r]);return i},sr=function(e,t,n){var r,o=e,i=o;if(!o)return i;if(!J[typeof o])return i;t=t&&"undefined"==typeof n?t:b(t,n,3);for(r in o)if(t(o[r],r,e)===!1)return i;return i},ur=function(e,t,n){var r,o=e,i=o;if(!o)return i;if(!J[typeof o])return i;t=t&&"undefined"==typeof n?t:b(t,n,3);for(var a=-1,s=J[typeof o]&&er(o),u=s?s.length:0;++a<u;)if(r=s[a],t(o[r],r,e)===!1)return i;return i},lr=qn?function(e){if(!e||Cn.call(e)!=B)return!1;var t=e.valueOf,n=le(t)&&(n=qn(t))&&qn(n);return n?e==n||qn(e)==n:ce(e)}:ce,cr=ie(function(e,t,n){Dn.call(e,n)?e[n]++:e[n]=1}),dr=ie(function(e,t,n){(Dn.call(e,n)?e[n]:e[n]=[]).push(t)}),fr=ie(function(e,t,n){e[n]=t}),hr=Qe,pr=Ye,mr=le(mr=gn.now)&&mr||function(){return(new gn).getTime()},gr=8==Yn(k+"08")?Yn:function(e,t){return Yn(Le(e)?e.replace(N,""):e,t||0)};return t.after=qt,t.assign=ir,t.at=Ve,t.bind=Dt,t.bindAll=Lt,t.bindKey=Ft,t.chain=ln,t.compact=dt,t.compose=zt,t.constant=Xt,t.countBy=cr,t.create=me,t.createCallback=Jt,t.curry=Rt,t.debounce=Pt,t.defaults=ar,t.defer=It,t.delay=Ht,t.difference=ft,t.filter=Ye,t.flatten=gt,t.forEach=Ze,t.forEachRight=Ke,t.forIn=sr,t.forInRight=ye,t.forOwn=ur,t.forOwnRight=xe,t.functions=we,t.groupBy=dr,t.indexBy=fr,t.initial=yt,t.intersection=xt,t.invert=be,t.invoke=Ge,t.keys=er,t.map=Qe,t.mapValues=ze,t.max=et,t.memoize=$t,t.merge=Re,t.min=tt,t.omit=Pe,t.once=Bt,t.pairs=Ie,t.partial=Vt,t.partialRight=Ut,t.pick=He,t.pluck=hr,t.property=tn,t.pull=bt,t.range=kt,t.reject=ot,t.remove=jt,t.rest=Mt,t.shuffle=at,t.sortBy=lt,t.tap=cn,t.throttle=Wt,t.times=an, -t.toArray=ct,t.transform=$e,t.union=Ct,t.uniq=St,t.values=Be,t.where=pr,t.without=Tt,t.wrap=Yt,t.xor=At,t.zip=Nt,t.zipObject=Ot,t.collect=Qe,t.drop=Mt,t.each=Ze,t.eachRight=Ke,t.extend=ir,t.methods=we,t.object=Ot,t.select=Ye,t.tail=Mt,t.unique=St,t.unzip=Nt,Gt(t),t.clone=he,t.cloneDeep=pe,t.contains=Ue,t.escape=Zt,t.every=We,t.find=Xe,t.findIndex=ht,t.findKey=ge,t.findLast=Je,t.findLastIndex=pt,t.findLastKey=ve,t.has=_e,t.identity=Kt,t.indexOf=vt,t.isArguments=fe,t.isArray=Gn,t.isBoolean=ke,t.isDate=je,t.isElement=Me,t.isEmpty=Ee,t.isEqual=Ce,t.isFinite=Se,t.isFunction=Te,t.isNaN=Ne,t.isNull=Oe,t.isNumber=qe,t.isObject=Ae,t.isPlainObject=lr,t.isRegExp=De,t.isString=Le,t.isUndefined=Fe,t.lastIndexOf=_t,t.mixin=Gt,t.noConflict=Qt,t.noop=en,t.now=mr,t.parseInt=gr,t.random=nn,t.reduce=nt,t.reduceRight=rt,t.result=rn,t.runInContext=m,t.size=st,t.some=ut,t.sortedIndex=Et,t.template=on,t.unescape=sn,t.uniqueId=un,t.all=We,t.any=ut,t.detect=Xe,t.findWhere=Xe,t.foldl=nt,t.foldr=rt,t.include=Ue,t.inject=nt,Gt(function(){var e={};return ur(t,function(n,r){t.prototype[r]||(e[r]=n)}),e}(),!1),t.first=mt,t.last=wt,t.sample=it,t.take=mt,t.head=mt,ur(t,function(e,r){var o="sample"!==r;t.prototype[r]||(t.prototype[r]=function(t,r){var i=this.__chain__,a=e(this.__wrapped__,t,r);return i||null!=t&&(!r||o&&"function"==typeof t)?new n(a,i):a})}),t.VERSION="2.4.2",t.prototype.chain=dn,t.prototype.toString=fn,t.prototype.value=hn,t.prototype.valueOf=hn,Ze(["join","pop","shift"],function(e){var r=jn[e];t.prototype[e]=function(){var e=this.__chain__,t=r.apply(this.__wrapped__,arguments);return e?new n(t,e):t}}),Ze(["push","reverse","sort","unshift"],function(e){var n=jn[e];t.prototype[e]=function(){return n.apply(this.__wrapped__,arguments),this}}),Ze(["concat","slice","splice"],function(e){var r=jn[e];t.prototype[e]=function(){return new n(r.apply(this.__wrapped__,arguments),this.__chain__)}}),t}var g,v=[],y=[],x=0,w=+new Date+"",_=75,b=40,k=" \x0B\f \ufeff\n\r\u2028\u2029 ",j=/\b__p \+= '';/g,M=/\b(__p \+=) '' \+/g,E=/(__e\(.*?\)|\b__t\)) \+\n'';/g,C=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,S=/\w*$/,T=/^\s*function[ \n\r\t]+\w/,A=/<%=([\s\S]+?)%>/g,N=RegExp("^["+k+"]*0+(?=.$)"),O=/($^)/,q=/\bthis\b/,D=/['\n\r\t\u2028\u2029\\]/g,L=["Array","Boolean","Date","Function","Math","Number","Object","RegExp","String","_","attachEvent","clearTimeout","isFinite","isNaN","parseInt","setTimeout"],F=0,z="[object Arguments]",R="[object Array]",P="[object Boolean]",I="[object Date]",H="[object Function]",$="[object Number]",B="[object Object]",V="[object RegExp]",U="[object String]",W={};W[H]=!1,W[z]=W[R]=W[P]=W[I]=W[$]=W[B]=W[V]=W[U]=!0;var Y={leading:!1,maxWait:0,trailing:!1},X={configurable:!1,enumerable:!1,value:null,writable:!1},J={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},Z={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"},K=J[typeof window]&&window||this,G=J[typeof n]&&n&&!n.nodeType&&n,Q=J[typeof t]&&t&&!t.nodeType&&t,ee=Q&&Q.exports===G&&G,te=J[typeof e]&&e;!te||te.global!==te&&te.window!==te||(K=te);var ne=m();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(K._=ne,define(function(){return ne})):G&&Q?ee?(Q.exports=ne)._=ne:G._=ne:K._=ne}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],286:[function(e,t,n){var r=e("ampersand-view"),o=e("./sidebar"),i=e("./chart"),a=e("jquery");e("debug")("view:app"),t.exports=r.extend({template:e("./templates/app.jade"),props:{chartView:"object",menuOpen:{type:"boolean","default":!1}},events:{"click .navbar-right label":"navButtonClicked","click [data-hook=menu-toggle]":"menuToggled"},bindings:{"model.chart.subSampled":{type:"toggle",hook:"sample-warning"},menuOpen:{type:"booleanClass",selector:"#wrapper",name:"active"}},subviews:{sidebar:{hook:"sidebar",waitFor:"model.sidebar",prepareView:function(e){return new o({el:e,model:this.model.sidebar})}},chart:{hook:"chart",waitFor:"model.chart",prepareView:function(e){return this.chartView=new i({el:e,model:this.model.chart}),this.chartView}}},statChanged:function(e,t){this.model.chart.recalcXDomain=!0,this.chartView.render()},render:function(){this.renderWithTemplate(this.model)},navButtonClicked:function(e){var t=a(e.target).find("input"),n=t.attr("name"),r=t.val();this.model.chart[n]=r,this.model.chart.recalcXDomain="xSetting"===n,this.chartView.render()},menuToggled:function(e){this.toggle("menuOpen")}})},{"./chart":287,"./sidebar":290,"./templates/app.jade":292,"ampersand-view":157,debug:280,jquery:284}],287:[function(e,t,n){var r=e("ampersand-view"),o=e("./viz"),i=e("./empty");e("d3"),e("jquery"),e("debug")("view:chart"),t.exports=r.extend({props:{vizView:{type:"any","default":null},emptyView:{type:"any","default":null},activeView:{type:"string","default":"empty",values:["empty","viz"]}},template:e("./templates/chart.jade"),bindings:{activeView:{type:"switch",cases:{empty:"[data-hook=empty]",viz:"[data-hook=graph]"}}},render:function(){this.activeView=this.model.empty?"empty":"viz",this.vizView?(this.vizView.data={series:this.model.series.filter(function(e){return e.selected}),model:this.model},this.vizView.redraw()):(this.renderWithTemplate(this.model),this.vizView=new o({width:"auto",height:600,renderMode:"svg",className:"multiline",debounceRender:!1,vizFn:e("./viz/d3-multiline"),data:{series:this.model.series.filter(function(e){return e.selected}),model:this.model}}),this.emptyView=new i,this.renderSubview(this.emptyView,"[data-hook=empty]"),this.renderSubview(this.vizView,"[data-hook=graph]"))}})},{"./empty":288,"./templates/chart.jade":293,"./viz":298,"./viz/d3-multiline":299,"ampersand-view":157,d3:279,debug:280,jquery:284}],288:[function(e,t,n){var r=e("ampersand-view");e("debug")("view:empty"),t.exports=r.extend({template:e("./templates/empty.jade"),autorender:!0})},{"./templates/empty.jade":294,"ampersand-view":157,debug:280}],289:[function(e,t,n){var r=e("ampersand-view"),o=e("ampersand-subcollection"),i=e("./stat"),a=e("jquery");e("lodash"),e("debug")("view:panel"),t.exports=r.extend({props:{indicator:{type:"string","default":"none",values:["none","some","all"]},statViews:"object",filteredStats:"object"},template:e("./templates/panel.jade"),events:{"click a":"collapsibleToggle","click [data-hook=caret]":"collapsibleToggle","click [data-hook=indicator]":"indicatorClicked"},bindings:{indicator:{type:function(e,t,n){switch($el=a(e),$el.removeClass(),this.model.selected){case"all":$el.addClass("fa fa-circle");break;case"some":$el.addClass("fa fa-adjust");break;case"none":$el.addClass("fa fa-circle-o")}},hook:"indicator"},"model.open":{type:"booleanClass",hook:"caret",yes:"fa-caret-up",no:"fa-caret-down"}},initialize:function(){this.filteredStats=new o(this.model.stats,{comparator:function(e){return e.name}})},render:function(){this.renderWithTemplate(this.model),this.statViews=this.renderCollection(this.filteredStats,i,this.queryByHook("stats"))},indicatorClicked:function(e){var t="all"!==this.model.selected;switch(this.filteredStats.each(function(e){e.selected=t}),this.model.selected){case"all":case"some":this.collapsibleOpen();break;case"none":this.collapsibleClose()}this.model.app.clearSelectionState(),this.statChanged(null,{propagate:!0})},statChanged:function(e,t){t=t||{},this.indicator=this.model.selected,t.propagate&&this.parent.parent.statChanged(e,t)},collapsibleToggle:function(e){this.model.open?this.collapsibleClose(e):this.collapsibleOpen(e)},collapsibleClose:function(e){a(this.query(".collapse")).collapse("hide"),this.model.open=!1},collapsibleOpen:function(e){a(this.query(".collapse")).collapse("show"),this.model.open=!0},resetStats:function(){this.filteredStats.configure({},!0)},filterStats:function(e){this.filteredStats.configure({filter:function(t){return-1!==t.name.search(new RegExp(e),"gi")}},!0),0===this.filteredStats.length?this.collapsibleClose():this.collapsibleOpen()}})},{"./stat":291,"./templates/panel.jade":295,"ampersand-subcollection":141,"ampersand-view":157,debug:280,jquery:284,lodash:285}],290:[function(e,t,n){var r=e("ampersand-view"),o=e("./panel"),i=e("lodash");e("debug")("view:sidebar"),t.exports=r.extend({props:{panelViews:"object"},template:e("./templates/sidebar.jade"),events:{"click [data-hook=button]":"clearClicked","input [data-hook=input]":"inputChanged"},bindings:{"model.search.content":{type:"value",hook:"input"}},render:function(){this.renderWithTemplate(this.model),this.panelViews=this.renderCollection(this.model.panels,o,this.queryByHook("panels"))},closeAndReset:function(){i.each(this.panelViews.views,function(e){e.collapsibleClose(),e.resetStats()})},clearClicked:function(){this.model.search.content="",this.closeAndReset(),this.queryByHook("button").blur()},filterPanels:function(e){i.each(this.panelViews.views,function(t){t.filterStats(e)})},statChanged:function(e,t){this.parent.statChanged(e,t),t.all&&i.each(this.panelViews.views,function(t){t.statChanged(e,{all:!1,propagate:!1})})},inputChanged:i.debounce(function(){var e=this.queryByHook("input").value;this.model.search.content=e,""===e.trim()?this.closeAndReset():this.filterPanels(e)},200,{leading:!1,trailing:!0})})},{"./panel":289,"./templates/sidebar.jade":296,"ampersand-view":157,debug:280,lodash:285}],291:[function(e,t,n){var r=e("ampersand-view");e("debug")("view:stat"),t.exports=r.extend({template:e("./templates/stat.jade"),render:function(){this.renderWithTemplate(this.model)},events:{click:"clicked"},bindings:{"model.selected":{type:"booleanClass",hook:"circle",yes:"fa-circle",no:"fa-circle-o"}},clicked:function(e){e.shiftKey?this.model.app.toggleAllExcept(this.model):(this.model.app.clearSelectionState(),this.model.toggle("selected")),this.parent.parent.statChanged(this,{all:e.shiftKey,propagate:!0})}})},{"./templates/stat.jade":297,"ampersand-view":157,debug:280}],292:[function(e,t,n){e("jade/runtime");t.exports=function(e){var t=[];return t.push('<div id="app"><nav id="navbar" role="navigation" class="navbar navbar-default"><div class="container-fluid"><div class="navbar-header"><div class="navbar-brand"> <div data-hook="menu-toggle" class="brand-image"></div></div></div><ul class="nav navbar-right"><li data-hook="sample-warning" class="navbar-text"><div title="warning: more series data points than pixels. data is being sub-sampled to improve performance. To avoid sub-sampling, increase the browser window width or zoom in." class="alert alert-warning"><i id="menubtn" class="fa fa-warning"></i><span>sub-sampling</span></div></li><li class="navbar-text"><i id="menubtn" class="fa fa-clock-o"></i><span>x-axis</span><div data-toggle="buttons" data-hook="xSetting" class="btn-group"><label class="btn btn-default active"><input type="radio" name="xSetting" id="relative" value="relative" checked="checked"/>relative</label><label class="btn btn-default"><input type="radio" name="xSetting" id="absolute" value="absolute"/>absolute</label></div></li><li class="navbar-text"><i id="menubtn" class="fa fa-line-chart"></i><span>y-axis</span><div data-toggle="buttons" data-hook="ySetting" class="btn-group"><label class="btn btn-default active"><input type="radio" name="ySetting" value="linear" checked="checked"/>linear</label><label class="btn btn-default"><input type="radio" name="ySetting" value="log-scale"/>log-scale</label></div></li></ul></div></nav><div id="wrapper"><div id="sidebar-wrapper"><div class="sidebar-nav"><div data-hook="sidebar"></div></div></div><div class="container-fluid"><div class="row"><div class="col-md-12"><div data-hook="chart"></div></div></div></div></div></div>'),t.join("")}},{"jade/runtime":283}],293:[function(e,t,n){e("jade/runtime");t.exports=function(e){var t=[];return t.push('<div><div class="container-fluid"><div class="row"><div class="col-md-12"><div data-hook="empty"></div><div data-hook="graph"></div></div></div></div></div>'),t.join("")}},{"jade/runtime":283}],294:[function(e,t,n){e("jade/runtime");t.exports=function(e){var t=[];return t.push('<div class="instructions"><dl class="dl-horizontal"><dt><h1><span class="searchbox">mem| </span><i class="fa fa-search"></i></h1></dt><dd>filter stats by typing in the text box</dd><dt><h1> <u>cursor</u><i class="fa fa-caret-down"></i></h1></dt><dd>open/close group panels</dd><dt><h1><i class="fa fa-circle-o"></i><i class="fa fa-adjust"> </i><i class="fa fa-circle"> </i></h1></dt><dd>click to toggle individual stats or the entire group</dd><dt><h1><i class="fa fa-expand"></i><i class="fa fa-arrows-h"> </i><i class="fa fa-compress"> </i></h1></dt><dd>zoom with two-finger scroll or mouse wheel, pan with click+drag</dd><dt><h1>x<i class="fa fa-clock-o"></i>y<i class="fa fa-line-chart"> </i></h1></dt><dd>change x/y axis scaling with buttons at the top</dd></dl></div>'),t.join("")}},{"jade/runtime":283}],295:[function(e,t,n){var r=e("jade/runtime");t.exports=function(e){var t,n=[],o=e||{};return function(e,o){n.push('<div class="panel panel-default"><div class="panel-heading">'),o&&n.push('<span class="suptitle">'+r.escape(null==(t=o)?"":t)+"</span>"),n.push('<h4 class="panel-title"><i data-hook="indicator" class="fa fa-circle-o"></i><a data-toggle="collapse" data-parent="#panel-accordion">'+r.escape(null==(t=e)?"":t)+'</a><div class="pull-right"><i data-hook="caret" class="fa"></i></div></h4></div><div class="panel-collapse collapse"><div class="panel-body"><ul data-hook="stats" class="stats"></ul></div></div></div>')}.call(this,"subtitle"in o?o.subtitle:"undefined"!=typeof subtitle?subtitle:void 0,"suptitle"in o?o.suptitle:"undefined"!=typeof suptitle?suptitle:void 0),n.join("")}},{"jade/runtime":283}],296:[function(e,t,n){e("jade/runtime");t.exports=function(e){var t=[];return t.push('<ul class="sidebar-nav"><li><div class="input-group"><input data-hook="input" type="text" class="form-control"/><span class="input-group-btn"><button data-hook="button" type="button" class="btn btn-default">Clear</button></span></div></li><li><div data-hook="panels" id="panel-accordion" class="panel-group"></div></li></ul>'),t.join("")}},{"jade/runtime":283}],297:[function(e,t,n){var r=e("jade/runtime");t.exports=function(e){var t,n=[],o=e||{};return function(e,o){n.push('<li class="stat"><i data-hook="circle"'+r.attr("style","color:"+e,!0,!1)+' class="fa fa-circle"></i>'+r.escape(null==(t=o)?"":t)+"</li>")}.call(this,"color"in o?o.color:"undefined"!=typeof color?color:void 0,"name"in o?o.name:"undefined"!=typeof name?name:void 0),n.join("")}},{"jade/runtime":283}],298:[function(e,t,n){var r=e("ampersand-view"),o=e("lodash"),i=e("jquery");e("debug")("view:viz");t.exports=r.extend({_values:{},_autoWidth:!1,_autoHeight:!1,props:{data:"any",className:"any",vizFn:"any",debounceRender:{type:"boolean","default":!0},renderMode:{type:"string",values:["canvas","svg","html"],"default":"svg"},width:{type:"any","default":"auto"},height:{type:"any","default":400}},bindings:{width:[{type:"attribute",name:"width",hook:"viz-container"}],height:{type:"attribute",name:"height",hook:"viz-container"},className:{type:"attribute",name:"class",hook:"viz-container"}},initialize:function(e){switch(("auto"===this.width||void 0===this.width)&&(this._autoWidth=!0,this.width=0),("auto"===this.height||void 0===this.height)&&(this._autoHeight=!0,this.height=0),(this._autoWidth||this._autoHeight)&&(this.debounceRender?window.addEventListener("resize",o.debounce(this.redraw.bind(this),100)):window.addEventListener("resize",this.redraw.bind(this))),this.renderMode){case"canvas":this.template='<canvas data-hook="viz-container" id="canvas"></canvas>';break;case"svg":this.template='<svg data-hook="viz-container"></svg>';break;case"html":this.template='<div data-hook="viz-container"></div>'}},_measure:function(){this.el&&(this._autoWidth&&(this.width=i(this.el).parent().width()),this._autoHeight&&(this.height=i(this.el).parent().height()))},_chooseDataSource:function(){void 0!==this.model?this.data=this.model.toJSON():void 0!==this.collection&&(this.data=this.collection.toJSON())},remove:function(){return window.removeEventListener("resize",this._onResize),this},transform:function(data){return data},render:function(){return this._chooseDataSource(),this.data=this.transform(this.data),this.renderWithTemplate(this),this._measure(),this.vizFn&&(this.vizFn=this.vizFn({width:this.width,height:this.height,data:this.data,el:this.el})),this},redraw:function(){this._chooseDataSource(),this.data=this.transform(this.data),this._measure(),this.vizFn&&this.vizFn({width:this.width,height:this.height,data:this.data,el:this.el})}}),t.exports.create=function(e,n){return t.exports.extend({className:e,vizFn:n})}},{"ampersand-view":157,debug:280,jquery:284,lodash:285}],299:[function(e,t,n){var r=e("d3"),o=e("lodash");e("debug")("viz:d3-multiline");r.selection.prototype.moveToFront=function(){return this.each(function(){this.parentNode.appendChild(this)})},t.exports=function(e){function t(t){if(t){if(e=t,d=e.width-c.left-c.right,f=e.height-c.top-c.bottom,data=e.data,p=data.model,m=p.serialize(),F=data.series,0===F.length?S.style("visibility","hidden"):S.style("visibility","visible"),S.attr({width:d,height:f}),"relative"===m.xSetting?(g=function(e){return e.xrel},w=y,_.tickFormat(r.format(","))):(g=function(e){return e.x},w=v,_.tickFormat(x)),w.range([0,d]),(o.isEqual(w.domain(),[0,1])||o.isEqual(w.domain(),[new Date(0),new Date(1)])||m.recalcXDomain)&&(z=[r.min(F,function(e){return r.min(e.data,function(e){return g(e)})}),r.max(F,function(e){return r.max(e.data,function(e){return g(e)})})],w.domain(z),C.x(w)),F.length>0){var n=o.find(F,function(e){return e.data.length>1}).data;L=n?w(g(n[1]))-w(g(n[0])):1}else L=1;p.subSampled=m.allowSampling&&1>L,"linear"===m.ySetting?(j=b,j.domain([r.min(F,function(e){return r.min(e.data,function(e){return e.y})}),r.max(F,function(e){return r.max(e.data,function(e){return e.y})})])):(j=k,j.domain([.1,r.max(F,function(e){return r.max(e.data,function(e){return e.y})})])),j.range([f,0])}S.selectAll(".x").call(_.scale(w)),S.selectAll(".y").call(M.scale(j)),q=S.selectAll(".serie").data(F,function(e){return e.cid}),q.enter().append("g").attr("class","serie").append("path").attr("class","line").style("stroke",function(e){return e.color}),q.exit().remove(),q.selectAll(".line").attr("d",function(e){return E(g)(i(e.data))}),L>6?(D=q.selectAll(".point").data(function(e){return i(e.data).map(function(t){return{x:g(t),y:t.y,c:e.color}})}),D.enter().append("circle").attr("class","point").attr("r","3px").style("fill",function(e){return e.c}),D.exit().remove(),D.attr("cx",function(e){return w(e.x)}).attr("cy",function(e){return j(e.y)})):q.selectAll(".point").remove(),T.attr("x2",d),A.attr("y2",f+20),R.attr("width",d).attr("height",f).moveToFront()}function n(data){var e=w.domain(),t=u(g)(data,e[0]),n=u(g)(data,e[1]);return data.slice(t,n)}function i(data){data=n(data);var e=1/L;return m.allowSampling&&e>1?data.filter(function(t,n){return n%Math.ceil(e)===0}):data}function a(e,t){var n=i(t.data),r=w.invert(e),o=u(g)(n,r),a=n[o-1],s=n[o];return void 0===a?s:void 0===s?a:r-g(a)>g(s)-r?s:a}function s(){var e=r.mouse(this),t=e[0],n=e[1],o=F.map(function(e){return a(t,e)}),i=o.map(function(e){return e?Math.pow(t-w(g(e)),2)+Math.pow(n-j(e.y),2):1/0}),s=i.indexOf(Math.min.apply(Math,i)),u=F[s],l=o[s];N.attr("transform","translate("+w(g(l))+","+j(l.y)+")").moveToFront(),N.select("circle").attr("stroke",u.color),N.select("text.name").text(u.name),N.select("text.value").text(r.format(",")(l.y)),O.attr("transform","translate("+w(g(l))+","+(f+34)+")").text("relative"===m.xSetting?r.format(",")(g(l)):r.time.format("%b %d %H:%M:%S")(g(l))).moveToFront(),T.attr("y1",j(l.y)).attr("y2",j(l.y)),A.attr("x1",w(g(l))).attr("x2",w(g(l)))}function u(e){return r.bisector(function(t){return e(t)}).left}function l(){p.recalcXDomain=!1,t(e)}var c={top:80,right:20,bottom:60,left:100},d=e.width-c.left-c.right,f=e.height-c.top-c.bottom,data=e.data,h=e.el,p=data.model,m=p.serialize(),g=function(e){return e.x},v=r.time.scale(),y=r.scale.linear(),x=r.time.format.multi([[".%L",function(e){return e.getMilliseconds()}],[":%S",function(e){return e.getSeconds()}],["%b %e %H:%M",function(e){return e.getMinutes()}],["%b %e %H:%M",function(e){return e.getHours()}],["%b %e",function(e){return e.getDay()&&1!=e.getDate()}],["%b %e",function(e){return 1!=e.getDate()}],["%Y",function(e){return e.getMonth()}],["%Y",function(){return!0}]]),w="relative"===m.xSetting?y:v,_=r.svg.axis().scale(w).ticks(10).orient("bottom"),b=r.scale.linear().range([f,0]),k=r.scale.log().clamp(!0).range([f,0]).nice(),j="linear"===m.ySetting?b:k,M=r.svg.axis().scale(j).orient("left"),E=function(e){return r.svg.line().x(function(t){return w(e(t))}).y(function(e){return j(e.y)})},C=r.behavior.zoom().scaleExtent([1,50]).x(w).on("zoom",l),S=r.select(h).append("g").attr("transform","translate("+c.left+","+c.top+")").call(C);S.append("g").attr("class","x axis").attr("transform","translate(0,"+f+")"),S.append("g").attr("class","y axis");var T=S.append("line").style("stroke","#ddd").style("display","none").attr("class","x cross").attr("x1",0),A=S.append("line").style("stroke","#ddd").style("display","none").attr("class","x cross").attr("y1",0),N=S.append("g").attr("class","focus").style("display","none");N.append("circle").attr("r",6).attr("fill","none").attr("stroke-width",2);var O=S.append("text").attr("text-anchor","middle").attr("class","xlabel").attr("font-size","0.8em").attr("fill","#bbb");N.append("text").attr("class","name").attr("fill","black").attr("x",9).attr("dy","-.8em"),N.append("text").attr("class","value").attr("fill","black").attr("font-size","20px").attr("x",8).attr("dy","-1.2em");var q,D,L,F,z,R=S.append("rect").attr("class","windshield").style("opacity",0).on("mouseover",function(){T.style("display",null),A.style("display",null),N.style("display",null),O.style("display",null)}).on("mouseout",function(){N.style("display","none"),T.style("display","none"),A.style("display","none"),O.style("display","none")}).on("mousemove",s);return t}},{d3:279,debug:280,lodash:285}]},{},[1]); +!function t(e,n,r){function i(a,u){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!u&&s)return s(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};e[a][0].call(c.exports,function(t){var n=e[a][1][t];return i(n?n:t)},c,c.exports,t,e,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(t,e,n){var r=(window.$=window.jQuery=t("jquery"),t("../views/app")),i=t("../models/app");t("debug")("index");t("bootstrap/js/dropdown"),t("bootstrap/js/collapse"),t("bootstrap/js/transition"),t("bootstrap/js/button");var data="### INSERT DATA HERE ###",o=window.app=new i(data,{parse:!0}),a=document.getElementById("app"),u=new r({model:o,el:a});u.render()},{"../models/app":2,"../views/app":109,"bootstrap/js/button":23,"bootstrap/js/collapse":24,"bootstrap/js/dropdown":25,"bootstrap/js/transition":26,debug:33,jquery:40}],2:[function(t,e,n){var r=t("ampersand-state"),i=t("./chart"),o=t("./stat-collection"),a=t("./sidebar"),u=t("lodash"),s=t("debug")("model:app");e.exports=r.extend({children:{sidebar:a,chart:i},collections:{stats:o},props:{selectionState:{type:"array","default":function(){return[]}}},parse:function(t,e){var n=(new Date).getFullYear(),r={},i=u.map(t.series,function(t){if(t.key.indexOf(":")!==-1)var e=t.key.split(":"),i=e[0].trim(),o=e[1].trim();else var i="stats",o=t.key;var data=u.sortBy(u.map(t.values,function(t,e){var r=e.split(" ");r.splice(2,0,n.toString());var i=r.join(" ");return{x:new Date(i),y:t}}),"x"),a=Math.min.apply(null,data.map(function(t){return t.x}));return data.forEach(function(t){t.xrel=(t.x-a)/1e3}),r[i]=!0,{group:i,name:o,data:data}});r=u.keys(r).map(function(t){return{title:t}});var o={stats:i,sidebar:{panels:r}};return o},initialize:function(t,e){var n=this.sidebar.panels;n.each(function(t){t.app=this}.bind(this)),this.stats.each(function(t){t.app=this,n.get(t.group).stats.add(t)}.bind(this))},clearSelectionState:function(){this.selectionState=[],s("clear")},toggleAllExcept:function(t){this.stats.filter(function(e){return e!==t}).some(function(t){return t.selected});0!==this.selectionState.length&&t.selected?(this.stats.each(function(t,e){t.selected=!this.selectionState.length||this.selectionState[e]}.bind(this)),this.clearSelectionState()):(this.selectionState=this.stats.map(function(t){return t.selected}),this.stats.each(function(e){e.selected=e===t}))}})},{"./chart":3,"./sidebar":7,"./stat-collection":8,"ampersand-state":17,debug:33,lodash:105}],3:[function(t,e,n){var r=t("ampersand-state"),i=t("lodash");t("debug")("model:chart"),e.exports=r.extend({props:{xSetting:{type:"string","default":"relative",values:["relative","absolute"]},ySetting:{type:"string","default":"linear",values:["linear","log-scale"]},allowSampling:{type:"boolean","default":!0},subSampled:{type:"boolean","default":!1},recalcXDomain:{type:"boolean","default":!0}},derived:{series:{deps:["parent"],cache:!1,fn:function(){var t=this.parent.stats.filter(function(t){return t.selected}).map(function(t){return i.pick(t,["color","data","name","cid","selected"])});return t}},empty:{deps:["parent","series"],cache:!1,fn:function(){return 0===this.series.length}}}})},{"ampersand-state":17,debug:33,lodash:105}],4:[function(t,e,n){var r=t("d3");e.exports=function(){function t(){var t=r.scale.category20();return t}var e;return{getInstance:function(){return e||(e=t()),e}}}()},{d3:32}],5:[function(t,e,n){var r=t("ampersand-state"),i=t("./stat-collection");t("debug")("model:panel"),e.exports=r.extend({collections:{stats:i},props:{title:{type:"string",required:!0},open:{type:"boolean","default":!1},app:{type:"object"}},derived:{selected:{deps:["stats"],cache:!1,fn:function(){var t=this.stats.filter(function(t){return t.selected});return t.length===this.stats.length?"all":0===t.length?"none":"some"}},suptitle:{deps:["title"],cache:!1,fn:function(){var t=this.title.split(" ");return t.length>1?t[0]:""}},subtitle:{deps:["title"],fn:function(){var t=this.title.split(" ");return t.length>1?t[1]:this.title}}}})},{"./stat-collection":8,"ampersand-state":17,debug:33}],6:[function(t,e,n){var r=t("ampersand-state");t("debug")("model:search"),e.exports=r.extend({props:{content:{type:"string","default":""}},derived:{empty:{deps:["content"],fn:function(){return""===this.content}}}})},{"ampersand-state":17,debug:33}],7:[function(t,e,n){var r=t("ampersand-state"),i=t("ampersand-collection"),o=t("./search"),a=t("./panel"),u=(t("lodash"),t("debug")("model:sidebar"),i.extend({mainIndex:"title",model:a}));e.exports=r.extend({children:{search:o},collections:{panels:u}})},{"./panel":5,"./search":6,"ampersand-collection":13,"ampersand-state":17,debug:33,lodash:105}],8:[function(t,e,n){var r=t("ampersand-collection"),i=t("ampersand-collection-underscore-mixin"),o=t("./stat");e.exports=r.extend(i,{comparator:"name",model:o})},{"./stat":9,"ampersand-collection":13,"ampersand-collection-underscore-mixin":11}],9:[function(t,e,n){var r=t("ampersand-state"),i=t("./colors").getInstance();t("debug")("model:stat"),e.exports=r.extend({props:{name:{type:"string","default":""},group:{type:"string","default":""},selected:{type:"boolean","default":!1},data:{type:"object"},app:{type:"object"}},derived:{color:{cache:!0,fn:function(){return i(this.cid)}}}})},{"./colors":4,"ampersand-state":17,debug:33}],10:[function(t,e,n){var r=t("lodash.assign"),i=function(t){var e,n=this,i=[].slice.call(arguments);e=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return n.apply(this,arguments)},r(e,n);var o=function(){this.constructor=e};return o.prototype=n.prototype,e.prototype=new o,t&&(i.unshift(e.prototype),r.apply(null,i)),e.__super__=n.prototype,e};e.exports=i},{"lodash.assign":72}],11:[function(t,e,n){"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-collection-underscore-mixin"]=window.ampersand["ampersand-collection-underscore-mixin"]||[],window.ampersand["ampersand-collection-underscore-mixin"].push("1.0.4"));var r=t("underscore"),i=[].slice,o={},a=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample","partition"];r.each(a,function(t){r[t]&&(o[t]=function(){var e=i.call(arguments);return e.unshift(this.models),r[t].apply(r,e)})});var u=["groupBy","countBy","sortBy","indexBy"];r.each(u,function(t){r[t]&&(o[t]=function(e,n){var i=r.isFunction(e)?e:function(t){return t.get?t.get(e):t[e]};return r[t](this.models,i,n)})}),o.where=function(t,e){return r.isEmpty(t)?e?void 0:[]:this[e?"find":"filter"](function(e){var n;for(var r in t)if(n=e.get?e.get(r):e[r],t[r]!==n)return!1;return!0})},o.findWhere=function(t){return this.where(t,!0)},o.pluck=function(t){return r.invoke(this.models,"get",t)},e.exports=o},{underscore:108}],12:[function(t,e,n){function r(t){if(!t)throw new ReferenceError("Collection view missing required parameters: collection, el");if(!t.collection)throw new ReferenceError("Collection view requires a collection");if(!t.el&&!this.insertSelf)throw new ReferenceError("Collection view requires an el");i(this,a(t,f)),this.views=[],this.listenTo(this.collection,"add",this._addViewForModel),this.listenTo(this.collection,"remove",this._removeViewForModel),this.listenTo(this.collection,"sort",this._rerenderAll),this.listenTo(this.collection,"refresh reset",this._reset)}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-collection-view"]=window.ampersand["ampersand-collection-view"]||[],window.ampersand["ampersand-collection-view"].push("1.4.0"));var i=t("lodash.assign"),o=t("lodash.invoke"),a=t("lodash.pick"),u=t("lodash.find"),s=t("lodash.difference"),l=t("ampersand-events"),c=t("ampersand-class-extend"),f=["collection","el","viewOptions","view","emptyView","filter","reverse","parent"];i(r.prototype,l,{render:function(){return this._renderAll(),this},remove:function(){o(this.views,"remove"),this.stopListening()},_getViewByModel:function(t){return u(this.views,function(e){return t===e.model})},_createViewForModel:function(t,e){var n={model:t,collection:this.collection,parent:this},r=new this.view(i(n,this.viewOptions));return this.views.push(r),r.renderedByParentView=!0,r.render(e),r},_getOrCreateByModel:function(t,e){return this._getViewByModel(t)||this._createViewForModel(t,e)},_addViewForModel:function(t,e,n){var r=!this.filter||this.filter(t);if(r){this.renderedEmptyView&&(this.renderedEmptyView.remove(),delete this.renderedEmptyView);var i=this._getOrCreateByModel(t,{containerEl:this.el});n&&n.rerender?this._insertView(i):this._insertViewAtIndex(i)}},_insertViewAtIndex:function(t){if(!t.insertSelf){var e,n,r=this.collection.indexOf(t.model);e=this.reverse?this.collection.at(r-1):this.collection.at(r+1),n=this._getViewByModel(e),n?this.el.insertBefore(t.el,n&&n.el):this.el.appendChild(t.el)}},_insertView:function(t){t.insertSelf||(this.reverse&&this.el.firstChild?this.el.insertBefore(t.el,this.el.firstChild):this.el.appendChild(t.el))},_removeViewForModel:function(t){var e=this._getViewByModel(t);if(e){var n=this.views.indexOf(e);n!==-1&&(e=this.views.splice(n,1)[0],this._removeView(e),0===this.views.length&&this._renderEmptyView())}},_removeView:function(t){t.animateRemove?t.animateRemove():t.remove()},_renderAll:function(){this.collection.each(this._addViewForModel,this),0===this.views.length&&this._renderEmptyView()},_rerenderAll:function(t,e){e=e||{},this.collection.each(function(t){this._addViewForModel(t,this,i(e,{rerender:!0}))},this)},_renderEmptyView:function(){if(this.emptyView&&!this.renderedEmptyView){var t=this.renderedEmptyView=new this.emptyView({parent:this});this.el.appendChild(t.render().el)}},_reset:function(){var t=this.collection.map(this._getOrCreateByModel,this),e=s(this.views,t);e.forEach(this._removeView,this),this.views=t,this._rerenderAll(),0===this.views.length&&this._renderEmptyView()}}),r.extend=c,e.exports=r},{"ampersand-class-extend":10,"ampersand-events":16,"lodash.assign":72,"lodash.difference":75,"lodash.find":77,"lodash.invoke":83,"lodash.pick":100}],13:[function(t,e,n){function r(t,e){if(e||(e={}),e.model&&(this.model=e.model),e.comparator&&(this.comparator=e.comparator),e.parent&&(this.parent=e.parent),!this.mainIndex){var n=this.model&&this.model.prototype&&this.model.prototype.idAttribute;this.mainIndex=n||"id"}this._reset(),this.initialize.apply(this,arguments),t&&this.reset(t,s({silent:!0},e))}var i=t("ampersand-events"),o=t("ampersand-class-extend"),a=t("lodash.isarray"),u=t("lodash.bind"),s=t("lodash.assign"),l=[].slice;s(r.prototype,i,{initialize:function(){},isModel:function(t){return this.model&&t instanceof this.model},add:function(t,e){return this.set(t,s({merge:!1,add:!0,remove:!1},e))},parse:function(t,e){return t},serialize:function(){return this.map(function(t){if(t.serialize)return t.serialize();var e={};return s(e,t),delete e.collection,e})},toJSON:function(){return this.serialize()},set:function(t,e){e=s({add:!0,remove:!0,merge:!0},e),e.parse&&(t=this.parse(t,e));var n=!a(t);t=n?t?[t]:[]:t.slice();var r,i,o,u,l,c,f,h=e.at,p=this.comparator&&null==h&&e.sort!==!1,d="string"==typeof this.comparator?this.comparator:null,v=[],g=[],y={},m=e.add,b=e.merge,x=e.remove,w=!(p||!m||!x)&&[],_=this.model&&this.model.prototype||Object.prototype;for(c=0,f=t.length;c<f;c++){if(o=t[c]||{},this.isModel(o)?r=i=o:_.generateId?r=_.generateId(o):(r=o[this.mainIndex],void 0===r&&this._isDerivedIndex(_)&&(r=_._derived[this.mainIndex].fn.call(o))),u=this.get(r))x&&(y[u.cid||u[this.mainIndex]]=!0),b&&(o=o===i?i.attributes:o,e.parse&&(o=u.parse(o,e)),u.set?(u.set(o,e),p&&!l&&u.hasChanged(d)&&(l=!0)):s(u,o)),t[c]=u;else if(m){if(i=t[c]=this._prepareModel(o,e),!i)continue;v.push(i),this._addReference(i,e)}i=u||i,i&&(w&&(i.isNew&&i.isNew()||!i[this.mainIndex]||!y[i.cid||i[this.mainIndex]])&&w.push(i),y[i[this.mainIndex]]=!0)}if(x){for(c=0,f=this.length;c<f;c++)i=this.models[c],y[i.cid||i[this.mainIndex]]||g.push(i);g.length&&this.remove(g,e)}if(v.length||w&&w.length)if(p&&(l=!0),null!=h)for(c=0,f=v.length;c<f;c++)this.models.splice(h+c,0,v[c]);else{var M=w||v;for(c=0,f=M.length;c<f;c++)this.models.push(M[c])}if(l&&this.sort({silent:!0}),!e.silent){for(c=0,f=v.length;c<f;c++)i=v[c],i.trigger?i.trigger("add",i,this,e):this.trigger("add",i,this,e);(l||w&&w.length)&&this.trigger("sort",this,e)}return n?t[0]:t},get:function(t,e){if(null!=t){var n=this._indexes[e||this.mainIndex];return n&&(n[t]||n[t[this.mainIndex]])||this._indexes.cid[t]||this._indexes.cid[t.cid]}},at:function(t){return this.models[t]},remove:function(t,e){var n,r,i,o,u=!a(t);for(t=u?[t]:l.call(t),e||(e={}),n=0,r=t.length;n<r;n++)i=t[n]=this.get(t[n]),i&&(this._deIndex(i),o=this.models.indexOf(i),this.models.splice(o,1),e.silent||(e.index=o,i.trigger?i.trigger("remove",i,this,e):this.trigger("remove",i,this,e)),this._removeReference(i,e));return u?t[0]:t},reset:function(t,e){e||(e={});for(var n=0,r=this.models.length;n<r;n++)this._removeReference(this.models[n],e);return e.previousModels=this.models,this._reset(),t=this.add(t,s({silent:!0},e)),e.silent||this.trigger("reset",this,e),t},sort:function(t){var e=this;if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return t||(t={}),"string"==typeof this.comparator?this.models.sort(function(t,n){return t.get?(t=t.get(e.comparator),n=n.get(e.comparator)):(t=t[e.comparator],n=n[e.comparator]),t>n||void 0===t?1:t<n||void 0===n?-1:0}):1===this.comparator.length?this.models.sort(function(t,n){return t=e.comparator(t),n=e.comparator(n),t>n||void 0===t?1:t<n||void 0===n?-1:0}):this.models.sort(u(this.comparator,this)),t.silent||this.trigger("sort",this,t),this},_reset:function(){var t=l.call(this.indexes||[]),e=0;t.push(this.mainIndex),t.push("cid");var n=t.length;for(this.models=[],this._indexes={};e<n;e++)this._indexes[t[e]]={}},_prepareModel:function(t,e){if(!this.model)return t;if(this.isModel(t))return t.collection||(t.collection=this),t;e=e?s({},e):{},e.collection=this;var n=new this.model(t,e);return n.validationError?(this.trigger("invalid",this,n.validationError,e),!1):n},_deIndex:function(t,e,n){var r;if(void 0!==e){if(void 0===this._indexes[e])throw new Error("Given attribute is not an index");return void delete this._indexes[e][n]}for(var i in this._indexes)r=t.hasOwnProperty(i)?t[i]:t.get&&t.get(i),delete this._indexes[i][r]},_index:function(t,e){var n;if(void 0!==e){if(void 0===this._indexes[e])throw new Error("Given attribute is not an index");return n=t[e]||t.get&&t.get(e),void(n&&(this._indexes[e][n]=t))}for(var r in this._indexes)n=t.hasOwnProperty(r)?t[r]:t.get&&t.get(r),null!=n&&(this._indexes[r][n]=t)},_isDerivedIndex:function(t){return!(!t||"object"!=typeof t._derived)&&Object.keys(t._derived).indexOf(this.mainIndex)>=0},_addReference:function(t,e){this._index(t),t.collection||(t.collection=this),t.on&&t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){this===t.collection&&delete t.collection,this._deIndex(t),t.off&&t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,n,r){var i=t.split(":")[0],o=t.split(":")[1];("add"!==i&&"remove"!==i||n===this)&&("destroy"===i&&this.remove(e,r),e&&"change"===i&&o&&this._indexes[o]&&(this._deIndex(e,o,e.previousAttributes()[o]),this._index(e,o)),this.trigger.apply(this,arguments))}}),Object.defineProperties(r.prototype,{length:{get:function(){return this.models.length}},isCollection:{get:function(){return!0}}});var c=["indexOf","lastIndexOf","every","some","forEach","map","filter","reduce","reduceRight"];c.forEach(function(t){r.prototype[t]=function(){return this.models[t].apply(this.models,arguments)}}),r.prototype.each=r.prototype.forEach,r.extend=o,e.exports=r},{"ampersand-class-extend":10,"ampersand-events":16,"lodash.assign":72,"lodash.bind":74,"lodash.isarray":85}],14:[function(t,e,n){function r(t,e){if(""===e)return[t];var n=[];return h(t,e)&&n.push(t),n.concat(d.call(t.querySelectorAll(e)))}function i(t,e){for(var n in e)f.setAttribute(t,n,e[n])}function o(t,e){for(var n in e)f.removeAttribute(t,n)}function a(t){return Array.isArray(t)?t:[t]}function u(t,e,n){var i=t.cases[n];for(var o in t.cases){var a=t.cases[o];n!==o&&a!==i&&r(e,a).forEach(function(t){f.hide(t)})}r(e,i).forEach(function(t){f.show(t)})}function s(t){return"string"==typeof t.selector?t.selector:t.hook?'[data-hook~="'+t.hook+'"]':""}function l(t,e){var n,l=t.type||"text",c="function"==typeof l,h=s(t),d=t.yes,v=t.no,g=!(!d&&!v);if(c)return function(t,i){r(t,h).forEach(function(t){l.call(e,t,i,n)}),n=i};if("text"===l)return function(t,e){r(t,h).forEach(function(t){f.text(t,e)})};if("class"===l)return function(t,e){r(t,h).forEach(function(t){f.switchClass(t,n,e)}),n=e};if("attribute"===l){if(!t.name)throw Error('attribute bindings must have a "name"');return function(e,i){var o=a(t.name);r(e,h).forEach(function(t){o.forEach(function(e){f.setAttribute(t,e,i)})}),n=i}}if("value"===l)return function(t,e){r(t,h).forEach(function(t){e||0===e||(e=""),document.activeElement!==t&&(t.value=e)}),n=e};if("booleanClass"===l)return g?(d=a(d||""),v=a(v||""),function(t,e){var n=e?v:d,i=e?d:v;r(t,h).forEach(function(t){n.forEach(function(e){f.removeClass(t,e)}),i.forEach(function(e){f.addClass(t,e)})})}):function(e,n,i){var o=a(t.name||i),u=t.invert||!1;n=u?!n:n,r(e,h).forEach(function(t){o.forEach(function(e){f[n?"addClass":"removeClass"](t,e)})})};if("booleanAttribute"===l)return g?(d=a(d||""),v=a(v||""),function(t,e){var n=e?v:d,i=e?d:v;r(t,h).forEach(function(t){n.forEach(function(e){e&&f.removeAttribute(t,e)}),i.forEach(function(e){e&&f.addAttribute(t,e)})})}):function(e,n,i){var o=a(t.name||i),u=t.invert||!1;n=u?!n:n,r(e,h).forEach(function(t){o.forEach(function(e){f[n?"addAttribute":"removeAttribute"](t,e)})})};if("toggle"===l){var y=t.mode||"display",m=t.invert||!1;return g?function(t,e){r(t,d).forEach(function(t){f[e?"show":"hide"](t,y)}),r(t,v).forEach(function(t){f[e?"hide":"show"](t,y)})}:function(t,e){e=m?!e:e,r(t,h).forEach(function(t){f[e?"show":"hide"](t,y)})}}if("switch"===l){if(!t.cases)throw Error('switch bindings must have "cases"');return p(u,t)}if("innerHTML"===l)return function(t,e){r(t,h).forEach(function(t){f.html(t,e)})};if("switchClass"===l){if(!t.cases)throw Error('switchClass bindings must have "cases"');return function(e,n,i){var o=a(t.name||i);for(var u in t.cases)r(e,t.cases[u]).forEach(function(t){o.forEach(function(e){f[n===u?"addClass":"removeClass"](t,e)})})}}if("switchAttribute"===l){if(!t.cases)throw Error('switchAttribute bindings must have "cases"');return function(e,a,u){r(e,h).forEach(function(e){if(n&&o(e,n),a in t.cases){var r=t.cases[a];"string"==typeof r&&(r={},r[t.name||u]=t.cases[a]),i(e,r),n=r}})}}throw new Error("no such binding type: "+l)}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-dom-bindings"]=window.ampersand["ampersand-dom-bindings"]||[],window.ampersand["ampersand-dom-bindings"].push("3.8.0"));var c=t("key-tree-store"),f=t("ampersand-dom"),h=t("matches-selector"),p=t("lodash.partial"),d=Array.prototype.slice;e.exports=function(t,e){var n,r,i=new c;for(n in t)r=t[n],"string"==typeof r?i.add(n,l({type:"text",selector:r})):r.forEach?r.forEach(function(t){i.add(n,l(t,e))}):i.add(n,l(r,e));return i}},{"ampersand-dom":15,"key-tree-store":41,"lodash.partial":99,"matches-selector":106}],15:[function(t,e,n){function r(t){return t||0===t?t:""}function i(t,e){return t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)}function o(t,e){var n=t[e];return e in t&&(n===!0||n===!1)}function a(t){return"true"===c.getAttribute(t,"data-anddom-hidden")}function u(t,e){c.setAttribute(t,"data-anddom-"+e,t.style[e])}function s(t,e){t.style[e]=c.getAttribute(t,"data-anddom-"+e)||"",c.removeAttribute(t,"data-anddom-hidden")}function l(t,e){c.setAttribute(t,"data-anddom-hidden","true"),t.style[e]="visibility"===e?"hidden":"none"}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-dom"]=window.ampersand["ampersand-dom"]||[],window.ampersand["ampersand-dom"].push("1.5.0"));var c=e.exports={text:function(t,e){t.textContent=r(e)},addClass:function(t,e){e=r(e),e&&(Array.isArray(e)?e.forEach(function(e){c.addClass(t,e)}):t.classList?t.classList.add(e):i(t,e)||(t.classList?t.classList.add(e):t.className+=" "+e))},removeClass:function(t,e){Array.isArray(e)?e.forEach(function(e){c.removeClass(t,e)}):t.classList?(e=r(e),e&&t.classList.remove(e)):t.className=t.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")},hasClass:i,switchClass:function(t,e,n){e&&this.removeClass(t,e),this.addClass(t,n)},addAttribute:function(t,e){t.setAttribute(e,""),o(t,e)&&(t[e]=!0)},removeAttribute:function(t,e){t.removeAttribute(e),o(t,e)&&(t[e]=!1)},setAttribute:function(t,e,n){t.setAttribute(e,r(n))},getAttribute:function(t,e){return t.getAttribute(e)},hasAttribute:function(t,e){return t.hasAttribute(e)},hide:function(t,e){e||(e="display"),a(t)||(u(t,e),l(t,e))},show:function(t,e){e||(e="display"),s(t,e)},toggle:function(t,e){a(t)?c.show(t,e):c.hide(t,e)},html:function(t,e){t.innerHTML=e}}},{}],16:[function(t,e,n){"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-events"]=window.ampersand["ampersand-events"]||[],window.ampersand["ampersand-events"].push("1.1.1"));var r=t("lodash.once"),i=t("lodash.uniqueid"),o=t("lodash.keys"),a=t("lodash.isempty"),u=t("lodash.foreach"),s=(t("lodash.bind"),t("lodash.assign")),l=Array.prototype.slice,c=/\s+/,f={on:function(t,e,n){if(!h(this,"on",t,[e,n])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);return r.push({callback:e,context:n,ctx:n||this}),this},once:function(t,e,n){if(!h(this,"once",t,[e,n])||!e)return this;var i=this,o=r(function(){i.off(t,o),e.apply(this,arguments)});return o._callback=e,this.on(t,o,n)},off:function(t,e,n){var r,i,a,u,s,l,c,f;if(!this._events||!h(this,"off",t,[e,n]))return this;if(!t&&!e&&!n)return this._events=void 0,this;for(u=t?[t]:o(this._events),s=0,l=u.length;s<l;s++)if(t=u[s],a=this._events[t]){if(this._events[t]=r=[],e||n)for(c=0,f=a.length;c<f;c++)i=a[c],(e&&e!==i.callback&&e!==i.callback._callback||n&&n!==i.context)&&r.push(i);r.length||delete this._events[t]}return this},trigger:function(t){if(!this._events)return this;var e=l.call(arguments,1);if(!h(this,"trigger",t,e))return this;var n=this._events[t],r=this._events.all;return n&&p(n,e),r&&p(r,arguments),this},stopListening:function(t,e,n){var r=this._listeningTo;if(!r)return this;var i=!e&&!n;n||"object"!=typeof e||(n=this),t&&((r={})[t._listenId]=t);for(var o in r)t=r[o],t.off(e,n,this),(i||a(t._events))&&delete this._listeningTo[o];return this},createEmitter:function(t){return s(t||{},f)}};f.bind=f.on,f.unbind=f.off;var h=function(t,e,n,r){if(!n)return!0;if("object"==typeof n){for(var i in n)t[e].apply(t,[i,n[i]].concat(r));return!1}if(c.test(n)){for(var o=n.split(c),a=0,u=o.length;a<u;a++)t[e].apply(t,[o[a]].concat(r));return!1}return!0},p=function(t,e){var n,r=-1,i=t.length,o=e[0],a=e[1],u=e[2];switch(e.length){case 0:for(;++r<i;)(n=t[r]).callback.call(n.ctx);return;case 1:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o);return;case 2:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o,a);return;case 3:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o,a,u);return;default:for(;++r<i;)(n=t[r]).callback.apply(n.ctx,e);return}},d={listenTo:"on",listenToOnce:"once"};u(d,function(t,e){f[e]=function(e,n,r,o){var a=this._listeningTo||(this._listeningTo={}),u=e._listenId||(e._listenId=i("l"));return a[u]=e,r||"object"!=typeof n||(r=this),e[t](n,r,this),this}}),f.listenToAndRun=function(t,e,n){return f.listenTo.apply(this,arguments),n||"object"!=typeof e||(n=this),n.apply(this),this},e.exports=f},{"lodash.assign":72,"lodash.bind":74,"lodash.foreach":79,"lodash.isempty":87,"lodash.keys":93,"lodash.once":97,"lodash.uniqueid":104}],17:[function(t,e,n){"use strict";function r(t,e){e||(e={}),this.cid||(this.cid=u("state")),this._events={},this._values={},this._definition=Object.create(this._definition),e.parse&&(t=this.parse(t,e)),this.parent=e.parent,this.collection=e.collection,this._keyTree=new k,this._initCollections(),this._initChildren(),this._cache={},this._previousAttributes={},t&&this.set(t,s({silent:!0,initial:!0},e)),this._changed={},this._derived&&this._initDerived(),e.init!==!1&&this.initialize.apply(this,arguments)}function i(t,e,n,r){var i,o,a=t._definition[e]={};if(d(n))i=t._ensureValidType(n),i&&(a.type=i);else{if(Array.isArray(n)&&(o=n,n={type:o[0],required:o[1],"default":o[2]}),i=t._ensureValidType(n.type),i&&(a.type=i),n.required&&(a.required=!0),n["default"]&&"object"==typeof n["default"])throw new TypeError("The default value for "+e+" cannot be an object/array, must be a value or a function which returns a value/object/array");a["default"]=n["default"],a.allowNull=!!n.allowNull&&n.allowNull,n.setOnce&&(a.setOnce=!0),a.required&&void 0===a["default"]&&!a.setOnce&&(a["default"]=t._getDefaultForType(i)),a.test=n.test,a.values=n.values}return r&&(a.session=!0),i||(i=d(n)?n:n.type,console.warn("Invalid data type of `"+i+"` for `"+e+"` property. Use one of the default types or define your own")),Object.defineProperty(t,e,{set:function(t){this.set(e,t)},get:function(){if(!this._values)throw Error('You may be trying to `extend` a state object with "'+e+'" which has been defined in `props` on the object being extended');var t=this._values[e],n=this._dataTypes[a.type];if("undefined"!=typeof t)return n&&n.get&&(t=n.get(t)),t;var r=x(a,"default");if(this._values[e]=r,"undefined"!=typeof r){var i=this._getOnChangeForType(a.type);i(r,t,e)}return r}}),a}function o(t,e,n){var r=t._derived[e]={fn:y(n)?n:n.fn,cache:n.cache!==!1,depList:n.deps||[]};r.depList.forEach(function(n){t._deps[n]=_(t._deps[n]||[],[e])}),Object.defineProperty(t,e,{get:function(){return this._getDerivedProperty(e)},set:function(){throw new TypeError("`"+e+"` is a derived property, it can't be set directly.")}})}function a(t){var e,n=this;e=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return n.apply(this,arguments)},s(e,n);var r=function(){this.constructor=e};if(r.prototype=n.prototype,e.prototype=new r,e.prototype._derived=s({},n.prototype._derived),e.prototype._deps=s({},n.prototype._deps),e.prototype._definition=s({},n.prototype._definition),e.prototype._collections=s({},n.prototype._collections),e.prototype._children=s({},n.prototype._children),e.prototype._dataTypes=s({},n.prototype._dataTypes||S),t)for(var a=["dataTypes","props","session","derived","collections","children"],u=0;u<arguments.length;u++){var l=arguments[u];l.dataTypes&&h(l.dataTypes,function(t,n){e.prototype._dataTypes[n]=t}),l.props&&h(l.props,function(t,n){i(e.prototype,n,t)}),l.session&&h(l.session,function(t,n){i(e.prototype,n,t,!0)}),l.derived&&h(l.derived,function(t,n){o(e.prototype,n,t)}),l.collections&&h(l.collections,function(t,n){e.prototype._collections[n]=t}),l.children&&h(l.children,function(t,n){e.prototype._children[n]=t}),s(e.prototype,c(l,a))}return e.__super__=n.prototype,e}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-state"]=window.ampersand["ampersand-state"]||[],window.ampersand["ampersand-state"].push("4.9.1"));var u=t("lodash.uniqueid"),s=t("lodash.assign"),l=function(t){return s({},t)},c=t("lodash.omit"),f=t("lodash.escape"),h=t("lodash.forown"),p=t("lodash.includes"),d=t("lodash.isstring"),v=t("lodash.isobject"),g=t("lodash.isdate"),y=t("lodash.isfunction"),m=t("lodash.isequal"),b=t("lodash.has"),x=t("lodash.result"),w=t("lodash.bind"),_=t("lodash.union"),M=t("ampersand-events"),k=t("key-tree-store"),E=t("array-next"),j=/^change:/,C=function(){};s(r.prototype,M,{extraProperties:"ignore",idAttribute:"id",namespaceAttribute:"namespace",typeAttribute:"modelType",initialize:function(){return this},getId:function(){return this[this.idAttribute]},getNamespace:function(){return this[this.namespaceAttribute]},getType:function(){return this[this.typeAttribute]},isNew:function(){return null==this.getId()},escape:function(t){return f(this.get(t))},isValid:function(t){return this._validate({},s(t||{},{validate:!0}))},parse:function(t,e){return t},serialize:function(t){var e=s({props:!0},t),n=this.getAttributes(e,!0);return h(this._children,function(t,e){n[e]=this[e].serialize()},this),h(this._collections,function(t,e){n[e]=this[e].serialize()},this),n},set:function(t,e,n){var r,i,o,a,u,s,l,c,f,h,d,g,y,m,b,w,_,M=this,k=this.extraProperties;if(v(t)||null===t?(f=t,n=e):(f={},f[t]=e),n=n||{},!this._validate(f,n))return!1;g=n.unset,d=n.silent,m=n.initial,r=this._changing,this._changing=!0,i=[],m?this._previousAttributes={}:r||(this._previousAttributes=this.attributes,this._changed={});for(var E=0,j=Object.keys(f),C=j.length;E<C;E++){if(c=j[E],a=f[c],o=typeof a,y=this._values[c],u=this._definition[c],!u){if(this._children[c]||this._collections[c]){v(a)||(a={}),this[c].set(a,n);continue}if("ignore"===k)continue;if("reject"===k)throw new TypeError('No "'+c+'" property defined on '+(this.type||"this")+' model and extraProperties not set to "ignore" or "allow"');if("allow"===k)u=this._createPropertyDefinition(c,"any");else if(k)throw new TypeError('Invalid value for extraProperties: "'+k+'"')}if(w=this._getCompareForType(u.type),_=this._getOnChangeForType(u.type),h=this._dataTypes[u.type],h&&h.set&&(s=h.set(a),a=s.val,o=s.type),u.test&&(l=u.test.call(this,a,o)))throw new TypeError("Property '"+c+"' failed validation with error: "+l);if(void 0===a&&u.required)throw new TypeError("Required property '"+c+"' must be of type "+u.type+". Tried to set "+a);if(null===a&&u.required&&!u.allowNull)throw new TypeError("Property '"+c+"' must be of type "+u.type+" (cannot be null). Tried to set "+a);if(u.type&&"any"!==u.type&&u.type!==o&&null!==a&&void 0!==a)throw new TypeError("Property '"+c+"' must be of type "+u.type+". Tried to set "+a);if(u.values&&!p(u.values,a)){var S=x(u,"default");if(g&&void 0!==S)a=S;else if(!g||g&&void 0!==a)throw new TypeError("Property '"+c+"' must be one of values: "+u.values.join(", ")+". Tried to set "+a)}if(b=m||!w(y,a,c),u.setOnce&&void 0!==y&&b)throw new TypeError("Property '"+c+"' can only be set once.");b?(_(a,y,c),m||(this._changed[c]=a,this._previousAttributes[c]=y,g&&delete this._values[c],d||i.push({prev:y,val:a,key:c})),g||(this._values[c]=a)):delete this._changed[c]}if(i.length&&(this._pending=!0),i.forEach(function(t){M.trigger("change:"+t.key,M,t.val,n)}),r)return this;for(;this._pending;)this._pending=!1,this.trigger("change",this,n);return this._pending=!1,this._changing=!1,this},get:function(t){return this[t]},toggle:function(t){var e=this._definition[t];if("boolean"===e.type)this[t]=!this[t];else{if(!e||!e.values)throw new TypeError("Can only toggle properties that are type `boolean` or have `values` array.");this[t]=E(e.values,this[t])}return this},previousAttributes:function(){return l(this._previousAttributes)},hasChanged:function(t){return null==t?!!Object.keys(this._changed).length:b(this._derived,t)?this._derived[t].depList.some(function(t){return this.hasChanged(t)},this):b(this._changed,t)},changedAttributes:function(t){if(!t)return!!this.hasChanged()&&l(this._changed);var e,n,r,i=!1,o=this._changing?this._previousAttributes:this.attributes;for(var a in t)n=this._definition[a],n&&(r=this._getCompareForType(n.type),r(o[a],e=t[a])||((i||(i={}))[a]=e));return i},toJSON:function(){return this.serialize()},unset:function(t,e){var n=this;t=Array.isArray(t)?t:[t],t.forEach(function(t){var r=n._definition[t];if(r){var i;return r.required?(i=x(r,"default"),n.set(t,i,e)):n.set(t,i,s({},e,{unset:!0}))}})},clear:function(t){ +var e=this;return Object.keys(this.attributes).forEach(function(n){e.unset(n,t)}),this},previous:function(t){return null!=t&&Object.keys(this._previousAttributes).length?this._previousAttributes[t]:null},_getDefaultForType:function(t){var e=this._dataTypes[t];return e&&e["default"]},_getCompareForType:function(t){var e=this._dataTypes[t];return e&&e.compare?w(e.compare,this):m},_getOnChangeForType:function(t){var e=this._dataTypes[t];return e&&e.onChange?w(e.onChange,this):C},_validate:function(t,e){if(!e.validate||!this.validate)return!0;t=s({},this.attributes,t);var n=this.validationError=this.validate(t,e)||null;return!n||(this.trigger("invalid",this,n,s(e||{},{validationError:n})),!1)},_createPropertyDefinition:function(t,e,n){return i(this,t,e,n)},_ensureValidType:function(t){return p(["string","number","boolean","array","object","date","state","any"].concat(Object.keys(this._dataTypes)),t)?t:void 0},getAttributes:function(t,e){t=s({session:!1,props:!1,derived:!1},t||{});var n,r,i={};for(var o in this._definition)r=this._definition[o],(t.session&&r.session||t.props&&!r.session)&&(n=e?this._values[o]:this[o],e&&n&&y(n.serialize)&&(n=n.serialize()),"undefined"==typeof n&&(n=x(r,"default")),"undefined"!=typeof n&&(i[o]=n));if(t.derived)for(var a in this._derived)i[a]=this[a];return i},_initDerived:function(){var t=this;h(this._derived,function(e,n){var r=t._derived[n];r.deps=r.depList;var i=function(e){e=e||{};var i=r.fn.call(t);t._cache[n]===i&&r.cache||(r.cache&&(t._previousAttributes[n]=t._cache[n]),t._cache[n]=i,t.trigger("change:"+n,t,t._cache[n]))};r.deps.forEach(function(e){t._keyTree.add(e,i)})}),this.on("all",function(e){j.test(e)&&t._keyTree.get(e.split(":")[1]).forEach(function(t){t()})},this)},_getDerivedProperty:function(t,e){return this._derived[t].cache?(!e&&this._cache.hasOwnProperty(t)||(this._cache[t]=this._derived[t].fn.apply(this)),this._cache[t]):this._derived[t].fn.apply(this)},_initCollections:function(){var t;if(this._collections)for(t in this._collections)this._safeSet(t,new this._collections[t](null,{parent:this}))},_initChildren:function(){var t;if(this._children)for(t in this._children)this._safeSet(t,new this._children[t]({},{parent:this})),this.listenTo(this[t],"all",this._getEventBubblingHandler(t))},_getEventBubblingHandler:function(t){return w(function(e,n,r){j.test(e)?this.trigger("change:"+t+"."+e.split(":")[1],n,r):"change"===e&&this.trigger("change",this)},this)},_verifyRequired:function(){var t=this.attributes;for(var e in this._definition)if(this._definition[e].required&&"undefined"==typeof t[e])return!1;return!0},_safeSet:function(t,e){if(t in this)throw new Error("Encountered namespace collision while setting instance property `"+t+"`");return this[t]=e,this}}),Object.defineProperties(r.prototype,{attributes:{get:function(){return this.getAttributes({props:!0,session:!0})}},all:{get:function(){return this.getAttributes({session:!0,props:!0,derived:!0})}},isState:{get:function(){return!0},set:function(){}}});var S={string:{"default":function(){return""}},date:{set:function(t){var e;if(null==t)e="object";else if(g(t))e="date",t=t.valueOf();else{var n=null,r=new Date(t).valueOf();isNaN(r)&&(r=new Date(parseInt(t,10)).valueOf(),isNaN(r)&&(n=!0)),t=r,e="date",n&&(e=typeof t)}return{val:t,type:e}},get:function(t){return null==t?t:new Date(t)},"default":function(){return new Date}},array:{set:function(t){return{val:t,type:Array.isArray(t)?"array":typeof t}},"default":function(){return[]}},object:{set:function(t){var e=typeof t;return"object"!==e&&void 0===t&&(t=null,e="object"),{val:t,type:e}},"default":function(){return{}}},state:{set:function(t){var e=t instanceof r||t&&t.isState;return e?{val:t,type:"state"}:{val:t,type:typeof t}},compare:function(t,e){return t===e},onChange:function(t,e,n){e&&this.stopListening(e),null!=t&&this.listenTo(t,"all",this._getEventBubblingHandler(n))}}};r.extend=a,e.exports=r},{"ampersand-events":16,"array-next":20,"key-tree-store":41,"lodash.assign":72,"lodash.bind":74,"lodash.escape":76,"lodash.forown":80,"lodash.has":81,"lodash.includes":82,"lodash.isdate":86,"lodash.isequal":88,"lodash.isfunction":89,"lodash.isobject":90,"lodash.isstring":91,"lodash.omit":96,"lodash.result":102,"lodash.union":103,"lodash.uniqueid":104}],18:[function(t,e,n){function r(t,e){e||(e={}),this.collection=t,this._reset(),this._watched=e.watched||[],this._parseFilters(e),this._runFilters(),this.listenTo(this.collection,"all",this._onCollectionEvent)}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-subcollection"]=window.ampersand["ampersand-subcollection"]||[],window.ampersand["ampersand-subcollection"].push("1.5.0"));var i=t("underscore"),o=t("backbone-events-standalone"),a=t("ampersand-class-extend"),u=t("ampersand-collection-underscore-mixin"),s=Array.prototype.slice;i.extend(r.prototype,o,u,{addFilter:function(t){this.swapFilters([t],[])},removeFilter:function(t){this.swapFilters([],[t])},clearFilters:function(){this._reset(),this._runFilters()},swapFilters:function(t,e){var n=this;e?i.isArray(e)||(e=[e]):e=this._filters,t?i.isArray(t)||(t=[t]):t=[],e.forEach(function(t){n._removeFilter(t)}),t.forEach(function(t){n._addFilter(t)}),this._runFilters()},configure:function(t,e){e&&this._resetFilters(),this._parseFilters(t),this._runFilters()},at:function(t){return this.models[t]},get:function(t,e){var n=this.collection.get(t,e);if(n&&this.contains(n))return n},_removeFilter:function(t){var e=this._filters.indexOf(t);e!==-1&&this._filters.splice(e,1)},_reset:function(){this.models=[],this._resetFilters()},_resetFilters:function(){this._filters=[],this._watched=[],this.limit=void 0,this.offset=void 0},_addFilter:function(t){this._filters.push(t)},_watch:function(t){this._watched=i.union(this._watched,i.isArray(t)?t:[t])},_unwatch:function(t){this._watched=i.without(this._watched,t)},_parseFilters:function(t){t.where&&(i.each(t.where,function(t,e){this._addFilter(function(n){return(n.get?n.get(e):n[e])===t})},this),this._watch(i.keys(t.where))),t.hasOwnProperty("limit")&&(this.limit=t.limit),t.hasOwnProperty("offset")&&(this.offset=t.offset),t.filter&&this._addFilter(t.filter,!1),t.filters&&t.filters.forEach(this._addFilter,this),t.comparator&&(this.comparator=t.comparator)},_runFilters:function(){var t,e,n,r=s.call(this.models),o=s.call(this.collection.models),a=this.offset||0;t=this._filters.length?i.reduce(this._filters,function(t,e){return t.filter(e)},o):s.call(o),this.comparator&&(t=i.sortBy(t,this.comparator)),(this.limit||this.offset)&&(t=t.slice(a,this.limit+a)),e=i.difference(t,r),n=i.difference(r,t),this.models=t,i.each(n,function(t){this.trigger("remove",t,this)},this),i.each(e,function(t){this.trigger("add",t,this)},this),i.isEqual(r,t)||this.trigger("sort",this)},_onCollectionEvent:function(t,e){(i.contains(this._watched,t.split(":")[1])||i.contains(["add","remove","reset","sync"],t))&&this._runFilters(),(i.contains(["sync","invalid","destroy"])||t.indexOf("change")!==-1)&&this.contains(e)&&this.trigger.apply(this,arguments)}}),Object.defineProperty(r.prototype,"length",{get:function(){return this.models.length}}),Object.defineProperty(r.prototype,"isCollection",{get:function(){return!0}}),r.extend=a,e.exports=r},{"ampersand-class-extend":10,"ampersand-collection-underscore-mixin":11,"backbone-events-standalone":22,underscore:108}],19:[function(t,e,n){function r(t){this.cid=u("view"),t||(t={});var e=t.parent;delete t.parent,w.call(this,t,{init:!1,parent:e}),this.on("change:el",this._handleElementChange,this),this._parsedBindings=b(this.bindings,this),this._initializeBindings(),t.el&&!this.autoRender&&this._handleElementChange(),this._initializeSubviews(),this.template=t.template||this.template,this.initialize.apply(this,arguments),this.set(s(t,_)),this.autoRender&&this.template&&this.render()}"undefined"!=typeof window&&(window.ampersand=window.ampersand||{},window.ampersand["ampersand-view"]=window.ampersand["ampersand-view"]||[],window.ampersand["ampersand-view"].push("7.4.2"));var i=t("ampersand-state"),o=t("ampersand-collection-view"),a=t("domify"),u=t("lodash.uniqueid"),s=t("lodash.pick"),l=t("lodash.assign"),c=t("lodash.foreach"),f=t("lodash.result"),h=t("lodash.last"),p=t("lodash.isstring"),d=t("lodash.bind"),v=t("lodash.flatten"),g=t("lodash.invoke"),y=t("events-mixin"),m=t("matches-selector"),b=t("ampersand-dom-bindings"),x=t("get-object-path"),w=i.extend({dataTypes:{element:{set:function(t){return{val:t,type:t instanceof Element?"element":typeof t}},compare:function(t,e){return t===e}},collection:{set:function(t){return{val:t,type:t&&t.isCollection?"collection":typeof t}},compare:function(t,e){return t===e}}},props:{model:"state",el:"element",collection:"collection"},derived:{rendered:{deps:["el"],fn:function(){return!!this.el}},hasData:{deps:["model"],fn:function(){return!!this.model}}}}),_=["model","collection","el"];r.prototype=Object.create(w.prototype),l(r.prototype,{query:function(t){return t?"string"==typeof t?m(this.el,t)?this.el:this.el.querySelector(t)||void 0:t:this.el},queryAll:function(t){var e=[];return this.el?""===t?[this.el]:(m(this.el,t)&&e.push(this.el),e.concat(Array.prototype.slice.call(this.el.querySelectorAll(t)))):e},queryByHook:function(t){return this.query('[data-hook~="'+t+'"]')},queryAllByHook:function(t){return this.queryAll('[data-hook~="'+t+'"]')},initialize:function(){},render:function(){return this.renderWithTemplate(this),this},remove:function(){var t=this._parsedBindings;return this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el),this._subviews&&g(v(this._subviews),"remove"),this.trigger("remove",this),this.stopListening(),c(t,function(e,n){c(e,function(e,r){delete t[n][r]}),delete t[n]}),this},_handleElementChange:function(t,e){return this.eventManager&&this.eventManager.unbind(),this.eventManager=y(this.el,this),this.delegateEvents(),this._applyBindingsForKey(),this},delegateEvents:function(t){if(!t&&!(t=f(this,"events")))return this;this.undelegateEvents();for(var e in t)this.eventManager.bind(e,t[e]);return this},undelegateEvents:function(){return this.eventManager.unbind(),this},registerSubview:function(t){return this._subviews||(this._subviews=[]),this._subviews.push(t),t.parent||(t.parent=this),t},renderSubview:function(t,e){return"string"==typeof e&&(e=this.query(e)),this.registerSubview(t),t.render(),(e||this.el).appendChild(t.el),t},_applyBindingsForKey:function(t){if(this.el){var e,n=this._parsedBindings.getGrouped(t);for(e in n)n[e].forEach(function(t){t(this.el,x(this,e),h(e.split(".")))},this)}},_initializeBindings:function(){this.bindings&&this.on("all",function(t){"change:"===t.slice(0,7)&&this._applyBindingsForKey(t.split(":")[1])},this)},_initializeSubviews:function(){if(this.subviews)for(var t in this.subviews)this._parseSubview(this.subviews[t],t)},_parseSubview:function(t,e){function n(){var t,r;this.el&&(t=this.query(i.selector))&&(i.waitFor&&!x(this,i.waitFor)||(r=this[e]=i.prepareView.call(this,t),r.render(),this.registerSubview(r),this.off("change",n)))}var r=this,i={selector:t.container||'[data-hook="'+t.hook+'"]',waitFor:t.waitFor||"",prepareView:t.prepareView||function(e){return new t.constructor({el:e,parent:r})}};this.on("change",n,this)},renderWithTemplate:function(t,e){var n=e||this.template;if(!n)throw new Error("Template string or function needed.");var r=p(n)?n:n.call(this,t||this);p(r)&&(r=a(r));var i=this.el&&this.el.parentNode;if(i&&i.replaceChild(r,this.el),"#document-fragment"===r.nodeName)throw new Error("Views can only have one root element, including comment nodes.");return this.el=r,this},cacheElements:function(t){for(var e in t)this[e]=this.query(t[e]);return this},listenToAndRun:function(t,e,n){var r=d(n,this);this.listenTo(t,e,r),r()},animateRemove:function(){this.remove()},renderCollection:function(t,e,n,r){var i="string"==typeof n?this.query(n):n,a=l({collection:t,el:i||this.el,view:e,parent:this,viewOptions:{parent:this}},r),u=new o(a);return u.render(),this.registerSubview(u)}}),r.extend=w.extend,e.exports=r},{"ampersand-collection-view":12,"ampersand-dom-bindings":14,"ampersand-state":17,domify:36,"events-mixin":37,"get-object-path":38,"lodash.assign":72,"lodash.bind":74,"lodash.flatten":78,"lodash.foreach":79,"lodash.invoke":83,"lodash.isstring":91,"lodash.last":95,"lodash.pick":100,"lodash.result":102,"lodash.uniqueid":104,"matches-selector":106}],20:[function(t,e,n){e.exports=function(t,e){var n=t.length,r=t.indexOf(e)+1;return r>n-1&&(r=0),t[r]}},{}],21:[function(t,e,n){!function(){function t(){return{keys:Object.keys,uniqueId:function(t){var e=++l+"";return t?t+e:e},has:function(t,e){return u.call(t,e)},each:function(t,e,n){if(null!=t)if(a&&t.forEach===a)t.forEach(e,n);else if(t.length===+t.length){for(var r=0,i=t.length;r<i;r++)if(e.call(n,t[r],r,t)===o)return}else for(var u in t)if(this.has(t,u)&&e.call(n,t[u],u,t)===o)return},once:function(t){var e,n=!1;return function(){return n?e:(n=!0,e=t.apply(this,arguments),t=null,e)}}}}var r,i=this,o={},a=Array.prototype.forEach,u=Object.prototype.hasOwnProperty,s=Array.prototype.slice,l=0,c=t();r={on:function(t,e,n){if(!h(this,"on",t,[e,n])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);return r.push({callback:e,context:n,ctx:n||this}),this},once:function(t,e,n){if(!h(this,"once",t,[e,n])||!e)return this;var r=this,i=c.once(function(){r.off(t,i),e.apply(this,arguments)});return i._callback=e,this.on(t,i,n)},off:function(t,e,n){var r,i,o,a,u,s,l,f;if(!this._events||!h(this,"off",t,[e,n]))return this;if(!t&&!e&&!n)return this._events={},this;for(a=t?[t]:c.keys(this._events),u=0,s=a.length;u<s;u++)if(t=a[u],o=this._events[t]){if(this._events[t]=r=[],e||n)for(l=0,f=o.length;l<f;l++)i=o[l],(e&&e!==i.callback&&e!==i.callback._callback||n&&n!==i.context)&&r.push(i);r.length||delete this._events[t]}return this},trigger:function(t){if(!this._events)return this;var e=s.call(arguments,1);if(!h(this,"trigger",t,e))return this;var n=this._events[t],r=this._events.all;return n&&p(n,e),r&&p(r,arguments),this},stopListening:function(t,e,n){var r=this._listeners;if(!r)return this;var i=!e&&!n;"object"==typeof e&&(n=this),t&&((r={})[t._listenerId]=t);for(var o in r)r[o].off(e,n,this),i&&delete this._listeners[o];return this}};var f=/\s+/,h=function(t,e,n,r){if(!n)return!0;if("object"==typeof n){for(var i in n)t[e].apply(t,[i,n[i]].concat(r));return!1}if(f.test(n)){for(var o=n.split(f),a=0,u=o.length;a<u;a++)t[e].apply(t,[o[a]].concat(r));return!1}return!0},p=function(t,e){var n,r=-1,i=t.length,o=e[0],a=e[1],u=e[2];switch(e.length){case 0:for(;++r<i;)(n=t[r]).callback.call(n.ctx);return;case 1:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o);return;case 2:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o,a);return;case 3:for(;++r<i;)(n=t[r]).callback.call(n.ctx,o,a,u);return;default:for(;++r<i;)(n=t[r]).callback.apply(n.ctx,e)}},d={listenTo:"on",listenToOnce:"once"};c.each(d,function(t,e){r[e]=function(e,n,r){var i=this._listeners||(this._listeners={}),o=e._listenerId||(e._listenerId=c.uniqueId("l"));return i[o]=e,"object"==typeof n&&(r=this),e[t](n,r,this),this}}),r.bind=r.on,r.unbind=r.off,r.mixin=function(t){var e=["on","once","off","trigger","stopListening","listenTo","listenToOnce","bind","unbind"];return c.each(e,function(e){t[e]=this[e]},this),t},"function"==typeof define?define(function(){return r}):"undefined"!=typeof n?("undefined"!=typeof e&&e.exports&&(n=e.exports=r),n.BackboneEvents=r):i.BackboneEvents=r}(this)},{}],22:[function(t,e,n){e.exports=t("./backbone-events-standalone")},{"./backbone-events-standalone":21}],23:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var r=t(this),data=r.data("bs.button"),i="object"==typeof e&&e;data||r.data("bs.button",data=new n(this,i)),"toggle"==e?data.toggle():e&&data.setState(e)})}var n=function(e,r){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,r),this.isLoading=!1};n.VERSION="3.2.0",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(e){var n="disabled",r=this.$element,i=r.is("input")?"val":"html",data=r.data();e+="Text",null==data.resetText&&r.data("resetText",r[i]()),r[i](null==data[e]?this.options[e]:data[e]),setTimeout(t.proxy(function(){"loadingText"==e?(this.isLoading=!0,r.addClass(n).attr(n,n)):this.isLoading&&(this.isLoading=!1,r.removeClass(n).removeAttr(n))},this),0)},n.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var n=this.$element.find("input");"radio"==n.prop("type")&&(n.prop("checked")&&this.$element.hasClass("active")?t=!1:e.find(".active").removeClass("active")),t&&n.prop("checked",!this.$element.hasClass("active")).trigger("change")}t&&this.$element.toggleClass("active")};var r=t.fn.button;t.fn.button=e,t.fn.button.Constructor=n,t.fn.button.noConflict=function(){return t.fn.button=r,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var r=t(n.target);r.hasClass("btn")||(r=r.closest(".btn")),e.call(r,"toggle"),n.preventDefault()})}(jQuery)},{}],24:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var r=t(this),data=r.data("bs.collapse"),i=t.extend({},n.DEFAULTS,r.data(),"object"==typeof e&&e);!data&&i.toggle&&"show"==e&&(e=!e),data||r.data("bs.collapse",data=new n(this,i)),"string"==typeof e&&data[e]()})}var n=function(e,r){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,r),this.transitioning=null,this.options.parent&&(this.$parent=t(this.options.parent)),this.options.toggle&&this.toggle()};n.VERSION="3.2.0",n.DEFAULTS={toggle:!0},n.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},n.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var n=t.Event("show.bs.collapse");if(this.$element.trigger(n),!n.isDefaultPrevented()){var r=this.$parent&&this.$parent.find("> .panel > .in");if(r&&r.length){var i=r.data("bs.collapse");if(i&&i.transitioning)return;e.call(r,"hide"),i||r.data("bs.collapse",null)}var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[o](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return a.call(this);var u=t.camelCase(["scroll",o].join("-"));this.$element.one("bsTransitionEnd",t.proxy(a,this)).emulateTransitionEnd(350)[o](this.$element[0][u])}}},n.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var r=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return t.support.transition?void this.$element[n](0).one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(350):r.call(this)}}},n.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var r=t.fn.collapse;t.fn.collapse=e,t.fn.collapse.Constructor=n,t.fn.collapse.noConflict=function(){return t.fn.collapse=r,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(n){var r,i=t(this),o=i.attr("data-target")||n.preventDefault()||(r=i.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),a=t(o),data=a.data("bs.collapse"),u=data?"toggle":i.data(),s=i.attr("data-parent"),l=s&&t(s);data&&data.transitioning||(l&&l.find('[data-toggle="collapse"][data-parent="'+s+'"]').not(i).addClass("collapsed"),i[a.hasClass("in")?"addClass":"removeClass"]("collapsed")),e.call(a,u)})}(jQuery)},{}],25:[function(t,e,n){+function(t){"use strict";function e(e){e&&3===e.which||(t(i).remove(),t(o).each(function(){var r=n(t(this)),i={relatedTarget:this};r.hasClass("open")&&(r.trigger(e=t.Event("hide.bs.dropdown",i)),e.isDefaultPrevented()||r.removeClass("open").trigger("hidden.bs.dropdown",i))}))}function n(e){var n=e.attr("data-target");n||(n=e.attr("href"),n=n&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r=n&&t(n);return r&&r.length?r:e.parent()}function r(e){return this.each(function(){var n=t(this),data=n.data("bs.dropdown");data||n.data("bs.dropdown",data=new a(this)),"string"==typeof e&&data[e].call(n)})}var i=".dropdown-backdrop",o='[data-toggle="dropdown"]',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.2.0",a.prototype.toggle=function(r){var i=t(this);if(!i.is(".disabled, :disabled")){var o=n(i),a=o.hasClass("open");if(e(),!a){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&t('<div class="dropdown-backdrop"/>').insertAfter(t(this)).on("click",e);var u={relatedTarget:this};if(o.trigger(r=t.Event("show.bs.dropdown",u)),r.isDefaultPrevented())return;i.trigger("focus"),o.toggleClass("open").trigger("shown.bs.dropdown",u)}return!1}},a.prototype.keydown=function(e){if(/(38|40|27)/.test(e.keyCode)){var r=t(this);if(e.preventDefault(),e.stopPropagation(),!r.is(".disabled, :disabled")){var i=n(r),a=i.hasClass("open");if(!a||a&&27==e.keyCode)return 27==e.which&&i.find(o).trigger("focus"),r.trigger("click");var u=" li:not(.divider):visible a",s=i.find('[role="menu"]'+u+', [role="listbox"]'+u);if(s.length){var l=s.index(s.filter(":focus"));38==e.keyCode&&l>0&&l--,40==e.keyCode&&l<s.length-1&&l++,~l||(l=0),s.eq(l).trigger("focus")}}}};var u=t.fn.dropdown;t.fn.dropdown=r,t.fn.dropdown.Constructor=a,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=u,this},t(document).on("click.bs.dropdown.data-api",e).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",o,a.prototype.toggle).on("keydown.bs.dropdown.data-api",o+', [role="menu"], [role="listbox"]',a.prototype.keydown)}(jQuery)},{}],26:[function(t,e,n){+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in e)if(void 0!==t.style[n])return{end:e[n]};return!1}t.fn.emulateTransitionEnd=function(e){var n=!1,r=this;t(this).one("bsTransitionEnd",function(){n=!0});var i=function(){n||t(r).trigger(t.support.transition.end)};return setTimeout(i,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}})})}(jQuery)},{}],27:[function(t,e,n){},{}],28:[function(t,e,n){function r(){}var i=e.exports={};i.nextTick=function(){var t="undefined"!=typeof window&&window.setImmediate,e="undefined"!=typeof window&&window.MutationObserver,n="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(t)return function(t){return window.setImmediate(t)};var r=[];if(e){var i=document.createElement("div"),o=new MutationObserver(function(){var t=r.slice();r.length=0,t.forEach(function(t){t()})});return o.observe(i,{attributes:!0}),function(t){r.length||i.setAttribute("yes","no"),r.push(t)}}return n?(window.addEventListener("message",function(t){var e=t.source;if((e===window||null===e)&&"process-tick"===t.data&&(t.stopPropagation(),r.length>0)){var n=r.shift();n()}},!0),function(t){r.push(t),window.postMessage("process-tick","*")}):function(t){setTimeout(t,0)}}(),i.title="browser",i.browser=!0,i.env={},i.argv=[],i.on=r,i.addListener=r,i.once=r,i.off=r,i.removeListener=r,i.removeAllListeners=r,i.emit=r,i.binding=function(t){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw new Error("process.chdir is not supported")}},{}],29:[function(t,e,n){var r=t("matches-selector");e.exports=function(t,e,n){for(var i=n?t:t.parentNode;i&&i!==document;){if(r(i,e))return i;i=i.parentNode}}},{"matches-selector":30}],30:[function(t,e,n){function r(t,e){if(o)return o.call(t,e);for(var n=t.parentNode.querySelectorAll(e),r=0;r<n.length;++r)if(n[r]==t)return!0;return!1}var i=Element.prototype,o=i.matchesSelector||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector;e.exports=r},{}],31:[function(t,e,n){var r=window.addEventListener?"addEventListener":"attachEvent",i=window.removeEventListener?"removeEventListener":"detachEvent",o="addEventListener"!==r?"on":"";n.bind=function(t,e,n,i){return t[r](o+e,n,i||!1),n},n.unbind=function(t,e,n,r){return t[i](o+e,n,r||!1),n}},{}],32:[function(t,e,n){!function(){function t(t){return t&&(t.ownerDocument||t.document||t).documentElement}function n(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}function r(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function i(t){return null===t?NaN:+t}function o(t){return!isNaN(t)}function a(t){return{left:function(e,n,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=e.length);r<i;){var o=r+i>>>1;t(e[o],n)<0?r=o+1:i=o}return r},right:function(e,n,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=e.length);r<i;){var o=r+i>>>1;t(e[o],n)>0?i=o:r=o+1}return r}}}function u(t){return t.length}function s(t){for(var e=1;t*e%1;)e*=10;return e}function l(t,e){for(var n in e)Object.defineProperty(t.prototype,n,{value:e[n],enumerable:!1})}function c(){this._=Object.create(null)}function f(t){return(t+="")===_a||t[0]===Ma?Ma+t:t}function h(t){return(t+="")[0]===Ma?t.slice(1):t}function p(t){return f(t)in this._}function d(t){return(t=f(t))in this._&&delete this._[t]}function v(){var t=[];for(var e in this._)t.push(h(e));return t}function g(){var t=0;for(var e in this._)++t;return t}function y(){for(var t in this._)return!1;return!0}function m(){this._=Object.create(null)}function b(t){return t}function x(t,e,n){return function(){var r=n.apply(e,arguments);return r===e?t:r}}function w(t,e){if(e in t)return e;e=e.charAt(0).toUpperCase()+e.slice(1);for(var n=0,r=ka.length;n<r;++n){var i=ka[n]+e;if(i in t)return i}}function _(){}function M(){}function k(t){function e(){for(var e,r=n,i=-1,o=r.length;++i<o;)(e=r[i].on)&&e.apply(this,arguments);return t}var n=[],r=new c;return e.on=function(e,i){var o,a=r.get(e);return arguments.length<2?a&&a.on:(a&&(a.on=null,n=n.slice(0,o=n.indexOf(a)).concat(n.slice(o+1)),r.remove(e)),i&&n.push(r.set(e,{on:i})),t)},e}function E(){la.event.preventDefault()}function j(){for(var t,e=la.event;t=e.sourceEvent;)e=t;return e}function C(t){for(var e=new M,n=0,r=arguments.length;++n<r;)e[arguments[n]]=k(e);return e.of=function(n,r){return function(i){try{var o=i.sourceEvent=la.event;i.target=t,la.event=i,e[i.type].apply(n,r)}finally{la.event=o}}},e}function S(t){return ja(t,Aa),t}function T(t){return"function"==typeof t?t:function(){return Ca(t,this)}}function A(t){return"function"==typeof t?t:function(){return Sa(t,this)}}function N(t,e){function n(){this.removeAttribute(t)}function r(){this.removeAttributeNS(t.space,t.local)}function i(){this.setAttribute(t,e)}function o(){this.setAttributeNS(t.space,t.local,e)}function a(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}function u(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}return t=la.ns.qualify(t),null==e?t.local?r:n:"function"==typeof e?t.local?u:a:t.local?o:i}function O(t){return t.trim().replace(/\s+/g," ")}function q(t){return new RegExp("(?:^|\\s+)"+la.requote(t)+"(?:\\s+|$)","g")}function D(t){return(t+"").trim().split(/^|\s+/)}function L(t,e){function n(){for(var n=-1;++n<i;)t[n](this,e)}function r(){for(var n=-1,r=e.apply(this,arguments);++n<i;)t[n](this,r)}t=D(t).map(F);var i=t.length;return"function"==typeof e?r:n}function F(t){var e=q(t);return function(n,r){if(i=n.classList)return r?i.add(t):i.remove(t);var i=n.getAttribute("class")||"";r?(e.lastIndex=0,e.test(i)||n.setAttribute("class",O(i+" "+t))):n.setAttribute("class",O(i.replace(e," ")))}}function z(t,e,n){function r(){this.style.removeProperty(t)}function i(){this.style.setProperty(t,e,n)}function o(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}return null==e?r:"function"==typeof e?o:i}function R(t,e){function n(){delete this[t]}function r(){this[t]=e}function i(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}return null==e?n:"function"==typeof e?i:r}function P(t){function e(){var e=this.ownerDocument,n=this.namespaceURI;return n===Na&&e.documentElement.namespaceURI===Na?e.createElement(t):e.createElementNS(n,t)}function n(){return this.ownerDocument.createElementNS(t.space,t.local)}return"function"==typeof t?t:(t=la.ns.qualify(t)).local?n:e}function I(){var t=this.parentNode;t&&t.removeChild(this)}function H(data){return{__data__:data}}function $(t){return function(){return Ta(this,t)}}function B(t){return arguments.length||(t=r),function(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}}function V(t,e){for(var n=0,r=t.length;n<r;n++)for(var i,o=t[n],a=0,u=o.length;a<u;a++)(i=o[a])&&e(i,a,n);return t}function U(t){return ja(t,qa),t}function W(t){var e,n;return function(r,i,o){var a,u=t[o].update,s=u.length;for(o!=n&&(n=o,e=0),i>=e&&(e=i+1);!(a=u[e])&&++e<s;);return a}}function Y(t,e,n){function r(){var e=this[a];e&&(this.removeEventListener(t,e,e.$),delete this[a])}function i(){var i=s(e,fa(arguments));r.call(this),this.addEventListener(t,this[a]=i,i.$=n),i._=e}function o(){var e,n=new RegExp("^__on([^.]+)"+la.requote(t)+"$");for(var r in this)if(e=r.match(n)){var i=this[r];this.removeEventListener(e[1],i,i.$),delete this[r]}}var a="__on"+t,u=t.indexOf("."),s=X;u>0&&(t=t.slice(0,u));var l=Da.get(t);return l&&(t=l,s=J),u?e?i:r:e?_:o}function X(t,e){return function(n){var r=la.event;la.event=n,e[0]=this.__data__;try{t.apply(this,e)}finally{la.event=r}}}function J(t,e){var n=X(t,e);return function(t){var e=this,r=t.relatedTarget;r&&(r===e||8&r.compareDocumentPosition(e))||n.call(e,t)}}function Z(e){var r=".dragsuppress-"+ ++Fa,i="click"+r,o=la.select(n(e)).on("touchmove"+r,E).on("dragstart"+r,E).on("selectstart"+r,E);if(null==La&&(La=!("onselectstart"in e)&&w(e.style,"userSelect")),La){var a=t(e).style,u=a[La];a[La]="none"}return function(t){if(o.on(r,null),La&&(a[La]=u),t){var e=function(){o.on(i,null)};o.on(i,function(){E(),e()},!0),setTimeout(e,0)}}}function G(t,e){e.changedTouches&&(e=e.changedTouches[0]);var r=t.ownerSVGElement||t;if(r.createSVGPoint){var i=r.createSVGPoint();if(za<0){var o=n(t);if(o.scrollX||o.scrollY){r=la.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var a=r[0][0].getScreenCTM();za=!(a.f||a.e),r.remove()}}return za?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(t.getScreenCTM().inverse()),[i.x,i.y]}var u=t.getBoundingClientRect();return[e.clientX-u.left-t.clientLeft,e.clientY-u.top-t.clientTop]}function K(){return la.event.changedTouches[0].identifier}function Q(t){return t>0?1:t<0?-1:0}function tt(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(e[1]-t[1])*(n[0]-t[0])}function et(t){return t>1?0:t<-1?Ia:Math.acos(t)}function nt(t){return t>1?Ba:t<-1?-Ba:Math.asin(t)}function rt(t){return((t=Math.exp(t))-1/t)/2}function it(t){return((t=Math.exp(t))+1/t)/2}function ot(t){return((t=Math.exp(2*t))-1)/(t+1)}function at(t){return(t=Math.sin(t/2))*t}function ut(){}function st(t,e,n){return this instanceof st?(this.h=+t,this.s=+e,void(this.l=+n)):arguments.length<2?t instanceof st?new st(t.h,t.s,t.l):_t(""+t,Mt,st):new st(t,e,n)}function lt(t,e,n){function r(t){return t>360?t-=360:t<0&&(t+=360),t<60?o+(a-o)*t/60:t<180?a:t<240?o+(a-o)*(240-t)/60:o}function i(t){return Math.round(255*r(t))}var o,a;return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)?0:e<0?0:e>1?1:e,n=n<0?0:n>1?1:n,a=n<=.5?n*(1+e):n+e-n*e,o=2*n-a,new mt(i(t+120),i(t),i(t-120)); +}function ct(t,e,n){return this instanceof ct?(this.h=+t,this.c=+e,void(this.l=+n)):arguments.length<2?t instanceof ct?new ct(t.h,t.c,t.l):t instanceof ht?dt(t.l,t.a,t.b):dt((t=kt((t=la.rgb(t)).r,t.g,t.b)).l,t.a,t.b):new ct(t,e,n)}function ft(t,e,n){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new ht(n,Math.cos(t*=Va)*e,Math.sin(t)*e)}function ht(t,e,n){return this instanceof ht?(this.l=+t,this.a=+e,void(this.b=+n)):arguments.length<2?t instanceof ht?new ht(t.l,t.a,t.b):t instanceof ct?ft(t.h,t.c,t.l):kt((t=mt(t)).r,t.g,t.b):new ht(t,e,n)}function pt(t,e,n){var r=(t+16)/116,i=r+e/500,o=r-n/200;return i=vt(i)*eu,r=vt(r)*nu,o=vt(o)*ru,new mt(yt(3.2404542*i-1.5371385*r-.4985314*o),yt(-.969266*i+1.8760108*r+.041556*o),yt(.0556434*i-.2040259*r+1.0572252*o))}function dt(t,e,n){return t>0?new ct(Math.atan2(n,e)*Ua,Math.sqrt(e*e+n*n),t):new ct(NaN,NaN,t)}function vt(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function gt(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function yt(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function mt(t,e,n){return this instanceof mt?(this.r=~~t,this.g=~~e,void(this.b=~~n)):arguments.length<2?t instanceof mt?new mt(t.r,t.g,t.b):_t(""+t,mt,lt):new mt(t,e,n)}function bt(t){return new mt(t>>16,t>>8&255,255&t)}function xt(t){return bt(t)+""}function wt(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function _t(t,e,n){var r,i,o,a=0,u=0,s=0;if(r=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return n(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return e(jt(i[0]),jt(i[1]),jt(i[2]))}return(o=au.get(t))?e(o.r,o.g,o.b):(null==t||"#"!==t.charAt(0)||isNaN(o=parseInt(t.slice(1),16))||(4===t.length?(a=(3840&o)>>4,a=a>>4|a,u=240&o,u=u>>4|u,s=15&o,s=s<<4|s):7===t.length&&(a=(16711680&o)>>16,u=(65280&o)>>8,s=255&o)),e(a,u,s))}function Mt(t,e,n){var r,i,o=Math.min(t/=255,e/=255,n/=255),a=Math.max(t,e,n),u=a-o,s=(a+o)/2;return u?(i=s<.5?u/(a+o):u/(2-a-o),r=t==a?(e-n)/u+(e<n?6:0):e==a?(n-t)/u+2:(t-e)/u+4,r*=60):(r=NaN,i=s>0&&s<1?0:r),new st(r,i,s)}function kt(t,e,n){t=Et(t),e=Et(e),n=Et(n);var r=gt((.4124564*t+.3575761*e+.1804375*n)/eu),i=gt((.2126729*t+.7151522*e+.072175*n)/nu),o=gt((.0193339*t+.119192*e+.9503041*n)/ru);return ht(116*i-16,500*(r-i),200*(i-o))}function Et(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function jt(t){var e=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*e):e}function Ct(t){return"function"==typeof t?t:function(){return t}}function St(t){return function(e,n,r){return 2===arguments.length&&"function"==typeof n&&(r=n,n=null),Tt(e,n,t,r)}}function Tt(t,e,n,r){function i(){var t,e=s.status;if(!e&&Nt(s)||e>=200&&e<300||304===e){try{t=n.call(o,s)}catch(r){return void a.error.call(o,r)}a.load.call(o,t)}else a.error.call(o,s)}var o={},a=la.dispatch("beforesend","progress","load","error"),u={},s=new XMLHttpRequest,l=null;return!this.XDomainRequest||"withCredentials"in s||!/^(http(s)?:)?\/\//.test(t)||(s=new XDomainRequest),"onload"in s?s.onload=s.onerror=i:s.onreadystatechange=function(){s.readyState>3&&i()},s.onprogress=function(t){var e=la.event;la.event=t;try{a.progress.call(o,s)}finally{la.event=e}},o.header=function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?u[t]:(null==e?delete u[t]:u[t]=e+"",o)},o.mimeType=function(t){return arguments.length?(e=null==t?null:t+"",o):e},o.responseType=function(t){return arguments.length?(l=t,o):l},o.response=function(t){return n=t,o},["get","post"].forEach(function(t){o[t]=function(){return o.send.apply(o,[t].concat(fa(arguments)))}}),o.send=function(n,data,r){if(2===arguments.length&&"function"==typeof data&&(r=data,data=null),s.open(n,t,!0),null==e||"accept"in u||(u.accept=e+",*/*"),s.setRequestHeader)for(var i in u)s.setRequestHeader(i,u[i]);return null!=e&&s.overrideMimeType&&s.overrideMimeType(e),null!=l&&(s.responseType=l),null!=r&&o.on("error",r).on("load",function(t){r(null,t)}),a.beforesend.call(o,s),s.send(null==data?null:data),o},o.abort=function(){return s.abort(),o},la.rebind(o,a,"on"),null==r?o:o.get(At(r))}function At(t){return 1===t.length?function(e,n){t(null==e?n:null)}:t}function Nt(t){var e=t.responseType;return e&&"text"!==e?t.response:t.responseText}function Ot(t,e,n){var r=arguments.length;r<2&&(e=0),r<3&&(n=Date.now());var i=n+e,o={c:t,t:i,n:null};return su?su.n=o:uu=o,su=o,lu||(cu=clearTimeout(cu),lu=1,fu(qt)),o}function qt(){var t=Dt(),e=Lt()-t;e>24?(isFinite(e)&&(clearTimeout(cu),cu=setTimeout(qt,e)),lu=0):(lu=1,fu(qt))}function Dt(){for(var t=Date.now(),e=uu;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Lt(){for(var t,e=uu,n=1/0;e;)e.c?(e.t<n&&(n=e.t),e=(t=e).n):e=t?t.n=e.n:uu=e.n;return su=t,n}function Ft(t,e){return e-(t?Math.ceil(Math.log(t)/Math.LN10):1)}function zt(t,e){var n=Math.pow(10,3*wa(8-e));return{scale:e>8?function(t){return t/n}:function(t){return t*n},symbol:t}}function Rt(t){var e=t.decimal,n=t.thousands,r=t.grouping,i=t.currency,o=r&&n?function(t,e){for(var i=t.length,o=[],a=0,u=r[0],s=0;i>0&&u>0&&(s+u+1>e&&(u=Math.max(1,e-s)),o.push(t.substring(i-=u,i+u)),!((s+=u+1)>e));)u=r[a=(a+1)%r.length];return o.reverse().join(n)}:b;return function(t){var n=pu.exec(t),r=n[1]||" ",a=n[2]||">",u=n[3]||"-",s=n[4]||"",l=n[5],c=+n[6],f=n[7],h=n[8],p=n[9],d=1,v="",g="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===a)&&(l=r="0",a="="),p){case"n":f=!0,p="g";break;case"%":d=100,g="%",p="f";break;case"p":d=100,g="%",p="r";break;case"b":case"o":case"x":case"X":"#"===s&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":d=-1,p="r"}"$"===s&&(v=i[0],g=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=du.get(p)||Pt;var b=l&&f;return function(t){var n=g;if(y&&t%1)return"";var i=t<0||0===t&&1/t<0?(t=-t,"-"):"-"===u?"":u;if(d<0){var s=la.formatPrefix(t,h);t=s.scale(t),n=s.symbol+g}else t*=d;t=p(t,h);var x,w,_=t.lastIndexOf(".");if(_<0){var M=m?t.lastIndexOf("e"):-1;M<0?(x=t,w=""):(x=t.substring(0,M),w=t.substring(M))}else x=t.substring(0,_),w=e+t.substring(_+1);!l&&f&&(x=o(x,1/0));var k=v.length+x.length+w.length+(b?0:i.length),E=k<c?new Array(k=c-k+1).join(r):"";return b&&(x=o(E+x,E.length?c-w.length:1/0)),i+=v,t=x+w,("<"===a?i+t+E:">"===a?E+i+t:"^"===a?E.substring(0,k>>=1)+i+t+E.substring(k):i+(b?t:E+t))+n}}}function Pt(t){return t+""}function It(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ht(t,e,n){function r(e){var n=t(e),r=o(n,1);return e-n<r-e?n:r}function i(n){return e(n=t(new gu(n-1)),1),n}function o(t,n){return e(t=new gu((+t)),n),t}function a(t,r,o){var a=i(t),u=[];if(o>1)for(;a<r;)n(a)%o||u.push(new Date((+a))),e(a,1);else for(;a<r;)u.push(new Date((+a))),e(a,1);return u}function u(t,e,n){try{gu=It;var r=new It;return r._=t,a(r,e,n)}finally{gu=Date}}t.floor=t,t.round=r,t.ceil=i,t.offset=o,t.range=a;var s=t.utc=$t(t);return s.floor=s,s.round=$t(r),s.ceil=$t(i),s.offset=$t(o),s.range=u,t}function $t(t){return function(e,n){try{gu=It;var r=new It;return r._=e,t(r,n)._}finally{gu=Date}}}function Bt(t){function e(t){function e(e){for(var n,i,o,a=[],u=-1,s=0;++u<r;)37===t.charCodeAt(u)&&(a.push(t.slice(s,u)),null!=(i=mu[n=t.charAt(++u)])&&(n=t.charAt(++u)),(o=S[n])&&(n=o(e,null==i?"e"===n?" ":"0":i)),a.push(n),s=u+1);return a.push(t.slice(s,u)),a.join("")}var r=t.length;return e.parse=function(e){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=n(r,t,e,0);if(i!=e.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var o=null!=r.Z&&gu!==It,a=new(o?It:gu);return"j"in r?a.setFullYear(r.y,0,r.j):"W"in r||"U"in r?("w"in r||(r.w="W"in r?1:0),a.setFullYear(r.y,0,1),a.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(a.getDay()+5)%7:r.w+7*r.U-(a.getDay()+6)%7)):a.setFullYear(r.y,r.m,r.d),a.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),o?a._:a},e.toString=function(){return t},e}function n(t,e,n,r){for(var i,o,a,u=0,s=e.length,l=n.length;u<s;){if(r>=l)return-1;if(i=e.charCodeAt(u++),37===i){if(a=e.charAt(u++),o=T[a in mu?e.charAt(u++):a],!o||(r=o(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}function r(t,e,n){_.lastIndex=0;var r=_.exec(e.slice(n));return r?(t.w=M.get(r[0].toLowerCase()),n+r[0].length):-1}function i(t,e,n){x.lastIndex=0;var r=x.exec(e.slice(n));return r?(t.w=w.get(r[0].toLowerCase()),n+r[0].length):-1}function o(t,e,n){j.lastIndex=0;var r=j.exec(e.slice(n));return r?(t.m=C.get(r[0].toLowerCase()),n+r[0].length):-1}function a(t,e,n){k.lastIndex=0;var r=k.exec(e.slice(n));return r?(t.m=E.get(r[0].toLowerCase()),n+r[0].length):-1}function u(t,e,r){return n(t,S.c.toString(),e,r)}function s(t,e,r){return n(t,S.x.toString(),e,r)}function l(t,e,r){return n(t,S.X.toString(),e,r)}function c(t,e,n){var r=b.get(e.slice(n,n+=2).toLowerCase());return null==r?-1:(t.p=r,n)}var f=t.dateTime,h=t.date,p=t.time,d=t.periods,v=t.days,g=t.shortDays,y=t.months,m=t.shortMonths;e.utc=function(t){function n(t){try{gu=It;var e=new gu;return e._=t,r(e)}finally{gu=Date}}var r=e(t);return n.parse=function(t){try{gu=It;var e=r.parse(t);return e&&e._}finally{gu=Date}},n.toString=r.toString,n},e.multi=e.utc.multi=le;var b=la.map(),x=Ut(v),w=Wt(v),_=Ut(g),M=Wt(g),k=Ut(y),E=Wt(y),j=Ut(m),C=Wt(m);d.forEach(function(t,e){b.set(t.toLowerCase(),e)});var S={a:function(t){return g[t.getDay()]},A:function(t){return v[t.getDay()]},b:function(t){return m[t.getMonth()]},B:function(t){return y[t.getMonth()]},c:e(f),d:function(t,e){return Vt(t.getDate(),e,2)},e:function(t,e){return Vt(t.getDate(),e,2)},H:function(t,e){return Vt(t.getHours(),e,2)},I:function(t,e){return Vt(t.getHours()%12||12,e,2)},j:function(t,e){return Vt(1+vu.dayOfYear(t),e,3)},L:function(t,e){return Vt(t.getMilliseconds(),e,3)},m:function(t,e){return Vt(t.getMonth()+1,e,2)},M:function(t,e){return Vt(t.getMinutes(),e,2)},p:function(t){return d[+(t.getHours()>=12)]},S:function(t,e){return Vt(t.getSeconds(),e,2)},U:function(t,e){return Vt(vu.sundayOfYear(t),e,2)},w:function(t){return t.getDay()},W:function(t,e){return Vt(vu.mondayOfYear(t),e,2)},x:e(h),X:e(p),y:function(t,e){return Vt(t.getFullYear()%100,e,2)},Y:function(t,e){return Vt(t.getFullYear()%1e4,e,4)},Z:ue,"%":function(){return"%"}},T={a:r,A:i,b:o,B:a,c:u,d:ee,e:ee,H:re,I:re,j:ne,L:ae,m:te,M:ie,p:c,S:oe,U:Xt,w:Yt,W:Jt,x:s,X:l,y:Gt,Y:Zt,Z:Kt,"%":se};return e}function Vt(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function Ut(t){return new RegExp("^(?:"+t.map(la.requote).join("|")+")","i")}function Wt(t){for(var e=new c,n=-1,r=t.length;++n<r;)e.set(t[n].toLowerCase(),n);return e}function Yt(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Xt(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n));return r?(t.U=+r[0],n+r[0].length):-1}function Jt(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n));return r?(t.W=+r[0],n+r[0].length):-1}function Zt(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Gt(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+2));return r?(t.y=Qt(+r[0]),n+r[0].length):-1}function Kt(t,e,n){return/^[+-]\d{4}$/.test(e=e.slice(n,n+5))?(t.Z=-e,n+5):-1}function Qt(t){return t+(t>68?1900:2e3)}function te(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function ee(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function ne(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+3));return r?(t.j=+r[0],n+r[0].length):-1}function re(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function ie(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function oe(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function ae(t,e,n){bu.lastIndex=0;var r=bu.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function ue(t){var e=t.getTimezoneOffset(),n=e>0?"-":"+",r=wa(e)/60|0,i=wa(e)%60;return n+Vt(r,"0",2)+Vt(i,"0",2)}function se(t,e,n){xu.lastIndex=0;var r=xu.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function le(t){for(var e=t.length,n=-1;++n<e;)t[n][0]=this(t[n][0]);return function(e){for(var n=0,r=t[n];!r[1](e);)r=t[++n];return r[0](e)}}function ce(){}function fe(t,e,n){var r=n.s=t+e,i=r-t,o=r-i;n.t=t-o+(e-i)}function he(t,e){t&&ku.hasOwnProperty(t.type)&&ku[t.type](t,e)}function pe(t,e,n){var r,i=-1,o=t.length-n;for(e.lineStart();++i<o;)r=t[i],e.point(r[0],r[1],r[2]);e.lineEnd()}function de(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)pe(t[n],e,1);e.polygonEnd()}function ve(){function t(t,e){t*=Va,e=e*Va/2+Ia/4;var n=t-r,a=n>=0?1:-1,u=a*n,s=Math.cos(e),l=Math.sin(e),c=o*l,f=i*s+c*Math.cos(u),h=c*a*Math.sin(u);ju.add(Math.atan2(h,f)),r=t,i=s,o=l}var e,n,r,i,o;Cu.point=function(a,u){Cu.point=t,r=(e=a)*Va,i=Math.cos(u=(n=u)*Va/2+Ia/4),o=Math.sin(u)},Cu.lineEnd=function(){t(e,n)}}function ge(t){var e=t[0],n=t[1],r=Math.cos(n);return[r*Math.cos(e),r*Math.sin(e),Math.sin(n)]}function ye(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function me(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function be(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function xe(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function we(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}function _e(t){return[Math.atan2(t[1],t[0]),nt(t[2])]}function Me(t,e){return wa(t[0]-e[0])<Ra&&wa(t[1]-e[1])<Ra}function ke(t,e){t*=Va;var n=Math.cos(e*=Va);Ee(n*Math.cos(t),n*Math.sin(t),Math.sin(e))}function Ee(t,e,n){++Su,Au+=(t-Au)/Su,Nu+=(e-Nu)/Su,Ou+=(n-Ou)/Su}function je(){function t(t,i){t*=Va;var o=Math.cos(i*=Va),a=o*Math.cos(t),u=o*Math.sin(t),s=Math.sin(i),l=Math.atan2(Math.sqrt((l=n*s-r*u)*l+(l=r*a-e*s)*l+(l=e*u-n*a)*l),e*a+n*u+r*s);Tu+=l,qu+=l*(e+(e=a)),Du+=l*(n+(n=u)),Lu+=l*(r+(r=s)),Ee(e,n,r)}var e,n,r;Pu.point=function(i,o){i*=Va;var a=Math.cos(o*=Va);e=a*Math.cos(i),n=a*Math.sin(i),r=Math.sin(o),Pu.point=t,Ee(e,n,r)}}function Ce(){Pu.point=ke}function Se(){function t(t,e){t*=Va;var n=Math.cos(e*=Va),a=n*Math.cos(t),u=n*Math.sin(t),s=Math.sin(e),l=i*s-o*u,c=o*a-r*s,f=r*u-i*a,h=Math.sqrt(l*l+c*c+f*f),p=r*a+i*u+o*s,d=h&&-et(p)/h,v=Math.atan2(h,p);Fu+=d*l,zu+=d*c,Ru+=d*f,Tu+=v,qu+=v*(r+(r=a)),Du+=v*(i+(i=u)),Lu+=v*(o+(o=s)),Ee(r,i,o)}var e,n,r,i,o;Pu.point=function(a,u){e=a,n=u,Pu.point=t,a*=Va;var s=Math.cos(u*=Va);r=s*Math.cos(a),i=s*Math.sin(a),o=Math.sin(u),Ee(r,i,o)},Pu.lineEnd=function(){t(e,n),Pu.lineEnd=Ce,Pu.point=ke}}function Te(t,e){function n(n,r){return n=t(n,r),e(n[0],n[1])}return t.invert&&e.invert&&(n.invert=function(n,r){return n=e.invert(n,r),n&&t.invert(n[0],n[1])}),n}function Ae(){return!0}function Ne(t,e,n,r,i){var o=[],a=[];if(t.forEach(function(t){if(!((e=t.length-1)<=0)){var e,n=t[0],r=t[e];if(Me(n,r)){i.lineStart();for(var u=0;u<e;++u)i.point((n=t[u])[0],n[1]);return void i.lineEnd()}var s=new qe(n,t,null,(!0)),l=new qe(n,null,s,(!1));s.o=l,o.push(s),a.push(l),s=new qe(r,t,null,(!1)),l=new qe(r,null,s,(!0)),s.o=l,o.push(s),a.push(l)}}),a.sort(e),Oe(o),Oe(a),o.length){for(var u=0,s=n,l=a.length;u<l;++u)a[u].e=s=!s;for(var c,f,h=o[0];;){for(var p=h,d=!0;p.v;)if((p=p.n)===h)return;c=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(d)for(var u=0,l=c.length;u<l;++u)i.point((f=c[u])[0],f[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(d){c=p.p.z;for(var u=c.length-1;u>=0;--u)i.point((f=c[u])[0],f[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,c=p.z,d=!d}while(!p.v);i.lineEnd()}}}function Oe(t){if(e=t.length){for(var e,n,r=0,i=t[0];++r<e;)i.n=n=t[r],n.p=i,i=n;i.n=n=t[0],n.p=i}}function qe(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function De(t,e,n,r){return function(i,o){function a(e,n){var r=i(e,n);t(e=r[0],n=r[1])&&o.point(e,n)}function u(t,e){var n=i(t,e);g.point(n[0],n[1])}function s(){m.point=u,g.lineStart()}function l(){m.point=a,g.lineEnd()}function c(t,e){v.push([t,e]);var n=i(t,e);x.point(n[0],n[1])}function f(){x.lineStart(),v=[]}function h(){c(v[0][0],v[0][1]),x.lineEnd();var t,e=x.clean(),n=b.buffer(),r=n.length;if(v.pop(),d.push(v),v=null,r)if(1&e){t=n[0];var i,r=t.length-1,a=-1;if(r>0){for(w||(o.polygonStart(),w=!0),o.lineStart();++a<r;)o.point((i=t[a])[0],i[1]);o.lineEnd()}}else r>1&&2&e&&n.push(n.pop().concat(n.shift())),p.push(n.filter(Le))}var p,d,v,g=e(o),y=i.invert(r[0],r[1]),m={point:a,lineStart:s,lineEnd:l,polygonStart:function(){m.point=c,m.lineStart=f,m.lineEnd=h,p=[],d=[]},polygonEnd:function(){m.point=a,m.lineStart=s,m.lineEnd=l,p=la.merge(p);var t=He(y,d);p.length?(w||(o.polygonStart(),w=!0),Ne(p,ze,t,n,o)):t&&(w||(o.polygonStart(),w=!0),o.lineStart(),n(null,null,1,o),o.lineEnd()),w&&(o.polygonEnd(),w=!1),p=d=null},sphere:function(){o.polygonStart(),o.lineStart(),n(null,null,1,o),o.lineEnd(),o.polygonEnd()}},b=Fe(),x=e(b),w=!1;return m}}function Le(t){return t.length>1}function Fe(){var t,e=[];return{lineStart:function(){e.push(t=[])},point:function(e,n){t.push([e,n])},lineEnd:_,buffer:function(){var n=e;return e=[],t=null,n},rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))}}}function ze(t,e){return((t=t.x)[0]<0?t[1]-Ba-Ra:Ba-t[1])-((e=e.x)[0]<0?e[1]-Ba-Ra:Ba-e[1])}function Re(t){var e,n=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(o,a){var u=o>0?Ia:-Ia,s=wa(o-n);wa(s-Ia)<Ra?(t.point(n,r=(r+a)/2>0?Ba:-Ba),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),e=0):i!==u&&s>=Ia&&(wa(n-i)<Ra&&(n-=i*Ra),wa(o-u)<Ra&&(o-=u*Ra),r=Pe(n,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),e=0),t.point(n=o,r=a),i=u},lineEnd:function(){t.lineEnd(),n=r=NaN},clean:function(){return 2-e}}}function Pe(t,e,n,r){var i,o,a=Math.sin(t-n);return wa(a)>Ra?Math.atan((Math.sin(e)*(o=Math.cos(r))*Math.sin(n)-Math.sin(r)*(i=Math.cos(e))*Math.sin(t))/(i*o*a)):(e+r)/2}function Ie(t,e,n,r){var i;if(null==t)i=n*Ba,r.point(-Ia,i),r.point(0,i),r.point(Ia,i),r.point(Ia,0),r.point(Ia,-i),r.point(0,-i),r.point(-Ia,-i),r.point(-Ia,0),r.point(-Ia,i);else if(wa(t[0]-e[0])>Ra){var o=t[0]<e[0]?Ia:-Ia;i=n*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(e[0],e[1])}function He(t,e){var n=t[0],r=t[1],i=[Math.sin(n),-Math.cos(n),0],o=0,a=0;ju.reset();for(var u=0,s=e.length;u<s;++u){var l=e[u],c=l.length;if(c)for(var f=l[0],h=f[0],p=f[1]/2+Ia/4,d=Math.sin(p),v=Math.cos(p),g=1;;){g===c&&(g=0),t=l[g];var y=t[0],m=t[1]/2+Ia/4,b=Math.sin(m),x=Math.cos(m),w=y-h,_=w>=0?1:-1,M=_*w,k=M>Ia,E=d*b;if(ju.add(Math.atan2(E*_*Math.sin(M),v*x+E*Math.cos(M))),o+=k?w+_*Ha:w,k^h>=n^y>=n){var j=me(ge(f),ge(t));we(j);var C=me(i,j);we(C);var S=(k^w>=0?-1:1)*nt(C[2]);(r>S||r===S&&(j[0]||j[1]))&&(a+=k^w>=0?1:-1)}if(!g++)break;h=y,d=b,v=x,f=t}}return(o<-Ra||o<Ra&&ju<-Ra)^1&a}function $e(t){function e(t,e){return Math.cos(t)*Math.cos(e)>o}function n(t){var n,o,s,l,c;return{lineStart:function(){l=s=!1,c=1},point:function(f,h){var p,d=[f,h],v=e(f,h),g=a?v?0:i(f,h):v?i(f+(f<0?Ia:-Ia),h):0;if(!n&&(l=s=v)&&t.lineStart(),v!==s&&(p=r(n,d),(Me(n,p)||Me(d,p))&&(d[0]+=Ra,d[1]+=Ra,v=e(d[0],d[1]))),v!==s)c=0,v?(t.lineStart(),p=r(d,n),t.point(p[0],p[1])):(p=r(n,d),t.point(p[0],p[1]),t.lineEnd()),n=p;else if(u&&n&&a^v){var y;g&o||!(y=r(d,n,!0))||(c=0,a?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||n&&Me(n,d)||t.point(d[0],d[1]),n=d,s=v,o=g},lineEnd:function(){s&&t.lineEnd(),n=null},clean:function(){return c|(l&&s)<<1}}}function r(t,e,n){var r=ge(t),i=ge(e),a=[1,0,0],u=me(r,i),s=ye(u,u),l=u[0],c=s-l*l;if(!c)return!n&&t;var f=o*s/c,h=-o*l/c,p=me(a,u),d=xe(a,f),v=xe(u,h);be(d,v);var g=p,y=ye(d,g),m=ye(g,g),b=y*y-m*(ye(d,d)-1);if(!(b<0)){var x=Math.sqrt(b),w=xe(g,(-y-x)/m);if(be(w,d),w=_e(w),!n)return w;var _,M=t[0],k=e[0],E=t[1],j=e[1];k<M&&(_=M,M=k,k=_);var C=k-M,S=wa(C-Ia)<Ra,T=S||C<Ra;if(!S&&j<E&&(_=E,E=j,j=_),T?S?E+j>0^w[1]<(wa(w[0]-M)<Ra?E:j):E<=w[1]&&w[1]<=j:C>Ia^(M<=w[0]&&w[0]<=k)){var A=xe(g,(-y+x)/m);return be(A,d),[w,_e(A)]}}}function i(e,n){var r=a?t:Ia-t,i=0;return e<-r?i|=1:e>r&&(i|=2),n<-r?i|=4:n>r&&(i|=8),i}var o=Math.cos(t),a=o>0,u=wa(o)>Ra,s=gn(t,6*Va);return De(e,n,s,a?[0,-t]:[-Ia,t-Ia])}function Be(t,e,n,r){return function(i){var o,a=i.a,u=i.b,s=a.x,l=a.y,c=u.x,f=u.y,h=0,p=1,d=c-s,v=f-l;if(o=t-s,d||!(o>0)){if(o/=d,d<0){if(o<h)return;o<p&&(p=o)}else if(d>0){if(o>p)return;o>h&&(h=o)}if(o=n-s,d||!(o<0)){if(o/=d,d<0){if(o>p)return;o>h&&(h=o)}else if(d>0){if(o<h)return;o<p&&(p=o)}if(o=e-l,v||!(o>0)){if(o/=v,v<0){if(o<h)return;o<p&&(p=o)}else if(v>0){if(o>p)return;o>h&&(h=o)}if(o=r-l,v||!(o<0)){if(o/=v,v<0){if(o>p)return;o>h&&(h=o)}else if(v>0){if(o<h)return;o<p&&(p=o)}return h>0&&(i.a={x:s+h*d,y:l+h*v}),p<1&&(i.b={x:s+p*d,y:l+p*v}),i}}}}}}function Ve(t,e,n,r){function i(r,i){return wa(r[0]-t)<Ra?i>0?0:3:wa(r[0]-n)<Ra?i>0?2:1:wa(r[1]-e)<Ra?i>0?1:0:i>0?3:2}function o(t,e){return a(t.x,e.x)}function a(t,e){var n=i(t,1),r=i(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(u){function s(t){for(var e=0,n=g.length,r=t[1],i=0;i<n;++i)for(var o,a=1,u=g[i],s=u.length,l=u[0];a<s;++a)o=u[a],l[1]<=r?o[1]>r&&tt(l,o,t)>0&&++e:o[1]<=r&&tt(l,o,t)<0&&--e,l=o;return 0!==e}function l(o,u,s,l){var c=0,f=0;if(null==o||(c=i(o,s))!==(f=i(u,s))||a(o,u)<0^s>0){do l.point(0===c||3===c?t:n,c>1?r:e);while((c=(c+s+4)%4)!==f)}else l.point(u[0],u[1])}function c(i,o){return t<=i&&i<=n&&e<=o&&o<=r}function f(t,e){c(t,e)&&u.point(t,e)}function h(){T.point=d,g&&g.push(y=[]),k=!0,M=!1,w=_=NaN}function p(){v&&(d(m,b),x&&M&&C.rejoin(),v.push(C.buffer())),T.point=f,M&&u.lineEnd()}function d(t,e){t=Math.max(-Hu,Math.min(Hu,t)),e=Math.max(-Hu,Math.min(Hu,e));var n=c(t,e);if(g&&y.push([t,e]),k)m=t,b=e,x=n,k=!1,n&&(u.lineStart(),u.point(t,e));else if(n&&M)u.point(t,e);else{var r={a:{x:w,y:_},b:{x:t,y:e}};S(r)?(M||(u.lineStart(),u.point(r.a.x,r.a.y)),u.point(r.b.x,r.b.y),n||u.lineEnd(),E=!1):n&&(u.lineStart(),u.point(t,e),E=!1)}w=t,_=e,M=n}var v,g,y,m,b,x,w,_,M,k,E,j=u,C=Fe(),S=Be(t,e,n,r),T={point:f,lineStart:h,lineEnd:p,polygonStart:function(){u=C,v=[],g=[],E=!0},polygonEnd:function(){u=j,v=la.merge(v);var e=s([t,r]),n=E&&e,i=v.length;(n||i)&&(u.polygonStart(),n&&(u.lineStart(),l(null,null,1,u),u.lineEnd()),i&&Ne(v,o,e,l,u),u.polygonEnd()),v=g=y=null}};return T}}function Ue(t){var e=0,n=Ia/3,r=sn(t),i=r(e,n);return i.parallels=function(t){return arguments.length?r(e=t[0]*Ia/180,n=t[1]*Ia/180):[e/Ia*180,n/Ia*180]},i}function We(t,e){function n(t,e){var n=Math.sqrt(o-2*i*Math.sin(e))/i;return[n*Math.sin(t*=i),a-n*Math.cos(t)]}var r=Math.sin(t),i=(r+Math.sin(e))/2,o=1+r*(2*i-r),a=Math.sqrt(o)/i;return n.invert=function(t,e){var n=a-e;return[Math.atan2(t,n)/i,nt((o-(t*t+n*n)*i*i)/(2*i))]},n}function Ye(){function t(t,e){Bu+=i*t-r*e,r=t,i=e}var e,n,r,i;Xu.point=function(o,a){Xu.point=t,e=r=o,n=i=a},Xu.lineEnd=function(){t(e,n)}}function Xe(t,e){t<Vu&&(Vu=t),t>Wu&&(Wu=t),e<Uu&&(Uu=e),e>Yu&&(Yu=e)}function Je(){function t(t,e){a.push("M",t,",",e,o)}function e(t,e){a.push("M",t,",",e),u.point=n}function n(t,e){a.push("L",t,",",e)}function r(){u.point=t}function i(){a.push("Z")}var o=Ze(4.5),a=[],u={point:t,lineStart:function(){u.point=e},lineEnd:r,polygonStart:function(){u.lineEnd=i},polygonEnd:function(){u.lineEnd=r,u.point=t},pointRadius:function(t){return o=Ze(t),u},result:function(){if(a.length){var t=a.join("");return a=[],t}}};return u}function Ze(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Ge(t,e){Au+=t,Nu+=e,++Ou}function Ke(){function t(t,r){var i=t-e,o=r-n,a=Math.sqrt(i*i+o*o);qu+=a*(e+t)/2,Du+=a*(n+r)/2,Lu+=a,Ge(e=t,n=r)}var e,n;Zu.point=function(r,i){Zu.point=t,Ge(e=r,n=i)}}function Qe(){Zu.point=Ge}function tn(){function t(t,e){var n=t-r,o=e-i,a=Math.sqrt(n*n+o*o);qu+=a*(r+t)/2,Du+=a*(i+e)/2,Lu+=a,a=i*t-r*e,Fu+=a*(r+t),zu+=a*(i+e),Ru+=3*a,Ge(r=t,i=e)}var e,n,r,i;Zu.point=function(o,a){Zu.point=t,Ge(e=r=o,n=i=a)},Zu.lineEnd=function(){t(e,n)}}function en(t){function e(e,n){t.moveTo(e+a,n),t.arc(e,n,a,0,Ha)}function n(e,n){t.moveTo(e,n),u.point=r}function r(e,n){t.lineTo(e,n)}function i(){u.point=e}function o(){t.closePath()}var a=4.5,u={point:e,lineStart:function(){u.point=n},lineEnd:i,polygonStart:function(){u.lineEnd=o},polygonEnd:function(){u.lineEnd=i,u.point=e},pointRadius:function(t){return a=t,u},result:_};return u}function nn(t){function e(t){return(u?r:n)(t)}function n(e){return an(e,function(n,r){n=t(n,r),e.point(n[0],n[1])})}function r(e){function n(n,r){n=t(n,r),e.point(n[0],n[1])}function r(){b=NaN,k.point=o,e.lineStart()}function o(n,r){var o=ge([n,r]),a=t(n,r);i(b,x,m,w,_,M,b=a[0],x=a[1],m=n,w=o[0],_=o[1],M=o[2],u,e),e.point(b,x)}function a(){k.point=n,e.lineEnd()}function s(){r(),k.point=l,k.lineEnd=c}function l(t,e){o(f=t,h=e),p=b,d=x,v=w,g=_,y=M,k.point=o}function c(){i(b,x,m,w,_,M,p,d,f,v,g,y,u,e),k.lineEnd=a,a()}var f,h,p,d,v,g,y,m,b,x,w,_,M,k={point:n,lineStart:r,lineEnd:a,polygonStart:function(){e.polygonStart(),k.lineStart=s},polygonEnd:function(){e.polygonEnd(),k.lineStart=r}};return k}function i(e,n,r,u,s,l,c,f,h,p,d,v,g,y){var m=c-e,b=f-n,x=m*m+b*b;if(x>4*o&&g--){var w=u+p,_=s+d,M=l+v,k=Math.sqrt(w*w+_*_+M*M),E=Math.asin(M/=k),j=wa(wa(M)-1)<Ra||wa(r-h)<Ra?(r+h)/2:Math.atan2(_,w),C=t(j,E),S=C[0],T=C[1],A=S-e,N=T-n,O=b*A-m*N;(O*O/x>o||wa((m*A+b*N)/x-.5)>.3||u*p+s*d+l*v<a)&&(i(e,n,r,u,s,l,S,T,j,w/=k,_/=k,M,g,y),y.point(S,T),i(S,T,j,w,_,M,c,f,h,p,d,v,g,y))}}var o=.5,a=Math.cos(30*Va),u=16;return e.precision=function(t){return arguments.length?(u=(o=t*t)>0&&16,e):Math.sqrt(o)},e}function rn(t){var e=nn(function(e,n){return t([e*Ua,n*Ua])});return function(t){return ln(e(t))}}function on(t){this.stream=t}function an(t,e){return{point:e,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function un(t){return sn(function(){return t})()}function sn(t){function e(t){return t=u(t[0]*Va,t[1]*Va),[t[0]*h+s,l-t[1]*h]}function n(t){return t=u.invert((t[0]-s)/h,(l-t[1])/h),t&&[t[0]*Ua,t[1]*Ua]}function r(){u=Te(a=hn(y,m,x),o);var t=o(v,g);return s=p-t[0]*h,l=d+t[1]*h,i()}function i(){return c&&(c.valid=!1,c=null),e}var o,a,u,s,l,c,f=nn(function(t,e){return t=o(t,e),[t[0]*h+s,l-t[1]*h]}),h=150,p=480,d=250,v=0,g=0,y=0,m=0,x=0,w=Iu,_=b,M=null,k=null;return e.stream=function(t){return c&&(c.valid=!1),c=ln(w(a,f(_(t)))),c.valid=!0,c},e.clipAngle=function(t){return arguments.length?(w=null==t?(M=t,Iu):$e((M=+t)*Va),i()):M},e.clipExtent=function(t){return arguments.length?(k=t,_=t?Ve(t[0][0],t[0][1],t[1][0],t[1][1]):b,i()):k},e.scale=function(t){return arguments.length?(h=+t,r()):h},e.translate=function(t){return arguments.length?(p=+t[0],d=+t[1],r()):[p,d]},e.center=function(t){return arguments.length?(v=t[0]%360*Va,g=t[1]%360*Va,r()):[v*Ua,g*Ua]},e.rotate=function(t){return arguments.length?(y=t[0]%360*Va,m=t[1]%360*Va,x=t.length>2?t[2]%360*Va:0,r()):[y*Ua,m*Ua,x*Ua]},la.rebind(e,f,"precision"),function(){return o=t.apply(this,arguments),e.invert=o.invert&&n,r()}}function ln(t){return an(t,function(e,n){t.point(e*Va,n*Va)})}function cn(t,e){return[t,e]}function fn(t,e){return[t>Ia?t-Ha:t<-Ia?t+Ha:t,e]}function hn(t,e,n){return t?e||n?Te(dn(t),vn(e,n)):dn(t):e||n?vn(e,n):fn}function pn(t){return function(e,n){return e+=t,[e>Ia?e-Ha:e<-Ia?e+Ha:e,n]}}function dn(t){var e=pn(t);return e.invert=pn(-t),e}function vn(t,e){function n(t,e){var n=Math.cos(e),u=Math.cos(t)*n,s=Math.sin(t)*n,l=Math.sin(e),c=l*r+u*i;return[Math.atan2(s*o-c*a,u*r-l*i),nt(c*o+s*a)]}var r=Math.cos(t),i=Math.sin(t),o=Math.cos(e),a=Math.sin(e);return n.invert=function(t,e){var n=Math.cos(e),u=Math.cos(t)*n,s=Math.sin(t)*n,l=Math.sin(e),c=l*o-s*a;return[Math.atan2(s*o+l*a,u*r+c*i),nt(c*r-u*i)]},n}function gn(t,e){var n=Math.cos(t),r=Math.sin(t);return function(i,o,a,u){var s=a*e;null!=i?(i=yn(n,i),o=yn(n,o),(a>0?i<o:i>o)&&(i+=a*Ha)):(i=t+a*Ha,o=t-.5*s);for(var l,c=i;a>0?c>o:c<o;c-=s)u.point((l=_e([n,-r*Math.cos(c),-r*Math.sin(c)]))[0],l[1])}}function yn(t,e){var n=ge(e);n[0]-=t,we(n);var r=et(-n[1]);return((-n[2]<0?-r:r)+2*Math.PI-Ra)%(2*Math.PI)}function mn(t,e,n){var r=la.range(t,e-Ra,n).concat(e);return function(t){return r.map(function(e){return[t,e]})}}function bn(t,e,n){var r=la.range(t,e-Ra,n).concat(e);return function(t){return r.map(function(e){return[e,t]})}}function xn(t){return t.source}function wn(t){return t.target}function _n(t,e,n,r){var i=Math.cos(e),o=Math.sin(e),a=Math.cos(r),u=Math.sin(r),s=i*Math.cos(t),l=i*Math.sin(t),c=a*Math.cos(n),f=a*Math.sin(n),h=2*Math.asin(Math.sqrt(at(r-e)+i*a*at(n-t))),p=1/Math.sin(h),d=h?function(t){var e=Math.sin(t*=h)*p,n=Math.sin(h-t)*p,r=n*s+e*c,i=n*l+e*f,a=n*o+e*u;return[Math.atan2(i,r)*Ua,Math.atan2(a,Math.sqrt(r*r+i*i))*Ua]}:function(){return[t*Ua,e*Ua]};return d.distance=h,d}function Mn(){function t(t,i){var o=Math.sin(i*=Va),a=Math.cos(i),u=wa((t*=Va)-e),s=Math.cos(u);Gu+=Math.atan2(Math.sqrt((u=a*Math.sin(u))*u+(u=r*o-n*a*s)*u),n*o+r*a*s),e=t,n=o,r=a}var e,n,r;Ku.point=function(i,o){e=i*Va,n=Math.sin(o*=Va),r=Math.cos(o),Ku.point=t},Ku.lineEnd=function(){Ku.point=Ku.lineEnd=_}}function kn(t,e){function n(e,n){var r=Math.cos(e),i=Math.cos(n),o=t(r*i);return[o*i*Math.sin(e),o*Math.sin(n)]}return n.invert=function(t,n){var r=Math.sqrt(t*t+n*n),i=e(r),o=Math.sin(i),a=Math.cos(i);return[Math.atan2(t*o,r*a),Math.asin(r&&n*o/r)]},n}function En(t,e){function n(t,e){a>0?e<-Ba+Ra&&(e=-Ba+Ra):e>Ba-Ra&&(e=Ba-Ra);var n=a/Math.pow(i(e),o);return[n*Math.sin(o*t),a-n*Math.cos(o*t)]}var r=Math.cos(t),i=function(t){return Math.tan(Ia/4+t/2)},o=t===e?Math.sin(t):Math.log(r/Math.cos(e))/Math.log(i(e)/i(t)),a=r*Math.pow(i(t),o)/o;return o?(n.invert=function(t,e){var n=a-e,r=Q(o)*Math.sqrt(t*t+n*n);return[Math.atan2(t,n)/o,2*Math.atan(Math.pow(a/r,1/o))-Ba]},n):Cn}function jn(t,e){function n(t,e){var n=o-e;return[n*Math.sin(i*t),o-n*Math.cos(i*t)]}var r=Math.cos(t),i=t===e?Math.sin(t):(r-Math.cos(e))/(e-t),o=r/i+t;return wa(i)<Ra?cn:(n.invert=function(t,e){var n=o-e;return[Math.atan2(t,n)/i,o-Q(i)*Math.sqrt(t*t+n*n)]},n)}function Cn(t,e){return[t,Math.log(Math.tan(Ia/4+e/2))]}function Sn(t){var e,n=un(t),r=n.scale,i=n.translate,o=n.clipExtent;return n.scale=function(){var t=r.apply(n,arguments);return t===n?e?n.clipExtent(null):n:t},n.translate=function(){var t=i.apply(n,arguments);return t===n?e?n.clipExtent(null):n:t},n.clipExtent=function(t){var a=o.apply(n,arguments);if(a===n){if(e=null==t){var u=Ia*r(),s=i();o([[s[0]-u,s[1]-u],[s[0]+u,s[1]+u]])}}else e&&(a=null);return a},n.clipExtent(null)}function Tn(t,e){return[Math.log(Math.tan(Ia/4+e/2)),-t]}function An(t){return t[0]}function Nn(t){return t[1]}function On(t){for(var e=t.length,n=[0,1],r=2,i=2;i<e;i++){for(;r>1&&tt(t[n[r-2]],t[n[r-1]],t[i])<=0;)--r;n[r++]=i}return n.slice(0,r)}function qn(t,e){return t[0]-e[0]||t[1]-e[1]}function Dn(t,e,n){return(n[0]-e[0])*(t[1]-e[1])<(n[1]-e[1])*(t[0]-e[0])}function Ln(t,e,n,r){var i=t[0],o=n[0],a=e[0]-i,u=r[0]-o,s=t[1],l=n[1],c=e[1]-s,f=r[1]-l,h=(u*(s-l)-f*(i-o))/(f*a-u*c);return[i+h*a,s+h*c]}function Fn(t){var e=t[0],n=t[t.length-1];return!(e[0]-n[0]||e[1]-n[1])}function zn(){ir(this),this.edge=this.site=this.circle=null}function Rn(t){var e=cs.pop()||new zn;return e.site=t,e}function Pn(t){Jn(t),us.remove(t),cs.push(t),ir(t)}function In(t){var e=t.circle,n=e.x,r=e.cy,i={x:n,y:r},o=t.P,a=t.N,u=[t];Pn(t);for(var s=o;s.circle&&wa(n-s.circle.x)<Ra&&wa(r-s.circle.cy)<Ra;)o=s.P,u.unshift(s),Pn(s),s=o;u.unshift(s),Jn(s);for(var l=a;l.circle&&wa(n-l.circle.x)<Ra&&wa(r-l.circle.cy)<Ra;)a=l.N,u.push(l),Pn(l),l=a;u.push(l),Jn(l);var c,f=u.length;for(c=1;c<f;++c)l=u[c],s=u[c-1],er(l.edge,s.site,l.site,i);s=u[0],l=u[f-1],l.edge=Qn(s.site,l.site,null,i),Xn(s),Xn(l)}function Hn(t){for(var e,n,r,i,o=t.x,a=t.y,u=us._;u;)if(r=$n(u,a)-o,r>Ra)u=u.L;else{if(i=o-Bn(u,a),!(i>Ra)){r>-Ra?(e=u.P,n=u):i>-Ra?(e=u,n=u.N):e=n=u;break}if(!u.R){e=u;break}u=u.R}var s=Rn(t);if(us.insert(e,s),e||n){if(e===n)return Jn(e),n=Rn(e.site), +us.insert(s,n),s.edge=n.edge=Qn(e.site,s.site),Xn(e),void Xn(n);if(!n)return void(s.edge=Qn(e.site,s.site));Jn(e),Jn(n);var l=e.site,c=l.x,f=l.y,h=t.x-c,p=t.y-f,d=n.site,v=d.x-c,g=d.y-f,y=2*(h*g-p*v),m=h*h+p*p,b=v*v+g*g,x={x:(g*m-p*b)/y+c,y:(h*b-v*m)/y+f};er(n.edge,l,d,x),s.edge=Qn(l,t,null,x),n.edge=Qn(t,d,null,x),Xn(e),Xn(n)}}function $n(t,e){var n=t.site,r=n.x,i=n.y,o=i-e;if(!o)return r;var a=t.P;if(!a)return-(1/0);n=a.site;var u=n.x,s=n.y,l=s-e;if(!l)return u;var c=u-r,f=1/o-1/l,h=c/l;return f?(-h+Math.sqrt(h*h-2*f*(c*c/(-2*l)-s+l/2+i-o/2)))/f+r:(r+u)/2}function Bn(t,e){var n=t.N;if(n)return $n(n,e);var r=t.site;return r.y===e?r.x:1/0}function Vn(t){this.site=t,this.edges=[]}function Un(t){for(var e,n,r,i,o,a,u,s,l,c,f=t[0][0],h=t[1][0],p=t[0][1],d=t[1][1],v=as,g=v.length;g--;)if(o=v[g],o&&o.prepare())for(u=o.edges,s=u.length,a=0;a<s;)c=u[a].end(),r=c.x,i=c.y,l=u[++a%s].start(),e=l.x,n=l.y,(wa(r-e)>Ra||wa(i-n)>Ra)&&(u.splice(a,0,new nr(tr(o.site,c,wa(r-f)<Ra&&d-i>Ra?{x:f,y:wa(e-f)<Ra?n:d}:wa(i-d)<Ra&&h-r>Ra?{x:wa(n-d)<Ra?e:h,y:d}:wa(r-h)<Ra&&i-p>Ra?{x:h,y:wa(e-h)<Ra?n:p}:wa(i-p)<Ra&&r-f>Ra?{x:wa(n-p)<Ra?e:f,y:p}:null),o.site,null)),++s)}function Wn(t,e){return e.angle-t.angle}function Yn(){ir(this),this.x=this.y=this.arc=this.site=this.cy=null}function Xn(t){var e=t.P,n=t.N;if(e&&n){var r=e.site,i=t.site,o=n.site;if(r!==o){var a=i.x,u=i.y,s=r.x-a,l=r.y-u,c=o.x-a,f=o.y-u,h=2*(s*f-l*c);if(!(h>=-Pa)){var p=s*s+l*l,d=c*c+f*f,v=(f*p-l*d)/h,g=(s*d-c*p)/h,f=g+u,y=fs.pop()||new Yn;y.arc=t,y.site=i,y.x=v+a,y.y=f+Math.sqrt(v*v+g*g),y.cy=f,t.circle=y;for(var m=null,b=ls._;b;)if(y.y<b.y||y.y===b.y&&y.x<=b.x){if(!b.L){m=b.P;break}b=b.L}else{if(!b.R){m=b;break}b=b.R}ls.insert(m,y),m||(ss=y)}}}}function Jn(t){var e=t.circle;e&&(e.P||(ss=e.N),ls.remove(e),fs.push(e),ir(e),t.circle=null)}function Zn(t){for(var e,n=os,r=Be(t[0][0],t[0][1],t[1][0],t[1][1]),i=n.length;i--;)e=n[i],(!Gn(e,t)||!r(e)||wa(e.a.x-e.b.x)<Ra&&wa(e.a.y-e.b.y)<Ra)&&(e.a=e.b=null,n.splice(i,1))}function Gn(t,e){var n=t.b;if(n)return!0;var r,i,o=t.a,a=e[0][0],u=e[1][0],s=e[0][1],l=e[1][1],c=t.l,f=t.r,h=c.x,p=c.y,d=f.x,v=f.y,g=(h+d)/2,y=(p+v)/2;if(v===p){if(g<a||g>=u)return;if(h>d){if(o){if(o.y>=l)return}else o={x:g,y:s};n={x:g,y:l}}else{if(o){if(o.y<s)return}else o={x:g,y:l};n={x:g,y:s}}}else if(r=(h-d)/(v-p),i=y-r*g,r<-1||r>1)if(h>d){if(o){if(o.y>=l)return}else o={x:(s-i)/r,y:s};n={x:(l-i)/r,y:l}}else{if(o){if(o.y<s)return}else o={x:(l-i)/r,y:l};n={x:(s-i)/r,y:s}}else if(p<v){if(o){if(o.x>=u)return}else o={x:a,y:r*a+i};n={x:u,y:r*u+i}}else{if(o){if(o.x<a)return}else o={x:u,y:r*u+i};n={x:a,y:r*a+i}}return t.a=o,t.b=n,!0}function Kn(t,e){this.l=t,this.r=e,this.a=this.b=null}function Qn(t,e,n,r){var i=new Kn(t,e);return os.push(i),n&&er(i,t,e,n),r&&er(i,e,t,r),as[t.i].edges.push(new nr(i,t,e)),as[e.i].edges.push(new nr(i,e,t)),i}function tr(t,e,n){var r=new Kn(t,null);return r.a=e,r.b=n,os.push(r),r}function er(t,e,n,r){t.a||t.b?t.l===n?t.b=r:t.a=r:(t.a=r,t.l=e,t.r=n)}function nr(t,e,n){var r=t.a,i=t.b;this.edge=t,this.site=e,this.angle=n?Math.atan2(n.y-e.y,n.x-e.x):t.l===e?Math.atan2(i.x-r.x,r.y-i.y):Math.atan2(r.x-i.x,i.y-r.y)}function rr(){this._=null}function ir(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function or(t,e){var n=e,r=e.R,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.R=r.L,n.R&&(n.R.U=n),r.L=n}function ar(t,e){var n=e,r=e.L,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.L=r.R,n.L&&(n.L.U=n),r.R=n}function ur(t){for(;t.L;)t=t.L;return t}function sr(t,e){var n,r,i,o=t.sort(lr).pop();for(os=[],as=new Array(t.length),us=new rr,ls=new rr;;)if(i=ss,o&&(!i||o.y<i.y||o.y===i.y&&o.x<i.x))o.x===n&&o.y===r||(as[o.i]=new Vn(o),Hn(o),n=o.x,r=o.y),o=t.pop();else{if(!i)break;In(i.arc)}e&&(Zn(e),Un(e));var a={cells:as,edges:os};return us=ls=os=as=null,a}function lr(t,e){return e.y-t.y||e.x-t.x}function cr(t,e,n){return(t.x-n.x)*(e.y-t.y)-(t.x-e.x)*(n.y-t.y)}function fr(t){return t.x}function hr(t){return t.y}function pr(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function dr(t,e,n,r,i,o){if(!t(e,n,r,i,o)){var a=.5*(n+i),u=.5*(r+o),s=e.nodes;s[0]&&dr(t,s[0],n,r,a,u),s[1]&&dr(t,s[1],a,r,i,u),s[2]&&dr(t,s[2],n,u,a,o),s[3]&&dr(t,s[3],a,u,i,o)}}function vr(t,e,n,r,i,o,a){var u,s=1/0;return function l(t,c,f,h,p){if(!(c>o||f>a||h<r||p<i)){if(d=t.point){var d,v=e-t.x,g=n-t.y,y=v*v+g*g;if(y<s){var m=Math.sqrt(s=y);r=e-m,i=n-m,o=e+m,a=n+m,u=d}}for(var b=t.nodes,x=.5*(c+h),w=.5*(f+p),_=e>=x,M=n>=w,k=M<<1|_,E=k+4;k<E;++k)if(t=b[3&k])switch(3&k){case 0:l(t,c,f,x,w);break;case 1:l(t,x,f,h,w);break;case 2:l(t,c,w,x,p);break;case 3:l(t,x,w,h,p)}}}(t,r,i,o,a),u}function gr(t,e){t=la.rgb(t),e=la.rgb(e);var n=t.r,r=t.g,i=t.b,o=e.r-n,a=e.g-r,u=e.b-i;return function(t){return"#"+wt(Math.round(n+o*t))+wt(Math.round(r+a*t))+wt(Math.round(i+u*t))}}function yr(t,e){var n,r={},i={};for(n in t)n in e?r[n]=xr(t[n],e[n]):i[n]=t[n];for(n in e)n in t||(i[n]=e[n]);return function(t){for(n in r)i[n]=r[n](t);return i}}function mr(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function br(t,e){var n,r,i,o=ps.lastIndex=ds.lastIndex=0,a=-1,u=[],s=[];for(t+="",e+="";(n=ps.exec(t))&&(r=ds.exec(e));)(i=r.index)>o&&(i=e.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(n=n[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,s.push({i:a,x:mr(n,r)})),o=ds.lastIndex;return o<e.length&&(i=e.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?s[0]?(e=s[0].x,function(t){return e(t)+""}):function(){return e}:(e=s.length,function(t){for(var n,r=0;r<e;++r)u[(n=s[r]).i]=n.x(t);return u.join("")})}function xr(t,e){for(var n,r=la.interpolators.length;--r>=0&&!(n=la.interpolators[r](t,e)););return n}function wr(t,e){var n,r=[],i=[],o=t.length,a=e.length,u=Math.min(t.length,e.length);for(n=0;n<u;++n)r.push(xr(t[n],e[n]));for(;n<o;++n)i[n]=t[n];for(;n<a;++n)i[n]=e[n];return function(t){for(n=0;n<u;++n)i[n]=r[n](t);return i}}function _r(t){return function(e){return e<=0?0:e>=1?1:t(e)}}function Mr(t){return function(e){return 1-t(1-e)}}function kr(t){return function(e){return.5*(e<.5?t(2*e):2-t(2-2*e))}}function Er(t){return t*t}function jr(t){return t*t*t}function Cr(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,n=e*t;return 4*(t<.5?n:3*(t-e)+n-.75)}function Sr(t){return function(e){return Math.pow(e,t)}}function Tr(t){return 1-Math.cos(t*Ba)}function Ar(t){return Math.pow(2,10*(t-1))}function Nr(t){return 1-Math.sqrt(1-t*t)}function Or(t,e){var n;return arguments.length<2&&(e=.45),arguments.length?n=e/Ha*Math.asin(1/t):(t=1,n=e/4),function(r){return 1+t*Math.pow(2,-10*r)*Math.sin((r-n)*Ha/e)}}function qr(t){return t||(t=1.70158),function(e){return e*e*((t+1)*e-t)}}function Dr(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function Lr(t,e){t=la.hcl(t),e=la.hcl(e);var n=t.h,r=t.c,i=t.l,o=e.h-n,a=e.c-r,u=e.l-i;return isNaN(a)&&(a=0,r=isNaN(r)?e.c:r),isNaN(o)?(o=0,n=isNaN(n)?e.h:n):o>180?o-=360:o<-180&&(o+=360),function(t){return ft(n+o*t,r+a*t,i+u*t)+""}}function Fr(t,e){t=la.hsl(t),e=la.hsl(e);var n=t.h,r=t.s,i=t.l,o=e.h-n,a=e.s-r,u=e.l-i;return isNaN(a)&&(a=0,r=isNaN(r)?e.s:r),isNaN(o)?(o=0,n=isNaN(n)?e.h:n):o>180?o-=360:o<-180&&(o+=360),function(t){return lt(n+o*t,r+a*t,i+u*t)+""}}function zr(t,e){t=la.lab(t),e=la.lab(e);var n=t.l,r=t.a,i=t.b,o=e.l-n,a=e.a-r,u=e.b-i;return function(t){return pt(n+o*t,r+a*t,i+u*t)+""}}function Rr(t,e){return e-=t,function(n){return Math.round(t+e*n)}}function Pr(t){var e=[t.a,t.b],n=[t.c,t.d],r=Hr(e),i=Ir(e,n),o=Hr($r(n,e,-i))||0;e[0]*n[1]<n[0]*e[1]&&(e[0]*=-1,e[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(e[1],e[0]):Math.atan2(-n[0],n[1]))*Ua,this.translate=[t.e,t.f],this.scale=[r,o],this.skew=o?Math.atan2(i,o)*Ua:0}function Ir(t,e){return t[0]*e[0]+t[1]*e[1]}function Hr(t){var e=Math.sqrt(Ir(t,t));return e&&(t[0]/=e,t[1]/=e),e}function $r(t,e,n){return t[0]+=n*e[0],t[1]+=n*e[1],t}function Br(t){return t.length?t.pop()+",":""}function Vr(t,e,n,r){if(t[0]!==e[0]||t[1]!==e[1]){var i=n.push("translate(",null,",",null,")");r.push({i:i-4,x:mr(t[0],e[0])},{i:i-2,x:mr(t[1],e[1])})}else(e[0]||e[1])&&n.push("translate("+e+")")}function Ur(t,e,n,r){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),r.push({i:n.push(Br(n)+"rotate(",null,")")-2,x:mr(t,e)})):e&&n.push(Br(n)+"rotate("+e+")")}function Wr(t,e,n,r){t!==e?r.push({i:n.push(Br(n)+"skewX(",null,")")-2,x:mr(t,e)}):e&&n.push(Br(n)+"skewX("+e+")")}function Yr(t,e,n,r){if(t[0]!==e[0]||t[1]!==e[1]){var i=n.push(Br(n)+"scale(",null,",",null,")");r.push({i:i-4,x:mr(t[0],e[0])},{i:i-2,x:mr(t[1],e[1])})}else 1===e[0]&&1===e[1]||n.push(Br(n)+"scale("+e+")")}function Xr(t,e){var n=[],r=[];return t=la.transform(t),e=la.transform(e),Vr(t.translate,e.translate,n,r),Ur(t.rotate,e.rotate,n,r),Wr(t.skew,e.skew,n,r),Yr(t.scale,e.scale,n,r),t=e=null,function(t){for(var e,i=-1,o=r.length;++i<o;)n[(e=r[i]).i]=e.x(t);return n.join("")}}function Jr(t,e){return e=(e-=t=+t)||1/e,function(n){return(n-t)/e}}function Zr(t,e){return e=(e-=t=+t)||1/e,function(n){return Math.max(0,Math.min(1,(n-t)/e))}}function Gr(t){for(var e=t.source,n=t.target,r=Qr(e,n),i=[e];e!==r;)e=e.parent,i.push(e);for(var o=i.length;n!==r;)i.splice(o,0,n),n=n.parent;return i}function Kr(t){for(var e=[],n=t.parent;null!=n;)e.push(t),t=n,n=n.parent;return e.push(t),e}function Qr(t,e){if(t===e)return t;for(var n=Kr(t),r=Kr(e),i=n.pop(),o=r.pop(),a=null;i===o;)a=i,i=n.pop(),o=r.pop();return a}function ti(t){t.fixed|=2}function ei(t){t.fixed&=-7}function ni(t){t.fixed|=4,t.px=t.x,t.py=t.y}function ri(t){t.fixed&=-5}function ii(t,e,n){var r=0,i=0;if(t.charge=0,!t.leaf)for(var o,a=t.nodes,u=a.length,s=-1;++s<u;)o=a[s],null!=o&&(ii(o,e,n),t.charge+=o.charge,r+=o.charge*o.cx,i+=o.charge*o.cy);if(t.point){t.leaf||(t.point.x+=Math.random()-.5,t.point.y+=Math.random()-.5);var l=e*n[t.point.index];t.charge+=t.pointCharge=l,r+=l*t.point.x,i+=l*t.point.y}t.cx=r/t.charge,t.cy=i/t.charge}function oi(t,e){return la.rebind(t,e,"sort","children","value"),t.nodes=t,t.links=fi,t}function ai(t,e){for(var n=[t];null!=(t=n.pop());)if(e(t),(i=t.children)&&(r=i.length))for(var r,i;--r>=0;)n.push(i[r])}function ui(t,e){for(var n=[t],r=[];null!=(t=n.pop());)if(r.push(t),(o=t.children)&&(i=o.length))for(var i,o,a=-1;++a<i;)n.push(o[a]);for(;null!=(t=r.pop());)e(t)}function si(t){return t.children}function li(t){return t.value}function ci(t,e){return e.value-t.value}function fi(t){return la.merge(t.map(function(t){return(t.children||[]).map(function(e){return{source:t,target:e}})}))}function hi(t){return t.x}function pi(t){return t.y}function di(t,e,n){t.y0=e,t.y=n}function vi(data){return la.range(data.length)}function gi(data){for(var t=-1,e=data[0].length,n=[];++t<e;)n[t]=0;return n}function yi(t){for(var e,n=1,r=0,i=t[0][1],o=t.length;n<o;++n)(e=t[n][1])>i&&(r=n,i=e);return r}function mi(t){return t.reduce(bi,0)}function bi(t,e){return t+e[1]}function xi(t,e){return wi(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function wi(t,e){for(var n=-1,r=+t[0],i=(t[1]-r)/e,o=[];++n<=e;)o[n]=i*n+r;return o}function _i(t){return[la.min(t),la.max(t)]}function Mi(t,e){return t.value-e.value}function ki(t,e){var n=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=n,n._pack_prev=e}function Ei(t,e){t._pack_next=e,e._pack_prev=t}function ji(t,e){var n=e.x-t.x,r=e.y-t.y,i=t.r+e.r;return.999*i*i>n*n+r*r}function Ci(t){function e(t){c=Math.min(t.x-t.r,c),f=Math.max(t.x+t.r,f),h=Math.min(t.y-t.r,h),p=Math.max(t.y+t.r,p)}if((n=t.children)&&(l=n.length)){var n,r,i,o,a,u,s,l,c=1/0,f=-(1/0),h=1/0,p=-(1/0);if(n.forEach(Si),r=n[0],r.x=-r.r,r.y=0,e(r),l>1&&(i=n[1],i.x=i.r,i.y=0,e(i),l>2))for(o=n[2],Ni(r,i,o),e(o),ki(r,o),r._pack_prev=o,ki(o,i),i=r._pack_next,a=3;a<l;a++){Ni(r,i,o=n[a]);var d=0,v=1,g=1;for(u=i._pack_next;u!==i;u=u._pack_next,v++)if(ji(u,o)){d=1;break}if(1==d)for(s=r._pack_prev;s!==u._pack_prev&&!ji(s,o);s=s._pack_prev,g++);d?(v<g||v==g&&i.r<r.r?Ei(r,i=u):Ei(r=s,i),a--):(ki(r,o),i=o,e(o))}var y=(c+f)/2,m=(h+p)/2,b=0;for(a=0;a<l;a++)o=n[a],o.x-=y,o.y-=m,b=Math.max(b,o.r+Math.sqrt(o.x*o.x+o.y*o.y));t.r=b,n.forEach(Ti)}}function Si(t){t._pack_next=t._pack_prev=t}function Ti(t){delete t._pack_next,delete t._pack_prev}function Ai(t,e,n,r){var i=t.children;if(t.x=e+=r*t.x,t.y=n+=r*t.y,t.r*=r,i)for(var o=-1,a=i.length;++o<a;)Ai(i[o],e,n,r)}function Ni(t,e,n){var r=t.r+n.r,i=e.x-t.x,o=e.y-t.y;if(r&&(i||o)){var a=e.r+n.r,u=i*i+o*o;a*=a,r*=r;var s=.5+(r-a)/(2*u),l=Math.sqrt(Math.max(0,2*a*(r+u)-(r-=u)*r-a*a))/(2*u);n.x=t.x+s*i+l*o,n.y=t.y+s*o-l*i}else n.x=t.x+r,n.y=t.y}function Oi(t,e){return t.parent==e.parent?1:2}function qi(t){var e=t.children;return e.length?e[0]:t.t}function Di(t){var e,n=t.children;return(e=n.length)?n[e-1]:t.t}function Li(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function Fi(t){for(var e,n=0,r=0,i=t.children,o=i.length;--o>=0;)e=i[o],e.z+=n,e.m+=n,n+=e.s+(r+=e.c)}function zi(t,e,n){return t.a.parent===e.parent?t.a:n}function Ri(t){return 1+la.max(t,function(t){return t.y})}function Pi(t){return t.reduce(function(t,e){return t+e.x},0)/t.length}function Ii(t){var e=t.children;return e&&e.length?Ii(e[0]):t}function Hi(t){var e,n=t.children;return n&&(e=n.length)?Hi(n[e-1]):t}function $i(t){return{x:t.x,y:t.y,dx:t.dx,dy:t.dy}}function Bi(t,e){var n=t.x+e[3],r=t.y+e[0],i=t.dx-e[1]-e[3],o=t.dy-e[0]-e[2];return i<0&&(n+=i/2,i=0),o<0&&(r+=o/2,o=0),{x:n,y:r,dx:i,dy:o}}function Vi(t){var e=t[0],n=t[t.length-1];return e<n?[e,n]:[n,e]}function Ui(t){return t.rangeExtent?t.rangeExtent():Vi(t.range())}function Wi(t,e,n,r){var i=n(t[0],t[1]),o=r(e[0],e[1]);return function(t){return o(i(t))}}function Yi(t,e){var n,r=0,i=t.length-1,o=t[r],a=t[i];return a<o&&(n=r,r=i,i=n,n=o,o=a,a=n),t[r]=e.floor(o),t[i]=e.ceil(a),t}function Xi(t){return t?{floor:function(e){return Math.floor(e/t)*t},ceil:function(e){return Math.ceil(e/t)*t}}:Es}function Ji(t,e,n,r){var i=[],o=[],a=0,u=Math.min(t.length,e.length)-1;for(t[u]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<=u;)i.push(n(t[a-1],t[a])),o.push(r(e[a-1],e[a]));return function(e){var n=la.bisect(t,e,1,u)-1;return o[n](i[n](e))}}function Zi(t,e,n,r){function i(){var i=Math.min(t.length,e.length)>2?Ji:Wi,s=r?Zr:Jr;return a=i(t,e,s,n),u=i(e,t,s,xr),o}function o(t){return a(t)}var a,u;return o.invert=function(t){return u(t)},o.domain=function(e){return arguments.length?(t=e.map(Number),i()):t},o.range=function(t){return arguments.length?(e=t,i()):e},o.rangeRound=function(t){return o.range(t).interpolate(Rr)},o.clamp=function(t){return arguments.length?(r=t,i()):r},o.interpolate=function(t){return arguments.length?(n=t,i()):n},o.ticks=function(e){return to(t,e)},o.tickFormat=function(e,n){return eo(t,e,n)},o.nice=function(e){return Ki(t,e),i()},o.copy=function(){return Zi(t,e,n,r)},i()}function Gi(t,e){return la.rebind(t,e,"range","rangeRound","interpolate","clamp")}function Ki(t,e){return Yi(t,Xi(Qi(t,e)[2])),Yi(t,Xi(Qi(t,e)[2])),t}function Qi(t,e){null==e&&(e=10);var n=Vi(t),r=n[1]-n[0],i=Math.pow(10,Math.floor(Math.log(r/e)/Math.LN10)),o=e/r*i;return o<=.15?i*=10:o<=.35?i*=5:o<=.75&&(i*=2),n[0]=Math.ceil(n[0]/i)*i,n[1]=Math.floor(n[1]/i)*i+.5*i,n[2]=i,n}function to(t,e){return la.range.apply(la,Qi(t,e))}function eo(t,e,n){var r=Qi(t,e);if(n){var i=pu.exec(n);if(i.shift(),"s"===i[8]){var o=la.formatPrefix(Math.max(wa(r[0]),wa(r[1])));return i[7]||(i[7]="."+no(o.scale(r[2]))),i[8]="f",n=la.format(i.join("")),function(t){return n(o.scale(t))+o.symbol}}i[7]||(i[7]="."+ro(i[8],r)),n=i.join("")}else n=",."+no(r[2])+"f";return la.format(n)}function no(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}function ro(t,e){var n=no(e[2]);return t in js?Math.abs(n-no(Math.max(wa(e[0]),wa(e[1]))))+ +("e"!==t):n-2*("%"===t)}function io(t,e,n,r){function i(t){return(n?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(e)}function o(t){return n?Math.pow(e,t):-Math.pow(e,-t)}function a(e){return t(i(e))}return a.invert=function(e){return o(t.invert(e))},a.domain=function(e){return arguments.length?(n=e[0]>=0,t.domain((r=e.map(Number)).map(i)),a):r},a.base=function(n){return arguments.length?(e=+n,t.domain(r.map(i)),a):e},a.nice=function(){var e=Yi(r.map(i),n?Math:Ss);return t.domain(e),r=e.map(o),a},a.ticks=function(){var t=Vi(r),a=[],u=t[0],s=t[1],l=Math.floor(i(u)),c=Math.ceil(i(s)),f=e%1?2:e;if(isFinite(c-l)){if(n){for(;l<c;l++)for(var h=1;h<f;h++)a.push(o(l)*h);a.push(o(l))}else for(a.push(o(l));l++<c;)for(var h=f-1;h>0;h--)a.push(o(l)*h);for(l=0;a[l]<u;l++);for(c=a.length;a[c-1]>s;c--);a=a.slice(l,c)}return a},a.tickFormat=function(t,n){if(!arguments.length)return Cs;arguments.length<2?n=Cs:"function"!=typeof n&&(n=la.format(n));var r=Math.max(1,e*t/a.ticks().length);return function(t){var a=t/o(Math.round(i(t)));return a*e<e-.5&&(a*=e),a<=r?n(t):""}},a.copy=function(){return io(t.copy(),e,n,r)},Gi(a,t)}function oo(t,e,n){function r(e){return t(i(e))}var i=ao(e),o=ao(1/e);return r.invert=function(e){return o(t.invert(e))},r.domain=function(e){return arguments.length?(t.domain((n=e.map(Number)).map(i)),r):n},r.ticks=function(t){return to(n,t)},r.tickFormat=function(t,e){return eo(n,t,e)},r.nice=function(t){return r.domain(Ki(n,t))},r.exponent=function(a){return arguments.length?(i=ao(e=a),o=ao(1/e),t.domain(n.map(i)),r):e},r.copy=function(){return oo(t.copy(),e,n)},Gi(r,t)}function ao(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function uo(t,e){function n(n){return o[((i.get(n)||("range"===e.t?i.set(n,t.push(n)):NaN))-1)%o.length]}function r(e,n){return la.range(t.length).map(function(t){return e+n*t})}var i,o,a;return n.domain=function(r){if(!arguments.length)return t;t=[],i=new c;for(var o,a=-1,u=r.length;++a<u;)i.has(o=r[a])||i.set(o,t.push(o));return n[e.t].apply(n,e.a)},n.range=function(t){return arguments.length?(o=t,a=0,e={t:"range",a:arguments},n):o},n.rangePoints=function(i,u){arguments.length<2&&(u=0);var s=i[0],l=i[1],c=t.length<2?(s=(s+l)/2,0):(l-s)/(t.length-1+u);return o=r(s+c*u/2,c),a=0,e={t:"rangePoints",a:arguments},n},n.rangeRoundPoints=function(i,u){arguments.length<2&&(u=0);var s=i[0],l=i[1],c=t.length<2?(s=l=Math.round((s+l)/2),0):(l-s)/(t.length-1+u)|0;return o=r(s+Math.round(c*u/2+(l-s-(t.length-1+u)*c)/2),c),a=0,e={t:"rangeRoundPoints",a:arguments},n},n.rangeBands=function(i,u,s){arguments.length<2&&(u=0),arguments.length<3&&(s=u);var l=i[1]<i[0],c=i[l-0],f=i[1-l],h=(f-c)/(t.length-u+2*s);return o=r(c+h*s,h),l&&o.reverse(),a=h*(1-u),e={t:"rangeBands",a:arguments},n},n.rangeRoundBands=function(i,u,s){arguments.length<2&&(u=0),arguments.length<3&&(s=u);var l=i[1]<i[0],c=i[l-0],f=i[1-l],h=Math.floor((f-c)/(t.length-u+2*s));return o=r(c+Math.round((f-c-(t.length-u)*h)/2),h),l&&o.reverse(),a=Math.round(h*(1-u)),e={t:"rangeRoundBands",a:arguments},n},n.rangeBand=function(){return a},n.rangeExtent=function(){return Vi(e.a[0])},n.copy=function(){return uo(t,e)},n.domain(t)}function so(t,e){function n(){var n=0,r=e.length;for(u=[];++n<r;)u[n-1]=la.quantile(t,n/r);return a}function a(t){if(!isNaN(t=+t))return e[la.bisect(u,t)]}var u;return a.domain=function(e){return arguments.length?(t=e.map(i).filter(o).sort(r),n()):t},a.range=function(t){return arguments.length?(e=t,n()):e},a.quantiles=function(){return u},a.invertExtent=function(n){return n=e.indexOf(n),n<0?[NaN,NaN]:[n>0?u[n-1]:t[0],n<u.length?u[n]:t[t.length-1]]},a.copy=function(){return so(t,e)},n()}function lo(t,e,n){function r(e){return n[Math.max(0,Math.min(a,Math.floor(o*(e-t))))]}function i(){return o=n.length/(e-t),a=n.length-1,r}var o,a;return r.domain=function(n){return arguments.length?(t=+n[0],e=+n[n.length-1],i()):[t,e]},r.range=function(t){return arguments.length?(n=t,i()):n},r.invertExtent=function(e){return e=n.indexOf(e),e=e<0?NaN:e/o+t,[e,e+1/o]},r.copy=function(){return lo(t,e,n)},i()}function co(t,e){function n(n){if(n<=n)return e[la.bisect(t,n)]}return n.domain=function(e){return arguments.length?(t=e,n):t},n.range=function(t){return arguments.length?(e=t,n):e},n.invertExtent=function(n){return n=e.indexOf(n),[t[n-1],t[n]]},n.copy=function(){return co(t,e)},n}function fo(t){function e(t){return+t}return e.invert=e,e.domain=e.range=function(n){return arguments.length?(t=n.map(e),e):t},e.ticks=function(e){return to(t,e)},e.tickFormat=function(e,n){return eo(t,e,n)},e.copy=function(){return fo(t)},e}function ho(){return 0}function po(t){return t.innerRadius}function vo(t){return t.outerRadius}function go(t){return t.startAngle}function yo(t){return t.endAngle}function mo(t){return t&&t.padAngle}function bo(t,e,n,r){return(t-n)*e-(e-r)*t>0?0:1}function xo(t,e,n,r,i){var o=t[0]-e[0],a=t[1]-e[1],u=(i?r:-r)/Math.sqrt(o*o+a*a),s=u*a,l=-u*o,c=t[0]+s,f=t[1]+l,h=e[0]+s,p=e[1]+l,d=(c+h)/2,v=(f+p)/2,g=h-c,y=p-f,m=g*g+y*y,b=n-r,x=c*p-h*f,w=(y<0?-1:1)*Math.sqrt(Math.max(0,b*b*m-x*x)),_=(x*y-g*w)/m,M=(-x*g-y*w)/m,k=(x*y+g*w)/m,E=(-x*g+y*w)/m,j=_-d,C=M-v,S=k-d,T=E-v;return j*j+C*C>S*S+T*T&&(_=k,M=E),[[_-s,M-l],[_*n/b,M*n/b]]}function wo(t){function e(data){function e(){s.push("M",o(t(l),u))}for(var a,s=[],l=[],c=-1,f=data.length,h=Ct(n),p=Ct(r);++c<f;)i.call(this,a=data[c],c)?l.push([+h.call(this,a,c),+p.call(this,a,c)]):l.length&&(e(),l=[]);return l.length&&e(),s.length?s.join(""):null}var n=An,r=Nn,i=Ae,o=_o,a=o.key,u=.7;return e.x=function(t){return arguments.length?(n=t,e):n},e.y=function(t){return arguments.length?(r=t,e):r},e.defined=function(t){return arguments.length?(i=t,e):i},e.interpolate=function(t){return arguments.length?(a="function"==typeof t?o=t:(o=Ds.get(t)||_o).key,e):a},e.tension=function(t){return arguments.length?(u=t,e):u},e}function _o(t){return t.length>1?t.join("L"):t+"Z"}function Mo(t){return t.join("L")+"Z"}function ko(t){for(var e=0,n=t.length,r=t[0],i=[r[0],",",r[1]];++e<n;)i.push("H",(r[0]+(r=t[e])[0])/2,"V",r[1]);return n>1&&i.push("H",r[0]),i.join("")}function Eo(t){for(var e=0,n=t.length,r=t[0],i=[r[0],",",r[1]];++e<n;)i.push("V",(r=t[e])[1],"H",r[0]);return i.join("")}function jo(t){for(var e=0,n=t.length,r=t[0],i=[r[0],",",r[1]];++e<n;)i.push("H",(r=t[e])[0],"V",r[1]);return i.join("")}function Co(t,e){return t.length<4?_o(t):t[1]+Ao(t.slice(1,-1),No(t,e))}function So(t,e){return t.length<3?Mo(t):t[0]+Ao((t.push(t[0]),t),No([t[t.length-2]].concat(t,[t[1]]),e))}function To(t,e){return t.length<3?_o(t):t[0]+Ao(t,No(t,e))}function Ao(t,e){if(e.length<1||t.length!=e.length&&t.length!=e.length+2)return _o(t);var n=t.length!=e.length,r="",i=t[0],o=t[1],a=e[0],u=a,s=1;if(n&&(r+="Q"+(o[0]-2*a[0]/3)+","+(o[1]-2*a[1]/3)+","+o[0]+","+o[1],i=t[1],s=2),e.length>1){u=e[1],o=t[s],s++,r+="C"+(i[0]+a[0])+","+(i[1]+a[1])+","+(o[0]-u[0])+","+(o[1]-u[1])+","+o[0]+","+o[1];for(var l=2;l<e.length;l++,s++)o=t[s],u=e[l],r+="S"+(o[0]-u[0])+","+(o[1]-u[1])+","+o[0]+","+o[1]}if(n){var c=t[s];r+="Q"+(o[0]+2*u[0]/3)+","+(o[1]+2*u[1]/3)+","+c[0]+","+c[1]}return r}function No(t,e){for(var n,r=[],i=(1-e)/2,o=t[0],a=t[1],u=1,s=t.length;++u<s;)n=o,o=a,a=t[u],r.push([i*(a[0]-n[0]),i*(a[1]-n[1])]);return r}function Oo(t){if(t.length<3)return _o(t);var e=1,n=t.length,r=t[0],i=r[0],o=r[1],a=[i,i,i,(r=t[1])[0]],u=[o,o,o,r[1]],s=[i,",",o,"L",Fo(zs,a),",",Fo(zs,u)];for(t.push(t[n-1]);++e<=n;)r=t[e],a.shift(),a.push(r[0]),u.shift(),u.push(r[1]),zo(s,a,u);return t.pop(),s.push("L",r),s.join("")}function qo(t){if(t.length<4)return _o(t);for(var e,n=[],r=-1,i=t.length,o=[0],a=[0];++r<3;)e=t[r],o.push(e[0]),a.push(e[1]);for(n.push(Fo(zs,o)+","+Fo(zs,a)),--r;++r<i;)e=t[r],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),zo(n,o,a);return n.join("")}function Do(t){for(var e,n,r=-1,i=t.length,o=i+4,a=[],u=[];++r<4;)n=t[r%i],a.push(n[0]),u.push(n[1]);for(e=[Fo(zs,a),",",Fo(zs,u)],--r;++r<o;)n=t[r%i],a.shift(),a.push(n[0]),u.shift(),u.push(n[1]),zo(e,a,u);return e.join("")}function Lo(t,e){var n=t.length-1;if(n)for(var r,i,o=t[0][0],a=t[0][1],u=t[n][0]-o,s=t[n][1]-a,l=-1;++l<=n;)r=t[l],i=l/n,r[0]=e*r[0]+(1-e)*(o+i*u),r[1]=e*r[1]+(1-e)*(a+i*s);return Oo(t)}function Fo(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function zo(t,e,n){t.push("C",Fo(Ls,e),",",Fo(Ls,n),",",Fo(Fs,e),",",Fo(Fs,n),",",Fo(zs,e),",",Fo(zs,n))}function Ro(t,e){return(e[1]-t[1])/(e[0]-t[0])}function Po(t){for(var e=0,n=t.length-1,r=[],i=t[0],o=t[1],a=r[0]=Ro(i,o);++e<n;)r[e]=(a+(a=Ro(i=o,o=t[e+1])))/2;return r[e]=a,r}function Io(t){for(var e,n,r,i,o=[],a=Po(t),u=-1,s=t.length-1;++u<s;)e=Ro(t[u],t[u+1]),wa(e)<Ra?a[u]=a[u+1]=0:(n=a[u]/e,r=a[u+1]/e,i=n*n+r*r,i>9&&(i=3*e/Math.sqrt(i),a[u]=i*n,a[u+1]=i*r));for(u=-1;++u<=s;)i=(t[Math.min(s,u+1)][0]-t[Math.max(0,u-1)][0])/(6*(1+a[u]*a[u])),o.push([i||0,a[u]*i||0]);return o}function Ho(t){return t.length<3?_o(t):t[0]+Ao(t,Io(t))}function $o(t){for(var e,n,r,i=-1,o=t.length;++i<o;)e=t[i],n=e[0],r=e[1]-Ba,e[0]=n*Math.cos(r),e[1]=n*Math.sin(r);return t}function Bo(t){function e(data){function e(){d.push("M",u(t(g),f),c,l(t(v.reverse()),f),"Z")}for(var s,h,p,d=[],v=[],g=[],y=-1,m=data.length,b=Ct(n),x=Ct(i),w=n===r?function(){return h}:Ct(r),_=i===o?function(){return p}:Ct(o);++y<m;)a.call(this,s=data[y],y)?(v.push([h=+b.call(this,s,y),p=+x.call(this,s,y)]),g.push([+w.call(this,s,y),+_.call(this,s,y)])):v.length&&(e(),v=[],g=[]);return v.length&&e(),d.length?d.join(""):null}var n=An,r=An,i=0,o=Nn,a=Ae,u=_o,s=u.key,l=u,c="L",f=.7;return e.x=function(t){return arguments.length?(n=r=t,e):r},e.x0=function(t){return arguments.length?(n=t,e):n},e.x1=function(t){return arguments.length?(r=t,e):r},e.y=function(t){return arguments.length?(i=o=t,e):o},e.y0=function(t){return arguments.length?(i=t,e):i},e.y1=function(t){return arguments.length?(o=t,e):o},e.defined=function(t){return arguments.length?(a=t,e):a},e.interpolate=function(t){return arguments.length?(s="function"==typeof t?u=t:(u=Ds.get(t)||_o).key,l=u.reverse||u,c=u.closed?"M":"L",e):s},e.tension=function(t){return arguments.length?(f=t,e):f},e}function Vo(t){return t.radius}function Uo(t){return[t.x,t.y]}function Wo(t){return function(){var e=t.apply(this,arguments),n=e[0],r=e[1]-Ba;return[n*Math.cos(r),n*Math.sin(r)]}}function Yo(){return 64}function Xo(){return"circle"}function Jo(t){var e=Math.sqrt(t/Ia);return"M0,"+e+"A"+e+","+e+" 0 1,1 0,"+-e+"A"+e+","+e+" 0 1,1 0,"+e+"Z"}function Zo(t){return function(){var e,n,r;(e=this[t])&&(r=e[n=e.active])&&(r.timer.c=null,r.timer.t=NaN,--e.count?delete e[n]:delete this[t],e.active+=.5,r.event&&r.event.interrupt.call(this,this.__data__,r.index))}}function Go(t,e,n){return ja(t,Vs),t.namespace=e,t.id=n,t}function Ko(t,e,n,r){var i=t.id,o=t.namespace;return V(t,"function"==typeof n?function(t,a,u){t[o][i].tween.set(e,r(n.call(t,t.__data__,a,u)))}:(n=r(n),function(t){t[o][i].tween.set(e,n)}))}function Qo(t){return null==t&&(t=""),function(){this.textContent=t}}function ta(t){return null==t?"__transition__":"__transition_"+t+"__"}function ea(t,e,n,r,i){function o(t){var e=v.delay;return l.t=e+s,e<=t?a(t-e):void(l.c=a)}function a(n){var i=d.active,o=d[i];o&&(o.timer.c=null,o.timer.t=NaN,--d.count,delete d[i],o.event&&o.event.interrupt.call(t,t.__data__,o.index));for(var a in d)if(+a<r){var c=d[a];c.timer.c=null,c.timer.t=NaN,--d.count,delete d[a]}l.c=u,Ot(function(){return l.c&&u(n||1)&&(l.c=null,l.t=NaN),1},0,s),d.active=r,v.event&&v.event.start.call(t,t.__data__,e),p=[],v.tween.forEach(function(n,r){(r=r.call(t,t.__data__,e))&&p.push(r)}),h=v.ease,f=v.duration}function u(i){for(var o=i/f,a=h(o),u=p.length;u>0;)p[--u].call(t,a);if(o>=1)return v.event&&v.event.end.call(t,t.__data__,e),--d.count?delete d[r]:delete t[n],1}var s,l,f,h,p,d=t[n]||(t[n]={active:0,count:0}),v=d[r];v||(s=i.time,l=Ot(o,0,s),v=d[r]={tween:new c,time:s,timer:l,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++d.count)}function na(t,e,n){t.attr("transform",function(t){var r=e(t);return"translate("+(isFinite(r)?r:n(t))+",0)"})}function ra(t,e,n){t.attr("transform",function(t){var r=e(t);return"translate(0,"+(isFinite(r)?r:n(t))+")"})}function ia(t){return t.toISOString()}function oa(t,e,n){function r(e){return t(e)}function i(t,n){var r=t[1]-t[0],i=r/n,o=la.bisect(Qs,i);return o==Qs.length?[e.year,Qi(t.map(function(t){return t/31536e6}),n)[2]]:o?e[i/Qs[o-1]<Qs[o]/i?o-1:o]:[nl,Qi(t,n)[2]]}return r.invert=function(e){return aa(t.invert(e))},r.domain=function(e){return arguments.length?(t.domain(e),r):t.domain().map(aa)},r.nice=function(t,e){function n(n){return!isNaN(n)&&!t.range(n,aa(+n+1),e).length}var o=r.domain(),a=Vi(o),u=null==t?i(a,10):"number"==typeof t&&i(a,t);return u&&(t=u[0],e=u[1]),r.domain(Yi(o,e>1?{floor:function(e){for(;n(e=t.floor(e));)e=aa(e-1);return e},ceil:function(e){for(;n(e=t.ceil(e));)e=aa(+e+1);return e}}:t))},r.ticks=function(t,e){var n=Vi(r.domain()),o=null==t?i(n,10):"number"==typeof t?i(n,t):!t.range&&[{range:t},e];return o&&(t=o[0],e=o[1]),t.range(n[0],aa(+n[1]+1),e<1?1:e)},r.tickFormat=function(){return n},r.copy=function(){return oa(t.copy(),e,n)},Gi(r,t)}function aa(t){return new Date(t)}function ua(t){return JSON.parse(t.responseText)}function sa(t){var e=ha.createRange();return e.selectNode(ha.body),e.createContextualFragment(t.responseText)}var la={version:"3.5.17"},ca=[].slice,fa=function(t){return ca.call(t)},ha=this.document;if(ha)try{fa(ha.documentElement.childNodes)[0].nodeType}catch(pa){fa=function(t){for(var e=t.length,n=new Array(e);e--;)n[e]=t[e];return n}}if(Date.now||(Date.now=function(){return+new Date}),ha)try{ha.createElement("DIV").style.setProperty("opacity",0,"")}catch(da){var va=this.Element.prototype,ga=va.setAttribute,ya=va.setAttributeNS,ma=this.CSSStyleDeclaration.prototype,ba=ma.setProperty;va.setAttribute=function(t,e){ga.call(this,t,e+"")},va.setAttributeNS=function(t,e,n){ya.call(this,t,e,n+"")},ma.setProperty=function(t,e,n){ba.call(this,t,e+"",n)}}la.ascending=r,la.descending=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},la.min=function(t,e){var n,r,i=-1,o=t.length;if(1===arguments.length){for(;++i<o;)if(null!=(r=t[i])&&r>=r){n=r;break}for(;++i<o;)null!=(r=t[i])&&n>r&&(n=r)}else{for(;++i<o;)if(null!=(r=e.call(t,t[i],i))&&r>=r){n=r;break}for(;++i<o;)null!=(r=e.call(t,t[i],i))&&n>r&&(n=r)}return n},la.max=function(t,e){var n,r,i=-1,o=t.length;if(1===arguments.length){for(;++i<o;)if(null!=(r=t[i])&&r>=r){n=r;break}for(;++i<o;)null!=(r=t[i])&&r>n&&(n=r)}else{for(;++i<o;)if(null!=(r=e.call(t,t[i],i))&&r>=r){n=r;break}for(;++i<o;)null!=(r=e.call(t,t[i],i))&&r>n&&(n=r)}return n},la.extent=function(t,e){var n,r,i,o=-1,a=t.length;if(1===arguments.length){for(;++o<a;)if(null!=(r=t[o])&&r>=r){n=i=r;break}for(;++o<a;)null!=(r=t[o])&&(n>r&&(n=r),i<r&&(i=r))}else{for(;++o<a;)if(null!=(r=e.call(t,t[o],o))&&r>=r){n=i=r;break}for(;++o<a;)null!=(r=e.call(t,t[o],o))&&(n>r&&(n=r),i<r&&(i=r))}return[n,i]},la.sum=function(t,e){var n,r=0,i=t.length,a=-1;if(1===arguments.length)for(;++a<i;)o(n=+t[a])&&(r+=n);else for(;++a<i;)o(n=+e.call(t,t[a],a))&&(r+=n);return r},la.mean=function(t,e){var n,r=0,a=t.length,u=-1,s=a;if(1===arguments.length)for(;++u<a;)o(n=i(t[u]))?r+=n:--s;else for(;++u<a;)o(n=i(e.call(t,t[u],u)))?r+=n:--s;if(s)return r/s},la.quantile=function(t,e){var n=(t.length-1)*e+1,r=Math.floor(n),i=+t[r-1],o=n-r;return o?i+o*(t[r]-i):i},la.median=function(t,e){var n,a=[],u=t.length,s=-1;if(1===arguments.length)for(;++s<u;)o(n=i(t[s]))&&a.push(n);else for(;++s<u;)o(n=i(e.call(t,t[s],s)))&&a.push(n);if(a.length)return la.quantile(a.sort(r),.5)},la.variance=function(t,e){var n,r,a=t.length,u=0,s=0,l=-1,c=0;if(1===arguments.length)for(;++l<a;)o(n=i(t[l]))&&(r=n-u,u+=r/++c,s+=r*(n-u));else for(;++l<a;)o(n=i(e.call(t,t[l],l)))&&(r=n-u,u+=r/++c,s+=r*(n-u));if(c>1)return s/(c-1)},la.deviation=function(){var t=la.variance.apply(this,arguments);return t?Math.sqrt(t):t};var xa=a(r);la.bisectLeft=xa.left,la.bisect=la.bisectRight=xa.right,la.bisector=function(t){return a(1===t.length?function(e,n){return r(t(e),n)}:t)},la.shuffle=function(t,e,n){(o=arguments.length)<3&&(n=t.length,o<2&&(e=0));for(var r,i,o=n-e;o;)i=Math.random()*o--|0,r=t[o+e],t[o+e]=t[i+e],t[i+e]=r;return t},la.permute=function(t,e){for(var n=e.length,r=new Array(n);n--;)r[n]=t[e[n]];return r},la.pairs=function(t){for(var e,n=0,r=t.length-1,i=t[0],o=new Array(r<0?0:r);n<r;)o[n]=[e=i,i=t[++n]];return o},la.transpose=function(t){ +if(!(i=t.length))return[];for(var e=-1,n=la.min(t,u),r=new Array(n);++e<n;)for(var i,o=-1,a=r[e]=new Array(i);++o<i;)a[o]=t[o][e];return r},la.zip=function(){return la.transpose(arguments)},la.keys=function(t){var e=[];for(var n in t)e.push(n);return e},la.values=function(t){var e=[];for(var n in t)e.push(t[n]);return e},la.entries=function(t){var e=[];for(var n in t)e.push({key:n,value:t[n]});return e},la.merge=function(t){for(var e,n,r,i=t.length,o=-1,a=0;++o<i;)a+=t[o].length;for(n=new Array(a);--i>=0;)for(r=t[i],e=r.length;--e>=0;)n[--a]=r[e];return n};var wa=Math.abs;la.range=function(t,e,n){if(arguments.length<3&&(n=1,arguments.length<2&&(e=t,t=0)),(e-t)/n===1/0)throw new Error("infinite range");var r,i=[],o=s(wa(n)),a=-1;if(t*=o,e*=o,n*=o,n<0)for(;(r=t+n*++a)>e;)i.push(r/o);else for(;(r=t+n*++a)<e;)i.push(r/o);return i},la.map=function(t,e){var n=new c;if(t instanceof c)t.forEach(function(t,e){n.set(t,e)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(1===arguments.length)for(;++i<o;)n.set(i,t[i]);else for(;++i<o;)n.set(e.call(t,r=t[i],i),r)}else for(var a in t)n.set(a,t[a]);return n};var _a="__proto__",Ma="\0";l(c,{has:p,get:function(t){return this._[f(t)]},set:function(t,e){return this._[f(t)]=e},remove:d,keys:v,values:function(){var t=[];for(var e in this._)t.push(this._[e]);return t},entries:function(){var t=[];for(var e in this._)t.push({key:h(e),value:this._[e]});return t},size:g,empty:y,forEach:function(t){for(var e in this._)t.call(this,h(e),this._[e])}}),la.nest=function(){function t(e,a,u){if(u>=o.length)return r?r.call(i,a):n?a.sort(n):a;for(var s,l,f,h,p=-1,d=a.length,v=o[u++],g=new c;++p<d;)(h=g.get(s=v(l=a[p])))?h.push(l):g.set(s,[l]);return e?(l=e(),f=function(n,r){l.set(n,t(e,r,u))}):(l={},f=function(n,r){l[n]=t(e,r,u)}),g.forEach(f),l}function e(t,n){if(n>=o.length)return t;var r=[],i=a[n++];return t.forEach(function(t,i){r.push({key:t,values:e(i,n)})}),i?r.sort(function(t,e){return i(t.key,e.key)}):r}var n,r,i={},o=[],a=[];return i.map=function(e,n){return t(n,e,0)},i.entries=function(n){return e(t(la.map,n,0),0)},i.key=function(t){return o.push(t),i},i.sortKeys=function(t){return a[o.length-1]=t,i},i.sortValues=function(t){return n=t,i},i.rollup=function(t){return r=t,i},i},la.set=function(t){var e=new m;if(t)for(var n=0,r=t.length;n<r;++n)e.add(t[n]);return e},l(m,{has:p,add:function(t){return this._[f(t+="")]=!0,t},remove:d,values:v,size:g,empty:y,forEach:function(t){for(var e in this._)t.call(this,h(e))}}),la.behavior={},la.rebind=function(t,e){for(var n,r=1,i=arguments.length;++r<i;)t[n=arguments[r]]=x(t,e,e[n]);return t};var ka=["webkit","ms","moz","Moz","o","O"];la.dispatch=function(){for(var t=new M,e=-1,n=arguments.length;++e<n;)t[arguments[e]]=k(t);return t},M.prototype.on=function(t,e){var n=t.indexOf("."),r="";if(n>=0&&(r=t.slice(n+1),t=t.slice(0,n)),t)return arguments.length<2?this[t].on(r):this[t].on(r,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(r,null);return this}},la.event=null,la.requote=function(t){return t.replace(Ea,"\\$&")};var Ea=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ja={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var n in e)t[n]=e[n]},Ca=function(t,e){return e.querySelector(t)},Sa=function(t,e){return e.querySelectorAll(t)},Ta=function(t,e){var n=t.matches||t[w(t,"matchesSelector")];return(Ta=function(t,e){return n.call(t,e)})(t,e)};"function"==typeof Sizzle&&(Ca=function(t,e){return Sizzle(t,e)[0]||null},Sa=Sizzle,Ta=Sizzle.matchesSelector),la.selection=function(){return la.select(ha.documentElement)};var Aa=la.selection.prototype=[];Aa.select=function(t){var e,n,r,i,o=[];t=T(t);for(var a=-1,u=this.length;++a<u;){o.push(e=[]),e.parentNode=(r=this[a]).parentNode;for(var s=-1,l=r.length;++s<l;)(i=r[s])?(e.push(n=t.call(i,i.__data__,s,a)),n&&"__data__"in i&&(n.__data__=i.__data__)):e.push(null)}return S(o)},Aa.selectAll=function(t){var e,n,r=[];t=A(t);for(var i=-1,o=this.length;++i<o;)for(var a=this[i],u=-1,s=a.length;++u<s;)(n=a[u])&&(r.push(e=fa(t.call(n,n.__data__,u,i))),e.parentNode=n);return S(r)};var Na="http://www.w3.org/1999/xhtml",Oa={svg:"http://www.w3.org/2000/svg",xhtml:Na,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};la.ns={prefix:Oa,qualify:function(t){var e=t.indexOf(":"),n=t;return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Oa.hasOwnProperty(n)?{space:Oa[n],local:t}:t}},Aa.attr=function(t,e){if(arguments.length<2){if("string"==typeof t){var n=this.node();return t=la.ns.qualify(t),t.local?n.getAttributeNS(t.space,t.local):n.getAttribute(t)}for(e in t)this.each(N(e,t[e]));return this}return this.each(N(t,e))},Aa.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var n=this.node(),r=(t=D(t)).length,i=-1;if(e=n.classList){for(;++i<r;)if(!e.contains(t[i]))return!1}else for(e=n.getAttribute("class");++i<r;)if(!q(t[i]).test(e))return!1;return!0}for(e in t)this.each(L(e,t[e]));return this}return this.each(L(t,e))},Aa.style=function(t,e,r){var i=arguments.length;if(i<3){if("string"!=typeof t){i<2&&(e="");for(r in t)this.each(z(r,t[r],e));return this}if(i<2){var o=this.node();return n(o).getComputedStyle(o,null).getPropertyValue(t)}r=""}return this.each(z(t,e,r))},Aa.property=function(t,e){if(arguments.length<2){if("string"==typeof t)return this.node()[t];for(e in t)this.each(R(e,t[e]));return this}return this.each(R(t,e))},Aa.text=function(t){return arguments.length?this.each("function"==typeof t?function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}:null==t?function(){this.textContent=""}:function(){this.textContent=t}):this.node().textContent},Aa.html=function(t){return arguments.length?this.each("function"==typeof t?function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}:null==t?function(){this.innerHTML=""}:function(){this.innerHTML=t}):this.node().innerHTML},Aa.append=function(t){return t=P(t),this.select(function(){return this.appendChild(t.apply(this,arguments))})},Aa.insert=function(t,e){return t=P(t),e=T(e),this.select(function(){return this.insertBefore(t.apply(this,arguments),e.apply(this,arguments)||null)})},Aa.remove=function(){return this.each(I)},Aa.data=function(t,e){function n(t,n){var r,i,o,a=t.length,f=n.length,h=Math.min(a,f),p=new Array(f),d=new Array(f),v=new Array(a);if(e){var g,y=new c,m=new Array(a);for(r=-1;++r<a;)(i=t[r])&&(y.has(g=e.call(i,i.__data__,r))?v[r]=i:y.set(g,i),m[r]=g);for(r=-1;++r<f;)(i=y.get(g=e.call(n,o=n[r],r)))?i!==!0&&(p[r]=i,i.__data__=o):d[r]=H(o),y.set(g,!0);for(r=-1;++r<a;)r in m&&y.get(m[r])!==!0&&(v[r]=t[r])}else{for(r=-1;++r<h;)i=t[r],o=n[r],i?(i.__data__=o,p[r]=i):d[r]=H(o);for(;r<f;++r)d[r]=H(n[r]);for(;r<a;++r)v[r]=t[r]}d.update=p,d.parentNode=p.parentNode=v.parentNode=t.parentNode,u.push(d),s.push(p),l.push(v)}var r,i,o=-1,a=this.length;if(!arguments.length){for(t=new Array(a=(r=this[0]).length);++o<a;)(i=r[o])&&(t[o]=i.__data__);return t}var u=U([]),s=S([]),l=S([]);if("function"==typeof t)for(;++o<a;)n(r=this[o],t.call(r,r.parentNode.__data__,o));else for(;++o<a;)n(r=this[o],t);return s.enter=function(){return u},s.exit=function(){return l},s},Aa.datum=function(t){return arguments.length?this.property("__data__",t):this.property("__data__")},Aa.filter=function(t){var e,n,r,i=[];"function"!=typeof t&&(t=$(t));for(var o=0,a=this.length;o<a;o++){i.push(e=[]),e.parentNode=(n=this[o]).parentNode;for(var u=0,s=n.length;u<s;u++)(r=n[u])&&t.call(r,r.__data__,u,o)&&e.push(r)}return S(i)},Aa.order=function(){for(var t=-1,e=this.length;++t<e;)for(var n,r=this[t],i=r.length-1,o=r[i];--i>=0;)(n=r[i])&&(o&&o!==n.nextSibling&&o.parentNode.insertBefore(n,o),o=n);return this},Aa.sort=function(t){t=B.apply(this,arguments);for(var e=-1,n=this.length;++e<n;)this[e].sort(t);return this.order()},Aa.each=function(t){return V(this,function(e,n,r){t.call(e,e.__data__,n,r)})},Aa.call=function(t){var e=fa(arguments);return t.apply(e[0]=this,e),this},Aa.empty=function(){return!this.node()},Aa.node=function(){for(var t=0,e=this.length;t<e;t++)for(var n=this[t],r=0,i=n.length;r<i;r++){var o=n[r];if(o)return o}return null},Aa.size=function(){var t=0;return V(this,function(){++t}),t};var qa=[];la.selection.enter=U,la.selection.enter.prototype=qa,qa.append=Aa.append,qa.empty=Aa.empty,qa.node=Aa.node,qa.call=Aa.call,qa.size=Aa.size,qa.select=function(t){for(var e,n,r,i,o,a=[],u=-1,s=this.length;++u<s;){r=(i=this[u]).update,a.push(e=[]),e.parentNode=i.parentNode;for(var l=-1,c=i.length;++l<c;)(o=i[l])?(e.push(r[l]=n=t.call(i.parentNode,o.__data__,l,u)),n.__data__=o.__data__):e.push(null)}return S(a)},qa.insert=function(t,e){return arguments.length<2&&(e=W(this)),Aa.insert.call(this,t,e)},la.select=function(e){var n;return"string"==typeof e?(n=[Ca(e,ha)],n.parentNode=ha.documentElement):(n=[e],n.parentNode=t(e)),S([n])},la.selectAll=function(t){var e;return"string"==typeof t?(e=fa(Sa(t,ha)),e.parentNode=ha.documentElement):(e=fa(t),e.parentNode=null),S([e])},Aa.on=function(t,e,n){var r=arguments.length;if(r<3){if("string"!=typeof t){r<2&&(e=!1);for(n in t)this.each(Y(n,t[n],e));return this}if(r<2)return(r=this.node()["__on"+t])&&r._;n=!1}return this.each(Y(t,e,n))};var Da=la.map({mouseenter:"mouseover",mouseleave:"mouseout"});ha&&Da.forEach(function(t){"on"+t in ha&&Da.remove(t)});var La,Fa=0;la.mouse=function(t){return G(t,j())};var za=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;la.touch=function(t,e,n){if(arguments.length<3&&(n=e,e=j().changedTouches),e)for(var r,i=0,o=e.length;i<o;++i)if((r=e[i]).identifier===n)return G(t,r)},la.behavior.drag=function(){function t(){this.on("mousedown.drag",o).on("touchstart.drag",a)}function e(t,e,n,o,a){return function(){function u(){var t,n,r=e(h,v);r&&(t=r[0]-b[0],n=r[1]-b[1],d|=t|n,b=r,p({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:t,dy:n}))}function s(){e(h,v)&&(y.on(o+g,null).on(a+g,null),m(d),p({type:"dragend"}))}var l,c=this,f=la.event.target.correspondingElement||la.event.target,h=c.parentNode,p=r.of(c,arguments),d=0,v=t(),g=".drag"+(null==v?"":"-"+v),y=la.select(n(f)).on(o+g,u).on(a+g,s),m=Z(f),b=e(h,v);i?(l=i.apply(c,arguments),l=[l.x-b[0],l.y-b[1]]):l=[0,0],p({type:"dragstart"})}}var r=C(t,"drag","dragstart","dragend"),i=null,o=e(_,la.mouse,n,"mousemove","mouseup"),a=e(K,la.touch,b,"touchmove","touchend");return t.origin=function(e){return arguments.length?(i=e,t):i},la.rebind(t,r,"on")},la.touches=function(t,e){return arguments.length<2&&(e=j().touches),e?fa(e).map(function(e){var n=G(t,e);return n.identifier=e.identifier,n}):[]};var Ra=1e-6,Pa=Ra*Ra,Ia=Math.PI,Ha=2*Ia,$a=Ha-Ra,Ba=Ia/2,Va=Ia/180,Ua=180/Ia,Wa=Math.SQRT2,Ya=2,Xa=4;la.interpolateZoom=function(t,e){var n,r,i=t[0],o=t[1],a=t[2],u=e[0],s=e[1],l=e[2],c=u-i,f=s-o,h=c*c+f*f;if(h<Pa)r=Math.log(l/a)/Wa,n=function(t){return[i+t*c,o+t*f,a*Math.exp(Wa*t*r)]};else{var p=Math.sqrt(h),d=(l*l-a*a+Xa*h)/(2*a*Ya*p),v=(l*l-a*a-Xa*h)/(2*l*Ya*p),g=Math.log(Math.sqrt(d*d+1)-d),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-g)/Wa,n=function(t){var e=t*r,n=it(g),u=a/(Ya*p)*(n*ot(Wa*e+g)-rt(g));return[i+u*c,o+u*f,a*n/it(Wa*e+g)]}}return n.duration=1e3*r,n},la.behavior.zoom=function(){function t(t){t.on(N,f).on(Za+".zoom",p).on("dblclick.zoom",d).on(D,h)}function e(t){return[(t[0]-k.x)/k.k,(t[1]-k.y)/k.k]}function r(t){return[t[0]*k.k+k.x,t[1]*k.k+k.y]}function i(t){k.k=Math.max(S[0],Math.min(S[1],t))}function o(t,e){e=r(e),k.x+=t[0]-e[0],k.y+=t[1]-e[1]}function a(e,n,r,a){e.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,a)),o(g=n,r),e=la.select(e),T>0&&(e=e.transition().duration(T)),e.call(t.event)}function u(){w&&w.domain(x.range().map(function(t){return(t-k.x)/k.k}).map(x.invert)),M&&M.domain(_.range().map(function(t){return(t-k.y)/k.k}).map(_.invert))}function s(t){A++||t({type:"zoomstart"})}function l(t){u(),t({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function c(t){--A||(t({type:"zoomend"}),g=null)}function f(){function t(){u=1,o(la.mouse(i),h),l(a)}function r(){f.on(O,null).on(q,null),p(u),c(a)}var i=this,a=L.of(i,arguments),u=0,f=la.select(n(i)).on(O,t).on(q,r),h=e(la.mouse(i)),p=Z(i);Bs.call(i),s(a)}function h(){function t(){var t=la.touches(d);return p=k.k,t.forEach(function(t){t.identifier in g&&(g[t.identifier]=e(t))}),t}function n(){var e=la.event.target;la.select(e).on(x,r).on(w,u),_.push(e);for(var n=la.event.changedTouches,i=0,o=n.length;i<o;++i)g[n[i].identifier]=null;var s=t(),l=Date.now();if(1===s.length){if(l-b<500){var c=s[0];a(d,c,g[c.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),E()}b=l}else if(s.length>1){var c=s[0],f=s[1],h=c[0]-f[0],p=c[1]-f[1];y=h*h+p*p}}function r(){var t,e,n,r,a=la.touches(d);Bs.call(d);for(var u=0,s=a.length;u<s;++u,r=null)if(n=a[u],r=g[n.identifier]){if(e)break;t=n,e=r}if(r){var c=(c=n[0]-t[0])*c+(c=n[1]-t[1])*c,f=y&&Math.sqrt(c/y);t=[(t[0]+n[0])/2,(t[1]+n[1])/2],e=[(e[0]+r[0])/2,(e[1]+r[1])/2],i(f*p)}b=null,o(t,e),l(v)}function u(){if(la.event.touches.length){for(var e=la.event.changedTouches,n=0,r=e.length;n<r;++n)delete g[e[n].identifier];for(var i in g)return void t()}la.selectAll(_).on(m,null),M.on(N,f).on(D,h),j(),c(v)}var p,d=this,v=L.of(d,arguments),g={},y=0,m=".zoom-"+la.event.changedTouches[0].identifier,x="touchmove"+m,w="touchend"+m,_=[],M=la.select(d),j=Z(d);n(),s(v),M.on(N,null).on(D,n)}function p(){var t=L.of(this,arguments);m?clearTimeout(m):(Bs.call(this),v=e(g=y||la.mouse(this)),s(t)),m=setTimeout(function(){m=null,c(t)},50),E(),i(Math.pow(2,.002*Ja())*k.k),o(g,v),l(t)}function d(){var t=la.mouse(this),n=Math.log(k.k)/Math.LN2;a(this,t,e(t),la.event.shiftKey?Math.ceil(n)-1:Math.floor(n)+1)}var v,g,y,m,b,x,w,_,M,k={x:0,y:0,k:1},j=[960,500],S=Ga,T=250,A=0,N="mousedown.zoom",O="mousemove.zoom",q="mouseup.zoom",D="touchstart.zoom",L=C(t,"zoomstart","zoom","zoomend");return Za||(Za="onwheel"in ha?(Ja=function(){return-la.event.deltaY*(la.event.deltaMode?120:1)},"wheel"):"onmousewheel"in ha?(Ja=function(){return la.event.wheelDelta},"mousewheel"):(Ja=function(){return-la.event.detail},"MozMousePixelScroll")),t.event=function(t){t.each(function(){var t=L.of(this,arguments),e=k;Hs?la.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},s(t)}).tween("zoom:zoom",function(){var n=j[0],r=j[1],i=g?g[0]:n/2,o=g?g[1]:r/2,a=la.interpolateZoom([(i-k.x)/k.k,(o-k.y)/k.k,n/k.k],[(i-e.x)/e.k,(o-e.y)/e.k,n/e.k]);return function(e){var r=a(e),u=n/r[2];this.__chart__=k={x:i-r[0]*u,y:o-r[1]*u,k:u},l(t)}}).each("interrupt.zoom",function(){c(t)}).each("end.zoom",function(){c(t)}):(this.__chart__=k,s(t),l(t),c(t))})},t.translate=function(e){return arguments.length?(k={x:+e[0],y:+e[1],k:k.k},u(),t):[k.x,k.y]},t.scale=function(e){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+e),u(),t):k.k},t.scaleExtent=function(e){return arguments.length?(S=null==e?Ga:[+e[0],+e[1]],t):S},t.center=function(e){return arguments.length?(y=e&&[+e[0],+e[1]],t):y},t.size=function(e){return arguments.length?(j=e&&[+e[0],+e[1]],t):j},t.duration=function(e){return arguments.length?(T=+e,t):T},t.x=function(e){return arguments.length?(w=e,x=e.copy(),k={x:0,y:0,k:1},t):w},t.y=function(e){return arguments.length?(M=e,_=e.copy(),k={x:0,y:0,k:1},t):M},la.rebind(t,L,"on")};var Ja,Za,Ga=[0,1/0];la.color=ut,ut.prototype.toString=function(){return this.rgb()+""},la.hsl=st;var Ka=st.prototype=new ut;Ka.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new st(this.h,this.s,this.l/t)},Ka.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new st(this.h,this.s,t*this.l)},Ka.rgb=function(){return lt(this.h,this.s,this.l)},la.hcl=ct;var Qa=ct.prototype=new ut;Qa.brighter=function(t){return new ct(this.h,this.c,Math.min(100,this.l+tu*(arguments.length?t:1)))},Qa.darker=function(t){return new ct(this.h,this.c,Math.max(0,this.l-tu*(arguments.length?t:1)))},Qa.rgb=function(){return ft(this.h,this.c,this.l).rgb()},la.lab=ht;var tu=18,eu=.95047,nu=1,ru=1.08883,iu=ht.prototype=new ut;iu.brighter=function(t){return new ht(Math.min(100,this.l+tu*(arguments.length?t:1)),this.a,this.b)},iu.darker=function(t){return new ht(Math.max(0,this.l-tu*(arguments.length?t:1)),this.a,this.b)},iu.rgb=function(){return pt(this.l,this.a,this.b)},la.rgb=mt;var ou=mt.prototype=new ut;ou.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,n=this.g,r=this.b,i=30;return e||n||r?(e&&e<i&&(e=i),n&&n<i&&(n=i),r&&r<i&&(r=i),new mt(Math.min(255,e/t),Math.min(255,n/t),Math.min(255,r/t))):new mt(i,i,i)},ou.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new mt(t*this.r,t*this.g,t*this.b)},ou.hsl=function(){return Mt(this.r,this.g,this.b)},ou.toString=function(){return"#"+wt(this.r)+wt(this.g)+wt(this.b)};var au=la.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});au.forEach(function(t,e){au.set(t,bt(e))}),la.functor=Ct,la.xhr=St(b),la.dsv=function(t,e){function n(t,n,o){arguments.length<3&&(o=n,n=null);var a=Tt(t,e,null==n?r:i(n),o);return a.row=function(t){return arguments.length?a.response(null==(n=t)?r:i(t)):n},a}function r(t){return n.parse(t.responseText)}function i(t){return function(e){return n.parse(e.responseText,t)}}function o(e){return e.map(a).join(t)}function a(t){return u.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}var u=new RegExp('["'+t+"\n]"),s=t.charCodeAt(0);return n.parse=function(t,e){var r;return n.parseRows(t,function(t,n){if(r)return r(t,n-1);var i=new Function("d","return {"+t.map(function(t,e){return JSON.stringify(t)+": d["+e+"]"}).join(",")+"}");r=e?function(t,n){return e(i(t),n)}:i})},n.parseRows=function(t,e){function n(){if(c>=l)return a;if(i)return i=!1,o;var e=c;if(34===t.charCodeAt(e)){for(var n=e;n++<l;)if(34===t.charCodeAt(n)){if(34!==t.charCodeAt(n+1))break;++n}c=n+2;var r=t.charCodeAt(n+1);return 13===r?(i=!0,10===t.charCodeAt(n+2)&&++c):10===r&&(i=!0),t.slice(e+1,n).replace(/""/g,'"')}for(;c<l;){var r=t.charCodeAt(c++),u=1;if(10===r)i=!0;else if(13===r)i=!0,10===t.charCodeAt(c)&&(++c,++u);else if(r!==s)continue;return t.slice(e,c-u)}return t.slice(e)}for(var r,i,o={},a={},u=[],l=t.length,c=0,f=0;(r=n())!==a;){for(var h=[];r!==o&&r!==a;)h.push(r),r=n();e&&null==(h=e(h,f++))||u.push(h)}return u},n.format=function(e){if(Array.isArray(e[0]))return n.formatRows(e);var r=new m,i=[];return e.forEach(function(t){for(var e in t)r.has(e)||i.push(r.add(e))}),[i.map(a).join(t)].concat(e.map(function(e){return i.map(function(t){return a(e[t])}).join(t)})).join("\n")},n.formatRows=function(t){return t.map(o).join("\n")},n},la.csv=la.dsv(",","text/csv"),la.tsv=la.dsv("\t","text/tab-separated-values");var uu,su,lu,cu,fu=this[w(this,"requestAnimationFrame")]||function(t){setTimeout(t,17)};la.timer=function(){Ot.apply(this,arguments)},la.timer.flush=function(){Dt(),Lt()},la.round=function(t,e){return e?Math.round(t*(e=Math.pow(10,e)))/e:Math.round(t)};var hu=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(zt);la.formatPrefix=function(t,e){var n=0;return(t=+t)&&(t<0&&(t*=-1),e&&(t=la.round(t,Ft(t,e))),n=1+Math.floor(1e-12+Math.log(t)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),hu[8+n/3]};var pu=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,du=la.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(t,e){return(t=la.round(t,Ft(t,e))).toFixed(Math.max(0,Math.min(20,Ft(t*(1+1e-15),e))))}}),vu=la.time={},gu=Date;It.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){yu.setUTCDate.apply(this._,arguments)},setDay:function(){yu.setUTCDay.apply(this._,arguments)},setFullYear:function(){yu.setUTCFullYear.apply(this._,arguments)},setHours:function(){yu.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){yu.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){yu.setUTCMinutes.apply(this._,arguments)},setMonth:function(){yu.setUTCMonth.apply(this._,arguments)},setSeconds:function(){yu.setUTCSeconds.apply(this._,arguments)},setTime:function(){yu.setTime.apply(this._,arguments)}};var yu=Date.prototype;vu.year=Ht(function(t){return t=vu.day(t),t.setMonth(0,1),t},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t){return t.getFullYear()}),vu.years=vu.year.range,vu.years.utc=vu.year.utc.range,vu.day=Ht(function(t){var e=new gu(2e3,0);return e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),e},function(t,e){t.setDate(t.getDate()+e)},function(t){return t.getDate()-1}),vu.days=vu.day.range,vu.days.utc=vu.day.utc.range,vu.dayOfYear=function(t){var e=vu.year(t);return Math.floor((t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(t,e){e=7-e;var n=vu[t]=Ht(function(t){return(t=vu.day(t)).setDate(t.getDate()-(t.getDay()+e)%7),t},function(t,e){t.setDate(t.getDate()+7*Math.floor(e))},function(t){var n=vu.year(t).getDay();return Math.floor((vu.dayOfYear(t)+(n+e)%7)/7)-(n!==e)});vu[t+"s"]=n.range,vu[t+"s"].utc=n.utc.range,vu[t+"OfYear"]=function(t){var n=vu.year(t).getDay();return Math.floor((vu.dayOfYear(t)+(n+e)%7)/7)}}),vu.week=vu.sunday,vu.weeks=vu.sunday.range,vu.weeks.utc=vu.sunday.utc.range,vu.weekOfYear=vu.sundayOfYear;var mu={"-":"",_:" ",0:"0"},bu=/^\s*\d+/,xu=/^%/;la.locale=function(t){return{numberFormat:Rt(t),timeFormat:Bt(t)}};var wu=la.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});la.format=wu.numberFormat,la.geo={},ce.prototype={s:0,t:0,add:function(t){fe(t,this.t,_u),fe(_u.s,this.s,this),this.s?this.t+=_u.t:this.s=_u.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var _u=new ce;la.geo.stream=function(t,e){t&&Mu.hasOwnProperty(t.type)?Mu[t.type](t,e):he(t,e)};var Mu={Feature:function(t,e){he(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)he(n[r].geometry,e)}},ku={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){pe(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)pe(n[r],e,0)},Polygon:function(t,e){de(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)de(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)he(n[r],e)}};la.geo.area=function(t){return Eu=0,la.geo.stream(t,Cu),Eu};var Eu,ju=new ce,Cu={sphere:function(){Eu+=4*Ia},point:_,lineStart:_,lineEnd:_,polygonStart:function(){ju.reset(),Cu.lineStart=ve},polygonEnd:function(){var t=2*ju;Eu+=t<0?4*Ia+t:t,Cu.lineStart=Cu.lineEnd=Cu.point=_}};la.geo.bounds=function(){function t(t,e){b.push(x=[c=t,h=t]),e<f&&(f=e),e>p&&(p=e)}function e(e,n){var r=ge([e*Va,n*Va]);if(y){var i=me(y,r),o=[i[1],-i[0],0],a=me(o,i);we(a),a=_e(a);var s=e-d,l=s>0?1:-1,v=a[0]*Ua*l,g=wa(s)>180;if(g^(l*d<v&&v<l*e)){var m=a[1]*Ua;m>p&&(p=m)}else if(v=(v+360)%360-180,g^(l*d<v&&v<l*e)){var m=-a[1]*Ua;m<f&&(f=m)}else n<f&&(f=n),n>p&&(p=n);g?e<d?u(c,e)>u(c,h)&&(h=e):u(e,h)>u(c,h)&&(c=e):h>=c?(e<c&&(c=e),e>h&&(h=e)):e>d?u(c,e)>u(c,h)&&(h=e):u(e,h)>u(c,h)&&(c=e)}else t(e,n);y=r,d=e}function n(){w.point=e}function r(){x[0]=c,x[1]=h,w.point=t,y=null}function i(t,n){if(y){var r=t-d;m+=wa(r)>180?r+(r>0?360:-360):r}else v=t,g=n;Cu.point(t,n),e(t,n)}function o(){Cu.lineStart()}function a(){i(v,g),Cu.lineEnd(),wa(m)>Ra&&(c=-(h=180)),x[0]=c,x[1]=h,y=null}function u(t,e){return(e-=t)<0?e+360:e}function s(t,e){return t[0]-e[0]}function l(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}var c,f,h,p,d,v,g,y,m,b,x,w={point:t,lineStart:n,lineEnd:r,polygonStart:function(){w.point=i,w.lineStart=o,w.lineEnd=a,m=0,Cu.polygonStart()},polygonEnd:function(){Cu.polygonEnd(),w.point=t,w.lineStart=n,w.lineEnd=r,ju<0?(c=-(h=180),f=-(p=90)):m>Ra?p=90:m<-Ra&&(f=-90),x[0]=c,x[1]=h}};return function(t){p=h=-(c=f=1/0),b=[],la.geo.stream(t,w);var e=b.length;if(e){b.sort(s);for(var n,r=1,i=b[0],o=[i];r<e;++r)n=b[r],l(n[0],i)||l(n[1],i)?(u(i[0],n[1])>u(i[0],i[1])&&(i[1]=n[1]),u(n[0],i[1])>u(i[0],i[1])&&(i[0]=n[0])):o.push(i=n);for(var a,n,d=-(1/0),e=o.length-1,r=0,i=o[e];r<=e;i=n,++r)n=o[r],(a=u(i[1],n[0]))>d&&(d=a,c=n[0],h=i[1])}return b=x=null,c===1/0||f===1/0?[[NaN,NaN],[NaN,NaN]]:[[c,f],[h,p]]}}(),la.geo.centroid=function(t){Su=Tu=Au=Nu=Ou=qu=Du=Lu=Fu=zu=Ru=0,la.geo.stream(t,Pu);var e=Fu,n=zu,r=Ru,i=e*e+n*n+r*r;return i<Pa&&(e=qu,n=Du,r=Lu,Tu<Ra&&(e=Au,n=Nu,r=Ou),i=e*e+n*n+r*r,i<Pa)?[NaN,NaN]:[Math.atan2(n,e)*Ua,nt(r/Math.sqrt(i))*Ua]};var Su,Tu,Au,Nu,Ou,qu,Du,Lu,Fu,zu,Ru,Pu={sphere:_,point:ke,lineStart:je,lineEnd:Ce,polygonStart:function(){Pu.lineStart=Se},polygonEnd:function(){Pu.lineStart=je}},Iu=De(Ae,Re,Ie,[-Ia,-Ia/2]),Hu=1e9;la.geo.clipExtent=function(){var t,e,n,r,i,o,a={stream:function(t){return i&&(i.valid=!1),i=o(t),i.valid=!0,i},extent:function(u){return arguments.length?(o=Ve(t=+u[0][0],e=+u[0][1],n=+u[1][0],r=+u[1][1]),i&&(i.valid=!1,i=null),a):[[t,e],[n,r]]}};return a.extent([[0,0],[960,500]])},(la.geo.conicEqualArea=function(){return Ue(We)}).raw=We,la.geo.albers=function(){return la.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},la.geo.albersUsa=function(){function t(t){var o=t[0],a=t[1];return e=null,n(o,a),e||(r(o,a),e)||i(o,a),e}var e,n,r,i,o=la.geo.albers(),a=la.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),u=la.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(t,n){e=[t,n]}};return t.invert=function(t){var e=o.scale(),n=o.translate(),r=(t[0]-n[0])/e,i=(t[1]-n[1])/e;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?a:i>=.166&&i<.234&&r>=-.214&&r<-.115?u:o).invert(t)},t.stream=function(t){var e=o.stream(t),n=a.stream(t),r=u.stream(t);return{point:function(t,i){e.point(t,i),n.point(t,i),r.point(t,i)},sphere:function(){e.sphere(),n.sphere(),r.sphere()},lineStart:function(){e.lineStart(),n.lineStart(),r.lineStart()},lineEnd:function(){e.lineEnd(),n.lineEnd(),r.lineEnd()},polygonStart:function(){e.polygonStart(),n.polygonStart(),r.polygonStart()},polygonEnd:function(){e.polygonEnd(),n.polygonEnd(),r.polygonEnd()}}},t.precision=function(e){return arguments.length?(o.precision(e),a.precision(e),u.precision(e),t):o.precision()},t.scale=function(e){return arguments.length?(o.scale(e),a.scale(.35*e),u.scale(e),t.translate(o.translate())):o.scale()},t.translate=function(e){if(!arguments.length)return o.translate();var l=o.scale(),c=+e[0],f=+e[1];return n=o.translate(e).clipExtent([[c-.455*l,f-.238*l],[c+.455*l,f+.238*l]]).stream(s).point,r=a.translate([c-.307*l,f+.201*l]).clipExtent([[c-.425*l+Ra,f+.12*l+Ra],[c-.214*l-Ra,f+.234*l-Ra]]).stream(s).point,i=u.translate([c-.205*l,f+.212*l]).clipExtent([[c-.214*l+Ra,f+.166*l+Ra],[c-.115*l-Ra,f+.234*l-Ra]]).stream(s).point,t},t.scale(1070)};var $u,Bu,Vu,Uu,Wu,Yu,Xu={point:_,lineStart:_,lineEnd:_,polygonStart:function(){Bu=0,Xu.lineStart=Ye},polygonEnd:function(){Xu.lineStart=Xu.lineEnd=Xu.point=_,$u+=wa(Bu/2)}},Ju={point:Xe,lineStart:_,lineEnd:_,polygonStart:_,polygonEnd:_},Zu={point:Ge,lineStart:Ke,lineEnd:Qe,polygonStart:function(){Zu.lineStart=tn},polygonEnd:function(){Zu.point=Ge,Zu.lineStart=Ke,Zu.lineEnd=Qe}};la.geo.path=function(){function t(t){return t&&("function"==typeof u&&o.pointRadius(+u.apply(this,arguments)),a&&a.valid||(a=i(o)),la.geo.stream(t,a)),o.result()}function e(){return a=null,t}var n,r,i,o,a,u=4.5;return t.area=function(t){return $u=0,la.geo.stream(t,i(Xu)),$u},t.centroid=function(t){return Au=Nu=Ou=qu=Du=Lu=Fu=zu=Ru=0,la.geo.stream(t,i(Zu)),Ru?[Fu/Ru,zu/Ru]:Lu?[qu/Lu,Du/Lu]:Ou?[Au/Ou,Nu/Ou]:[NaN,NaN]},t.bounds=function(t){return Wu=Yu=-(Vu=Uu=1/0),la.geo.stream(t,i(Ju)),[[Vu,Uu],[Wu,Yu]]},t.projection=function(t){return arguments.length?(i=(n=t)?t.stream||rn(t):b,e()):n},t.context=function(t){return arguments.length?(o=null==(r=t)?new Je:new en(t),"function"!=typeof u&&o.pointRadius(u),e()):r},t.pointRadius=function(e){return arguments.length?(u="function"==typeof e?e:(o.pointRadius(+e),+e),t):u},t.projection(la.geo.albersUsa()).context(null)},la.geo.transform=function(t){return{stream:function(e){var n=new on(e);for(var r in t)n[r]=t[r];return n}}},on.prototype={point:function(t,e){this.stream.point(t,e)},sphere:function(){ +this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},la.geo.projection=un,la.geo.projectionMutator=sn,(la.geo.equirectangular=function(){return un(cn)}).raw=cn.invert=cn,la.geo.rotation=function(t){function e(e){return e=t(e[0]*Va,e[1]*Va),e[0]*=Ua,e[1]*=Ua,e}return t=hn(t[0]%360*Va,t[1]*Va,t.length>2?t[2]*Va:0),e.invert=function(e){return e=t.invert(e[0]*Va,e[1]*Va),e[0]*=Ua,e[1]*=Ua,e},e},fn.invert=cn,la.geo.circle=function(){function t(){var t="function"==typeof r?r.apply(this,arguments):r,e=hn(-t[0]*Va,-t[1]*Va,0).invert,i=[];return n(null,null,1,{point:function(t,n){i.push(t=e(t,n)),t[0]*=Ua,t[1]*=Ua}}),{type:"Polygon",coordinates:[i]}}var e,n,r=[0,0],i=6;return t.origin=function(e){return arguments.length?(r=e,t):r},t.angle=function(r){return arguments.length?(n=gn((e=+r)*Va,i*Va),t):e},t.precision=function(r){return arguments.length?(n=gn(e*Va,(i=+r)*Va),t):i},t.angle(90)},la.geo.distance=function(t,e){var n,r=(e[0]-t[0])*Va,i=t[1]*Va,o=e[1]*Va,a=Math.sin(r),u=Math.cos(r),s=Math.sin(i),l=Math.cos(i),c=Math.sin(o),f=Math.cos(o);return Math.atan2(Math.sqrt((n=f*a)*n+(n=l*c-s*f*u)*n),s*c+l*f*u)},la.geo.graticule=function(){function t(){return{type:"MultiLineString",coordinates:e()}}function e(){return la.range(Math.ceil(o/g)*g,i,g).map(h).concat(la.range(Math.ceil(l/y)*y,s,y).map(p)).concat(la.range(Math.ceil(r/d)*d,n,d).filter(function(t){return wa(t%g)>Ra}).map(c)).concat(la.range(Math.ceil(u/v)*v,a,v).filter(function(t){return wa(t%y)>Ra}).map(f))}var n,r,i,o,a,u,s,l,c,f,h,p,d=10,v=d,g=90,y=360,m=2.5;return t.lines=function(){return e().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(s).slice(1),h(i).reverse().slice(1),p(l).reverse().slice(1))]}},t.extent=function(e){return arguments.length?t.majorExtent(e).minorExtent(e):t.minorExtent()},t.majorExtent=function(e){return arguments.length?(o=+e[0][0],i=+e[1][0],l=+e[0][1],s=+e[1][1],o>i&&(e=o,o=i,i=e),l>s&&(e=l,l=s,s=e),t.precision(m)):[[o,l],[i,s]]},t.minorExtent=function(e){return arguments.length?(r=+e[0][0],n=+e[1][0],u=+e[0][1],a=+e[1][1],r>n&&(e=r,r=n,n=e),u>a&&(e=u,u=a,a=e),t.precision(m)):[[r,u],[n,a]]},t.step=function(e){return arguments.length?t.majorStep(e).minorStep(e):t.minorStep()},t.majorStep=function(e){return arguments.length?(g=+e[0],y=+e[1],t):[g,y]},t.minorStep=function(e){return arguments.length?(d=+e[0],v=+e[1],t):[d,v]},t.precision=function(e){return arguments.length?(m=+e,c=mn(u,a,90),f=bn(r,n,m),h=mn(l,s,90),p=bn(o,i,m),t):m},t.majorExtent([[-180,-90+Ra],[180,90-Ra]]).minorExtent([[-180,-80-Ra],[180,80+Ra]])},la.geo.greatArc=function(){function t(){return{type:"LineString",coordinates:[e||r.apply(this,arguments),n||i.apply(this,arguments)]}}var e,n,r=xn,i=wn;return t.distance=function(){return la.geo.distance(e||r.apply(this,arguments),n||i.apply(this,arguments))},t.source=function(n){return arguments.length?(r=n,e="function"==typeof n?null:n,t):r},t.target=function(e){return arguments.length?(i=e,n="function"==typeof e?null:e,t):i},t.precision=function(){return arguments.length?t:0},t},la.geo.interpolate=function(t,e){return _n(t[0]*Va,t[1]*Va,e[0]*Va,e[1]*Va)},la.geo.length=function(t){return Gu=0,la.geo.stream(t,Ku),Gu};var Gu,Ku={sphere:_,point:_,lineStart:Mn,lineEnd:_,polygonStart:_,polygonEnd:_},Qu=kn(function(t){return Math.sqrt(2/(1+t))},function(t){return 2*Math.asin(t/2)});(la.geo.azimuthalEqualArea=function(){return un(Qu)}).raw=Qu;var ts=kn(function(t){var e=Math.acos(t);return e&&e/Math.sin(e)},b);(la.geo.azimuthalEquidistant=function(){return un(ts)}).raw=ts,(la.geo.conicConformal=function(){return Ue(En)}).raw=En,(la.geo.conicEquidistant=function(){return Ue(jn)}).raw=jn;var es=kn(function(t){return 1/t},Math.atan);(la.geo.gnomonic=function(){return un(es)}).raw=es,Cn.invert=function(t,e){return[t,2*Math.atan(Math.exp(e))-Ba]},(la.geo.mercator=function(){return Sn(Cn)}).raw=Cn;var ns=kn(function(){return 1},Math.asin);(la.geo.orthographic=function(){return un(ns)}).raw=ns;var rs=kn(function(t){return 1/(1+t)},function(t){return 2*Math.atan(t)});(la.geo.stereographic=function(){return un(rs)}).raw=rs,Tn.invert=function(t,e){return[-e,2*Math.atan(Math.exp(t))-Ba]},(la.geo.transverseMercator=function(){var t=Sn(Tn),e=t.center,n=t.rotate;return t.center=function(t){return t?e([-t[1],t[0]]):(t=e(),[t[1],-t[0]])},t.rotate=function(t){return t?n([t[0],t[1],t.length>2?t[2]+90:90]):(t=n(),[t[0],t[1],t[2]-90])},n([0,0,90])}).raw=Tn,la.geom={},la.geom.hull=function(t){function e(data){if(data.length<3)return[];var t,e=Ct(n),i=Ct(r),o=data.length,a=[],u=[];for(t=0;t<o;t++)a.push([+e.call(this,data[t],t),+i.call(this,data[t],t),t]);for(a.sort(qn),t=0;t<o;t++)u.push([a[t][0],-a[t][1]]);var s=On(a),l=On(u),c=l[0]===s[0],f=l[l.length-1]===s[s.length-1],h=[];for(t=s.length-1;t>=0;--t)h.push(data[a[s[t]][2]]);for(t=+c;t<l.length-f;++t)h.push(data[a[l[t]][2]]);return h}var n=An,r=Nn;return arguments.length?e(t):(e.x=function(t){return arguments.length?(n=t,e):n},e.y=function(t){return arguments.length?(r=t,e):r},e)},la.geom.polygon=function(t){return ja(t,is),t};var is=la.geom.polygon.prototype=[];is.area=function(){for(var t,e=-1,n=this.length,r=this[n-1],i=0;++e<n;)t=r,r=this[e],i+=t[1]*r[0]-t[0]*r[1];return.5*i},is.centroid=function(t){var e,n,r=-1,i=this.length,o=0,a=0,u=this[i-1];for(arguments.length||(t=-1/(6*this.area()));++r<i;)e=u,u=this[r],n=e[0]*u[1]-u[0]*e[1],o+=(e[0]+u[0])*n,a+=(e[1]+u[1])*n;return[o*t,a*t]},is.clip=function(t){for(var e,n,r,i,o,a,u=Fn(t),s=-1,l=this.length-Fn(this),c=this[l-1];++s<l;){for(e=t.slice(),t.length=0,i=this[s],o=e[(r=e.length-u)-1],n=-1;++n<r;)a=e[n],Dn(a,c,i)?(Dn(o,c,i)||t.push(Ln(o,a,c,i)),t.push(a)):Dn(o,c,i)&&t.push(Ln(o,a,c,i)),o=a;u&&t.push(t[0]),c=i}return t};var os,as,us,ss,ls,cs=[],fs=[];Vn.prototype.prepare=function(){for(var t,e=this.edges,n=e.length;n--;)t=e[n].edge,t.b&&t.a||e.splice(n,1);return e.sort(Wn),e.length},nr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},rr.prototype={insert:function(t,e){var n,r,i;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;n=t}else this._?(t=ur(this._),e.P=null,e.N=t,t.P=t.L=e,n=t):(e.P=e.N=null,this._=e,n=null);for(e.L=e.R=null,e.U=n,e.C=!0,t=e;n&&n.C;)r=n.U,n===r.L?(i=r.R,i&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.R&&(or(this,n),t=n,n=t.U),n.C=!1,r.C=!0,ar(this,r))):(i=r.L,i&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.L&&(ar(this,n),t=n,n=t.U),n.C=!1,r.C=!0,or(this,r))),n=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,n,r,i=t.U,o=t.L,a=t.R;if(n=o?a?ur(a):o:a,i?i.L===t?i.L=n:i.R=n:this._=n,o&&a?(r=n.C,n.C=t.C,n.L=o,o.U=n,n!==a?(i=n.U,n.U=t.U,t=n.R,i.L=t,n.R=a,a.U=n):(n.U=i,i=n,t=n.R)):(r=t.C,t=n),t&&(t.U=i),!r){if(t&&t.C)return void(t.C=!1);do{if(t===this._)break;if(t===i.L){if(e=i.R,e.C&&(e.C=!1,i.C=!0,or(this,i),e=i.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,ar(this,e),e=i.R),e.C=i.C,i.C=e.R.C=!1,or(this,i),t=this._;break}}else if(e=i.L,e.C&&(e.C=!1,i.C=!0,ar(this,i),e=i.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,or(this,e),e=i.L),e.C=i.C,i.C=e.L.C=!1,ar(this,i),t=this._;break}e.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}},la.geom.voronoi=function(t){function e(data){var t=new Array(data.length),e=u[0][0],r=u[0][1],i=u[1][0],o=u[1][1];return sr(n(data),u).cells.forEach(function(n,a){var u=n.edges,s=n.site,l=t[a]=u.length?u.map(function(t){var e=t.start();return[e.x,e.y]}):s.x>=e&&s.x<=i&&s.y>=r&&s.y<=o?[[e,o],[i,o],[i,r],[e,r]]:[];l.point=data[a]}),t}function n(data){return data.map(function(t,e){return{x:Math.round(o(t,e)/Ra)*Ra,y:Math.round(a(t,e)/Ra)*Ra,i:e}})}var r=An,i=Nn,o=r,a=i,u=hs;return t?e(t):(e.links=function(data){return sr(n(data)).edges.filter(function(t){return t.l&&t.r}).map(function(t){return{source:data[t.l.i],target:data[t.r.i]}})},e.triangles=function(data){var t=[];return sr(n(data)).cells.forEach(function(e,n){for(var r,i,o=e.site,a=e.edges.sort(Wn),u=-1,s=a.length,l=a[s-1].edge,c=l.l===o?l.r:l.l;++u<s;)r=l,i=c,l=a[u].edge,c=l.l===o?l.r:l.l,n<i.i&&n<c.i&&cr(o,i,c)<0&&t.push([data[n],data[i.i],data[c.i]])}),t},e.x=function(t){return arguments.length?(o=Ct(r=t),e):r},e.y=function(t){return arguments.length?(a=Ct(i=t),e):i},e.clipExtent=function(t){return arguments.length?(u=null==t?hs:t,e):u===hs?null:u},e.size=function(t){return arguments.length?e.clipExtent(t&&[[0,0],t]):u===hs?null:u&&u[1]},e)};var hs=[[-1e6,-1e6],[1e6,1e6]];la.geom.delaunay=function(t){return la.geom.voronoi().triangles(t)},la.geom.quadtree=function(t,e,n,r,i){function o(data){function t(t,e,n,r,i,a,u,s){if(!isNaN(n)&&!isNaN(r))if(t.leaf){var l=t.x,c=t.y;if(null!=l)if(wa(l-n)+wa(c-r)<.01)o(t,e,n,r,i,a,u,s);else{var f=t.point;t.x=t.y=t.point=null,o(t,f,l,c,i,a,u,s),o(t,e,n,r,i,a,u,s)}else t.x=n,t.y=r,t.point=e}else o(t,e,n,r,i,a,u,s)}function o(e,n,r,i,o,a,u,s){var l=.5*(o+u),c=.5*(a+s),f=r>=l,h=i>=c,p=h<<1|f;e.leaf=!1,e=e.nodes[p]||(e.nodes[p]=pr()),f?o=l:u=l,h?a=c:s=c,t(e,n,r,i,o,a,u,s)}var l,c,f,h,p,d,v,g,y,m=Ct(u),b=Ct(s);if(null!=e)d=e,v=n,g=r,y=i;else if(g=y=-(d=v=1/0),c=[],f=[],p=data.length,a)for(h=0;h<p;++h)l=data[h],l.x<d&&(d=l.x),l.y<v&&(v=l.y),l.x>g&&(g=l.x),l.y>y&&(y=l.y),c.push(l.x),f.push(l.y);else for(h=0;h<p;++h){var x=+m(l=data[h],h),w=+b(l,h);x<d&&(d=x),w<v&&(v=w),x>g&&(g=x),w>y&&(y=w),c.push(x),f.push(w)}var _=g-d,M=y-v;_>M?y=v+_:g=d+M;var k=pr();if(k.add=function(e){t(k,e,+m(e,++h),+b(e,h),d,v,g,y)},k.visit=function(t){dr(t,k,d,v,g,y)},k.find=function(t){return vr(k,t[0],t[1],d,v,g,y)},h=-1,null==e){for(;++h<p;)t(k,data[h],c[h],f[h],d,v,g,y);--h}else data.forEach(k.add);return c=f=data=l=null,k}var a,u=An,s=Nn;return(a=arguments.length)?(u=fr,s=hr,3===a&&(i=n,r=e,n=e=0),o(t)):(o.x=function(t){return arguments.length?(u=t,o):u},o.y=function(t){return arguments.length?(s=t,o):s},o.extent=function(t){return arguments.length?(null==t?e=n=r=i=null:(e=+t[0][0],n=+t[0][1],r=+t[1][0],i=+t[1][1]),o):null==e?null:[[e,n],[r,i]]},o.size=function(t){return arguments.length?(null==t?e=n=r=i=null:(e=n=0,r=+t[0],i=+t[1]),o):null==e?null:[r-e,i-n]},o)},la.interpolateRgb=gr,la.interpolateObject=yr,la.interpolateNumber=mr,la.interpolateString=br;var ps=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ds=new RegExp(ps.source,"g");la.interpolate=xr,la.interpolators=[function(t,e){var n=typeof e;return("string"===n?au.has(e.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(e)?gr:br:e instanceof ut?gr:Array.isArray(e)?wr:"object"===n&&isNaN(e)?yr:mr)(t,e)}],la.interpolateArray=wr;var vs=function(){return b},gs=la.map({linear:vs,poly:Sr,quad:function(){return Er},cubic:function(){return jr},sin:function(){return Tr},exp:function(){return Ar},circle:function(){return Nr},elastic:Or,back:qr,bounce:function(){return Dr}}),ys=la.map({"in":b,out:Mr,"in-out":kr,"out-in":function(t){return kr(Mr(t))}});la.ease=function(t){var e=t.indexOf("-"),n=e>=0?t.slice(0,e):t,r=e>=0?t.slice(e+1):"in";return n=gs.get(n)||vs,r=ys.get(r)||b,_r(r(n.apply(null,ca.call(arguments,1))))},la.interpolateHcl=Lr,la.interpolateHsl=Fr,la.interpolateLab=zr,la.interpolateRound=Rr,la.transform=function(t){var e=ha.createElementNS(la.ns.prefix.svg,"g");return(la.transform=function(t){if(null!=t){e.setAttribute("transform",t);var n=e.transform.baseVal.consolidate()}return new Pr(n?n.matrix:ms)})(t)},Pr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ms={a:1,b:0,c:0,d:1,e:0,f:0};la.interpolateTransform=Xr,la.layout={},la.layout.bundle=function(){return function(t){for(var e=[],n=-1,r=t.length;++n<r;)e.push(Gr(t[n]));return e}},la.layout.chord=function(){function t(){var t,l,f,h,p,d={},v=[],g=la.range(o),y=[];for(n=[],r=[],t=0,h=-1;++h<o;){for(l=0,p=-1;++p<o;)l+=i[h][p];v.push(l),y.push(la.range(o)),t+=l}for(a&&g.sort(function(t,e){return a(v[t],v[e])}),u&&y.forEach(function(t,e){t.sort(function(t,n){return u(i[e][t],i[e][n])})}),t=(Ha-c*o)/t,l=0,h=-1;++h<o;){for(f=l,p=-1;++p<o;){var m=g[h],b=y[m][p],x=i[m][b],w=l,_=l+=x*t;d[m+"-"+b]={index:m,subindex:b,startAngle:w,endAngle:_,value:x}}r[m]={index:m,startAngle:f,endAngle:l,value:v[m]},l+=c}for(h=-1;++h<o;)for(p=h-1;++p<o;){var M=d[h+"-"+p],k=d[p+"-"+h];(M.value||k.value)&&n.push(M.value<k.value?{source:k,target:M}:{source:M,target:k})}s&&e()}function e(){n.sort(function(t,e){return s((t.source.value+t.target.value)/2,(e.source.value+e.target.value)/2)})}var n,r,i,o,a,u,s,l={},c=0;return l.matrix=function(t){return arguments.length?(o=(i=t)&&i.length,n=r=null,l):i},l.padding=function(t){return arguments.length?(c=t,n=r=null,l):c},l.sortGroups=function(t){return arguments.length?(a=t,n=r=null,l):a},l.sortSubgroups=function(t){return arguments.length?(u=t,n=null,l):u},l.sortChords=function(t){return arguments.length?(s=t,n&&e(),l):s},l.chords=function(){return n||t(),n},l.groups=function(){return r||t(),r},l},la.layout.force=function(){function t(t){return function(e,n,r,i){if(e.point!==t){var o=e.cx-t.x,a=e.cy-t.y,u=i-n,s=o*o+a*a;if(u*u/y<s){if(s<v){var l=e.charge/s;t.px-=o*l,t.py-=a*l}return!0}if(e.point&&s&&s<v){var l=e.pointCharge/s;t.px-=o*l,t.py-=a*l}}return!e.charge}}function e(t){t.px=la.event.x,t.py=la.event.y,s.resume()}var n,r,i,o,a,u,s={},l=la.dispatch("start","tick","end"),c=[1,1],f=.9,h=bs,p=xs,d=-30,v=ws,g=.1,y=.64,m=[],x=[];return s.tick=function(){if((i*=.99)<.005)return n=null,l.end({type:"end",alpha:i=0}),!0;var e,r,s,h,p,v,y,b,w,_=m.length,M=x.length;for(r=0;r<M;++r)s=x[r],h=s.source,p=s.target,b=p.x-h.x,w=p.y-h.y,(v=b*b+w*w)&&(v=i*a[r]*((v=Math.sqrt(v))-o[r])/v,b*=v,w*=v,p.x-=b*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=w*y,h.x+=b*(y=1-y),h.y+=w*y);if((y=i*g)&&(b=c[0]/2,w=c[1]/2,r=-1,y))for(;++r<_;)s=m[r],s.x+=(b-s.x)*y,s.y+=(w-s.y)*y;if(d)for(ii(e=la.geom.quadtree(m),i,u),r=-1;++r<_;)(s=m[r]).fixed||e.visit(t(s));for(r=-1;++r<_;)s=m[r],s.fixed?(s.x=s.px,s.y=s.py):(s.x-=(s.px-(s.px=s.x))*f,s.y-=(s.py-(s.py=s.y))*f);l.tick({type:"tick",alpha:i})},s.nodes=function(t){return arguments.length?(m=t,s):m},s.links=function(t){return arguments.length?(x=t,s):x},s.size=function(t){return arguments.length?(c=t,s):c},s.linkDistance=function(t){return arguments.length?(h="function"==typeof t?t:+t,s):h},s.distance=s.linkDistance,s.linkStrength=function(t){return arguments.length?(p="function"==typeof t?t:+t,s):p},s.friction=function(t){return arguments.length?(f=+t,s):f},s.charge=function(t){return arguments.length?(d="function"==typeof t?t:+t,s):d},s.chargeDistance=function(t){return arguments.length?(v=t*t,s):Math.sqrt(v)},s.gravity=function(t){return arguments.length?(g=+t,s):g},s.theta=function(t){return arguments.length?(y=t*t,s):Math.sqrt(y)},s.alpha=function(t){return arguments.length?(t=+t,i?t>0?i=t:(n.c=null,n.t=NaN,n=null,l.end({type:"end",alpha:i=0})):t>0&&(l.start({type:"start",alpha:i=t}),n=Ot(s.tick)),s):i},s.start=function(){function t(t,r){if(!n){for(n=new Array(i),s=0;s<i;++s)n[s]=[];for(s=0;s<l;++s){var o=x[s];n[o.source.index].push(o.target),n[o.target.index].push(o.source)}}for(var a,u=n[e],s=-1,c=u.length;++s<c;)if(!isNaN(a=u[s][t]))return a;return Math.random()*r}var e,n,r,i=m.length,l=x.length,f=c[0],v=c[1];for(e=0;e<i;++e)(r=m[e]).index=e,r.weight=0;for(e=0;e<l;++e)r=x[e],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(e=0;e<i;++e)r=m[e],isNaN(r.x)&&(r.x=t("x",f)),isNaN(r.y)&&(r.y=t("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(o=[],"function"==typeof h)for(e=0;e<l;++e)o[e]=+h.call(this,x[e],e);else for(e=0;e<l;++e)o[e]=h;if(a=[],"function"==typeof p)for(e=0;e<l;++e)a[e]=+p.call(this,x[e],e);else for(e=0;e<l;++e)a[e]=p;if(u=[],"function"==typeof d)for(e=0;e<i;++e)u[e]=+d.call(this,m[e],e);else for(e=0;e<i;++e)u[e]=d;return s.resume()},s.resume=function(){return s.alpha(.1)},s.stop=function(){return s.alpha(0)},s.drag=function(){return r||(r=la.behavior.drag().origin(b).on("dragstart.force",ti).on("drag.force",e).on("dragend.force",ei)),arguments.length?void this.on("mouseover.force",ni).on("mouseout.force",ri).call(r):r},la.rebind(s,l,"on")};var bs=20,xs=1,ws=1/0;la.layout.hierarchy=function(){function t(i){var o,a=[i],u=[];for(i.depth=0;null!=(o=a.pop());)if(u.push(o),(l=n.call(t,o,o.depth))&&(s=l.length)){for(var s,l,c;--s>=0;)a.push(c=l[s]),c.parent=o,c.depth=o.depth+1;r&&(o.value=0),o.children=l}else r&&(o.value=+r.call(t,o,o.depth)||0),delete o.children;return ui(i,function(t){var n,i;e&&(n=t.children)&&n.sort(e),r&&(i=t.parent)&&(i.value+=t.value)}),u}var e=ci,n=si,r=li;return t.sort=function(n){return arguments.length?(e=n,t):e},t.children=function(e){return arguments.length?(n=e,t):n},t.value=function(e){return arguments.length?(r=e,t):r},t.revalue=function(e){return r&&(ai(e,function(t){t.children&&(t.value=0)}),ui(e,function(e){var n;e.children||(e.value=+r.call(t,e,e.depth)||0),(n=e.parent)&&(n.value+=e.value)})),e},t},la.layout.partition=function(){function t(e,n,r,i){var o=e.children;if(e.x=n,e.y=e.depth*i,e.dx=r,e.dy=i,o&&(a=o.length)){var a,u,s,l=-1;for(r=e.value?r/e.value:0;++l<a;)t(u=o[l],n,s=u.value*r,i),n+=s}}function e(t){var n=t.children,r=0;if(n&&(i=n.length))for(var i,o=-1;++o<i;)r=Math.max(r,e(n[o]));return 1+r}function n(n,o){var a=r.call(this,n,o);return t(a[0],0,i[0],i[1]/e(a[0])),a}var r=la.layout.hierarchy(),i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},oi(n,r)},la.layout.pie=function(){function t(data){var a,u=data.length,s=data.map(function(n,r){return+e.call(t,n,r)}),l=+("function"==typeof r?r.apply(this,arguments):r),c=("function"==typeof i?i.apply(this,arguments):i)-l,f=Math.min(Math.abs(c)/u,+("function"==typeof o?o.apply(this,arguments):o)),h=f*(c<0?-1:1),p=la.sum(s),d=p?(c-u*h)/p:0,v=la.range(u),g=[];return null!=n&&v.sort(n===_s?function(t,e){return s[e]-s[t]}:function(t,e){return n(data[t],data[e])}),v.forEach(function(t){g[t]={data:data[t],value:a=s[t],startAngle:l,endAngle:l+=a*d+h,padAngle:f}}),g}var e=Number,n=_s,r=0,i=Ha,o=0;return t.value=function(n){return arguments.length?(e=n,t):e},t.sort=function(e){return arguments.length?(n=e,t):n},t.startAngle=function(e){return arguments.length?(r=e,t):r},t.endAngle=function(e){return arguments.length?(i=e,t):i},t.padAngle=function(e){return arguments.length?(o=e,t):o},t};var _s={};la.layout.stack=function(){function t(data,u){if(!(f=data.length))return data;var s=data.map(function(n,r){return e.call(t,n,r)}),l=s.map(function(e){return e.map(function(e,n){return[o.call(t,e,n),a.call(t,e,n)]})}),c=n.call(t,l,u);s=la.permute(s,c),l=la.permute(l,c);var f,h,p,d,v=r.call(t,l,u),g=s[0].length;for(p=0;p<g;++p)for(i.call(t,s[0][p],d=v[p],l[0][p][1]),h=1;h<f;++h)i.call(t,s[h][p],d+=l[h-1][p][1],l[h][p][1]);return data}var e=b,n=vi,r=gi,i=di,o=hi,a=pi;return t.values=function(n){return arguments.length?(e=n,t):e},t.order=function(e){return arguments.length?(n="function"==typeof e?e:Ms.get(e)||vi,t):n},t.offset=function(e){return arguments.length?(r="function"==typeof e?e:ks.get(e)||gi,t):r},t.x=function(e){return arguments.length?(o=e,t):o},t.y=function(e){return arguments.length?(a=e,t):a},t.out=function(e){return arguments.length?(i=e,t):i},t};var Ms=la.map({"inside-out":function(data){var t,e,n=data.length,r=data.map(yi),i=data.map(mi),o=la.range(n).sort(function(t,e){return r[t]-r[e]}),a=0,u=0,s=[],l=[];for(t=0;t<n;++t)e=o[t],a<u?(a+=i[e],s.push(e)):(u+=i[e],l.push(e));return l.reverse().concat(s)},reverse:function(data){return la.range(data.length).reverse()},"default":vi}),ks=la.map({silhouette:function(data){var t,e,n,r=data.length,i=data[0].length,o=[],a=0,u=[];for(e=0;e<i;++e){for(t=0,n=0;t<r;t++)n+=data[t][e][1];n>a&&(a=n),o.push(n)}for(e=0;e<i;++e)u[e]=(a-o[e])/2;return u},wiggle:function(data){var t,e,n,r,i,o,a,u,s,l=data.length,c=data[0],f=c.length,h=[];for(h[0]=u=s=0,e=1;e<f;++e){for(t=0,r=0;t<l;++t)r+=data[t][e][1];for(t=0,i=0,a=c[e][0]-c[e-1][0];t<l;++t){for(n=0,o=(data[t][e][1]-data[t][e-1][1])/(2*a);n<t;++n)o+=(data[n][e][1]-data[n][e-1][1])/a;i+=o*data[t][e][1]}h[e]=u-=r?i/r*a:0,u<s&&(s=u)}for(e=0;e<f;++e)h[e]-=s;return h},expand:function(data){var t,e,n,r=data.length,i=data[0].length,o=1/r,a=[];for(e=0;e<i;++e){for(t=0,n=0;t<r;t++)n+=data[t][e][1];if(n)for(t=0;t<r;t++)data[t][e][1]/=n;else for(t=0;t<r;t++)data[t][e][1]=o}for(e=0;e<i;++e)a[e]=0;return a},zero:gi});la.layout.histogram=function(){function t(data,t){for(var o,a,u=[],s=data.map(n,this),l=r.call(this,s,t),c=i.call(this,l,s,t),t=-1,f=s.length,h=c.length-1,p=e?1:1/f;++t<h;)o=u[t]=[],o.dx=c[t+1]-(o.x=c[t]),o.y=0;if(h>0)for(t=-1;++t<f;)a=s[t],a>=l[0]&&a<=l[1]&&(o=u[la.bisect(c,a,1,h)-1],o.y+=p,o.push(data[t]));return u}var e=!0,n=Number,r=_i,i=xi;return t.value=function(e){return arguments.length?(n=e,t):n},t.range=function(e){return arguments.length?(r=Ct(e),t):r},t.bins=function(e){return arguments.length?(i="number"==typeof e?function(t){return wi(t,e)}:Ct(e),t):i},t.frequency=function(n){return arguments.length?(e=!!n,t):e},t},la.layout.pack=function(){function t(t,o){var a=n.call(this,t,o),u=a[0],s=i[0],l=i[1],c=null==e?Math.sqrt:"function"==typeof e?e:function(){return e};if(u.x=u.y=0,ui(u,function(t){t.r=+c(t.value)}),ui(u,Ci),r){var f=r*(e?1:Math.max(2*u.r/s,2*u.r/l))/2;ui(u,function(t){t.r+=f}),ui(u,Ci),ui(u,function(t){t.r-=f})}return Ai(u,s/2,l/2,e?1:1/Math.max(2*u.r/s,2*u.r/l)),a}var e,n=la.layout.hierarchy().sort(Mi),r=0,i=[1,1];return t.size=function(e){return arguments.length?(i=e,t):i},t.radius=function(n){return arguments.length?(e=null==n||"function"==typeof n?n:+n,t):e},t.padding=function(e){return arguments.length?(r=+e,t):r},oi(t,n)},la.layout.tree=function(){function t(t,i){var c=a.call(this,t,i),f=c[0],h=e(f);if(ui(h,n),h.parent.m=-h.z,ai(h,r),l)ai(f,o);else{var p=f,d=f,v=f;ai(f,function(t){t.x<p.x&&(p=t),t.x>d.x&&(d=t),t.depth>v.depth&&(v=t)});var g=u(p,d)/2-p.x,y=s[0]/(d.x+u(d,p)/2+g),m=s[1]/(v.depth||1);ai(f,function(t){t.x=(t.x+g)*y,t.y=t.depth*m})}return c}function e(t){for(var e,n={A:null,children:[t]},r=[n];null!=(e=r.pop());)for(var i,o=e.children,a=0,u=o.length;a<u;++a)r.push((o[a]=i={_:o[a],parent:e,children:(i=o[a].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:a}).a=i);return n.children[0]}function n(t){var e=t.children,n=t.parent.children,r=t.i?n[t.i-1]:null;if(e.length){Fi(t);var o=(e[0].z+e[e.length-1].z)/2;r?(t.z=r.z+u(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+u(t._,r._));t.parent.A=i(t,r,t.parent.A||n[0])}function r(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function i(t,e,n){if(e){for(var r,i=t,o=t,a=e,s=i.parent.children[0],l=i.m,c=o.m,f=a.m,h=s.m;a=Di(a),i=qi(i),a&&i;)s=qi(s),o=Di(o),o.a=t,r=a.z+f-i.z-l+u(a._,i._),r>0&&(Li(zi(a,t,n),t,r),l+=r,c+=r),f+=a.m,l+=i.m,h+=s.m,c+=o.m;a&&!Di(o)&&(o.t=a,o.m+=f-c),i&&!qi(s)&&(s.t=i,s.m+=l-h,n=t)}return n}function o(t){t.x*=s[0],t.y=t.depth*s[1]}var a=la.layout.hierarchy().sort(null).value(null),u=Oi,s=[1,1],l=null;return t.separation=function(e){return arguments.length?(u=e,t):u},t.size=function(e){return arguments.length?(l=null==(s=e)?o:null,t):l?null:s},t.nodeSize=function(e){return arguments.length?(l=null==(s=e)?null:o,t):l?s:null},oi(t,a)},la.layout.cluster=function(){function t(t,o){var a,u=e.call(this,t,o),s=u[0],l=0;ui(s,function(t){var e=t.children;e&&e.length?(t.x=Pi(e),t.y=Ri(e)):(t.x=a?l+=n(t,a):0,t.y=0,a=t)});var c=Ii(s),f=Hi(s),h=c.x-n(c,f)/2,p=f.x+n(f,c)/2;return ui(s,i?function(t){t.x=(t.x-s.x)*r[0],t.y=(s.y-t.y)*r[1]}:function(t){t.x=(t.x-h)/(p-h)*r[0],t.y=(1-(s.y?t.y/s.y:1))*r[1]}),u}var e=la.layout.hierarchy().sort(null).value(null),n=Oi,r=[1,1],i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(e){return arguments.length?(i=null==(r=e),t):i?null:r},t.nodeSize=function(e){return arguments.length?(i=null!=(r=e),t):i?r:null},oi(t,e)},la.layout.treemap=function(){function t(t,e){for(var n,r,i=-1,o=t.length;++i<o;)r=(n=t[i]).value*(e<0?0:e),n.area=isNaN(r)||r<=0?0:r}function e(n){var o=n.children;if(o&&o.length){var a,u,s,l=f(n),c=[],h=o.slice(),d=1/0,v="slice"===p?l.dx:"dice"===p?l.dy:"slice-dice"===p?1&n.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(t(h,l.dx*l.dy/n.value),c.area=0;(s=h.length)>0;)c.push(a=h[s-1]),c.area+=a.area,"squarify"!==p||(u=r(c,v))<=d?(h.pop(),d=u):(c.area-=c.pop().area,i(c,v,l,!1),v=Math.min(l.dx,l.dy),c.length=c.area=0,d=1/0);c.length&&(i(c,v,l,!0),c.length=c.area=0),o.forEach(e)}}function n(e){var r=e.children;if(r&&r.length){var o,a=f(e),u=r.slice(),s=[];for(t(u,a.dx*a.dy/e.value),s.area=0;o=u.pop();)s.push(o),s.area+=o.area,null!=o.z&&(i(s,o.z?a.dx:a.dy,a,!u.length),s.length=s.area=0);r.forEach(n)}}function r(t,e){for(var n,r=t.area,i=0,o=1/0,a=-1,u=t.length;++a<u;)(n=t[a].area)&&(n<o&&(o=n),n>i&&(i=n));return r*=r,e*=e,r?Math.max(e*i*d/r,r/(e*o*d)):1/0}function i(t,e,n,r){var i,o=-1,a=t.length,u=n.x,l=n.y,c=e?s(t.area/e):0;if(e==n.dx){for((r||c>n.dy)&&(c=n.dy);++o<a;)i=t[o],i.x=u,i.y=l,i.dy=c,u+=i.dx=Math.min(n.x+n.dx-u,c?s(i.area/c):0);i.z=!0,i.dx+=n.x+n.dx-u,n.y+=c,n.dy-=c}else{for((r||c>n.dx)&&(c=n.dx);++o<a;)i=t[o],i.x=u,i.y=l,i.dx=c,l+=i.dy=Math.min(n.y+n.dy-l,c?s(i.area/c):0);i.z=!1,i.dy+=n.y+n.dy-l,n.x+=c,n.dx-=c}}function o(r){var i=a||u(r),o=i[0];return o.x=o.y=0,o.value?(o.dx=l[0],o.dy=l[1]):o.dx=o.dy=0,a&&u.revalue(o),t([o],o.dx*o.dy/o.value),(a?n:e)(o),h&&(a=i),i}var a,u=la.layout.hierarchy(),s=Math.round,l=[1,1],c=null,f=$i,h=!1,p="squarify",d=.5*(1+Math.sqrt(5));return o.size=function(t){return arguments.length?(l=t,o):l},o.padding=function(t){function e(e){var n=t.call(o,e,e.depth);return null==n?$i(e):Bi(e,"number"==typeof n?[n,n,n,n]:n)}function n(e){return Bi(e,t)}if(!arguments.length)return c;var r;return f=null==(c=t)?$i:"function"==(r=typeof t)?e:"number"===r?(t=[t,t,t,t],n):n,o},o.round=function(t){return arguments.length?(s=t?Math.round:Number,o):s!=Number},o.sticky=function(t){return arguments.length?(h=t,a=null,o):h},o.ratio=function(t){return arguments.length?(d=t,o):d},o.mode=function(t){return arguments.length?(p=t+"",o):p},oi(o,u)},la.random={normal:function(t,e){var n=arguments.length;return n<2&&(e=1),n<1&&(t=0),function(){var n,r,i;do n=2*Math.random()-1,r=2*Math.random()-1,i=n*n+r*r;while(!i||i>1);return t+e*n*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var t=la.random.normal.apply(la,arguments);return function(){return Math.exp(t())}},bates:function(t){var e=la.random.irwinHall(t);return function(){return e()/t}},irwinHall:function(t){return function(){for(var e=0,n=0;n<t;n++)e+=Math.random();return e}}},la.scale={};var Es={floor:b,ceil:b};la.scale.linear=function(){return Zi([0,1],[0,1],xr,!1)};var js={s:1,g:1,p:1,r:1,e:1};la.scale.log=function(){return io(la.scale.linear().domain([0,1]),10,!0,[1,10])};var Cs=la.format(".0e"),Ss={floor:function(t){return-Math.ceil(-t)},ceil:function(t){return-Math.floor(-t)}};la.scale.pow=function(){return oo(la.scale.linear(),1,[0,1])},la.scale.sqrt=function(){return la.scale.pow().exponent(.5)},la.scale.ordinal=function(){return uo([],{t:"range",a:[[]]})},la.scale.category10=function(){return la.scale.ordinal().range(Ts)},la.scale.category20=function(){return la.scale.ordinal().range(As)},la.scale.category20b=function(){return la.scale.ordinal().range(Ns)},la.scale.category20c=function(){return la.scale.ordinal().range(Os)};var Ts=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xt),As=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xt),Ns=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xt),Os=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xt);la.scale.quantile=function(){return so([],[])},la.scale.quantize=function(){return lo(0,1,[0,1])},la.scale.threshold=function(){return co([.5],[0,1])},la.scale.identity=function(){return fo([0,1])},la.svg={},la.svg.arc=function(){function t(){var t=Math.max(0,+n.apply(this,arguments)),l=Math.max(0,+r.apply(this,arguments)),c=a.apply(this,arguments)-Ba,f=u.apply(this,arguments)-Ba,h=Math.abs(f-c),p=c>f?0:1;if(l<t&&(d=l,l=t,t=d),h>=$a)return e(l,p)+(t?e(t,1-p):"")+"Z";var d,v,g,y,m,b,x,w,_,M,k,E,j=0,C=0,S=[];if((y=(+s.apply(this,arguments)||0)/2)&&(g=o===qs?Math.sqrt(t*t+l*l):+o.apply(this,arguments),p||(C*=-1),l&&(C=nt(g/l*Math.sin(y))),t&&(j=nt(g/t*Math.sin(y)))),l){m=l*Math.cos(c+C),b=l*Math.sin(c+C),x=l*Math.cos(f-C),w=l*Math.sin(f-C);var T=Math.abs(f-c-2*C)<=Ia?0:1;if(C&&bo(m,b,x,w)===p^T){var A=(c+f)/2;m=l*Math.cos(A),b=l*Math.sin(A),x=w=null}}else m=b=0;if(t){_=t*Math.cos(f-j),M=t*Math.sin(f-j),k=t*Math.cos(c+j),E=t*Math.sin(c+j);var N=Math.abs(c-f+2*j)<=Ia?0:1;if(j&&bo(_,M,k,E)===1-p^N){var O=(c+f)/2;_=t*Math.cos(O),M=t*Math.sin(O),k=E=null}}else _=M=0;if(h>Ra&&(d=Math.min(Math.abs(l-t)/2,+i.apply(this,arguments)))>.001){v=t<l^p?0:1;var q=d,D=d;if(h<Ia){var L=null==k?[_,M]:null==x?[m,b]:Ln([m,b],[k,E],[x,w],[_,M]),F=m-L[0],z=b-L[1],R=x-L[0],P=w-L[1],I=1/Math.sin(Math.acos((F*R+z*P)/(Math.sqrt(F*F+z*z)*Math.sqrt(R*R+P*P)))/2),H=Math.sqrt(L[0]*L[0]+L[1]*L[1]);D=Math.min(d,(t-H)/(I-1)),q=Math.min(d,(l-H)/(I+1))}if(null!=x){var $=xo(null==k?[_,M]:[k,E],[m,b],l,q,p),B=xo([x,w],[_,M],l,q,p);d===q?S.push("M",$[0],"A",q,",",q," 0 0,",v," ",$[1],"A",l,",",l," 0 ",1-p^bo($[1][0],$[1][1],B[1][0],B[1][1]),",",p," ",B[1],"A",q,",",q," 0 0,",v," ",B[0]):S.push("M",$[0],"A",q,",",q," 0 1,",v," ",B[0])}else S.push("M",m,",",b);if(null!=k){var V=xo([m,b],[k,E],t,-D,p),U=xo([_,M],null==x?[m,b]:[x,w],t,-D,p);d===D?S.push("L",U[0],"A",D,",",D," 0 0,",v," ",U[1],"A",t,",",t," 0 ",p^bo(U[1][0],U[1][1],V[1][0],V[1][1]),",",1-p," ",V[1],"A",D,",",D," 0 0,",v," ",V[0]):S.push("L",U[0],"A",D,",",D," 0 0,",v," ",V[0])}else S.push("L",_,",",M)}else S.push("M",m,",",b),null!=x&&S.push("A",l,",",l," 0 ",T,",",p," ",x,",",w),S.push("L",_,",",M),null!=k&&S.push("A",t,",",t," 0 ",N,",",1-p," ",k,",",E);return S.push("Z"),S.join("")}function e(t,e){return"M0,"+t+"A"+t+","+t+" 0 1,"+e+" 0,"+-t+"A"+t+","+t+" 0 1,"+e+" 0,"+t}var n=po,r=vo,i=ho,o=qs,a=go,u=yo,s=mo;return t.innerRadius=function(e){return arguments.length?(n=Ct(e),t):n},t.outerRadius=function(e){return arguments.length?(r=Ct(e),t):r},t.cornerRadius=function(e){return arguments.length?(i=Ct(e),t):i},t.padRadius=function(e){return arguments.length?(o=e==qs?qs:Ct(e),t):o},t.startAngle=function(e){return arguments.length?(a=Ct(e),t):a},t.endAngle=function(e){return arguments.length?(u=Ct(e),t):u},t.padAngle=function(e){return arguments.length?(s=Ct(e),t):s},t.centroid=function(){var t=(+n.apply(this,arguments)+ +r.apply(this,arguments))/2,e=(+a.apply(this,arguments)+ +u.apply(this,arguments))/2-Ba;return[Math.cos(e)*t,Math.sin(e)*t]},t};var qs="auto";la.svg.line=function(){return wo(b)};var Ds=la.map({linear:_o,"linear-closed":Mo,step:ko,"step-before":Eo,"step-after":jo,basis:Oo,"basis-open":qo,"basis-closed":Do,bundle:Lo,cardinal:To,"cardinal-open":Co,"cardinal-closed":So,monotone:Ho});Ds.forEach(function(t,e){e.key=t,e.closed=/-closed$/.test(t)});var Ls=[0,2/3,1/3,0],Fs=[0,1/3,2/3,0],zs=[0,1/6,2/3,1/6];la.svg.line.radial=function(){var t=wo($o);return t.radius=t.x,delete t.x,t.angle=t.y,delete t.y,t},Eo.reverse=jo,jo.reverse=Eo,la.svg.area=function(){return Bo(b)},la.svg.area.radial=function(){var t=Bo($o);return t.radius=t.x,delete t.x,t.innerRadius=t.x0,delete t.x0,t.outerRadius=t.x1,delete t.x1,t.angle=t.y,delete t.y,t.startAngle=t.y0,delete t.y0,t.endAngle=t.y1,delete t.y1,t},la.svg.chord=function(){function t(t,u){var s=e(this,o,t,u),l=e(this,a,t,u); +return"M"+s.p0+r(s.r,s.p1,s.a1-s.a0)+(n(s,l)?i(s.r,s.p1,s.r,s.p0):i(s.r,s.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+i(l.r,l.p1,s.r,s.p0))+"Z"}function e(t,e,n,r){var i=e.call(t,n,r),o=u.call(t,i,r),a=s.call(t,i,r)-Ba,c=l.call(t,i,r)-Ba;return{r:o,a0:a,a1:c,p0:[o*Math.cos(a),o*Math.sin(a)],p1:[o*Math.cos(c),o*Math.sin(c)]}}function n(t,e){return t.a0==e.a0&&t.a1==e.a1}function r(t,e,n){return"A"+t+","+t+" 0 "+ +(n>Ia)+",1 "+e}function i(t,e,n,r){return"Q 0,0 "+r}var o=xn,a=wn,u=Vo,s=go,l=yo;return t.radius=function(e){return arguments.length?(u=Ct(e),t):u},t.source=function(e){return arguments.length?(o=Ct(e),t):o},t.target=function(e){return arguments.length?(a=Ct(e),t):a},t.startAngle=function(e){return arguments.length?(s=Ct(e),t):s},t.endAngle=function(e){return arguments.length?(l=Ct(e),t):l},t},la.svg.diagonal=function(){function t(t,i){var o=e.call(this,t,i),a=n.call(this,t,i),u=(o.y+a.y)/2,s=[o,{x:o.x,y:u},{x:a.x,y:u},a];return s=s.map(r),"M"+s[0]+"C"+s[1]+" "+s[2]+" "+s[3]}var e=xn,n=wn,r=Uo;return t.source=function(n){return arguments.length?(e=Ct(n),t):e},t.target=function(e){return arguments.length?(n=Ct(e),t):n},t.projection=function(e){return arguments.length?(r=e,t):r},t},la.svg.diagonal.radial=function(){var t=la.svg.diagonal(),e=Uo,n=t.projection;return t.projection=function(t){return arguments.length?n(Wo(e=t)):e},t},la.svg.symbol=function(){function t(t,r){return(Rs.get(e.call(this,t,r))||Jo)(n.call(this,t,r))}var e=Xo,n=Yo;return t.type=function(n){return arguments.length?(e=Ct(n),t):e},t.size=function(e){return arguments.length?(n=Ct(e),t):n},t};var Rs=la.map({circle:Jo,cross:function(t){var e=Math.sqrt(t/5)/2;return"M"+-3*e+","+-e+"H"+-e+"V"+-3*e+"H"+e+"V"+-e+"H"+3*e+"V"+e+"H"+e+"V"+3*e+"H"+-e+"V"+e+"H"+-3*e+"Z"},diamond:function(t){var e=Math.sqrt(t/(2*Is)),n=e*Is;return"M0,"+-e+"L"+n+",0 0,"+e+" "+-n+",0Z"},square:function(t){var e=Math.sqrt(t)/2;return"M"+-e+","+-e+"L"+e+","+-e+" "+e+","+e+" "+-e+","+e+"Z"},"triangle-down":function(t){var e=Math.sqrt(t/Ps),n=e*Ps/2;return"M0,"+n+"L"+e+","+-n+" "+-e+","+-n+"Z"},"triangle-up":function(t){var e=Math.sqrt(t/Ps),n=e*Ps/2;return"M0,"+-n+"L"+e+","+n+" "+-e+","+n+"Z"}});la.svg.symbolTypes=Rs.keys();var Ps=Math.sqrt(3),Is=Math.tan(30*Va);Aa.transition=function(t){for(var e,n,r=Hs||++Us,i=ta(t),o=[],a=$s||{time:Date.now(),ease:Cr,delay:0,duration:250},u=-1,s=this.length;++u<s;){o.push(e=[]);for(var l=this[u],c=-1,f=l.length;++c<f;)(n=l[c])&&ea(n,c,i,r,a),e.push(n)}return Go(o,i,r)},Aa.interrupt=function(t){return this.each(null==t?Bs:Zo(ta(t)))};var Hs,$s,Bs=Zo(ta()),Vs=[],Us=0;Vs.call=Aa.call,Vs.empty=Aa.empty,Vs.node=Aa.node,Vs.size=Aa.size,la.transition=function(t,e){return t&&t.transition?Hs?t.transition(e):t:la.selection().transition(t)},la.transition.prototype=Vs,Vs.select=function(t){var e,n,r,i=this.id,o=this.namespace,a=[];t=T(t);for(var u=-1,s=this.length;++u<s;){a.push(e=[]);for(var l=this[u],c=-1,f=l.length;++c<f;)(r=l[c])&&(n=t.call(r,r.__data__,c,u))?("__data__"in r&&(n.__data__=r.__data__),ea(n,c,o,i,r[o][i]),e.push(n)):e.push(null)}return Go(a,o,i)},Vs.selectAll=function(t){var e,n,r,i,o,a=this.id,u=this.namespace,s=[];t=A(t);for(var l=-1,c=this.length;++l<c;)for(var f=this[l],h=-1,p=f.length;++h<p;)if(r=f[h]){o=r[u][a],n=t.call(r,r.__data__,h,l),s.push(e=[]);for(var d=-1,v=n.length;++d<v;)(i=n[d])&&ea(i,d,u,a,o),e.push(i)}return Go(s,u,a)},Vs.filter=function(t){var e,n,r,i=[];"function"!=typeof t&&(t=$(t));for(var o=0,a=this.length;o<a;o++){i.push(e=[]);for(var n=this[o],u=0,s=n.length;u<s;u++)(r=n[u])&&t.call(r,r.__data__,u,o)&&e.push(r)}return Go(i,this.namespace,this.id)},Vs.tween=function(t,e){var n=this.id,r=this.namespace;return arguments.length<2?this.node()[r][n].tween.get(t):V(this,null==e?function(e){e[r][n].tween.remove(t)}:function(i){i[r][n].tween.set(t,e)})},Vs.attr=function(t,e){function n(){this.removeAttribute(u)}function r(){this.removeAttributeNS(u.space,u.local)}function i(t){return null==t?n:(t+="",function(){var e,n=this.getAttribute(u);return n!==t&&(e=a(n,t),function(t){this.setAttribute(u,e(t))})})}function o(t){return null==t?r:(t+="",function(){var e,n=this.getAttributeNS(u.space,u.local);return n!==t&&(e=a(n,t),function(t){this.setAttributeNS(u.space,u.local,e(t))})})}if(arguments.length<2){for(e in t)this.attr(e,t[e]);return this}var a="transform"==t?Xr:xr,u=la.ns.qualify(t);return Ko(this,"attr."+t,e,u.local?o:i)},Vs.attrTween=function(t,e){function n(t,n){var r=e.call(this,t,n,this.getAttribute(i));return r&&function(t){this.setAttribute(i,r(t))}}function r(t,n){var r=e.call(this,t,n,this.getAttributeNS(i.space,i.local));return r&&function(t){this.setAttributeNS(i.space,i.local,r(t))}}var i=la.ns.qualify(t);return this.tween("attr."+t,i.local?r:n)},Vs.style=function(t,e,r){function i(){this.style.removeProperty(t)}function o(e){return null==e?i:(e+="",function(){var i,o=n(this).getComputedStyle(this,null).getPropertyValue(t);return o!==e&&(i=xr(o,e),function(e){this.style.setProperty(t,i(e),r)})})}var a=arguments.length;if(a<3){if("string"!=typeof t){a<2&&(e="");for(r in t)this.style(r,t[r],e);return this}r=""}return Ko(this,"style."+t,e,o)},Vs.styleTween=function(t,e,r){function i(i,o){var a=e.call(this,i,o,n(this).getComputedStyle(this,null).getPropertyValue(t));return a&&function(e){this.style.setProperty(t,a(e),r)}}return arguments.length<3&&(r=""),this.tween("style."+t,i)},Vs.text=function(t){return Ko(this,"text",t,Qo)},Vs.remove=function(){var t=this.namespace;return this.each("end.transition",function(){var e;this[t].count<2&&(e=this.parentNode)&&e.removeChild(this)})},Vs.ease=function(t){var e=this.id,n=this.namespace;return arguments.length<1?this.node()[n][e].ease:("function"!=typeof t&&(t=la.ease.apply(la,arguments)),V(this,function(r){r[n][e].ease=t}))},Vs.delay=function(t){var e=this.id,n=this.namespace;return arguments.length<1?this.node()[n][e].delay:V(this,"function"==typeof t?function(r,i,o){r[n][e].delay=+t.call(r,r.__data__,i,o)}:(t=+t,function(r){r[n][e].delay=t}))},Vs.duration=function(t){var e=this.id,n=this.namespace;return arguments.length<1?this.node()[n][e].duration:V(this,"function"==typeof t?function(r,i,o){r[n][e].duration=Math.max(1,t.call(r,r.__data__,i,o))}:(t=Math.max(1,t),function(r){r[n][e].duration=t}))},Vs.each=function(t,e){var n=this.id,r=this.namespace;if(arguments.length<2){var i=$s,o=Hs;try{Hs=n,V(this,function(e,i,o){$s=e[r][n],t.call(e,e.__data__,i,o)})}finally{$s=i,Hs=o}}else V(this,function(i){var o=i[r][n];(o.event||(o.event=la.dispatch("start","end","interrupt"))).on(t,e)});return this},Vs.transition=function(){for(var t,e,n,r,i=this.id,o=++Us,a=this.namespace,u=[],s=0,l=this.length;s<l;s++){u.push(t=[]);for(var e=this[s],c=0,f=e.length;c<f;c++)(n=e[c])&&(r=n[a][i],ea(n,c,a,o,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),t.push(n)}return Go(u,a,o)},la.svg.axis=function(){function t(t){t.each(function(){var t,l=la.select(this),c=this.__chart__||n,f=this.__chart__=n.copy(),h=null==s?f.ticks?f.ticks.apply(f,u):f.domain():s,p=null==e?f.tickFormat?f.tickFormat.apply(f,u):b:e,d=l.selectAll(".tick").data(h,f),v=d.enter().insert("g",".domain").attr("class","tick").style("opacity",Ra),g=la.transition(d.exit()).style("opacity",Ra).remove(),y=la.transition(d.order()).style("opacity",1),m=Math.max(i,0)+a,x=Ui(f),w=l.selectAll(".domain").data([0]),_=(w.enter().append("path").attr("class","domain"),la.transition(w));v.append("line"),v.append("text");var M,k,E,j,C=v.select("line"),S=y.select("line"),T=d.select("text").text(p),A=v.select("text"),N=y.select("text"),O="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(t=na,M="x",E="y",k="x2",j="y2",T.attr("dy",O<0?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+O*o+"V0H"+x[1]+"V"+O*o)):(t=ra,M="y",E="x",k="y2",j="x2",T.attr("dy",".32em").style("text-anchor",O<0?"end":"start"),_.attr("d","M"+O*o+","+x[0]+"H0V"+x[1]+"H"+O*o)),C.attr(j,O*i),A.attr(E,O*m),S.attr(k,0).attr(j,O*i),N.attr(M,0).attr(E,O*m),f.rangeBand){var q=f,D=q.rangeBand()/2;c=f=function(t){return q(t)+D}}else c.rangeBand?c=f:g.call(t,f,c);v.call(t,c,f),y.call(t,f,f)})}var e,n=la.scale.linear(),r=Ws,i=6,o=6,a=3,u=[10],s=null;return t.scale=function(e){return arguments.length?(n=e,t):n},t.orient=function(e){return arguments.length?(r=e in Ys?e+"":Ws,t):r},t.ticks=function(){return arguments.length?(u=fa(arguments),t):u},t.tickValues=function(e){return arguments.length?(s=e,t):s},t.tickFormat=function(n){return arguments.length?(e=n,t):e},t.tickSize=function(e){var n=arguments.length;return n?(i=+e,o=+arguments[n-1],t):i},t.innerTickSize=function(e){return arguments.length?(i=+e,t):i},t.outerTickSize=function(e){return arguments.length?(o=+e,t):o},t.tickPadding=function(e){return arguments.length?(a=+e,t):a},t.tickSubdivide=function(){return arguments.length&&t},t};var Ws="bottom",Ys={top:1,right:1,bottom:1,left:1};la.svg.brush=function(){function t(n){n.each(function(){var n=la.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",o).on("touchstart.brush",o),a=n.selectAll(".background").data([0]);a.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),n.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var u=n.selectAll(".resize").data(v,b);u.exit().remove(),u.enter().append("g").attr("class",function(t){return"resize "+t}).style("cursor",function(t){return Xs[t]}).append("rect").attr("x",function(t){return/[ew]$/.test(t)?-3:null}).attr("y",function(t){return/^[ns]/.test(t)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),u.style("display",t.empty()?"none":null);var s,f=la.transition(n),h=la.transition(a);l&&(s=Ui(l),h.attr("x",s[0]).attr("width",s[1]-s[0]),r(f)),c&&(s=Ui(c),h.attr("y",s[0]).attr("height",s[1]-s[0]),i(f)),e(f)})}function e(t){t.selectAll(".resize").attr("transform",function(t){return"translate("+f[+/e$/.test(t)]+","+h[+/^s/.test(t)]+")"})}function r(t){t.select(".extent").attr("x",f[0]),t.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1]-f[0])}function i(t){t.select(".extent").attr("y",h[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function o(){function o(){32==la.event.keyCode&&(T||(b=null,N[0]-=f[1],N[1]-=h[1],T=2),E())}function v(){32==la.event.keyCode&&2==T&&(N[0]+=f[1],N[1]+=h[1],T=0,E())}function g(){var t=la.mouse(w),n=!1;x&&(t[0]+=x[0],t[1]+=x[1]),T||(la.event.altKey?(b||(b=[(f[0]+f[1])/2,(h[0]+h[1])/2]),N[0]=f[+(t[0]<b[0])],N[1]=h[+(t[1]<b[1])]):b=null),C&&y(t,l,0)&&(r(k),n=!0),S&&y(t,c,1)&&(i(k),n=!0),n&&(e(k),M({type:"brush",mode:T?"move":"resize"}))}function y(t,e,n){var r,i,o=Ui(e),s=o[0],l=o[1],c=N[n],v=n?h:f,g=v[1]-v[0];if(T&&(s-=c,l-=g+c),r=(n?d:p)?Math.max(s,Math.min(l,t[n])):t[n],T?i=(r+=c)+g:(b&&(c=Math.max(s,Math.min(l,2*b[n]-r))),c<r?(i=r,r=c):i=c),v[0]!=r||v[1]!=i)return n?u=null:a=null,v[0]=r,v[1]=i,!0}function m(){g(),k.style("pointer-events","all").selectAll(".resize").style("display",t.empty()?"none":null),la.select("body").style("cursor",null),O.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),A(),M({type:"brushend"})}var b,x,w=this,_=la.select(la.event.target),M=s.of(w,arguments),k=la.select(w),j=_.datum(),C=!/^(n|s)$/.test(j)&&l,S=!/^(e|w)$/.test(j)&&c,T=_.classed("extent"),A=Z(w),N=la.mouse(w),O=la.select(n(w)).on("keydown.brush",o).on("keyup.brush",v);if(la.event.changedTouches?O.on("touchmove.brush",g).on("touchend.brush",m):O.on("mousemove.brush",g).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),T)N[0]=f[0]-N[0],N[1]=h[0]-N[1];else if(j){var q=+/w$/.test(j),D=+/^n/.test(j);x=[f[1-q]-N[0],h[1-D]-N[1]],N[0]=f[q],N[1]=h[D]}else la.event.altKey&&(b=N.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),la.select("body").style("cursor",_.style("cursor")),M({type:"brushstart"}),g()}var a,u,s=C(t,"brushstart","brush","brushend"),l=null,c=null,f=[0,0],h=[0,0],p=!0,d=!0,v=Js[0];return t.event=function(t){t.each(function(){var t=s.of(this,arguments),e={x:f,y:h,i:a,j:u},n=this.__chart__||e;this.__chart__=e,Hs?la.select(this).transition().each("start.brush",function(){a=n.i,u=n.j,f=n.x,h=n.y,t({type:"brushstart"})}).tween("brush:brush",function(){var n=wr(f,e.x),r=wr(h,e.y);return a=u=null,function(i){f=e.x=n(i),h=e.y=r(i),t({type:"brush",mode:"resize"})}}).each("end.brush",function(){a=e.i,u=e.j,t({type:"brush",mode:"resize"}),t({type:"brushend"})}):(t({type:"brushstart"}),t({type:"brush",mode:"resize"}),t({type:"brushend"}))})},t.x=function(e){return arguments.length?(l=e,v=Js[!l<<1|!c],t):l},t.y=function(e){return arguments.length?(c=e,v=Js[!l<<1|!c],t):c},t.clamp=function(e){return arguments.length?(l&&c?(p=!!e[0],d=!!e[1]):l?p=!!e:c&&(d=!!e),t):l&&c?[p,d]:l?p:c?d:null},t.extent=function(e){var n,r,i,o,s;return arguments.length?(l&&(n=e[0],r=e[1],c&&(n=n[0],r=r[0]),a=[n,r],l.invert&&(n=l(n),r=l(r)),r<n&&(s=n,n=r,r=s),n==f[0]&&r==f[1]||(f=[n,r])),c&&(i=e[0],o=e[1],l&&(i=i[1],o=o[1]),u=[i,o],c.invert&&(i=c(i),o=c(o)),o<i&&(s=i,i=o,o=s),i==h[0]&&o==h[1]||(h=[i,o])),t):(l&&(a?(n=a[0],r=a[1]):(n=f[0],r=f[1],l.invert&&(n=l.invert(n),r=l.invert(r)),r<n&&(s=n,n=r,r=s))),c&&(u?(i=u[0],o=u[1]):(i=h[0],o=h[1],c.invert&&(i=c.invert(i),o=c.invert(o)),o<i&&(s=i,i=o,o=s))),l&&c?[[n,i],[r,o]]:l?[n,r]:c&&[i,o])},t.clear=function(){return t.empty()||(f=[0,0],h=[0,0],a=u=null),t},t.empty=function(){return!!l&&f[0]==f[1]||!!c&&h[0]==h[1]},la.rebind(t,s,"on")};var Xs={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Js=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Zs=vu.format=wu.timeFormat,Gs=Zs.utc,Ks=Gs("%Y-%m-%dT%H:%M:%S.%LZ");Zs.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?ia:Ks,ia.parse=function(t){var e=new Date(t);return isNaN(e)?null:e},ia.toString=Ks.toString,vu.second=Ht(function(t){return new gu(1e3*Math.floor(t/1e3))},function(t,e){t.setTime(t.getTime()+1e3*Math.floor(e))},function(t){return t.getSeconds()}),vu.seconds=vu.second.range,vu.seconds.utc=vu.second.utc.range,vu.minute=Ht(function(t){return new gu(6e4*Math.floor(t/6e4))},function(t,e){t.setTime(t.getTime()+6e4*Math.floor(e))},function(t){return t.getMinutes()}),vu.minutes=vu.minute.range,vu.minutes.utc=vu.minute.utc.range,vu.hour=Ht(function(t){var e=t.getTimezoneOffset()/60;return new gu(36e5*(Math.floor(t/36e5-e)+e))},function(t,e){t.setTime(t.getTime()+36e5*Math.floor(e))},function(t){return t.getHours()}),vu.hours=vu.hour.range,vu.hours.utc=vu.hour.utc.range,vu.month=Ht(function(t){return t=vu.day(t),t.setDate(1),t},function(t,e){t.setMonth(t.getMonth()+e)},function(t){return t.getMonth()}),vu.months=vu.month.range,vu.months.utc=vu.month.utc.range;var Qs=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],tl=[[vu.second,1],[vu.second,5],[vu.second,15],[vu.second,30],[vu.minute,1],[vu.minute,5],[vu.minute,15],[vu.minute,30],[vu.hour,1],[vu.hour,3],[vu.hour,6],[vu.hour,12],[vu.day,1],[vu.day,2],[vu.week,1],[vu.month,1],[vu.month,3],[vu.year,1]],el=Zs.multi([[".%L",function(t){return t.getMilliseconds()}],[":%S",function(t){return t.getSeconds()}],["%I:%M",function(t){return t.getMinutes()}],["%I %p",function(t){return t.getHours()}],["%a %d",function(t){return t.getDay()&&1!=t.getDate()}],["%b %d",function(t){return 1!=t.getDate()}],["%B",function(t){return t.getMonth()}],["%Y",Ae]]),nl={range:function(t,e,n){return la.range(Math.ceil(t/n)*n,+e,n).map(aa)},floor:b,ceil:b};tl.year=vu.year,vu.scale=function(){return oa(la.scale.linear(),tl,el)};var rl=tl.map(function(t){return[t[0].utc,t[1]]}),il=Gs.multi([[".%L",function(t){return t.getUTCMilliseconds()}],[":%S",function(t){return t.getUTCSeconds()}],["%I:%M",function(t){return t.getUTCMinutes()}],["%I %p",function(t){return t.getUTCHours()}],["%a %d",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],["%b %d",function(t){return 1!=t.getUTCDate()}],["%B",function(t){return t.getUTCMonth()}],["%Y",Ae]]);rl.year=vu.year.utc,vu.scale.utc=function(){return oa(la.scale.linear(),rl,il)},la.text=St(function(t){return t.responseText}),la.json=function(t,e){return Tt(t,"application/json",ua,e)},la.html=function(t,e){return Tt(t,"text/html",sa,e)},la.xml=St(function(t){return t.responseXML}),"function"==typeof define&&define.amd?(this.d3=la,define(la)):"object"==typeof e&&e.exports?e.exports=la:this.d3=la}()},{}],33:[function(t,e,n){(function(r){function i(){return"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function o(){var t=arguments,e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+n.humanize(this.diff),!e)return t;var r="color: "+this.color;t=[t[0],r,"color: inherit"].concat(Array.prototype.slice.call(t,1));var i=0,o=0;return t[0].replace(/%[a-z%]/g,function(t){"%%"!==t&&(i++,"%c"===t&&(o=i))}),t.splice(o,0,r),t}function a(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function u(t){try{null==t?n.storage.removeItem("debug"):n.storage.debug=t}catch(e){}}function s(){try{return n.storage.debug}catch(t){}if("undefined"!=typeof r&&"env"in r)return r.env.DEBUG}function l(){try{return window.localStorage}catch(t){}}n=e.exports=t("./debug"),n.log=a,n.formatArgs=o,n.save=u,n.load=s,n.useColors=i,n.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:l(),n.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],n.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},n.enable(s())}).call(this,t("_process"))},{"./debug":34,_process:28}],34:[function(t,e,n){function r(){return n.colors[c++%n.colors.length]}function i(t){function e(){}function i(){var t=i,e=+new Date,o=e-(l||e);t.diff=o,t.prev=l,t.curr=e,l=e,null==t.useColors&&(t.useColors=n.useColors()),null==t.color&&t.useColors&&(t.color=r());for(var a=new Array(arguments.length),u=0;u<a.length;u++)a[u]=arguments[u];a[0]=n.coerce(a[0]),"string"!=typeof a[0]&&(a=["%o"].concat(a));var s=0;a[0]=a[0].replace(/%([a-z%])/g,function(e,r){if("%%"===e)return e;s++;var i=n.formatters[r];if("function"==typeof i){var o=a[s];e=i.call(t,o),a.splice(s,1),s--}return e}),a=n.formatArgs.apply(t,a);var c=i.log||n.log||console.log.bind(console);c.apply(t,a)}e.enabled=!1,i.enabled=!0;var o=n.enabled(t)?i:e;return o.namespace=t,o}function o(t){n.save(t);for(var e=(t||"").split(/[\s,]+/),r=e.length,i=0;i<r;i++)e[i]&&(t=e[i].replace(/[\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*?"),"-"===t[0]?n.skips.push(new RegExp("^"+t.substr(1)+"$")):n.names.push(new RegExp("^"+t+"$")))}function a(){n.enable("")}function u(t){var e,r;for(e=0,r=n.skips.length;e<r;e++)if(n.skips[e].test(t))return!1;for(e=0,r=n.names.length;e<r;e++)if(n.names[e].test(t))return!0;return!1}function s(t){return t instanceof Error?t.stack||t.message:t}n=e.exports=i.debug=i,n.coerce=s,n.disable=a,n.enable=o,n.enabled=u,n.humanize=t("ms"),n.names=[],n.skips=[],n.formatters={};var l,c=0},{ms:107}],35:[function(t,e,n){var r=t("closest"),i=t("component-event"),o=["focus","blur"];n.bind=function(t,e,n,a,u){return o.indexOf(n)!==-1&&(u=!0),i.bind(t,n,function(n){var i=n.target||n.srcElement;n.delegateTarget=r(i,e,!0,t),n.delegateTarget&&a.call(t,n)},u)},n.unbind=function(t,e,n,r){o.indexOf(e)!==-1&&(r=!0),i.unbind(t,e,n,r)}},{closest:29,"component-event":31}],36:[function(t,e,n){function r(t,e){if("string"!=typeof t)throw new TypeError("String expected");e||(e=document);var n=/<([\w:]+)/.exec(t);if(!n)return e.createTextNode(t);t=t.replace(/^\s+|\s+$/g,"");var r=n[1];if("body"==r){var i=e.createElement("html");return i.innerHTML=t,i.removeChild(i.lastChild)}var o=a[r]||a._default,u=o[0],s=o[1],l=o[2],i=e.createElement("div");for(i.innerHTML=s+t+l;u--;)i=i.lastChild;if(i.firstChild==i.lastChild)return i.removeChild(i.firstChild);for(var c=e.createDocumentFragment();i.firstChild;)c.appendChild(i.removeChild(i.firstChild));return c}e.exports=r;var i,o=!1;"undefined"!=typeof document&&(i=document.createElement("div"),i.innerHTML=' <link/><table></table><a href="/a">a</a><input type="checkbox"/>',o=!i.getElementsByTagName("link").length,i=void 0);var a={legend:[1,"<fieldset>","</fieldset>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],_default:o?[1,"X<div>","</div>"]:[0,"",""]};a.td=a.th=[3,"<table><tbody><tr>","</tr></tbody></table>"],a.option=a.optgroup=[1,'<select multiple="multiple">',"</select>"],a.thead=a.tbody=a.colgroup=a.caption=a.tfoot=[1,"<table>","</table>"],a.polyline=a.ellipse=a.polygon=a.circle=a.text=a.line=a.path=a.rect=a.g=[1,'<svg xmlns="http://www.w3.org/2000/svg" version="1.1">',"</svg>"]},{}],37:[function(t,e,n){function r(t,e){if(!(this instanceof r))return new r(t,e);if(!t)throw new Error("element required");if(!e)throw new Error("object required");this.el=t,this.obj=e,this._events={}}function i(t){var e=t.split(/ +/);return{name:e.shift(),selector:e.join(" ")}}var o=t("component-event"),a=t("delegate-events"),u=["focus","blur"];e.exports=r,r.prototype.sub=function(t,e,n){this._events[t]=this._events[t]||{},this._events[t][e]=n},r.prototype.bind=function(t,e){var n=function(t,e){function n(){var t=[].slice.call(arguments).concat(c);if("function"==typeof e)return void e.apply(s,t);if(!s[e])throw new Error(e+" method is not defined");s[e].apply(s,t)}var r=i(t),u=this.el,s=this.obj,l=r.name,e=e||"on"+l,c=[].slice.call(arguments,2);return r.selector?n=a.bind(u,r.selector,l,n):o.bind(u,l,n),this.sub(l,e,n),n};if("string"==typeof t)n.apply(this,arguments);else for(var r in t)t.hasOwnProperty(r)&&n.call(this,r,t[r])},r.prototype.unbind=function(t,e){if(0==arguments.length)return this.unbindAll();if(1==arguments.length)return this.unbindAllOf(t);var n=this._events[t],r=u.indexOf(t)!==-1;if(n){var i=n[e];i&&o.unbind(this.el,t,i,r)}},r.prototype.unbindAll=function(){for(var t in this._events)this.unbindAllOf(t)},r.prototype.unbindAllOf=function(t){var e=this._events[t];if(e)for(var n in e)this.unbind(t,n)}},{"component-event":31,"delegate-events":35}],38:[function(t,e,n){function r(t,e){if(e.indexOf(".")==-1&&e.indexOf("[")==-1)return t[e];for(var n,r=e.split(/\.|\[|\]/g),i=-1,o=r.length;++i<o;)if(0==i&&(n=t),r[i]){if(void 0==n)break;n=n[r[i]]}return n}e.exports=r},{}],39:[function(t,e,n){(function(r){!function(t){if("object"==typeof n&&"undefined"!=typeof e)e.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i;i="undefined"!=typeof window?window:"undefined"!=typeof r?r:"undefined"!=typeof self?self:this,i.jade=t()}}(function(){return function e(n,r,i){function o(u,s){if(!r[u]){if(!n[u]){var l="function"==typeof t&&t;if(!s&&l)return l(u,!0);if(a)return a(u,!0);var c=new Error("Cannot find module '"+u+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[u]={exports:{}};n[u][0].call(f.exports,function(t){var e=n[u][1][t];return o(e?e:t)},f,f.exports,e,n,r,i)}return r[u].exports}for(var a="function"==typeof t&&t,u=0;u<i.length;u++)o(i[u]);return o}({1:[function(t,e,n){"use strict";function r(t){return null!=t&&""!==t}function i(t){return(Array.isArray(t)?t.map(i):t&&"object"==typeof t?Object.keys(t).filter(function(e){return t[e]}):[t]).filter(r).join(" ")}function o(t){return u[t]||t}function a(t){var e=String(t).replace(s,o);return e===""+t?t:e}n.merge=function l(t,e){if(1===arguments.length){for(var n=t[0],i=1;i<t.length;i++)n=l(n,t[i]);return n}var o=t["class"],a=e["class"];(o||a)&&(o=o||[],a=a||[],Array.isArray(o)||(o=[o]),Array.isArray(a)||(a=[a]),t["class"]=o.concat(a).filter(r));for(var u in e)"class"!=u&&(t[u]=e[u]);return t},n.joinClasses=i,n.cls=function(t,e){for(var r=[],o=0;o<t.length;o++)e&&e[o]?r.push(n.escape(i([t[o]]))):r.push(i(t[o]));var a=i(r);return a.length?' class="'+a+'"':""},n.style=function(t){return t&&"object"==typeof t?Object.keys(t).map(function(e){return e+":"+t[e]}).join(";"):t},n.attr=function(t,e,r,i){return"style"===t&&(e=n.style(e)),"boolean"==typeof e||null==e?e?" "+(i?t:t+'="'+t+'"'):"":0==t.indexOf("data")&&"string"!=typeof e?(JSON.stringify(e).indexOf("&")!==-1&&console.warn("Since Jade 2.0.0, ampersands (`&`) in data attributes will be escaped to `&`"),e&&"function"==typeof e.toISOString&&console.warn("Jade will eliminate the double quotes around dates in ISO form after 2.0.0")," "+t+"='"+JSON.stringify(e).replace(/'/g,"'")+"'"):r?(e&&"function"==typeof e.toISOString&&console.warn("Jade will stringify dates in ISO form after 2.0.0")," "+t+'="'+n.escape(e)+'"'):(e&&"function"==typeof e.toISOString&&console.warn("Jade will stringify dates in ISO form after 2.0.0")," "+t+'="'+e+'"')},n.attrs=function(t,e){var r=[],o=Object.keys(t);if(o.length)for(var a=0;a<o.length;++a){var u=o[a],s=t[u];"class"==u?(s=i(s))&&r.push(" "+u+'="'+s+'"'):r.push(n.attr(u,s,!1,e))}return r.join("")};var u={"&":"&","<":"<",">":">",'"':"""},s=/[&<>"]/g;n.escape=a,n.rethrow=function c(e,n,r,i){if(!(e instanceof Error))throw e;if(!("undefined"==typeof window&&n||i))throw e.message+=" on line "+r,e;try{i=i||t("fs").readFileSync(n,"utf8")}catch(o){c(e,null,r)}var a=3,u=i.split("\n"),s=Math.max(r-a,0),l=Math.min(u.length,r+a),a=u.slice(s,l).map(function(t,e){var n=e+s+1;return(n==r?" > ":" ")+n+"| "+t}).join("\n");throw e.path=n,e.message=(n||"Jade")+":"+r+"\n"+a+"\n\n"+e.message,e},n.DebugItem=function(t,e){this.lineno=t,this.filename=e}},{fs:2}],2:[function(t,e,n){},{}]},{},[1])(1)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{fs:27}],40:[function(t,e,n){!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return n(t)}:n(t)}("undefined"!=typeof window?window:this,function(t,e){function n(t){var e=!!t&&"length"in t&&t.length,n=ot.type(t);return"function"!==n&&!ot.isWindow(t)&&("array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function r(t,e,n){if(ot.isFunction(e))return ot.grep(t,function(t,r){return!!e.call(t,r,t)!==n});if(e.nodeType)return ot.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(vt.test(e))return ot.filter(e,t,n);e=ot.filter(e,t)}return ot.grep(t,function(t){return Q.call(e,t)>-1!==n})}function i(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function o(t){var e={};return ot.each(t.match(wt)||[],function(t,n){e[n]=!0}),e}function a(){J.removeEventListener("DOMContentLoaded",a),t.removeEventListener("load",a),ot.ready()}function u(){this.expando=ot.expando+u.uid++}function s(t,e,data){var n;if(void 0===data&&1===t.nodeType)if(n="data-"+e.replace(St,"-$&").toLowerCase(),data=t.getAttribute(n),"string"==typeof data){try{data="true"===data||"false"!==data&&("null"===data?null:+data+""===data?+data:Ct.test(data)?ot.parseJSON(data):data)}catch(r){}jt.set(t,e,data)}else data=void 0;return data}function l(t,e,n,r){var i,o=1,a=20,u=r?function(){return r.cur()}:function(){return ot.css(t,e,"")},s=u(),l=n&&n[3]||(ot.cssNumber[e]?"":"px"),c=(ot.cssNumber[e]||"px"!==l&&+s)&&At.exec(ot.css(t,e));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+s||1;do o=o||".5",c/=o,ot.style(t,e,c+l);while(o!==(o=u()/s)&&1!==o&&--a)}return n&&(c=+c||+s||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function c(t,e){var n="undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e||"*"):"undefined"!=typeof t.querySelectorAll?t.querySelectorAll(e||"*"):[];return void 0===e||e&&ot.nodeName(t,e)?ot.merge([t],n):n}function f(t,e){for(var n=0,r=t.length;n<r;n++)Et.set(t[n],"globalEval",!e||Et.get(e[n],"globalEval"))}function h(t,e,n,r,i){for(var o,a,u,s,l,h,p=e.createDocumentFragment(),d=[],v=0,g=t.length;v<g;v++)if(o=t[v],o||0===o)if("object"===ot.type(o))ot.merge(d,o.nodeType?[o]:o);else if(zt.test(o)){for(a=a||p.appendChild(e.createElement("div")),u=(Dt.exec(o)||["",""])[1].toLowerCase(),s=Ft[u]||Ft._default,a.innerHTML=s[1]+ot.htmlPrefilter(o)+s[2],h=s[0];h--;)a=a.lastChild;ot.merge(d,a.childNodes),a=p.firstChild,a.textContent=""}else d.push(e.createTextNode(o));for(p.textContent="",v=0;o=d[v++];)if(r&&ot.inArray(o,r)>-1)i&&i.push(o);else if(l=ot.contains(o.ownerDocument,o),a=c(p.appendChild(o),"script"),l&&f(a),n)for(h=0;o=a[h++];)Lt.test(o.type||"")&&n.push(o);return p}function p(){return!0}function d(){return!1}function v(){try{return J.activeElement}catch(t){}}function g(t,e,n,data,r,i){var o,a;if("object"==typeof e){"string"!=typeof n&&(data=data||n,n=void 0);for(a in e)g(t,a,n,data,e[a],i);return t}if(null==data&&null==r?(r=n,data=n=void 0):null==r&&("string"==typeof n?(r=data,data=void 0):(r=data,data=n,n=void 0)),r===!1)r=d;else if(!r)return t;return 1===i&&(o=r,r=function(t){return ot().off(t),o.apply(this,arguments)},r.guid=o.guid||(o.guid=ot.guid++)),t.each(function(){ot.event.add(this,e,r,data,n)})}function y(t,e){return ot.nodeName(t,"table")&&ot.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function m(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function b(t){var e=Vt.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function x(t,e){var n,r,i,o,a,u,s,l;if(1===e.nodeType){if(Et.hasData(t)&&(o=Et.access(t),a=Et.set(e,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)ot.event.add(e,i,l[i][n])}jt.hasData(t)&&(u=jt.access(t),s=ot.extend({},u),jt.set(e,s))}}function w(t,e){var n=e.nodeName.toLowerCase();"input"===n&&qt.test(t.type)?e.checked=t.checked:"input"!==n&&"textarea"!==n||(e.defaultValue=t.defaultValue)}function _(t,e,n,r){e=G.apply([],e);var i,o,a,u,s,l,f=0,p=t.length,d=p-1,v=e[0],g=ot.isFunction(v);if(g||p>1&&"string"==typeof v&&!rt.checkClone&&Bt.test(v))return t.each(function(i){var o=t.eq(i);g&&(e[0]=v.call(this,i,o.html())),_(o,e,n,r)});if(p&&(i=h(e,t[0].ownerDocument,!1,t,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(a=ot.map(c(i,"script"),m),u=a.length;f<p;f++)s=i,f!==d&&(s=ot.clone(s,!0,!0),u&&ot.merge(a,c(s,"script"))),n.call(t[f],s,f);if(u)for(l=a[a.length-1].ownerDocument,ot.map(a,b),f=0;f<u;f++)s=a[f],Lt.test(s.type||"")&&!Et.access(s,"globalEval")&&ot.contains(l,s)&&(s.src?ot._evalUrl&&ot._evalUrl(s.src):ot.globalEval(s.textContent.replace(Ut,"")))}return t}function M(t,e,n){for(var r,i=e?ot.filter(e,t):t,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ot.cleanData(c(r)),r.parentNode&&(n&&ot.contains(r.ownerDocument,r)&&f(c(r,"script")),r.parentNode.removeChild(r));return t}function k(t,e){var n=ot(e.createElement(t)).appendTo(e.body),r=ot.css(n[0],"display");return n.detach(),r}function E(t){var e=J,n=Yt[t];return n||(n=k(t,e),"none"!==n&&n||(Wt=(Wt||ot("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement),e=Wt[0].contentDocument,e.write(),e.close(),n=k(t,e),Wt.detach()),Yt[t]=n),n}function j(t,e,n){var r,i,o,a,u=t.style;return n=n||Zt(t),a=n?n.getPropertyValue(e)||n[e]:void 0,""!==a&&void 0!==a||ot.contains(t.ownerDocument,t)||(a=ot.style(t,e)),n&&!rt.pixelMarginRight()&&Jt.test(a)&&Xt.test(e)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o),void 0!==a?a+"":a}function C(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}function S(t){if(t in re)return t;for(var e=t[0].toUpperCase()+t.slice(1),n=ne.length;n--;)if(t=ne[n]+e,t in re)return t}function T(t,e,n){var r=At.exec(e);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):e}function A(t,e,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===e?1:0,a=0;o<4;o+=2)"margin"===n&&(a+=ot.css(t,n+Nt[o],!0,i)), +r?("content"===n&&(a-=ot.css(t,"padding"+Nt[o],!0,i)),"margin"!==n&&(a-=ot.css(t,"border"+Nt[o]+"Width",!0,i))):(a+=ot.css(t,"padding"+Nt[o],!0,i),"padding"!==n&&(a+=ot.css(t,"border"+Nt[o]+"Width",!0,i)));return a}function N(t,e,n){var r=!0,i="width"===e?t.offsetWidth:t.offsetHeight,o=Zt(t),a="border-box"===ot.css(t,"boxSizing",!1,o);if(i<=0||null==i){if(i=j(t,e,o),(i<0||null==i)&&(i=t.style[e]),Jt.test(i))return i;r=a&&(rt.boxSizingReliable()||i===t.style[e]),i=parseFloat(i)||0}return i+A(t,e,n||(a?"border":"content"),r,o)+"px"}function O(t,e){for(var n,r,i,o=[],a=0,u=t.length;a<u;a++)r=t[a],r.style&&(o[a]=Et.get(r,"olddisplay"),n=r.style.display,e?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&Ot(r)&&(o[a]=Et.access(r,"olddisplay",E(r.nodeName)))):(i=Ot(r),"none"===n&&i||Et.set(r,"olddisplay",i?n:ot.css(r,"display"))));for(a=0;a<u;a++)r=t[a],r.style&&(e&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=e?o[a]||"":"none"));return t}function q(t,e,n,r,i){return new q.prototype.init(t,e,n,r,i)}function D(){return t.setTimeout(function(){ie=void 0}),ie=ot.now()}function L(t,e){var n,r=0,i={height:t};for(e=e?1:0;r<4;r+=2-e)n=Nt[r],i["margin"+n]=i["padding"+n]=t;return e&&(i.opacity=i.width=t),i}function F(t,e,n){for(var r,i=(P.tweeners[e]||[]).concat(P.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,e,t))return r}function z(t,e,n){var r,i,o,a,u,s,l,c,f=this,h={},p=t.style,d=t.nodeType&&Ot(t),v=Et.get(t,"fxshow");n.queue||(u=ot._queueHooks(t,"fx"),null==u.unqueued&&(u.unqueued=0,s=u.empty.fire,u.empty.fire=function(){u.unqueued||s()}),u.unqueued++,f.always(function(){f.always(function(){u.unqueued--,ot.queue(t,"fx").length||u.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],l=ot.css(t,"display"),c="none"===l?Et.get(t,"olddisplay")||E(t.nodeName):l,"inline"===c&&"none"===ot.css(t,"float")&&(p.display="inline-block")),n.overflow&&(p.overflow="hidden",f.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in e)if(i=e[r],ae.exec(i)){if(delete e[r],o=o||"toggle"===i,i===(d?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;d=!0}h[r]=v&&v[r]||ot.style(t,r)}else l=void 0;if(ot.isEmptyObject(h))"inline"===("none"===l?E(t.nodeName):l)&&(p.display=l);else{v?"hidden"in v&&(d=v.hidden):v=Et.access(t,"fxshow",{}),o&&(v.hidden=!d),d?ot(t).show():f.done(function(){ot(t).hide()}),f.done(function(){var e;Et.remove(t,"fxshow");for(e in h)ot.style(t,e,h[e])});for(r in h)a=F(d?v[r]:0,r,f),r in v||(v[r]=a.start,d&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function R(t,e){var n,r,i,o,a;for(n in t)if(r=ot.camelCase(n),i=e[r],o=t[n],ot.isArray(o)&&(i=o[1],o=t[n]=o[0]),n!==r&&(t[r]=o,delete t[n]),a=ot.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete t[r];for(n in o)n in t||(t[n]=o[n],e[n]=i)}else e[r]=i}function P(t,e,n){var r,i,o=0,a=P.prefilters.length,u=ot.Deferred().always(function(){delete s.elem}),s=function(){if(i)return!1;for(var e=ie||D(),n=Math.max(0,l.startTime+l.duration-e),r=n/l.duration||0,o=1-r,a=0,s=l.tweens.length;a<s;a++)l.tweens[a].run(o);return u.notifyWith(t,[l,o,n]),o<1&&s?n:(u.resolveWith(t,[l]),!1)},l=u.promise({elem:t,props:ot.extend({},e),opts:ot.extend(!0,{specialEasing:{},easing:ot.easing._default},n),originalProperties:e,originalOptions:n,startTime:ie||D(),duration:n.duration,tweens:[],createTween:function(e,n){var r=ot.Tween(t,l.opts,e,n,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(r),r},stop:function(e){var n=0,r=e?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return e?(u.notifyWith(t,[l,1,0]),u.resolveWith(t,[l,e])):u.rejectWith(t,[l,e]),this}}),c=l.props;for(R(c,l.opts.specialEasing);o<a;o++)if(r=P.prefilters[o].call(l,t,c,l.opts))return ot.isFunction(r.stop)&&(ot._queueHooks(l.elem,l.opts.queue).stop=ot.proxy(r.stop,r)),r;return ot.map(c,F,l),ot.isFunction(l.opts.start)&&l.opts.start.call(t,l),ot.fx.timer(ot.extend(s,{elem:t,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function I(t){return t.getAttribute&&t.getAttribute("class")||""}function H(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var r,i=0,o=e.toLowerCase().match(wt)||[];if(ot.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(t[r]=t[r]||[]).unshift(n)):(t[r]=t[r]||[]).push(n)}}function $(t,e,n,r){function i(u){var s;return o[u]=!0,ot.each(t[u]||[],function(t,u){var l=u(e,n,r);return"string"!=typeof l||a||o[l]?a?!(s=l):void 0:(e.dataTypes.unshift(l),i(l),!1)}),s}var o={},a=t===je;return i(e.dataTypes[0])||!o["*"]&&i("*")}function B(t,e){var n,r,i=ot.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((i[n]?t:r||(r={}))[n]=e[n]);return r&&ot.extend(!0,t,r),t}function V(t,e,n){for(var r,i,o,a,u=t.contents,s=t.dataTypes;"*"===s[0];)s.shift(),void 0===r&&(r=t.mimeType||e.getResponseHeader("Content-Type"));if(r)for(i in u)if(u[i]&&u[i].test(r)){s.unshift(i);break}if(s[0]in n)o=s[0];else{for(i in n){if(!s[0]||t.converters[i+" "+s[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==s[0]&&s.unshift(o),n[o]}function U(t,e,n,r){var i,o,a,u,s,l={},c=t.dataTypes.slice();if(c[1])for(a in t.converters)l[a.toLowerCase()]=t.converters[a];for(o=c.shift();o;)if(t.responseFields[o]&&(n[t.responseFields[o]]=e),!s&&r&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),s=o,o=c.shift())if("*"===o)o=s;else if("*"!==s&&s!==o){if(a=l[s+" "+o]||l["* "+o],!a)for(i in l)if(u=i.split(" "),u[1]===o&&(a=l[s+" "+u[0]]||l["* "+u[0]])){a===!0?a=l[i]:l[i]!==!0&&(o=u[0],c.unshift(u[1]));break}if(a!==!0)if(a&&t["throws"])e=a(e);else try{e=a(e)}catch(f){return{state:"parsererror",error:a?f:"No conversion from "+s+" to "+o}}}return{state:"success",data:e}}function W(t,e,n,r){var i;if(ot.isArray(e))ot.each(e,function(e,i){n||Ae.test(t)?r(t,i):W(t+"["+("object"==typeof i&&null!=i?e:"")+"]",i,n,r)});else if(n||"object"!==ot.type(e))r(t,e);else for(i in e)W(t+"["+i+"]",e[i],n,r)}function Y(t){return ot.isWindow(t)?t:9===t.nodeType&&t.defaultView}var X=[],J=t.document,Z=X.slice,G=X.concat,K=X.push,Q=X.indexOf,tt={},et=tt.toString,nt=tt.hasOwnProperty,rt={},it="2.2.4",ot=function(t,e){return new ot.fn.init(t,e)},at=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ut=/^-ms-/,st=/-([\da-z])/gi,lt=function(t,e){return e.toUpperCase()};ot.fn=ot.prototype={jquery:it,constructor:ot,selector:"",length:0,toArray:function(){return Z.call(this)},get:function(t){return null!=t?t<0?this[t+this.length]:this[t]:Z.call(this)},pushStack:function(t){var e=ot.merge(this.constructor(),t);return e.prevObject=this,e.context=this.context,e},each:function(t){return ot.each(this,t)},map:function(t){return this.pushStack(ot.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return this.pushStack(Z.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,n=+t+(t<0?e:0);return this.pushStack(n>=0&&n<e?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:K,sort:X.sort,splice:X.splice},ot.extend=ot.fn.extend=function(){var t,e,n,r,i,o,a=arguments[0]||{},u=1,s=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[u]||{},u++),"object"==typeof a||ot.isFunction(a)||(a={}),u===s&&(a=this,u--);u<s;u++)if(null!=(t=arguments[u]))for(e in t)n=a[e],r=t[e],a!==r&&(l&&r&&(ot.isPlainObject(r)||(i=ot.isArray(r)))?(i?(i=!1,o=n&&ot.isArray(n)?n:[]):o=n&&ot.isPlainObject(n)?n:{},a[e]=ot.extend(l,o,r)):void 0!==r&&(a[e]=r));return a},ot.extend({expando:"jQuery"+(it+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===ot.type(t)},isArray:Array.isArray,isWindow:function(t){return null!=t&&t===t.window},isNumeric:function(t){var e=t&&t.toString();return!ot.isArray(t)&&e-parseFloat(e)+1>=0},isPlainObject:function(t){var e;if("object"!==ot.type(t)||t.nodeType||ot.isWindow(t))return!1;if(t.constructor&&!nt.call(t,"constructor")&&!nt.call(t.constructor.prototype||{},"isPrototypeOf"))return!1;for(e in t);return void 0===e||nt.call(t,e)},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?tt[et.call(t)]||"object":typeof t},globalEval:function(t){var e,n=eval;t=ot.trim(t),t&&(1===t.indexOf("use strict")?(e=J.createElement("script"),e.text=t,J.head.appendChild(e).parentNode.removeChild(e)):n(t))},camelCase:function(t){return t.replace(ut,"ms-").replace(st,lt)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e){var r,i=0;if(n(t))for(r=t.length;i<r&&e.call(t[i],i,t[i])!==!1;i++);else for(i in t)if(e.call(t[i],i,t[i])===!1)break;return t},trim:function(t){return null==t?"":(t+"").replace(at,"")},makeArray:function(t,e){var r=e||[];return null!=t&&(n(Object(t))?ot.merge(r,"string"==typeof t?[t]:t):K.call(r,t)),r},inArray:function(t,e,n){return null==e?-1:Q.call(e,t,n)},merge:function(t,e){for(var n=+e.length,r=0,i=t.length;r<n;r++)t[i++]=e[r];return t.length=i,t},grep:function(t,e,n){for(var r,i=[],o=0,a=t.length,u=!n;o<a;o++)r=!e(t[o],o),r!==u&&i.push(t[o]);return i},map:function(t,e,r){var i,o,a=0,u=[];if(n(t))for(i=t.length;a<i;a++)o=e(t[a],a,r),null!=o&&u.push(o);else for(a in t)o=e(t[a],a,r),null!=o&&u.push(o);return G.apply([],u)},guid:1,proxy:function(t,e){var n,r,i;if("string"==typeof e&&(n=t[e],e=t,t=n),ot.isFunction(t))return r=Z.call(arguments,2),i=function(){return t.apply(e||this,r.concat(Z.call(arguments)))},i.guid=t.guid=t.guid||ot.guid++,i},now:Date.now,support:rt}),"function"==typeof Symbol&&(ot.fn[Symbol.iterator]=X[Symbol.iterator]),ot.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(t,e){tt["[object "+e+"]"]=e.toLowerCase()});var ct=function(t){function e(t,e,n,r){var i,o,a,u,s,l,f,p,d=e&&e.ownerDocument,v=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==v&&9!==v&&11!==v)return n;if(!r&&((e?e.ownerDocument||e:I)!==O&&N(e),e=e||O,D)){if(11!==v&&(l=yt.exec(t)))if(i=l[1]){if(9===v){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(d&&(a=d.getElementById(i))&&R(e,a)&&a.id===i)return n.push(a),n}else{if(l[2])return K.apply(n,e.getElementsByTagName(t)),n;if((i=l[3])&&w.getElementsByClassName&&e.getElementsByClassName)return K.apply(n,e.getElementsByClassName(i)),n}if(w.qsa&&!U[t+" "]&&(!L||!L.test(t))){if(1!==v)d=e,p=t;else if("object"!==e.nodeName.toLowerCase()){for((u=e.getAttribute("id"))?u=u.replace(bt,"\\$&"):e.setAttribute("id",u=P),f=E(t),o=f.length,s=ht.test(u)?"#"+u:"[id='"+u+"']";o--;)f[o]=s+" "+h(f[o]);p=f.join(","),d=mt.test(t)&&c(e.parentNode)||e}if(p)try{return K.apply(n,d.querySelectorAll(p)),n}catch(g){}finally{u===P&&e.removeAttribute("id")}}}return C(t.replace(ut,"$1"),e,n,r)}function n(){function t(n,r){return e.push(n+" ")>_.cacheLength&&delete t[e.shift()],t[n+" "]=r}var e=[];return t}function r(t){return t[P]=!0,t}function i(t){var e=O.createElement("div");try{return!!t(e)}catch(n){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function o(t,e){for(var n=t.split("|"),r=n.length;r--;)_.attrHandle[n[r]]=e}function a(t,e){var n=e&&t,r=n&&1===t.nodeType&&1===e.nodeType&&(~e.sourceIndex||Y)-(~t.sourceIndex||Y);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function u(t){return function(e){var n=e.nodeName.toLowerCase();return"input"===n&&e.type===t}}function s(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function l(t){return r(function(e){return e=+e,r(function(n,r){for(var i,o=t([],n.length,e),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function f(){}function h(t){for(var e=0,n=t.length,r="";e<n;e++)r+=t[e].value;return r}function p(t,e,n){var r=e.dir,i=n&&"parentNode"===r,o=$++;return e.first?function(e,n,o){for(;e=e[r];)if(1===e.nodeType||i)return t(e,n,o)}:function(e,n,a){var u,s,l,c=[H,o];if(a){for(;e=e[r];)if((1===e.nodeType||i)&&t(e,n,a))return!0}else for(;e=e[r];)if(1===e.nodeType||i){if(l=e[P]||(e[P]={}),s=l[e.uniqueID]||(l[e.uniqueID]={}),(u=s[r])&&u[0]===H&&u[1]===o)return c[2]=u[2];if(s[r]=c,c[2]=t(e,n,a))return!0}}}function d(t){return t.length>1?function(e,n,r){for(var i=t.length;i--;)if(!t[i](e,n,r))return!1;return!0}:t[0]}function v(t,n,r){for(var i=0,o=n.length;i<o;i++)e(t,n[i],r);return r}function g(t,e,n,r,i){for(var o,a=[],u=0,s=t.length,l=null!=e;u<s;u++)(o=t[u])&&(n&&!n(o,r,i)||(a.push(o),l&&e.push(u)));return a}function y(t,e,n,i,o,a){return i&&!i[P]&&(i=y(i)),o&&!o[P]&&(o=y(o,a)),r(function(r,a,u,s){var l,c,f,h=[],p=[],d=a.length,y=r||v(e||"*",u.nodeType?[u]:u,[]),m=!t||!r&&e?y:g(y,h,t,u,s),b=n?o||(r?t:d||i)?[]:a:m;if(n&&n(m,b,u,s),i)for(l=g(b,p),i(l,[],u,s),c=l.length;c--;)(f=l[c])&&(b[p[c]]=!(m[p[c]]=f));if(r){if(o||t){if(o){for(l=[],c=b.length;c--;)(f=b[c])&&l.push(m[c]=f);o(null,b=[],l,s)}for(c=b.length;c--;)(f=b[c])&&(l=o?tt(r,f):h[c])>-1&&(r[l]=!(a[l]=f))}}else b=g(b===a?b.splice(d,b.length):b),o?o(null,a,b,s):K.apply(a,b)})}function m(t){for(var e,n,r,i=t.length,o=_.relative[t[0].type],a=o||_.relative[" "],u=o?1:0,s=p(function(t){return t===e},a,!0),l=p(function(t){return tt(e,t)>-1},a,!0),c=[function(t,n,r){var i=!o&&(r||n!==S)||((e=n).nodeType?s(t,n,r):l(t,n,r));return e=null,i}];u<i;u++)if(n=_.relative[t[u].type])c=[p(d(c),n)];else{if(n=_.filter[t[u].type].apply(null,t[u].matches),n[P]){for(r=++u;r<i&&!_.relative[t[r].type];r++);return y(u>1&&d(c),u>1&&h(t.slice(0,u-1).concat({value:" "===t[u-2].type?"*":""})).replace(ut,"$1"),n,u<r&&m(t.slice(u,r)),r<i&&m(t=t.slice(r)),r<i&&h(t))}c.push(n)}return d(c)}function b(t,n){var i=n.length>0,o=t.length>0,a=function(r,a,u,s,l){var c,f,h,p=0,d="0",v=r&&[],y=[],m=S,b=r||o&&_.find.TAG("*",l),x=H+=null==m?1:Math.random()||.1,w=b.length;for(l&&(S=a===O||a||l);d!==w&&null!=(c=b[d]);d++){if(o&&c){for(f=0,a||c.ownerDocument===O||(N(c),u=!D);h=t[f++];)if(h(c,a||O,u)){s.push(c);break}l&&(H=x)}i&&((c=!h&&c)&&p--,r&&v.push(c))}if(p+=d,i&&d!==p){for(f=0;h=n[f++];)h(v,y,a,u);if(r){if(p>0)for(;d--;)v[d]||y[d]||(y[d]=Z.call(s));y=g(y)}K.apply(s,y),l&&!r&&y.length>0&&p+n.length>1&&e.uniqueSort(s)}return l&&(H=x,S=m),v};return i?r(a):a}var x,w,_,M,k,E,j,C,S,T,A,N,O,q,D,L,F,z,R,P="sizzle"+1*new Date,I=t.document,H=0,$=0,B=n(),V=n(),U=n(),W=function(t,e){return t===e&&(A=!0),0},Y=1<<31,X={}.hasOwnProperty,J=[],Z=J.pop,G=J.push,K=J.push,Q=J.slice,tt=function(t,e){for(var n=0,r=t.length;n<r;n++)if(t[n]===e)return n;return-1},et="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",nt="[\\x20\\t\\r\\n\\f]",rt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",it="\\["+nt+"*("+rt+")(?:"+nt+"*([*^$|!~]?=)"+nt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+rt+"))|)"+nt+"*\\]",ot=":("+rt+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+it+")*)|.*)\\)|)",at=new RegExp(nt+"+","g"),ut=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),st=new RegExp("^"+nt+"*,"+nt+"*"),lt=new RegExp("^"+nt+"*([>+~]|"+nt+")"+nt+"*"),ct=new RegExp("="+nt+"*([^\\]'\"]*?)"+nt+"*\\]","g"),ft=new RegExp(ot),ht=new RegExp("^"+rt+"$"),pt={ID:new RegExp("^#("+rt+")"),CLASS:new RegExp("^\\.("+rt+")"),TAG:new RegExp("^("+rt+"|[*])"),ATTR:new RegExp("^"+it),PSEUDO:new RegExp("^"+ot),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),bool:new RegExp("^(?:"+et+")$","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},dt=/^(?:input|select|textarea|button)$/i,vt=/^h\d$/i,gt=/^[^{]+\{\s*\[native \w/,yt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,mt=/[+~]/,bt=/'|\\/g,xt=new RegExp("\\\\([\\da-f]{1,6}"+nt+"?|("+nt+")|.)","ig"),wt=function(t,e,n){var r="0x"+e-65536;return r!==r||n?e:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},_t=function(){N()};try{K.apply(J=Q.call(I.childNodes),I.childNodes),J[I.childNodes.length].nodeType}catch(Mt){K={apply:J.length?function(t,e){G.apply(t,Q.call(e))}:function(t,e){for(var n=t.length,r=0;t[n++]=e[r++];);t.length=n-1}}}w=e.support={},k=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return!!e&&"HTML"!==e.nodeName},N=e.setDocument=function(t){var e,n,r=t?t.ownerDocument||t:I;return r!==O&&9===r.nodeType&&r.documentElement?(O=r,q=O.documentElement,D=!k(O),(n=O.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",_t,!1):n.attachEvent&&n.attachEvent("onunload",_t)),w.attributes=i(function(t){return t.className="i",!t.getAttribute("className")}),w.getElementsByTagName=i(function(t){return t.appendChild(O.createComment("")),!t.getElementsByTagName("*").length}),w.getElementsByClassName=gt.test(O.getElementsByClassName),w.getById=i(function(t){return q.appendChild(t).id=P,!O.getElementsByName||!O.getElementsByName(P).length}),w.getById?(_.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&D){var n=e.getElementById(t);return n?[n]:[]}},_.filter.ID=function(t){var e=t.replace(xt,wt);return function(t){return t.getAttribute("id")===e}}):(delete _.find.ID,_.filter.ID=function(t){var e=t.replace(xt,wt);return function(t){var n="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}}),_.find.TAG=w.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):w.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,r=[],i=0,o=e.getElementsByTagName(t);if("*"===t){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},_.find.CLASS=w.getElementsByClassName&&function(t,e){if("undefined"!=typeof e.getElementsByClassName&&D)return e.getElementsByClassName(t)},F=[],L=[],(w.qsa=gt.test(O.querySelectorAll))&&(i(function(t){q.appendChild(t).innerHTML="<a id='"+P+"'></a><select id='"+P+"-\r\\' msallowcapture=''><option selected=''></option></select>",t.querySelectorAll("[msallowcapture^='']").length&&L.push("[*^$]="+nt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||L.push("\\["+nt+"*(?:value|"+et+")"),t.querySelectorAll("[id~="+P+"-]").length||L.push("~="),t.querySelectorAll(":checked").length||L.push(":checked"),t.querySelectorAll("a#"+P+"+*").length||L.push(".#.+[+~]")}),i(function(t){var e=O.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&L.push("name"+nt+"*[*^$|!~]?="),t.querySelectorAll(":enabled").length||L.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),L.push(",.*:")})),(w.matchesSelector=gt.test(z=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(t){w.disconnectedMatch=z.call(t,"div"),z.call(t,"[s!='']:x"),F.push("!=",ot)}),L=L.length&&new RegExp(L.join("|")),F=F.length&&new RegExp(F.join("|")),e=gt.test(q.compareDocumentPosition),R=e||gt.test(q.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,r=e&&e.parentNode;return t===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):t.compareDocumentPosition&&16&t.compareDocumentPosition(r)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},W=e?function(t,e){if(t===e)return A=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n?n:(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!w.sortDetached&&e.compareDocumentPosition(t)===n?t===O||t.ownerDocument===I&&R(I,t)?-1:e===O||e.ownerDocument===I&&R(I,e)?1:T?tt(T,t)-tt(T,e):0:4&n?-1:1)}:function(t,e){if(t===e)return A=!0,0;var n,r=0,i=t.parentNode,o=e.parentNode,u=[t],s=[e];if(!i||!o)return t===O?-1:e===O?1:i?-1:o?1:T?tt(T,t)-tt(T,e):0;if(i===o)return a(t,e);for(n=t;n=n.parentNode;)u.unshift(n);for(n=e;n=n.parentNode;)s.unshift(n);for(;u[r]===s[r];)r++;return r?a(u[r],s[r]):u[r]===I?-1:s[r]===I?1:0},O):O},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==O&&N(t),n=n.replace(ct,"='$1']"),w.matchesSelector&&D&&!U[n+" "]&&(!F||!F.test(n))&&(!L||!L.test(n)))try{var r=z.call(t,n);if(r||w.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,O,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==O&&N(t),R(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==O&&N(t);var n=_.attrHandle[e.toLowerCase()],r=n&&X.call(_.attrHandle,e.toLowerCase())?n(t,e,!D):void 0;return void 0!==r?r:w.attributes||!D?t.getAttribute(e):(r=t.getAttributeNode(e))&&r.specified?r.value:null},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],r=0,i=0;if(A=!w.detectDuplicates,T=!w.sortStable&&t.slice(0),t.sort(W),A){for(;e=t[i++];)e===t[i]&&(r=n.push(i));for(;r--;)t.splice(n[r],1)}return T=null,t},M=e.getText=function(t){var e,n="",r=0,i=t.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=M(t)}else if(3===i||4===i)return t.nodeValue}else for(;e=t[r++];)n+=M(e);return n},_=e.selectors={cacheLength:50,createPseudo:r,match:pt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(xt,wt),t[3]=(t[3]||t[4]||t[5]||"").replace(xt,wt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return pt.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&ft.test(n)&&(e=E(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(xt,wt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=B[t+" "];return e||(e=new RegExp("(^|"+nt+")"+t+"("+nt+"|$)"))&&B(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(at," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(t,e,n,r,i){var o="nth"!==t.slice(0,3),a="last"!==t.slice(-4),u="of-type"===e;return 1===r&&0===i?function(t){return!!t.parentNode}:function(e,n,s){var l,c,f,h,p,d,v=o!==a?"nextSibling":"previousSibling",g=e.parentNode,y=u&&e.nodeName.toLowerCase(),m=!s&&!u,b=!1;if(g){if(o){for(;v;){for(h=e;h=h[v];)if(u?h.nodeName.toLowerCase()===y:1===h.nodeType)return!1;d=v="only"===t&&!d&&"nextSibling"}return!0}if(d=[a?g.firstChild:g.lastChild],a&&m){for(h=g,f=h[P]||(h[P]={}),c=f[h.uniqueID]||(f[h.uniqueID]={}),l=c[t]||[],p=l[0]===H&&l[1],b=p&&l[2],h=p&&g.childNodes[p];h=++p&&h&&h[v]||(b=p=0)||d.pop();)if(1===h.nodeType&&++b&&h===e){c[t]=[H,p,b];break}}else if(m&&(h=e,f=h[P]||(h[P]={}),c=f[h.uniqueID]||(f[h.uniqueID]={}),l=c[t]||[],p=l[0]===H&&l[1],b=p),b===!1)for(;(h=++p&&h&&h[v]||(b=p=0)||d.pop())&&((u?h.nodeName.toLowerCase()!==y:1!==h.nodeType)||!++b||(m&&(f=h[P]||(h[P]={}),c=f[h.uniqueID]||(f[h.uniqueID]={}),c[t]=[H,b]),h!==e)););return b-=i,b===r||b%r===0&&b/r>=0}}},PSEUDO:function(t,n){var i,o=_.pseudos[t]||_.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[P]?o(n):o.length>1?(i=[t,t,"",n],_.setFilters.hasOwnProperty(t.toLowerCase())?r(function(t,e){for(var r,i=o(t,n),a=i.length;a--;)r=tt(t,i[a]),t[r]=!(e[r]=i[a])}):function(t){return o(t,0,i)}):o}},pseudos:{not:r(function(t){var e=[],n=[],i=j(t.replace(ut,"$1"));return i[P]?r(function(t,e,n,r){for(var o,a=i(t,null,r,[]),u=t.length;u--;)(o=a[u])&&(t[u]=!(e[u]=o))}):function(t,r,o){return e[0]=t,i(e,null,o,n),e[0]=null,!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(t){return t=t.replace(xt,wt),function(e){return(e.textContent||e.innerText||M(e)).indexOf(t)>-1}}),lang:r(function(t){return ht.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(xt,wt).toLowerCase(),function(e){var n;do if(n=D?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===q},focus:function(t){return t===O.activeElement&&(!O.hasFocus||O.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:function(t){return t.disabled===!1},disabled:function(t){return t.disabled===!0},checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!_.pseudos.empty(t)},header:function(t){return vt.test(t.nodeName)},input:function(t){return dt.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:l(function(){return[0]}),last:l(function(t,e){return[e-1]}),eq:l(function(t,e,n){return[n<0?n+e:n]}),even:l(function(t,e){for(var n=0;n<e;n+=2)t.push(n);return t}),odd:l(function(t,e){for(var n=1;n<e;n+=2)t.push(n);return t}),lt:l(function(t,e,n){for(var r=n<0?n+e:n;--r>=0;)t.push(r);return t}),gt:l(function(t,e,n){for(var r=n<0?n+e:n;++r<e;)t.push(r);return t})}},_.pseudos.nth=_.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})_.pseudos[x]=u(x);for(x in{submit:!0,reset:!0})_.pseudos[x]=s(x);return f.prototype=_.filters=_.pseudos,_.setFilters=new f,E=e.tokenize=function(t,n){var r,i,o,a,u,s,l,c=V[t+" "];if(c)return n?0:c.slice(0);for(u=t,s=[],l=_.preFilter;u;){r&&!(i=st.exec(u))||(i&&(u=u.slice(i[0].length)||u),s.push(o=[])),r=!1,(i=lt.exec(u))&&(r=i.shift(),o.push({value:r,type:i[0].replace(ut," ")}),u=u.slice(r.length));for(a in _.filter)!(i=pt[a].exec(u))||l[a]&&!(i=l[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),u=u.slice(r.length));if(!r)break}return n?u.length:u?e.error(t):V(t,s).slice(0)},j=e.compile=function(t,e){var n,r=[],i=[],o=U[t+" "];if(!o){for(e||(e=E(t)),n=e.length;n--;)o=m(e[n]),o[P]?r.push(o):i.push(o);o=U(t,b(i,r)),o.selector=t}return o},C=e.select=function(t,e,n,r){var i,o,a,u,s,l="function"==typeof t&&t,f=!r&&E(t=l.selector||t);if(n=n||[],1===f.length){if(o=f[0]=f[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&w.getById&&9===e.nodeType&&D&&_.relative[o[1].type]){if(e=(_.find.ID(a.matches[0].replace(xt,wt),e)||[])[0],!e)return n;l&&(e=e.parentNode),t=t.slice(o.shift().value.length)}for(i=pt.needsContext.test(t)?0:o.length;i--&&(a=o[i],!_.relative[u=a.type]);)if((s=_.find[u])&&(r=s(a.matches[0].replace(xt,wt),mt.test(o[0].type)&&c(e.parentNode)||e))){if(o.splice(i,1),t=r.length&&h(o),!t)return K.apply(n,r),n;break}}return(l||j(t,f))(r,e,!D,n,!e||mt.test(t)&&c(e.parentNode)||e),n},w.sortStable=P.split("").sort(W).join("")===P,w.detectDuplicates=!!A,N(),w.sortDetached=i(function(t){return 1&t.compareDocumentPosition(O.createElement("div"))}),i(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||o("type|href|height|width",function(t,e,n){if(!n)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),w.attributes&&i(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||o("value",function(t,e,n){if(!n&&"input"===t.nodeName.toLowerCase())return t.defaultValue}),i(function(t){return null==t.getAttribute("disabled")})||o(et,function(t,e,n){var r;if(!n)return t[e]===!0?e.toLowerCase():(r=t.getAttributeNode(e))&&r.specified?r.value:null}),e}(t);ot.find=ct,ot.expr=ct.selectors,ot.expr[":"]=ot.expr.pseudos,ot.uniqueSort=ot.unique=ct.uniqueSort,ot.text=ct.getText,ot.isXMLDoc=ct.isXML,ot.contains=ct.contains;var ft=function(t,e,n){for(var r=[],i=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(i&&ot(t).is(n))break;r.push(t)}return r},ht=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},pt=ot.expr.match.needsContext,dt=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,vt=/^.[^:#\[\.,]*$/;ot.filter=function(t,e,n){var r=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===r.nodeType?ot.find.matchesSelector(r,t)?[r]:[]:ot.find.matches(t,ot.grep(e,function(t){return 1===t.nodeType}))},ot.fn.extend({find:function(t){var e,n=this.length,r=[],i=this;if("string"!=typeof t)return this.pushStack(ot(t).filter(function(){for(e=0;e<n;e++)if(ot.contains(i[e],this))return!0}));for(e=0;e<n;e++)ot.find(t,i[e],r);return r=this.pushStack(n>1?ot.unique(r):r),r.selector=this.selector?this.selector+" "+t:t,r},filter:function(t){return this.pushStack(r(this,t||[],!1))},not:function(t){return this.pushStack(r(this,t||[],!0))},is:function(t){return!!r(this,"string"==typeof t&&pt.test(t)?ot(t):t||[],!1).length}});var gt,yt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,mt=ot.fn.init=function(t,e,n){var r,i;if(!t)return this;if(n=n||gt,"string"==typeof t){if(r="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:yt.exec(t),!r||!r[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(r[1]){if(e=e instanceof ot?e[0]:e,ot.merge(this,ot.parseHTML(r[1],e&&e.nodeType?e.ownerDocument||e:J,!0)),dt.test(r[1])&&ot.isPlainObject(e))for(r in e)ot.isFunction(this[r])?this[r](e[r]):this.attr(r,e[r]);return this}return i=J.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=J,this.selector=t,this}return t.nodeType?(this.context=this[0]=t,this.length=1,this):ot.isFunction(t)?void 0!==n.ready?n.ready(t):t(ot):(void 0!==t.selector&&(this.selector=t.selector,this.context=t.context),ot.makeArray(t,this))};mt.prototype=ot.fn,gt=ot(J);var bt=/^(?:parents|prev(?:Until|All))/,xt={children:!0,contents:!0,next:!0,prev:!0};ot.fn.extend({has:function(t){var e=ot(t,this),n=e.length;return this.filter(function(){for(var t=0;t<n;t++)if(ot.contains(this,e[t]))return!0})},closest:function(t,e){for(var n,r=0,i=this.length,o=[],a=pt.test(t)||"string"!=typeof t?ot(t,e||this.context):0;r<i;r++)for(n=this[r];n&&n!==e;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&ot.find.matchesSelector(n,t))){o.push(n);break}return this.pushStack(o.length>1?ot.uniqueSort(o):o)},index:function(t){return t?"string"==typeof t?Q.call(ot(t),this[0]):Q.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(ot.uniqueSort(ot.merge(this.get(),ot(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),ot.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return ft(t,"parentNode")},parentsUntil:function(t,e,n){return ft(t,"parentNode",n)},next:function(t){return i(t,"nextSibling")},prev:function(t){return i(t,"previousSibling")},nextAll:function(t){return ft(t,"nextSibling")},prevAll:function(t){return ft(t,"previousSibling")},nextUntil:function(t,e,n){return ft(t,"nextSibling",n)},prevUntil:function(t,e,n){return ft(t,"previousSibling",n)},siblings:function(t){return ht((t.parentNode||{}).firstChild,t)},children:function(t){return ht(t.firstChild)},contents:function(t){return t.contentDocument||ot.merge([],t.childNodes); +}},function(t,e){ot.fn[t]=function(n,r){var i=ot.map(this,e,n);return"Until"!==t.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ot.filter(r,i)),this.length>1&&(xt[t]||ot.uniqueSort(i),bt.test(t)&&i.reverse()),this.pushStack(i)}});var wt=/\S+/g;ot.Callbacks=function(t){t="string"==typeof t?o(t):ot.extend({},t);var e,n,r,i,a=[],u=[],s=-1,l=function(){for(i=t.once,r=e=!0;u.length;s=-1)for(n=u.shift();++s<a.length;)a[s].apply(n[0],n[1])===!1&&t.stopOnFalse&&(s=a.length,n=!1);t.memory||(n=!1),e=!1,i&&(a=n?[]:"")},c={add:function(){return a&&(n&&!e&&(s=a.length-1,u.push(n)),function r(e){ot.each(e,function(e,n){ot.isFunction(n)?t.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==ot.type(n)&&r(n)})}(arguments),n&&!e&&l()),this},remove:function(){return ot.each(arguments,function(t,e){for(var n;(n=ot.inArray(e,a,n))>-1;)a.splice(n,1),n<=s&&s--}),this},has:function(t){return t?ot.inArray(t,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=u=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=u=[],n||(a=n=""),this},locked:function(){return!!i},fireWith:function(t,n){return i||(n=n||[],n=[t,n.slice?n.slice():n],u.push(n),e||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},ot.extend({Deferred:function(t){var e=[["resolve","done",ot.Callbacks("once memory"),"resolved"],["reject","fail",ot.Callbacks("once memory"),"rejected"],["notify","progress",ot.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var t=arguments;return ot.Deferred(function(n){ot.each(e,function(e,o){var a=ot.isFunction(t[e])&&t[e];i[o[1]](function(){var t=a&&a.apply(this,arguments);t&&ot.isFunction(t.promise)?t.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[t]:arguments)})}),t=null}).promise()},promise:function(t){return null!=t?ot.extend(t,r):r}},i={};return r.pipe=r.then,ot.each(e,function(t,o){var a=o[2],u=o[3];r[o[1]]=a.add,u&&a.add(function(){n=u},e[1^t][2].disable,e[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),t&&t.call(i,i),i},when:function(t){var e,n,r,i=0,o=Z.call(arguments),a=o.length,u=1!==a||t&&ot.isFunction(t.promise)?a:0,s=1===u?t:ot.Deferred(),l=function(t,n,r){return function(i){n[t]=this,r[t]=arguments.length>1?Z.call(arguments):i,r===e?s.notifyWith(n,r):--u||s.resolveWith(n,r)}};if(a>1)for(e=new Array(a),n=new Array(a),r=new Array(a);i<a;i++)o[i]&&ot.isFunction(o[i].promise)?o[i].promise().progress(l(i,n,e)).done(l(i,r,o)).fail(s.reject):--u;return u||s.resolveWith(r,o),s.promise()}});var _t;ot.fn.ready=function(t){return ot.ready.promise().done(t),this},ot.extend({isReady:!1,readyWait:1,holdReady:function(t){t?ot.readyWait++:ot.ready(!0)},ready:function(t){(t===!0?--ot.readyWait:ot.isReady)||(ot.isReady=!0,t!==!0&&--ot.readyWait>0||(_t.resolveWith(J,[ot]),ot.fn.triggerHandler&&(ot(J).triggerHandler("ready"),ot(J).off("ready"))))}}),ot.ready.promise=function(e){return _t||(_t=ot.Deferred(),"complete"===J.readyState||"loading"!==J.readyState&&!J.documentElement.doScroll?t.setTimeout(ot.ready):(J.addEventListener("DOMContentLoaded",a),t.addEventListener("load",a))),_t.promise(e)},ot.ready.promise();var Mt=function(t,e,n,r,i,o,a){var u=0,s=t.length,l=null==n;if("object"===ot.type(n)){i=!0;for(u in n)Mt(t,e,u,n[u],!0,o,a)}else if(void 0!==r&&(i=!0,ot.isFunction(r)||(a=!0),l&&(a?(e.call(t,r),e=null):(l=e,e=function(t,e,n){return l.call(ot(t),n)})),e))for(;u<s;u++)e(t[u],n,a?r:r.call(t[u],u,e(t[u],n)));return i?t:l?e.call(t):s?e(t[0],n):o},kt=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType};u.uid=1,u.prototype={register:function(t,e){var n=e||{};return t.nodeType?t[this.expando]=n:Object.defineProperty(t,this.expando,{value:n,writable:!0,configurable:!0}),t[this.expando]},cache:function(t){if(!kt(t))return{};var e=t[this.expando];return e||(e={},kt(t)&&(t.nodeType?t[this.expando]=e:Object.defineProperty(t,this.expando,{value:e,configurable:!0}))),e},set:function(t,data,e){var n,r=this.cache(t);if("string"==typeof data)r[data]=e;else for(n in data)r[n]=data[n];return r},get:function(t,e){return void 0===e?this.cache(t):t[this.expando]&&t[this.expando][e]},access:function(t,e,n){var r;return void 0===e||e&&"string"==typeof e&&void 0===n?(r=this.get(t,e),void 0!==r?r:this.get(t,ot.camelCase(e))):(this.set(t,e,n),void 0!==n?n:e)},remove:function(t,e){var n,r,i,o=t[this.expando];if(void 0!==o){if(void 0===e)this.register(t);else{ot.isArray(e)?r=e.concat(e.map(ot.camelCase)):(i=ot.camelCase(e),e in o?r=[e,i]:(r=i,r=r in o?[r]:r.match(wt)||[])),n=r.length;for(;n--;)delete o[r[n]]}(void 0===e||ot.isEmptyObject(o))&&(t.nodeType?t[this.expando]=void 0:delete t[this.expando])}},hasData:function(t){var e=t[this.expando];return void 0!==e&&!ot.isEmptyObject(e)}};var Et=new u,jt=new u,Ct=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,St=/[A-Z]/g;ot.extend({hasData:function(t){return jt.hasData(t)||Et.hasData(t)},data:function(t,e,data){return jt.access(t,e,data)},removeData:function(t,e){jt.remove(t,e)},_data:function(t,e,data){return Et.access(t,e,data)},_removeData:function(t,e){Et.remove(t,e)}}),ot.fn.extend({data:function(t,e){var n,r,data,i=this[0],o=i&&i.attributes;if(void 0===t){if(this.length&&(data=jt.get(i),1===i.nodeType&&!Et.get(i,"hasDataAttrs"))){for(n=o.length;n--;)o[n]&&(r=o[n].name,0===r.indexOf("data-")&&(r=ot.camelCase(r.slice(5)),s(i,r,data[r])));Et.set(i,"hasDataAttrs",!0)}return data}return"object"==typeof t?this.each(function(){jt.set(this,t)}):Mt(this,function(e){var data,n;if(i&&void 0===e){if(data=jt.get(i,t)||jt.get(i,t.replace(St,"-$&").toLowerCase()),void 0!==data)return data;if(n=ot.camelCase(t),data=jt.get(i,n),void 0!==data)return data;if(data=s(i,n,void 0),void 0!==data)return data}else n=ot.camelCase(t),this.each(function(){var data=jt.get(this,n);jt.set(this,n,e),t.indexOf("-")>-1&&void 0!==data&&jt.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){jt.remove(this,t)})}}),ot.extend({queue:function(t,e,data){var n;if(t)return e=(e||"fx")+"queue",n=Et.get(t,e),data&&(!n||ot.isArray(data)?n=Et.access(t,e,ot.makeArray(data)):n.push(data)),n||[]},dequeue:function(t,e){e=e||"fx";var n=ot.queue(t,e),r=n.length,i=n.shift(),o=ot._queueHooks(t,e),a=function(){ot.dequeue(t,e)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===e&&n.unshift("inprogress"),delete o.stop,i.call(t,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return Et.get(t,n)||Et.access(t,n,{empty:ot.Callbacks("once memory").add(function(){Et.remove(t,[e+"queue",n])})})}}),ot.fn.extend({queue:function(t,data){var e=2;return"string"!=typeof t&&(data=t,t="fx",e--),arguments.length<e?ot.queue(this[0],t):void 0===data?this:this.each(function(){var e=ot.queue(this,t,data);ot._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ot.dequeue(this,t)})},dequeue:function(t){return this.each(function(){ot.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var n,r=1,i=ot.Deferred(),o=this,a=this.length,u=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";a--;)n=Et.get(o[a],t+"queueHooks"),n&&n.empty&&(r++,n.empty.add(u));return u(),i.promise(e)}});var Tt=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,At=new RegExp("^(?:([+-])=|)("+Tt+")([a-z%]*)$","i"),Nt=["Top","Right","Bottom","Left"],Ot=function(t,e){return t=e||t,"none"===ot.css(t,"display")||!ot.contains(t.ownerDocument,t)},qt=/^(?:checkbox|radio)$/i,Dt=/<([\w:-]+)/,Lt=/^$|\/(?:java|ecma)script/i,Ft={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,"",""]};Ft.optgroup=Ft.option,Ft.tbody=Ft.tfoot=Ft.colgroup=Ft.caption=Ft.thead,Ft.th=Ft.td;var zt=/<|&#?\w+;/;!function(){var t=J.createDocumentFragment(),e=t.appendChild(J.createElement("div")),n=J.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),rt.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",rt.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Rt=/^key/,Pt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,It=/^([^.]*)(?:\.(.+)|)/;ot.event={global:{},add:function(t,e,n,data,r){var i,o,a,u,s,l,c,f,h,p,d,v=Et.get(t);if(v)for(n.handler&&(i=n,n=i.handler,r=i.selector),n.guid||(n.guid=ot.guid++),(u=v.events)||(u=v.events={}),(o=v.handle)||(o=v.handle=function(e){return"undefined"!=typeof ot&&ot.event.triggered!==e.type?ot.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(wt)||[""],s=e.length;s--;)a=It.exec(e[s])||[],h=d=a[1],p=(a[2]||"").split(".").sort(),h&&(c=ot.event.special[h]||{},h=(r?c.delegateType:c.bindType)||h,c=ot.event.special[h]||{},l=ot.extend({type:h,origType:d,data:data,handler:n,guid:n.guid,selector:r,needsContext:r&&ot.expr.match.needsContext.test(r),namespace:p.join(".")},i),(f=u[h])||(f=u[h]=[],f.delegateCount=0,c.setup&&c.setup.call(t,data,p,o)!==!1||t.addEventListener&&t.addEventListener(h,o)),c.add&&(c.add.call(t,l),l.handler.guid||(l.handler.guid=n.guid)),r?f.splice(f.delegateCount++,0,l):f.push(l),ot.event.global[h]=!0)},remove:function(t,e,n,r,i){var o,a,u,s,l,c,f,h,p,d,v,g=Et.hasData(t)&&Et.get(t);if(g&&(s=g.events)){for(e=(e||"").match(wt)||[""],l=e.length;l--;)if(u=It.exec(e[l])||[],p=v=u[1],d=(u[2]||"").split(".").sort(),p){for(f=ot.event.special[p]||{},p=(r?f.delegateType:f.bindType)||p,h=s[p]||[],u=u[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=h.length;o--;)c=h[o],!i&&v!==c.origType||n&&n.guid!==c.guid||u&&!u.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(h.splice(o,1),c.selector&&h.delegateCount--,f.remove&&f.remove.call(t,c));a&&!h.length&&(f.teardown&&f.teardown.call(t,d,g.handle)!==!1||ot.removeEvent(t,p,g.handle),delete s[p])}else for(p in s)ot.event.remove(t,p+e[l],n,r,!0);ot.isEmptyObject(s)&&Et.remove(t,"handle events")}},dispatch:function(t){t=ot.event.fix(t);var e,n,r,i,o,a=[],u=Z.call(arguments),s=(Et.get(this,"events")||{})[t.type]||[],l=ot.event.special[t.type]||{};if(u[0]=t,t.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,t)!==!1){for(a=ot.event.handlers.call(this,t,s),e=0;(i=a[e++])&&!t.isPropagationStopped();)for(t.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!t.isImmediatePropagationStopped();)t.rnamespace&&!t.rnamespace.test(o.namespace)||(t.handleObj=o,t.data=o.data,r=((ot.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u),void 0!==r&&(t.result=r)===!1&&(t.preventDefault(),t.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,t),t.result}},handlers:function(t,e){var n,r,i,o,a=[],u=e.delegateCount,s=t.target;if(u&&s.nodeType&&("click"!==t.type||isNaN(t.button)||t.button<1))for(;s!==this;s=s.parentNode||this)if(1===s.nodeType&&(s.disabled!==!0||"click"!==t.type)){for(r=[],n=0;n<u;n++)o=e[n],i=o.selector+" ",void 0===r[i]&&(r[i]=o.needsContext?ot(i,this).index(s)>-1:ot.find(i,this,null,[s]).length),r[i]&&r.push(o);r.length&&a.push({elem:s,handlers:r})}return u<e.length&&a.push({elem:this,handlers:e.slice(u)}),a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(t,e){return null==t.which&&(t.which=null!=e.charCode?e.charCode:e.keyCode),t}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(t,e){var n,r,i,o=e.button;return null==t.pageX&&null!=e.clientX&&(n=t.target.ownerDocument||J,r=n.documentElement,i=n.body,t.pageX=e.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),t.pageY=e.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),t.which||void 0===o||(t.which=1&o?1:2&o?3:4&o?2:0),t}},fix:function(t){if(t[ot.expando])return t;var e,n,r,i=t.type,o=t,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=Pt.test(i)?this.mouseHooks:Rt.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,t=new ot.Event(o),e=r.length;e--;)n=r[e],t[n]=o[n];return t.target||(t.target=J),3===t.target.nodeType&&(t.target=t.target.parentNode),a.filter?a.filter(t,o):t},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==v()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===v()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&ot.nodeName(this,"input"))return this.click(),!1},_default:function(t){return ot.nodeName(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}}},ot.removeEvent=function(t,e,n){t.removeEventListener&&t.removeEventListener(e,n)},ot.Event=function(t,e){return this instanceof ot.Event?(t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&t.returnValue===!1?p:d):this.type=t,e&&ot.extend(this,e),this.timeStamp=t&&t.timeStamp||ot.now(),void(this[ot.expando]=!0)):new ot.Event(t,e)},ot.Event.prototype={constructor:ot.Event,isDefaultPrevented:d,isPropagationStopped:d,isImmediatePropagationStopped:d,isSimulated:!1,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=p,t&&!this.isSimulated&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=p,t&&!this.isSimulated&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=p,t&&!this.isSimulated&&t.stopImmediatePropagation(),this.stopPropagation()}},ot.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,e){ot.event.special[t]={delegateType:e,bindType:e,handle:function(t){var n,r=this,i=t.relatedTarget,o=t.handleObj;return i&&(i===r||ot.contains(r,i))||(t.type=o.origType,n=o.handler.apply(this,arguments),t.type=e),n}}}),ot.fn.extend({on:function(t,e,data,n){return g(this,t,e,data,n)},one:function(t,e,data,n){return g(this,t,e,data,n,1)},off:function(t,e,n){var r,i;if(t&&t.preventDefault&&t.handleObj)return r=t.handleObj,ot(t.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof t){for(i in t)this.off(i,e,t[i]);return this}return e!==!1&&"function"!=typeof e||(n=e,e=void 0),n===!1&&(n=d),this.each(function(){ot.event.remove(this,t,n,e)})}});var Ht=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,$t=/<script|<style|<link/i,Bt=/checked\s*(?:[^=]|=\s*.checked.)/i,Vt=/^true\/(.*)/,Ut=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;ot.extend({htmlPrefilter:function(t){return t.replace(Ht,"<$1></$2>")},clone:function(t,e,n){var r,i,o,a,u=t.cloneNode(!0),s=ot.contains(t.ownerDocument,t);if(!(rt.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||ot.isXMLDoc(t)))for(a=c(u),o=c(t),r=0,i=o.length;r<i;r++)w(o[r],a[r]);if(e)if(n)for(o=o||c(t),a=a||c(u),r=0,i=o.length;r<i;r++)x(o[r],a[r]);else x(t,u);return a=c(u,"script"),a.length>0&&f(a,!s&&c(t,"script")),u},cleanData:function(t){for(var data,e,n,r=ot.event.special,i=0;void 0!==(e=t[i]);i++)if(kt(e)){if(data=e[Et.expando]){if(data.events)for(n in data.events)r[n]?ot.event.remove(e,n):ot.removeEvent(e,n,data.handle);e[Et.expando]=void 0}e[jt.expando]&&(e[jt.expando]=void 0)}}}),ot.fn.extend({domManip:_,detach:function(t){return M(this,t,!0)},remove:function(t){return M(this,t)},text:function(t){return Mt(this,function(t){return void 0===t?ot.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return _(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=y(this,t);e.appendChild(t)}})},prepend:function(){return _(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=y(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return _(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return _(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(ot.cleanData(c(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return ot.clone(this,t,e)})},html:function(t){return Mt(this,function(t){var e=this[0]||{},n=0,r=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!$t.test(t)&&!Ft[(Dt.exec(t)||["",""])[1].toLowerCase()]){t=ot.htmlPrefilter(t);try{for(;n<r;n++)e=this[n]||{},1===e.nodeType&&(ot.cleanData(c(e,!1)),e.innerHTML=t);e=0}catch(i){}}e&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=[];return _(this,arguments,function(e){var n=this.parentNode;ot.inArray(this,t)<0&&(ot.cleanData(c(this)),n&&n.replaceChild(e,this))},t)}}),ot.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){ot.fn[t]=function(t){for(var n,r=[],i=ot(t),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),ot(i[a])[e](n),K.apply(r,n.get());return this.pushStack(r)}});var Wt,Yt={HTML:"block",BODY:"block"},Xt=/^margin/,Jt=new RegExp("^("+Tt+")(?!px)[a-z%]+$","i"),Zt=function(e){var n=e.ownerDocument.defaultView;return n&&n.opener||(n=t),n.getComputedStyle(e)},Gt=function(t,e,n,r){var i,o,a={};for(o in e)a[o]=t.style[o],t.style[o]=e[o];i=n.apply(t,r||[]);for(o in e)t.style[o]=a[o];return i},Kt=J.documentElement;!function(){function e(){u.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",u.innerHTML="",Kt.appendChild(a);var e=t.getComputedStyle(u);n="1%"!==e.top,o="2px"===e.marginLeft,r="4px"===e.width,u.style.marginRight="50%",i="4px"===e.marginRight,Kt.removeChild(a)}var n,r,i,o,a=J.createElement("div"),u=J.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",rt.clearCloneStyle="content-box"===u.style.backgroundClip,a.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",a.appendChild(u),ot.extend(rt,{pixelPosition:function(){return e(),n},boxSizingReliable:function(){return null==r&&e(),r},pixelMarginRight:function(){return null==r&&e(),i},reliableMarginLeft:function(){return null==r&&e(),o},reliableMarginRight:function(){var e,n=u.appendChild(J.createElement("div"));return n.style.cssText=u.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",u.style.width="1px",Kt.appendChild(a),e=!parseFloat(t.getComputedStyle(n).marginRight),Kt.removeChild(a),u.removeChild(n),e}}))}();var Qt=/^(none|table(?!-c[ea]).+)/,te={position:"absolute",visibility:"hidden",display:"block"},ee={letterSpacing:"0",fontWeight:"400"},ne=["Webkit","O","Moz","ms"],re=J.createElement("div").style;ot.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=j(t,"opacity");return""===n?"1":n}}}},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(t,e,n,r){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var i,o,a,u=ot.camelCase(e),s=t.style;return e=ot.cssProps[u]||(ot.cssProps[u]=S(u)||u),a=ot.cssHooks[e]||ot.cssHooks[u],void 0===n?a&&"get"in a&&void 0!==(i=a.get(t,!1,r))?i:s[e]:(o=typeof n,"string"===o&&(i=At.exec(n))&&i[1]&&(n=l(t,e,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(ot.cssNumber[u]?"":"px")),rt.clearCloneStyle||""!==n||0!==e.indexOf("background")||(s[e]="inherit"),a&&"set"in a&&void 0===(n=a.set(t,n,r))||(s[e]=n)),void 0)}},css:function(t,e,n,r){var i,o,a,u=ot.camelCase(e);return e=ot.cssProps[u]||(ot.cssProps[u]=S(u)||u),a=ot.cssHooks[e]||ot.cssHooks[u],a&&"get"in a&&(i=a.get(t,!0,n)),void 0===i&&(i=j(t,e,r)),"normal"===i&&e in ee&&(i=ee[e]),""===n||n?(o=parseFloat(i),n===!0||isFinite(o)?o||0:i):i}}),ot.each(["height","width"],function(t,e){ot.cssHooks[e]={get:function(t,n,r){if(n)return Qt.test(ot.css(t,"display"))&&0===t.offsetWidth?Gt(t,te,function(){return N(t,e,r)}):N(t,e,r)},set:function(t,n,r){var i,o=r&&Zt(t),a=r&&A(t,e,r,"border-box"===ot.css(t,"boxSizing",!1,o),o);return a&&(i=At.exec(n))&&"px"!==(i[3]||"px")&&(t.style[e]=n,n=ot.css(t,e)),T(t,n,a)}}}),ot.cssHooks.marginLeft=C(rt.reliableMarginLeft,function(t,e){if(e)return(parseFloat(j(t,"marginLeft"))||t.getBoundingClientRect().left-Gt(t,{marginLeft:0},function(){return t.getBoundingClientRect().left}))+"px"}),ot.cssHooks.marginRight=C(rt.reliableMarginRight,function(t,e){if(e)return Gt(t,{display:"inline-block"},j,[t,"marginRight"])}),ot.each({margin:"",padding:"",border:"Width"},function(t,e){ot.cssHooks[t+e]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[t+Nt[r]+e]=o[r]||o[r-2]||o[0];return i}},Xt.test(t)||(ot.cssHooks[t+e].set=T)}),ot.fn.extend({css:function(t,e){return Mt(this,function(t,e,n){var r,i,o={},a=0;if(ot.isArray(e)){for(r=Zt(t),i=e.length;a<i;a++)o[e[a]]=ot.css(t,e[a],!1,r);return o}return void 0!==n?ot.style(t,e,n):ot.css(t,e)},t,e,arguments.length>1)},show:function(){return O(this,!0)},hide:function(){return O(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){Ot(this)?ot(this).show():ot(this).hide()})}}),ot.Tween=q,q.prototype={constructor:q,init:function(t,e,n,r,i,o){this.elem=t,this.prop=n,this.easing=i||ot.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ot.cssNumber[n]?"":"px")},cur:function(){var t=q.propHooks[this.prop];return t&&t.get?t.get(this):q.propHooks._default.get(this)},run:function(t){var e,n=q.propHooks[this.prop];return this.options.duration?this.pos=e=ot.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):q.propHooks._default.set(this),this}},q.prototype.init.prototype=q.prototype,q.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=ot.css(t.elem,t.prop,""),e&&"auto"!==e?e:0)},set:function(t){ot.fx.step[t.prop]?ot.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[ot.cssProps[t.prop]]&&!ot.cssHooks[t.prop]?t.elem[t.prop]=t.now:ot.style(t.elem,t.prop,t.now+t.unit)}}},q.propHooks.scrollTop=q.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},ot.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},ot.fx=q.prototype.init,ot.fx.step={};var ie,oe,ae=/^(?:toggle|show|hide)$/,ue=/queueHooks$/;ot.Animation=ot.extend(P,{tweeners:{"*":[function(t,e){var n=this.createTween(t,e);return l(n.elem,t,At.exec(e),n),n}]},tweener:function(t,e){ot.isFunction(t)?(e=t,t=["*"]):t=t.match(wt);for(var n,r=0,i=t.length;r<i;r++)n=t[r],P.tweeners[n]=P.tweeners[n]||[],P.tweeners[n].unshift(e)},prefilters:[z],prefilter:function(t,e){e?P.prefilters.unshift(t):P.prefilters.push(t)}}),ot.speed=function(t,e,n){var r=t&&"object"==typeof t?ot.extend({},t):{complete:n||!n&&e||ot.isFunction(t)&&t,duration:t,easing:n&&e||e&&!ot.isFunction(e)&&e};return r.duration=ot.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in ot.fx.speeds?ot.fx.speeds[r.duration]:ot.fx.speeds._default,null!=r.queue&&r.queue!==!0||(r.queue="fx"),r.old=r.complete,r.complete=function(){ot.isFunction(r.old)&&r.old.call(this),r.queue&&ot.dequeue(this,r.queue)},r},ot.fn.extend({fadeTo:function(t,e,n,r){return this.filter(Ot).css("opacity",0).show().end().animate({opacity:e},t,n,r)},animate:function(t,e,n,r){var i=ot.isEmptyObject(t),o=ot.speed(e,n,r),a=function(){var e=P(this,ot.extend({},t),o);(i||Et.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(t,e,n){var r=function(t){var e=t.stop;delete t.stop,e(n)};return"string"!=typeof t&&(n=e,e=t,t=void 0),e&&t!==!1&&this.queue(t||"fx",[]),this.each(function(){var e=!0,i=null!=t&&t+"queueHooks",o=ot.timers,data=Et.get(this);if(i)data[i]&&data[i].stop&&r(data[i]);else for(i in data)data[i]&&data[i].stop&&ue.test(i)&&r(data[i]);for(i=o.length;i--;)o[i].elem!==this||null!=t&&o[i].queue!==t||(o[i].anim.stop(n),e=!1,o.splice(i,1));!e&&n||ot.dequeue(this,t)})},finish:function(t){return t!==!1&&(t=t||"fx"),this.each(function(){var e,data=Et.get(this),n=data[t+"queue"],r=data[t+"queueHooks"],i=ot.timers,o=n?n.length:0;for(data.finish=!0,ot.queue(this,t,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===t&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete data.finish})}}),ot.each(["toggle","show","hide"],function(t,e){var n=ot.fn[e];ot.fn[e]=function(t,r,i){return null==t||"boolean"==typeof t?n.apply(this,arguments):this.animate(L(e,!0),t,r,i)}}),ot.each({slideDown:L("show"),slideUp:L("hide"),slideToggle:L("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){ot.fn[t]=function(t,n,r){return this.animate(e,t,n,r)}}),ot.timers=[],ot.fx.tick=function(){var t,e=0,n=ot.timers;for(ie=ot.now();e<n.length;e++)t=n[e],t()||n[e]!==t||n.splice(e--,1);n.length||ot.fx.stop(),ie=void 0},ot.fx.timer=function(t){ot.timers.push(t),t()?ot.fx.start():ot.timers.pop()},ot.fx.interval=13,ot.fx.start=function(){oe||(oe=t.setInterval(ot.fx.tick,ot.fx.interval))},ot.fx.stop=function(){t.clearInterval(oe),oe=null},ot.fx.speeds={slow:600,fast:200,_default:400},ot.fn.delay=function(e,n){return e=ot.fx?ot.fx.speeds[e]||e:e,n=n||"fx",this.queue(n,function(n,r){var i=t.setTimeout(n,e);r.stop=function(){t.clearTimeout(i)}})},function(){var t=J.createElement("input"),e=J.createElement("select"),n=e.appendChild(J.createElement("option"));t.type="checkbox",rt.checkOn=""!==t.value,rt.optSelected=n.selected,e.disabled=!0,rt.optDisabled=!n.disabled,t=J.createElement("input"),t.value="t",t.type="radio",rt.radioValue="t"===t.value}();var se,le=ot.expr.attrHandle;ot.fn.extend({attr:function(t,e){return Mt(this,ot.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){ot.removeAttr(this,t)})}}),ot.extend({attr:function(t,e,n){var r,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof t.getAttribute?ot.prop(t,e,n):(1===o&&ot.isXMLDoc(t)||(e=e.toLowerCase(),i=ot.attrHooks[e]||(ot.expr.match.bool.test(e)?se:void 0)),void 0!==n?null===n?void ot.removeAttr(t,e):i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:(t.setAttribute(e,n+""),n):i&&"get"in i&&null!==(r=i.get(t,e))?r:(r=ot.find.attr(t,e),null==r?void 0:r))},attrHooks:{type:{set:function(t,e){if(!rt.radioValue&&"radio"===e&&ot.nodeName(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,r,i=0,o=e&&e.match(wt);if(o&&1===t.nodeType)for(;n=o[i++];)r=ot.propFix[n]||n,ot.expr.match.bool.test(n)&&(t[r]=!1),t.removeAttribute(n)}}),se={set:function(t,e,n){return e===!1?ot.removeAttr(t,n):t.setAttribute(n,n),n}},ot.each(ot.expr.match.bool.source.match(/\w+/g),function(t,e){var n=le[e]||ot.find.attr;le[e]=function(t,e,r){var i,o;return r||(o=le[e],le[e]=i,i=null!=n(t,e,r)?e.toLowerCase():null,le[e]=o),i}});var ce=/^(?:input|select|textarea|button)$/i,fe=/^(?:a|area)$/i;ot.fn.extend({prop:function(t,e){return Mt(this,ot.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[ot.propFix[t]||t]})}}),ot.extend({prop:function(t,e,n){var r,i,o=t.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ot.isXMLDoc(t)||(e=ot.propFix[e]||e,i=ot.propHooks[e]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(t,n,e))?r:t[e]=n:i&&"get"in i&&null!==(r=i.get(t,e))?r:t[e]},propHooks:{tabIndex:{get:function(t){var e=ot.find.attr(t,"tabindex");return e?parseInt(e,10):ce.test(t.nodeName)||fe.test(t.nodeName)&&t.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),rt.optSelected||(ot.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),ot.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ot.propFix[this.toLowerCase()]=this});var he=/[\t\r\n\f]/g;ot.fn.extend({addClass:function(t){var e,n,r,i,o,a,u,s=0;if(ot.isFunction(t))return this.each(function(e){ot(this).addClass(t.call(this,e,I(this)))});if("string"==typeof t&&t)for(e=t.match(wt)||[];n=this[s++];)if(i=I(n),r=1===n.nodeType&&(" "+i+" ").replace(he," ")){for(a=0;o=e[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");u=ot.trim(r),i!==u&&n.setAttribute("class",u)}return this},removeClass:function(t){var e,n,r,i,o,a,u,s=0;if(ot.isFunction(t))return this.each(function(e){ot(this).removeClass(t.call(this,e,I(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof t&&t)for(e=t.match(wt)||[];n=this[s++];)if(i=I(n),r=1===n.nodeType&&(" "+i+" ").replace(he," ")){for(a=0;o=e[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");u=ot.trim(r),i!==u&&n.setAttribute("class",u)}return this},toggleClass:function(t,e){var n=typeof t;return"boolean"==typeof e&&"string"===n?e?this.addClass(t):this.removeClass(t):ot.isFunction(t)?this.each(function(n){ot(this).toggleClass(t.call(this,n,I(this),e),e)}):this.each(function(){var e,r,i,o;if("string"===n)for(r=0,i=ot(this),o=t.match(wt)||[];e=o[r++];)i.hasClass(e)?i.removeClass(e):i.addClass(e);else void 0!==t&&"boolean"!==n||(e=I(this),e&&Et.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||t===!1?"":Et.get(this,"__className__")||""))})},hasClass:function(t){var e,n,r=0;for(e=" "+t+" ";n=this[r++];)if(1===n.nodeType&&(" "+I(n)+" ").replace(he," ").indexOf(e)>-1)return!0;return!1}});var pe=/\r/g,de=/[\x20\t\r\n\f]+/g;ot.fn.extend({val:function(t){var e,n,r,i=this[0];{if(arguments.length)return r=ot.isFunction(t),this.each(function(n){var i;1===this.nodeType&&(i=r?t.call(this,n,ot(this).val()):t,null==i?i="":"number"==typeof i?i+="":ot.isArray(i)&&(i=ot.map(i,function(t){return null==t?"":t+""})),e=ot.valHooks[this.type]||ot.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,i,"value")||(this.value=i))});if(i)return e=ot.valHooks[i.type]||ot.valHooks[i.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(n=e.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(pe,""):null==n?"":n)}}}),ot.extend({valHooks:{option:{get:function(t){var e=ot.find.attr(t,"value");return null!=e?e:ot.trim(ot.text(t)).replace(de," ")}},select:{get:function(t){for(var e,n,r=t.options,i=t.selectedIndex,o="select-one"===t.type||i<0,a=o?null:[],u=o?i+1:r.length,s=i<0?u:o?i:0;s<u;s++)if(n=r[s],(n.selected||s===i)&&(rt.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!ot.nodeName(n.parentNode,"optgroup"))){if(e=ot(n).val(),o)return e;a.push(e)}return a},set:function(t,e){for(var n,r,i=t.options,o=ot.makeArray(e),a=i.length;a--;)r=i[a],(r.selected=ot.inArray(ot.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(t.selectedIndex=-1),o; +}}}}),ot.each(["radio","checkbox"],function(){ot.valHooks[this]={set:function(t,e){if(ot.isArray(e))return t.checked=ot.inArray(ot(t).val(),e)>-1}},rt.checkOn||(ot.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})});var ve=/^(?:focusinfocus|focusoutblur)$/;ot.extend(ot.event,{trigger:function(e,data,n,r){var i,o,a,u,s,l,c,f=[n||J],h=nt.call(e,"type")?e.type:e,p=nt.call(e,"namespace")?e.namespace.split("."):[];if(o=a=n=n||J,3!==n.nodeType&&8!==n.nodeType&&!ve.test(h+ot.event.triggered)&&(h.indexOf(".")>-1&&(p=h.split("."),h=p.shift(),p.sort()),s=h.indexOf(":")<0&&"on"+h,e=e[ot.expando]?e:new ot.Event(h,"object"==typeof e&&e),e.isTrigger=r?2:3,e.namespace=p.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),data=null==data?[e]:ot.makeArray(data,[e]),c=ot.event.special[h]||{},r||!c.trigger||c.trigger.apply(n,data)!==!1)){if(!r&&!c.noBubble&&!ot.isWindow(n)){for(u=c.delegateType||h,ve.test(u+h)||(o=o.parentNode);o;o=o.parentNode)f.push(o),a=o;a===(n.ownerDocument||J)&&f.push(a.defaultView||a.parentWindow||t)}for(i=0;(o=f[i++])&&!e.isPropagationStopped();)e.type=i>1?u:c.bindType||h,l=(Et.get(o,"events")||{})[e.type]&&Et.get(o,"handle"),l&&l.apply(o,data),l=s&&o[s],l&&l.apply&&kt(o)&&(e.result=l.apply(o,data),e.result===!1&&e.preventDefault());return e.type=h,r||e.isDefaultPrevented()||c._default&&c._default.apply(f.pop(),data)!==!1||!kt(n)||s&&ot.isFunction(n[h])&&!ot.isWindow(n)&&(a=n[s],a&&(n[s]=null),ot.event.triggered=h,n[h](),ot.event.triggered=void 0,a&&(n[s]=a)),e.result}},simulate:function(t,e,n){var r=ot.extend(new ot.Event,n,{type:t,isSimulated:!0});ot.event.trigger(r,null,e)}}),ot.fn.extend({trigger:function(t,data){return this.each(function(){ot.event.trigger(t,data,this)})},triggerHandler:function(t,data){var e=this[0];if(e)return ot.event.trigger(t,data,e,!0)}}),ot.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(t,e){ot.fn[e]=function(data,t){return arguments.length>0?this.on(e,null,data,t):this.trigger(e)}}),ot.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),rt.focusin="onfocusin"in t,rt.focusin||ot.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){ot.event.simulate(e,t.target,ot.event.fix(t))};ot.event.special[e]={setup:function(){var r=this.ownerDocument||this,i=Et.access(r,e);i||r.addEventListener(t,n,!0),Et.access(r,e,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=Et.access(r,e)-1;i?Et.access(r,e,i):(r.removeEventListener(t,n,!0),Et.remove(r,e))}}});var ge=t.location,ye=ot.now(),me=/\?/;ot.parseJSON=function(data){return JSON.parse(data+"")},ot.parseXML=function(data){var e;if(!data||"string"!=typeof data)return null;try{e=(new t.DOMParser).parseFromString(data,"text/xml")}catch(n){e=void 0}return e&&!e.getElementsByTagName("parsererror").length||ot.error("Invalid XML: "+data),e};var be=/#.*$/,xe=/([?&])_=[^&]*/,we=/^(.*?):[ \t]*([^\r\n]*)$/gm,_e=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Me=/^(?:GET|HEAD)$/,ke=/^\/\//,Ee={},je={},Ce="*/".concat("*"),Se=J.createElement("a");Se.href=ge.href,ot.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ge.href,type:"GET",isLocal:_e.test(ge.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ce,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":ot.parseJSON,"text xml":ot.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?B(B(t,ot.ajaxSettings),e):B(ot.ajaxSettings,t)},ajaxPrefilter:H(Ee),ajaxTransport:H(je),ajax:function(e,n){function r(e,n,r,u){var l,f,m,b,w,M=n;2!==x&&(x=2,s&&t.clearTimeout(s),i=void 0,a=u||"",_.readyState=e>0?4:0,l=e>=200&&e<300||304===e,r&&(b=V(h,_,r)),b=U(h,b,_,l),l?(h.ifModified&&(w=_.getResponseHeader("Last-Modified"),w&&(ot.lastModified[o]=w),w=_.getResponseHeader("etag"),w&&(ot.etag[o]=w)),204===e||"HEAD"===h.type?M="nocontent":304===e?M="notmodified":(M=b.state,f=b.data,m=b.error,l=!m)):(m=M,!e&&M||(M="error",e<0&&(e=0))),_.status=e,_.statusText=(n||M)+"",l?v.resolveWith(p,[f,M,_]):v.rejectWith(p,[_,M,m]),_.statusCode(y),y=void 0,c&&d.trigger(l?"ajaxSuccess":"ajaxError",[_,h,l?f:m]),g.fireWith(p,[_,M]),c&&(d.trigger("ajaxComplete",[_,h]),--ot.active||ot.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=void 0),n=n||{};var i,o,a,u,s,l,c,f,h=ot.ajaxSetup({},n),p=h.context||h,d=h.context&&(p.nodeType||p.jquery)?ot(p):ot.event,v=ot.Deferred(),g=ot.Callbacks("once memory"),y=h.statusCode||{},m={},b={},x=0,w="canceled",_={readyState:0,getResponseHeader:function(t){var e;if(2===x){if(!u)for(u={};e=we.exec(a);)u[e[1].toLowerCase()]=e[2];e=u[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(t,e){var n=t.toLowerCase();return x||(t=b[n]=b[n]||t,m[t]=e),this},overrideMimeType:function(t){return x||(h.mimeType=t),this},statusCode:function(t){var e;if(t)if(x<2)for(e in t)y[e]=[y[e],t[e]];else _.always(t[_.status]);return this},abort:function(t){var e=t||w;return i&&i.abort(e),r(0,e),this}};if(v.promise(_).complete=g.add,_.success=_.done,_.error=_.fail,h.url=((e||h.url||ge.href)+"").replace(be,"").replace(ke,ge.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=ot.trim(h.dataType||"*").toLowerCase().match(wt)||[""],null==h.crossDomain){l=J.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Se.protocol+"//"+Se.host!=l.protocol+"//"+l.host}catch(M){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=ot.param(h.data,h.traditional)),$(Ee,h,n,_),2===x)return _;c=ot.event&&h.global,c&&0===ot.active++&&ot.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Me.test(h.type),o=h.url,h.hasContent||(h.data&&(o=h.url+=(me.test(o)?"&":"?")+h.data,delete h.data),h.cache===!1&&(h.url=xe.test(o)?o.replace(xe,"$1_="+ye++):o+(me.test(o)?"&":"?")+"_="+ye++)),h.ifModified&&(ot.lastModified[o]&&_.setRequestHeader("If-Modified-Since",ot.lastModified[o]),ot.etag[o]&&_.setRequestHeader("If-None-Match",ot.etag[o])),(h.data&&h.hasContent&&h.contentType!==!1||n.contentType)&&_.setRequestHeader("Content-Type",h.contentType),_.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Ce+"; q=0.01":""):h.accepts["*"]);for(f in h.headers)_.setRequestHeader(f,h.headers[f]);if(h.beforeSend&&(h.beforeSend.call(p,_,h)===!1||2===x))return _.abort();w="abort";for(f in{success:1,error:1,complete:1})_[f](h[f]);if(i=$(je,h,n,_)){if(_.readyState=1,c&&d.trigger("ajaxSend",[_,h]),2===x)return _;h.async&&h.timeout>0&&(s=t.setTimeout(function(){_.abort("timeout")},h.timeout));try{x=1,i.send(m,r)}catch(M){if(!(x<2))throw M;r(-1,M)}}else r(-1,"No Transport");return _},getJSON:function(t,data,e){return ot.get(t,data,e,"json")},getScript:function(t,e){return ot.get(t,void 0,e,"script")}}),ot.each(["get","post"],function(t,e){ot[e]=function(t,data,n,r){return ot.isFunction(data)&&(r=r||n,n=data,data=void 0),ot.ajax(ot.extend({url:t,type:e,dataType:r,data:data,success:n},ot.isPlainObject(t)&&t))}}),ot._evalUrl=function(t){return ot.ajax({url:t,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},ot.fn.extend({wrapAll:function(t){var e;return ot.isFunction(t)?this.each(function(e){ot(this).wrapAll(t.call(this,e))}):(this[0]&&(e=ot(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this)},wrapInner:function(t){return ot.isFunction(t)?this.each(function(e){ot(this).wrapInner(t.call(this,e))}):this.each(function(){var e=ot(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=ot.isFunction(t);return this.each(function(n){ot(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(){return this.parent().each(function(){ot.nodeName(this,"body")||ot(this).replaceWith(this.childNodes)}).end()}}),ot.expr.filters.hidden=function(t){return!ot.expr.filters.visible(t)},ot.expr.filters.visible=function(t){return t.offsetWidth>0||t.offsetHeight>0||t.getClientRects().length>0};var Te=/%20/g,Ae=/\[\]$/,Ne=/\r?\n/g,Oe=/^(?:submit|button|image|reset|file)$/i,qe=/^(?:input|select|textarea|keygen)/i;ot.param=function(t,e){var n,r=[],i=function(t,e){e=ot.isFunction(e)?e():null==e?"":e,r[r.length]=encodeURIComponent(t)+"="+encodeURIComponent(e)};if(void 0===e&&(e=ot.ajaxSettings&&ot.ajaxSettings.traditional),ot.isArray(t)||t.jquery&&!ot.isPlainObject(t))ot.each(t,function(){i(this.name,this.value)});else for(n in t)W(n,t[n],e,i);return r.join("&").replace(Te,"+")},ot.fn.extend({serialize:function(){return ot.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=ot.prop(this,"elements");return t?ot.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!ot(this).is(":disabled")&&qe.test(this.nodeName)&&!Oe.test(t)&&(this.checked||!qt.test(t))}).map(function(t,e){var n=ot(this).val();return null==n?null:ot.isArray(n)?ot.map(n,function(t){return{name:e.name,value:t.replace(Ne,"\r\n")}}):{name:e.name,value:n.replace(Ne,"\r\n")}}).get()}}),ot.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch(e){}};var De={0:200,1223:204},Le=ot.ajaxSettings.xhr();rt.cors=!!Le&&"withCredentials"in Le,rt.ajax=Le=!!Le,ot.ajaxTransport(function(e){var n,r;if(rt.cors||Le&&!e.crossDomain)return{send:function(i,o){var a,u=e.xhr();if(u.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)u[a]=e.xhrFields[a];e.mimeType&&u.overrideMimeType&&u.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)u.setRequestHeader(a,i[a]);n=function(t){return function(){n&&(n=r=u.onload=u.onerror=u.onabort=u.onreadystatechange=null,"abort"===t?u.abort():"error"===t?"number"!=typeof u.status?o(0,"error"):o(u.status,u.statusText):o(De[u.status]||u.status,u.statusText,"text"!==(u.responseType||"text")||"string"!=typeof u.responseText?{binary:u.response}:{text:u.responseText},u.getAllResponseHeaders()))}},u.onload=n(),r=u.onerror=n("error"),void 0!==u.onabort?u.onabort=r:u.onreadystatechange=function(){4===u.readyState&&t.setTimeout(function(){n&&r()})},n=n("abort");try{u.send(e.hasContent&&e.data||null)}catch(s){if(n)throw s}},abort:function(){n&&n()}}}),ot.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return ot.globalEval(t),t}}}),ot.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),ot.ajaxTransport("script",function(t){if(t.crossDomain){var e,n;return{send:function(r,i){e=ot("<script>").prop({charset:t.scriptCharset,src:t.url}).on("load error",n=function(t){e.remove(),n=null,t&&i("error"===t.type?404:200,t.type)}),J.head.appendChild(e[0])},abort:function(){n&&n()}}}});var Fe=[],ze=/(=)\?(?=&|$)|\?\?/;ot.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Fe.pop()||ot.expando+"_"+ye++;return this[t]=!0,t}}),ot.ajaxPrefilter("json jsonp",function(e,n,r){var i,o,a,u=e.jsonp!==!1&&(ze.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&ze.test(e.data)&&"data");if(u||"jsonp"===e.dataTypes[0])return i=e.jsonpCallback=ot.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,u?e[u]=e[u].replace(ze,"$1"+i):e.jsonp!==!1&&(e.url+=(me.test(e.url)?"&":"?")+e.jsonp+"="+i),e.converters["script json"]=function(){return a||ot.error(i+" was not called"),a[0]},e.dataTypes[0]="json",o=t[i],t[i]=function(){a=arguments},r.always(function(){void 0===o?ot(t).removeProp(i):t[i]=o,e[i]&&(e.jsonpCallback=n.jsonpCallback,Fe.push(i)),a&&ot.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),ot.parseHTML=function(data,t,e){if(!data||"string"!=typeof data)return null;"boolean"==typeof t&&(e=t,t=!1),t=t||J;var n=dt.exec(data),r=!e&&[];return n?[t.createElement(n[1])]:(n=h([data],t,r),r&&r.length&&ot(r).remove(),ot.merge([],n.childNodes))};var Re=ot.fn.load;ot.fn.load=function(t,e,n){if("string"!=typeof t&&Re)return Re.apply(this,arguments);var r,i,o,a=this,u=t.indexOf(" ");return u>-1&&(r=ot.trim(t.slice(u)),t=t.slice(0,u)),ot.isFunction(e)?(n=e,e=void 0):e&&"object"==typeof e&&(i="POST"),a.length>0&&ot.ajax({url:t,type:i||"GET",dataType:"html",data:e}).done(function(t){o=arguments,a.html(r?ot("<div>").append(ot.parseHTML(t)).find(r):t)}).always(n&&function(t,e){a.each(function(){n.apply(this,o||[t.responseText,e,t])})}),this},ot.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){ot.fn[e]=function(t){return this.on(e,t)}}),ot.expr.filters.animated=function(t){return ot.grep(ot.timers,function(e){return t===e.elem}).length},ot.offset={setOffset:function(t,e,n){var r,i,o,a,u,s,l,c=ot.css(t,"position"),f=ot(t),h={};"static"===c&&(t.style.position="relative"),u=f.offset(),o=ot.css(t,"top"),s=ot.css(t,"left"),l=("absolute"===c||"fixed"===c)&&(o+s).indexOf("auto")>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(s)||0),ot.isFunction(e)&&(e=e.call(t,n,ot.extend({},u))),null!=e.top&&(h.top=e.top-u.top+a),null!=e.left&&(h.left=e.left-u.left+i),"using"in e?e.using.call(t,h):f.css(h)}},ot.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ot.offset.setOffset(this,t,e)});var e,n,r=this[0],i={top:0,left:0},o=r&&r.ownerDocument;if(o)return e=o.documentElement,ot.contains(e,r)?(i=r.getBoundingClientRect(),n=Y(o),{top:i.top+n.pageYOffset-e.clientTop,left:i.left+n.pageXOffset-e.clientLeft}):i},position:function(){if(this[0]){var t,e,n=this[0],r={top:0,left:0};return"fixed"===ot.css(n,"position")?e=n.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),ot.nodeName(t[0],"html")||(r=t.offset()),r.top+=ot.css(t[0],"borderTopWidth",!0),r.left+=ot.css(t[0],"borderLeftWidth",!0)),{top:e.top-r.top-ot.css(n,"marginTop",!0),left:e.left-r.left-ot.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent;t&&"static"===ot.css(t,"position");)t=t.offsetParent;return t||Kt})}}),ot.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,e){var n="pageYOffset"===e;ot.fn[t]=function(r){return Mt(this,function(t,r,i){var o=Y(t);return void 0===i?o?o[e]:t[r]:void(o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):t[r]=i)},t,r,arguments.length)}}),ot.each(["top","left"],function(t,e){ot.cssHooks[e]=C(rt.pixelPosition,function(t,n){if(n)return n=j(t,e),Jt.test(n)?ot(t).position()[e]+"px":n})}),ot.each({Height:"height",Width:"width"},function(t,e){ot.each({padding:"inner"+t,content:e,"":"outer"+t},function(n,r){ot.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Mt(this,function(e,n,r){var i;return ot.isWindow(e)?e.document.documentElement["client"+t]:9===e.nodeType?(i=e.documentElement,Math.max(e.body["scroll"+t],i["scroll"+t],e.body["offset"+t],i["offset"+t],i["client"+t])):void 0===r?ot.css(e,n,a):ot.style(e,n,r,a)},e,o?r:void 0,o,null)}})}),ot.fn.extend({bind:function(t,data,e){return this.on(t,null,data,e)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,data,n){return this.on(e,t,data,n)},undelegate:function(t,e,n){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",n)},size:function(){return this.length}}),ot.fn.andSelf=ot.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return ot});var Pe=t.jQuery,Ie=t.$;return ot.noConflict=function(e){return t.$===ot&&(t.$=Ie),e&&t.jQuery===ot&&(t.jQuery=Pe),ot},e||(t.jQuery=t.$=ot),ot})},{}],41:[function(t,e,n){function r(t){if(t=t||{},"object"!=typeof t)throw new TypeError("Options must be an object");var e=".";this.storage={},this.separator=t.separator||e}var i=Array.prototype.slice;r.prototype.add=function(t,e){var n=this.storage[t]||(this.storage[t]=[]);n.push(e)},r.prototype.remove=function(t){var e,n;for(e in this.storage)n=this.storage[e],n.some(function(e,r){if(e===t)return n.splice(r,1),!0})},r.prototype.get=function(t){var e,n=[];for(e in this.storage)t&&t!==e&&0!==e.indexOf(t+this.separator)||(n=n.concat(this.storage[e]));return n},r.prototype.getGrouped=function(t){var e,n={};for(e in this.storage)t&&t!==e&&0!==e.indexOf(t+this.separator)||(n[e]=i.call(this.storage[e]));return n},r.prototype.getAll=function(t){var e,n={};for(e in this.storage)t!==e&&0!==e.indexOf(t+this.separator)||(n[e]=i.call(this.storage[e]));return n},r.prototype.run=function(t,e){var n=i.call(arguments,2);this.get(t).forEach(function(t){t.apply(e||this,n)})},e.exports=r},{}],42:[function(t,e,n){function r(t,e){for(var n=-1,r=t.length;++n<r&&e(t[n],n,t)!==!1;);return t}e.exports=r},{}],43:[function(t,e,n){function r(t,e){for(var n=-1,r=t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}e.exports=r},{}],44:[function(t,e,n){function r(t,e){return null==e?t:i(e,o(e),t)}var i=t("lodash._basecopy"),o=t("lodash.keys");e.exports=r},{"lodash._basecopy":46,"lodash.keys":93}],45:[function(t,e,n){function r(t){return null==t?"":t+""}function i(t,e,n){var r=typeof t;return"function"==r?void 0===e?t:_(t,e,n):null==t?b:"object"==r?u(t):void 0===e?x(t):s(t,e)}function o(t,e,n){if(null!=t){void 0!==n&&n in v(t)&&(e=[n]);for(var r=0,i=e.length;null!=t&&r<i;)t=t[e[r++]];return r&&r==i?t:void 0}}function a(t,e,n){var r=e.length,i=r,o=!n;if(null==t)return!i;for(t=v(t);r--;){var data=e[r];if(o&&data[2]?data[1]!==t[data[0]]:!(data[0]in t))return!1}for(;++r<i;){data=e[r];var a=data[0],u=t[a],s=data[1];if(o&&data[2]){if(void 0===u&&!(a in t))return!1}else{var l=n?n(u,s,a):void 0;if(!(void 0===l?w(s,u,n,!0):l))return!1}}return!0}function u(t){var e=h(t);if(1==e.length&&e[0][2]){var n=e[0][0],r=e[0][1];return function(t){return null!=t&&(t[n]===r&&(void 0!==r||n in v(t)))}}return function(t){return a(t,e)}}function s(t,e){var n=M(t),r=p(t)&&d(e),i=t+"";return t=g(t),function(a){if(null==a)return!1;var u=i;if(a=v(a),(n||!r)&&!(u in a)){if(a=1==t.length?a:o(a,f(t,0,-1)),null==a)return!1;u=y(t),a=v(a)}return a[u]===e?void 0!==e||u in a:w(e,a[u],void 0,!0)}}function l(t){return function(e){return null==e?void 0:e[t]}}function c(t){var e=t+"";return t=g(t),function(n){return o(n,t,e)}}function f(t,e,n){var r=-1,i=t.length;e=null==e?0:+e||0,e<0&&(e=-e>i?0:i+e),n=void 0===n||n>i?i:+n||0,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=Array(i);++r<i;)o[r]=t[r+e];return o}function h(t){for(var e=k(t),n=e.length;n--;)e[n][2]=d(e[n][1]);return e}function p(t,e){var n=typeof t;if("string"==n&&j.test(t)||"number"==n)return!0;if(M(t))return!1;var r=!E.test(t);return r||null!=e&&t in v(e)}function d(t){return t===t&&!m(t)}function v(t){return m(t)?t:Object(t)}function g(t){if(M(t))return t;var e=[];return r(t).replace(C,function(t,n,r,i){e.push(r?i.replace(S,"$1"):n||t)}),e}function y(t){var e=t?t.length:0;return e?t[e-1]:void 0}function m(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function b(t){return t}function x(t){return p(t)?l(t):c(t)}var w=t("lodash._baseisequal"),_=t("lodash._bindcallback"),M=t("lodash.isarray"),k=t("lodash.pairs"),E=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,j=/^\w*$/,C=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,S=/\\(\\)?/g;e.exports=i},{"lodash._baseisequal":55,"lodash._bindcallback":59,"lodash.isarray":85,"lodash.pairs":98}],46:[function(t,e,n){function r(t,e,n){n||(n={});for(var r=-1,i=e.length;++r<i;){var o=e[r];n[o]=t[o]}return n}e.exports=r},{}],47:[function(t,e,n){function r(t,e){var n=t?t.length:0,r=[];if(!n)return r;var s=-1,l=i,c=!0,f=c&&e.length>=u?a(e):null,h=e.length;f&&(l=o,c=!1,e=f);t:for(;++s<n;){var p=t[s];if(c&&p===p){for(var d=h;d--;)if(e[d]===p)continue t;r.push(p)}else l(e,p,0)<0&&r.push(p)}return r}var i=t("lodash._baseindexof"),o=t("lodash._cacheindexof"),a=t("lodash._createcache"),u=200;e.exports=r},{"lodash._baseindexof":54,"lodash._cacheindexof":60,"lodash._createcache":62}],48:[function(t,e,n){function r(t,e){return p(t,e,c)}function i(t){return function(e){return null==e?void 0:e[t]}}function o(t,e){return function(n,r){var i=n?d(n):0;if(!u(i))return t(n,r);for(var o=e?i:-1,a=s(n);(e?o--:++o<i)&&r(a[o],o,a)!==!1;);return n}}function a(t){return function(e,n,r){for(var i=s(e),o=r(e),a=o.length,u=t?a:-1;t?u--:++u<a;){var l=o[u];if(n(i[l],l,i)===!1)break}return e}}function u(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=f}function s(t){return l(t)?t:Object(t)}function l(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var c=t("lodash.keys"),f=9007199254740991,h=o(r),p=a(),d=i("length");e.exports=h},{"lodash.keys":93}],49:[function(t,e,n){function r(t,e,n,r){var i;return n(t,function(t,n,o){if(e(t,n,o))return i=r?n:t,!1}),i}e.exports=r},{}],50:[function(t,e,n){function r(t,e,n){for(var r=t.length,i=n?r:-1;n?i--:++i<r;)if(e(t[i],i,t))return i;return-1}e.exports=r},{}],51:[function(t,e,n){function r(t){return!!t&&"object"==typeof t}function i(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function o(t,e,n,a){a||(a=[]);for(var s=-1,f=t.length;++s<f;){var h=t[s];r(h)&&u(h)&&(n||c(h)||l(h))?e?o(h,e,n,a):i(a,h):n||(a[a.length]=h)}return a}function a(t){return function(e){return null==e?void 0:e[t]}}function u(t){return null!=t&&s(h(t))}function s(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=f}var l=t("lodash.isarguments"),c=t("lodash.isarray"),f=9007199254740991,h=a("length");e.exports=o},{"lodash.isarguments":84,"lodash.isarray":85}],52:[function(t,e,n){function r(t){return function(e,n,r){for(var i=-1,o=Object(e),a=r(e),u=a.length;u--;){var s=a[t?u:++i];if(n(o[s],s,o)===!1)break}return e}}var i=r();e.exports=i},{}],53:[function(t,e,n){function r(t,e,n){if(null!=t){void 0!==n&&n in i(t)&&(e=[n]);for(var r=0,o=e.length;null!=t&&r<o;)t=t[e[r++]];return r&&r==o?t:void 0}}function i(t){return o(t)?t:Object(t)}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}e.exports=r},{}],54:[function(t,e,n){function r(t,e,n){if(e!==e)return i(t,n);for(var r=n-1,o=t.length;++r<o;)if(t[r]===e)return r;return-1}function i(t,e,n){for(var r=t.length,i=e+(n?0:-1);n?i--:++i<r;){var o=t[i];if(o!==o)return i}return-1}e.exports=r},{}],55:[function(t,e,n){function r(t){return!!t&&"object"==typeof t}function i(t,e){for(var n=-1,r=t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function o(t,e,n,i,u,s){return t===e||(null==t||null==e||!c(t)&&!r(e)?t!==t&&e!==e:a(t,e,o,n,i,u,s))}function a(t,e,n,r,i,o,a){var c=f(t),p=f(e),g=v,y=v;c||(g=E.call(t),g==d?g=x:g!=x&&(c=h(t))),p||(y=E.call(e),y==d?y=x:y!=x&&(p=h(e)));var m=g==x,b=y==x,w=g==y;if(w&&!c&&!m)return s(t,e,g);if(!i){var _=m&&k.call(t,"__wrapped__"),M=b&&k.call(e,"__wrapped__");if(_||M)return n(_?t.value():t,M?e.value():e,r,i,o,a)}if(!w)return!1;o||(o=[]),a||(a=[]);for(var j=o.length;j--;)if(o[j]==t)return a[j]==e;o.push(t),a.push(e);var C=(c?u:l)(t,e,n,r,i,o,a);return o.pop(),a.pop(),C}function u(t,e,n,r,o,a,u){var s=-1,l=t.length,c=e.length;if(l!=c&&!(o&&c>l))return!1;for(;++s<l;){var f=t[s],h=e[s],p=r?r(o?h:f,o?f:h,s):void 0;if(void 0!==p){if(p)continue;return!1}if(o){if(!i(e,function(t){return f===t||n(f,t,r,o,a,u)}))return!1}else if(f!==h&&!n(f,h,r,o,a,u))return!1}return!0}function s(t,e,n){switch(n){case g:case y:return+t==+e;case m:return t.name==e.name&&t.message==e.message;case b:return t!=+t?e!=+e:t==+e;case w:case _:return t==e+""}return!1}function l(t,e,n,r,i,o,a){var u=p(t),s=u.length,l=p(e),c=l.length;if(s!=c&&!i)return!1;for(var f=s;f--;){var h=u[f];if(!(i?h in e:k.call(e,h)))return!1}for(var d=i;++f<s;){h=u[f];var v=t[h],g=e[h],y=r?r(i?g:v,i?v:g,h):void 0;if(!(void 0===y?n(v,g,r,i,o,a):y))return!1;d||(d="constructor"==h)}if(!d){var m=t.constructor,b=e.constructor;if(m!=b&&"constructor"in t&&"constructor"in e&&!("function"==typeof m&&m instanceof m&&"function"==typeof b&&b instanceof b))return!1}return!0}function c(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var f=t("lodash.isarray"),h=t("lodash.istypedarray"),p=t("lodash.keys"),d="[object Arguments]",v="[object Array]",g="[object Boolean]",y="[object Date]",m="[object Error]",b="[object Number]",x="[object Object]",w="[object RegExp]",_="[object String]",M=Object.prototype,k=M.hasOwnProperty,E=M.toString;e.exports=o},{"lodash.isarray":85,"lodash.istypedarray":92,"lodash.keys":93}],56:[function(t,e,n){function r(t,e,n){var r=-1,i=t.length;e=null==e?0:+e||0,e<0&&(e=-e>i?0:i+e),n=void 0===n||n>i?i:+n||0,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=Array(i);++r<i;)o[r]=t[r+e];return o}e.exports=r},{}],57:[function(t,e,n){function r(t,e){var n=-1,r=i,s=t.length,l=!0,c=l&&s>=u,f=c?a():null,h=[];f?(r=o,l=!1):(c=!1,f=e?[]:h);t:for(;++n<s;){var p=t[n],d=e?e(p,n,t):p;if(l&&p===p){for(var v=f.length;v--;)if(f[v]===d)continue t;e&&f.push(d),h.push(p)}else r(f,d,0)<0&&((e||c)&&f.push(d),h.push(p))}return h}var i=t("lodash._baseindexof"),o=t("lodash._cacheindexof"),a=t("lodash._createcache"),u=200;e.exports=r},{"lodash._baseindexof":54,"lodash._cacheindexof":60,"lodash._createcache":62}],58:[function(t,e,n){function r(t,e){for(var n=-1,r=e.length,i=Array(r);++n<r;)i[n]=t[e[n]];return i}e.exports=r},{}],59:[function(t,e,n){function r(t,e,n){if("function"!=typeof t)return i;if(void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 3:return function(n,r,i){return t.call(e,n,r,i)};case 4:return function(n,r,i,o){return t.call(e,n,r,i,o)};case 5:return function(n,r,i,o,a){return t.call(e,n,r,i,o,a)}}return function(){return t.apply(e,arguments)}}function i(t){return t}e.exports=r},{}],60:[function(t,e,n){function r(t,e){var data=t.data,n="string"==typeof e||i(e)?data.set.has(e):data.hash[e];return n?0:-1}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}e.exports=r},{}],61:[function(t,e,n){function r(t){return a(function(e,n){var r=-1,a=null==e?0:n.length,u=a>2?n[a-2]:void 0,s=a>2?n[2]:void 0,l=a>1?n[a-1]:void 0;for("function"==typeof u?(u=i(u,l,5),a-=2):(u="function"==typeof l?l:void 0,a-=u?1:0),s&&o(n[0],n[1],s)&&(u=a<3?void 0:u,a=1);++r<a;){var c=n[r];c&&t(e,c,u)}return e})}var i=t("lodash._bindcallback"),o=t("lodash._isiterateecall"),a=t("lodash.restparam");e.exports=r},{"lodash._bindcallback":59,"lodash._isiterateecall":66,"lodash.restparam":101}],62:[function(t,e,n){(function(n){function r(t){var e=t?t.length:0;for(this.data={hash:l(null),set:new s};e--;)this.push(t[e])}function i(t){var data=this.data;"string"==typeof t||a(t)?data.set.add(t):data.hash[t]=!0}function o(t){return l&&s?new r(t):null}function a(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var u=t("lodash._getnative"),s=u(n,"Set"),l=u(Object,"create");r.prototype.push=i,e.exports=o}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"lodash._getnative":64}],63:[function(t,e,n){function r(t,e,n){var r=n.length;switch(r){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function i(t,e){return t="number"==typeof t||B.test(t)?+t:-1,e=null==e?q:e,t>-1&&t%1==0&&t<e}function o(t,e){for(var n=-1,r=t.length,i=-1,o=[];++n<r;)t[n]===e&&(t[n]=F,o[++i]=n);return o}function a(t,e,n){for(var r=n.length,i=-1,o=Y(t.length-r,0),a=-1,u=e.length,s=Array(u+o);++a<u;)s[a]=e[a];for(;++i<r;)s[n[i]]=t[i];for(;o--;)s[a++]=t[i++];return s}function u(t,e,n){for(var r=-1,i=n.length,o=-1,a=Y(t.length-i,0),u=-1,s=e.length,l=Array(a+s);++o<a;)l[o]=t[o];for(var c=o;++u<s;)l[c+u]=e[u];for(;++r<i;)l[c+n[r]]=t[o++];return l}function s(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}function l(t,e,n){function r(){var e=this&&this!==w&&this instanceof r?o:t;return e.apply(i?n:this,arguments)}var i=e&_,o=c(t);return r}function c(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=J(t.prototype),r=t.apply(n,e);return m(r)?r:n}}function f(t,e,n){function i(){for(var u=arguments.length,s=u,l=Array(u),c=this&&this!==w&&this instanceof i?a:t,f=i.placeholder;s--;)l[s]=arguments[s];var p=u<3&&l[0]!==f&&l[u-1]!==f?[]:o(l,f);return u-=p.length,u<n?d(t,e,h,f,void 0,l,p,void 0,void 0,n-u):r(c,this,l)}var a=c(t);return i}function h(t,e,n,r,i,s,l,f,p,v){function y(){for(var _=arguments.length,M=_,E=Array(_);M--;)E[M]=arguments[M];if(r&&(E=a(E,r,i)),s&&(E=u(E,s,l)),k||C){var j=y.placeholder,T=o(E,j);if(_-=T.length,_<v)return d(t,e,h,j,n,E,T,f,p,v-_)}var A=b?n:this,O=x?A[t]:t;return f?E=g(E,f):S&&E.length>1&&E.reverse(),m&&p<E.length&&(E.length=p),this&&this!==w&&this instanceof y&&(O=N||c(O)),O.apply(A,E)}var m=e&T,b=e&_,x=e&M,k=e&E,C=e&j,S=e&A,N=x?void 0:c(t);return y}function p(t,e,n,i){function o(){for(var e=-1,s=arguments.length,l=-1,c=i.length,f=Array(c+s),h=this&&this!==w&&this instanceof o?u:t;++l<c;)f[l]=i[l];for(;s--;)f[l++]=arguments[++e];return r(h,a?n:this,f)}var a=e&_,u=c(t);return o}function d(t,e,n,r,i,o,a,u,l,c){var f=e&E,h=u?s(u):void 0,p=f?a:void 0,d=f?void 0:a,v=f?o:void 0,g=f?void 0:o;e|=f?C:S,e&=~(f?S:C),e&k||(e&=~(_|M));var y=n(t,e,i,v,p,g,d,h,l,c);return y.placeholder=r,y}function v(t,e,n,r,i,o,a,u){var s=e&M;if(!s&&"function"!=typeof t)throw new TypeError(N);var c=r?r.length:0;if(c||(e&=~(C|S),r=i=void 0),a=void 0===a?a:Y(b(a),0),u=void 0===u?u:b(u),c-=i?i.length:0,e&S){var d=r,v=i;r=i=void 0}var g=[t,e,n,r,i,d,v,o,a,u];if(t=g[0],e=g[1],n=g[2],r=g[3],i=g[4],u=g[9]=null==g[9]?s?0:t.length:Y(g[9]-c,0),!u&&e&(E|j)&&(e&=~(E|j)),e&&e!=_)y=e==E||e==j?f(t,e,u):e!=C&&e!=(_|C)||i.length?h.apply(void 0,g):p(t,e,n,r);else var y=l(t,e,n);return y}function g(t,e){for(var n=t.length,r=X(e.length,n),o=s(t);r--;){var a=e[r];t[r]=i(a,n)?o[a]:void 0}return t}function y(t){var e=m(t)?W.call(t):"";return e==z||e==R}function m(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function b(t){if(!t)return 0===t?t:0;if(t=x(t),t===O||t===-O){var e=t<0?-1:1;return e*D}var n=t%1;return t===t?n?t-n:t:0}function x(t){if(m(t)){var e=y(t.valueOf)?t.valueOf():t;t=m(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(P,"");var n=H.test(t);return n||$.test(t)?V(t.slice(2),n?2:8):I.test(t)?L:+t}var w=t("lodash._root"),_=1,M=2,k=4,E=8,j=16,C=32,S=64,T=128,A=512,N="Expected a function",O=1/0,q=9007199254740991,D=1.7976931348623157e308,L=NaN,F="__lodash_placeholder__",z="[object Function]",R="[object GeneratorFunction]",P=/^\s+|\s+$/g,I=/^[-+]0x[0-9a-f]+$/i,H=/^0b[01]+$/i,$=/^0o[0-7]+$/i,B=/^(?:0|[1-9]\d*)$/,V=parseInt,U=Object.prototype,W=U.toString,Y=Math.max,X=Math.min,J=function(){function t(){}return function(e){if(m(e)){t.prototype=e;var n=new t;t.prototype=void 0}return n||{}}}();e.exports=v},{"lodash._root":70}],64:[function(t,e,n){function r(t){return!!t&&"object"==typeof t}function i(t,e){var n=null==t?void 0:t[e];return u(n)?n:void 0}function o(t){return a(t)&&p.call(t)==s}function a(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t){return null!=t&&(o(t)?d.test(f.call(t)):r(t)&&l.test(t))}var s="[object Function]",l=/^\[object .+?Constructor\]$/,c=Object.prototype,f=Function.prototype.toString,h=c.hasOwnProperty,p=c.toString,d=RegExp("^"+f.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"); +e.exports=i},{}],65:[function(t,e,n){function r(t,e,n){null==t||i(e,t)||(e=c(e),t=1==e.length?t:s(t,l(e,0,-1)),e=a(e));var r=null==t?t:t[e];return null==r?void 0:r.apply(t,n)}function i(t,e){var n=typeof t;if("string"==n&&p.test(t)||"number"==n)return!0;if(f(t))return!1;var r=!h.test(t);return r||null!=e&&t in o(e)}function o(t){return u(t)?t:Object(t)}function a(t){var e=t?t.length:0;return e?t[e-1]:void 0}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var s=t("lodash._baseget"),l=t("lodash._baseslice"),c=t("lodash._topath"),f=t("lodash.isarray"),h=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,p=/^\w*$/;e.exports=r},{"lodash._baseget":53,"lodash._baseslice":56,"lodash._topath":71,"lodash.isarray":85}],66:[function(t,e,n){function r(t){return function(e){return null==e?void 0:e[t]}}function i(t){return null!=t&&u(f(t))}function o(t,e){return t="number"==typeof t||l.test(t)?+t:-1,e=null==e?c:e,t>-1&&t%1==0&&t<e}function a(t,e,n){if(!s(n))return!1;var r=typeof e;if("number"==r?i(n)&&o(e,n.length):"string"==r&&e in n){var a=n[e];return t===t?t===a:a!==a}return!1}function u(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=c}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var l=/^\d+$/,c=9007199254740991,f=r("length");e.exports=a},{}],67:[function(t,e,n){function r(t,e){t=i(t);for(var n=-1,r=e.length,o={};++n<r;){var a=e[n];a in t&&(o[a]=t[a])}return o}function i(t){return o(t)?t:Object(t)}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}e.exports=r},{}],68:[function(t,e,n){function r(t,e){return o(t,e,a)}function i(t,e){var n={};return r(t,function(t,r,i){e(t,r,i)&&(n[r]=t)}),n}var o=t("lodash._basefor"),a=t("lodash.keysin");e.exports=i},{"lodash._basefor":52,"lodash.keysin":94}],69:[function(t,e,n){function r(t,e){for(var n=-1,r=t.length,o=-1,a=[];++n<r;)t[n]===e&&(t[n]=i,a[++o]=n);return a}var i="__lodash_placeholder__";e.exports=r},{}],70:[function(t,e,n){(function(t){function r(t){return t&&t.Object===Object?t:null}var i={"function":!0,object:!0},o=i[typeof n]&&n&&!n.nodeType?n:void 0,a=i[typeof e]&&e&&!e.nodeType?e:void 0,u=r(o&&a&&"object"==typeof t&&t),s=r(i[typeof self]&&self),l=r(i[typeof window]&&window),c=r(i[typeof this]&&this),f=u||l!==(c&&c.window)&&l||s||c||Function("return this")();e.exports=f}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],71:[function(t,e,n){function r(t){return null==t?"":t+""}function i(t){if(o(t))return t;var e=[];return r(t).replace(a,function(t,n,r,i){e.push(r?i.replace(u,"$1"):n||t)}),e}var o=t("lodash.isarray"),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,u=/\\(\\)?/g;e.exports=i},{"lodash.isarray":85}],72:[function(t,e,n){function r(t,e,n){for(var r=-1,i=a(e),o=i.length;++r<o;){var u=i[r],s=t[u],l=n(s,e[u],u,t,e);(l===l?l===s:s!==s)&&(void 0!==s||u in t)||(t[u]=l)}return t}var i=t("lodash._baseassign"),o=t("lodash._createassigner"),a=t("lodash.keys"),u=o(function(t,e,n){return n?r(t,e,n):i(t,e)});e.exports=u},{"lodash._baseassign":44,"lodash._createassigner":61,"lodash.keys":93}],73:[function(t,e,n){function r(t,e){var n;if("function"!=typeof e){if("function"!=typeof t)throw new TypeError(i);var r=t;t=e,e=r}return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=void 0),n}}var i="Expected a function";e.exports=r},{}],74:[function(t,e,n){var r=t("lodash._createwrapper"),i=t("lodash._replaceholders"),o=t("lodash.restparam"),a=1,u=32,s=o(function(t,e,n){var o=a;if(n.length){var l=i(n,s.placeholder);o|=u}return r(t,o,e,n,l)});s.placeholder={},e.exports=s},{"lodash._createwrapper":63,"lodash._replaceholders":69,"lodash.restparam":101}],75:[function(t,e,n){function r(t){return!!t&&"object"==typeof t}function i(t){return function(e){return null==e?void 0:e[t]}}function o(t){return null!=t&&a(f(t))}function a(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=c}var u=t("lodash._basedifference"),s=t("lodash._baseflatten"),l=t("lodash.restparam"),c=9007199254740991,f=i("length"),h=l(function(t,e){return r(t)&&o(t)?u(t,s(e,!1,!0)):[]});e.exports=h},{"lodash._basedifference":47,"lodash._baseflatten":51,"lodash.restparam":101}],76:[function(t,e,n){function r(t){return p[t]}function i(t){return!!t&&"object"==typeof t}function o(t){return"symbol"==typeof t||i(t)&&v.call(t)==c}function a(t){if("string"==typeof t)return t;if(null==t)return"";if(o(t))return g?m.call(t):"";var e=t+"";return"0"==e&&1/t==-l?"-0":e}function u(t){return t=a(t),t&&h.test(t)?t.replace(f,r):t}var s=t("lodash._root"),l=1/0,c="[object Symbol]",f=/[&<>"'`]/g,h=RegExp(f.source),p={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},d=Object.prototype,v=d.toString,g=s.Symbol,y=g?g.prototype:void 0,m=g?y.toString:void 0;e.exports=u},{"lodash._root":70}],77:[function(t,e,n){function r(t,e){return function(n,r,o){if(r=i(r,o,3),s(n)){var l=u(n,r,e);return l>-1?n[l]:void 0}return a(n,r,t)}}var i=t("lodash._basecallback"),o=t("lodash._baseeach"),a=t("lodash._basefind"),u=t("lodash._basefindindex"),s=t("lodash.isarray"),l=r(o);e.exports=l},{"lodash._basecallback":45,"lodash._baseeach":48,"lodash._basefind":49,"lodash._basefindindex":50,"lodash.isarray":85}],78:[function(t,e,n){function r(t,e,n){var r=t?t.length:0;return n&&o(t,e,n)&&(e=!1),r?i(t,e):[]}var i=t("lodash._baseflatten"),o=t("lodash._isiterateecall");e.exports=r},{"lodash._baseflatten":51,"lodash._isiterateecall":66}],79:[function(t,e,n){function r(t,e){return function(n,r,i){return"function"==typeof r&&void 0===i&&u(n)?t(n,r):e(n,a(r,i,3))}}var i=t("lodash._arrayeach"),o=t("lodash._baseeach"),a=t("lodash._bindcallback"),u=t("lodash.isarray"),s=r(i,o);e.exports=s},{"lodash._arrayeach":42,"lodash._baseeach":48,"lodash._bindcallback":59,"lodash.isarray":85}],80:[function(t,e,n){function r(t,e){return o(t,e,u)}function i(t){return function(e,n,r){return"function"==typeof n&&void 0===r||(n=a(n,r,3)),t(e,n)}}var o=t("lodash._basefor"),a=t("lodash._bindcallback"),u=t("lodash.keys"),s=i(r);e.exports=s},{"lodash._basefor":52,"lodash._bindcallback":59,"lodash.keys":93}],81:[function(t,e,n){function r(t,e){return t="number"==typeof t||y.test(t)?+t:-1,e=null==e?x:e,t>-1&&t%1==0&&t<e}function i(t,e){var n=typeof t;if("string"==n&&g.test(t)||"number"==n)return!0;if(d(t))return!1;var r=!v.test(t);return r||null!=e&&t in a(e)}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=x}function a(t){return s(t)?t:Object(t)}function u(t){var e=t?t.length:0;return e?t[e-1]:void 0}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function l(t,e){if(null==t)return!1;var n=b.call(t,e);if(!n&&!i(e)){if(e=h(e),t=1==e.length?t:c(t,f(e,0,-1)),null==t)return!1;e=u(e),n=b.call(t,e)}return n||o(t.length)&&r(e,t.length)&&(d(t)||p(t))}var c=t("lodash._baseget"),f=t("lodash._baseslice"),h=t("lodash._topath"),p=t("lodash.isarguments"),d=t("lodash.isarray"),v=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,g=/^\w*$/,y=/^\d+$/,m=Object.prototype,b=m.hasOwnProperty,x=9007199254740991;e.exports=l},{"lodash._baseget":53,"lodash._baseslice":56,"lodash._topath":71,"lodash.isarguments":84,"lodash.isarray":85}],82:[function(t,e,n){function r(t){return function(e){return null==e?void 0:e[t]}}function i(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=d}function o(t,e,n,r){var o=t?v(t):0;return i(o)||(t=a(t),o=t.length),n="number"!=typeof n||r&&l(e,n,r)?0:n<0?p(o+n,0):n||0,"string"==typeof t||!c(t)&&f(t)?n<=o&&t.indexOf(e,n)>-1:!!o&&u(t,e,n)>-1}function a(t){return s(t,h(t))}var u=t("lodash._baseindexof"),s=t("lodash._basevalues"),l=t("lodash._isiterateecall"),c=t("lodash.isarray"),f=t("lodash.isstring"),h=t("lodash.keys"),p=Math.max,d=9007199254740991,v=r("length");e.exports=o},{"lodash._baseindexof":54,"lodash._basevalues":58,"lodash._isiterateecall":66,"lodash.isarray":85,"lodash.isstring":91,"lodash.keys":93}],83:[function(t,e,n){function r(t){return function(e){return null==e?void 0:e[t]}}function i(t){return null!=t&&a(g(t))}function o(t,e){var n=typeof t;if("string"==n&&d.test(t)||"number"==n)return!0;if(f(t))return!1;var r=!p.test(t);return r||null!=e&&t in u(e)}function a(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=v}function u(t){return s(t)?t:Object(t)}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var l=t("lodash._baseeach"),c=t("lodash._invokepath"),f=t("lodash.isarray"),h=t("lodash.restparam"),p=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,d=/^\w*$/,v=9007199254740991,g=r("length"),y=h(function(t,e,n){var r=-1,a="function"==typeof e,u=o(e),s=i(t)?Array(t.length):[];return l(t,function(t){var i=a?e:u&&null!=t?t[e]:void 0;s[++r]=i?i.apply(t,n):c(t,e,n)}),s});e.exports=y},{"lodash._baseeach":48,"lodash._invokepath":65,"lodash.isarray":85,"lodash.restparam":101}],84:[function(t,e,n){function r(t){return o(t)&&v.call(t,"callee")&&(!y.call(t,"callee")||g.call(t)==f)}function i(t){return null!=t&&u(t.length)&&!a(t)}function o(t){return l(t)&&i(t)}function a(t){var e=s(t)?g.call(t):"";return e==h||e==p}function u(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=c}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function l(t){return!!t&&"object"==typeof t}var c=9007199254740991,f="[object Arguments]",h="[object Function]",p="[object GeneratorFunction]",d=Object.prototype,v=d.hasOwnProperty,g=d.toString,y=d.propertyIsEnumerable;e.exports=r},{}],85:[function(t,e,n){function r(t){return!!t&&"object"==typeof t}function i(t,e){var n=null==t?void 0:t[e];return s(n)?n:void 0}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=m}function a(t){return u(t)&&v.call(t)==c}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function s(t){return null!=t&&(a(t)?g.test(p.call(t)):r(t)&&f.test(t))}var l="[object Array]",c="[object Function]",f=/^\[object .+?Constructor\]$/,h=Object.prototype,p=Function.prototype.toString,d=h.hasOwnProperty,v=h.toString,g=RegExp("^"+p.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),y=i(Array,"isArray"),m=9007199254740991,b=y||function(t){return r(t)&&o(t.length)&&v.call(t)==l};e.exports=b},{}],86:[function(t,e,n){function r(t){return i(t)&&u.call(t)==o}function i(t){return!!t&&"object"==typeof t}var o="[object Date]",a=Object.prototype,u=a.toString;e.exports=r},{}],87:[function(t,e,n){function r(t){return!!t&&"object"==typeof t}function i(t){return function(e){return null==e?void 0:e[t]}}function o(t){return null!=t&&a(d(t))}function a(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=p}function u(t){return null==t||(o(t)&&(l(t)||f(t)||s(t)||r(t)&&c(t.splice))?!t.length:!h(t).length)}var s=t("lodash.isarguments"),l=t("lodash.isarray"),c=t("lodash.isfunction"),f=t("lodash.isstring"),h=t("lodash.keys"),p=9007199254740991,d=i("length");e.exports=u},{"lodash.isarguments":84,"lodash.isarray":85,"lodash.isfunction":89,"lodash.isstring":91,"lodash.keys":93}],88:[function(t,e,n){function r(t,e,n,r){n="function"==typeof n?o(n,r,3):void 0;var a=n?n(t,e):void 0;return void 0===a?i(t,e,n):!!a}var i=t("lodash._baseisequal"),o=t("lodash._bindcallback");e.exports=r},{"lodash._baseisequal":55,"lodash._bindcallback":59}],89:[function(t,e,n){function r(t){var e=i(t)?s.call(t):"";return e==o||e==a}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o="[object Function]",a="[object GeneratorFunction]",u=Object.prototype,s=u.toString;e.exports=r},{}],90:[function(t,e,n){function r(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}e.exports=r},{}],91:[function(t,e,n){function r(t){return!!t&&"object"==typeof t}function i(t){return"string"==typeof t||r(t)&&u.call(t)==o}var o="[object String]",a=Object.prototype,u=a.toString;e.exports=i},{}],92:[function(t,e,n){function r(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=a}function i(t){return!!t&&"object"==typeof t}function o(t){return i(t)&&r(t.length)&&!!N[q.call(t)]}var a=9007199254740991,u="[object Arguments]",s="[object Array]",l="[object Boolean]",c="[object Date]",f="[object Error]",h="[object Function]",p="[object Map]",d="[object Number]",v="[object Object]",g="[object RegExp]",y="[object Set]",m="[object String]",b="[object WeakMap]",x="[object ArrayBuffer]",w="[object DataView]",_="[object Float32Array]",M="[object Float64Array]",k="[object Int8Array]",E="[object Int16Array]",j="[object Int32Array]",C="[object Uint8Array]",S="[object Uint8ClampedArray]",T="[object Uint16Array]",A="[object Uint32Array]",N={};N[_]=N[M]=N[k]=N[E]=N[j]=N[C]=N[S]=N[T]=N[A]=!0,N[u]=N[s]=N[x]=N[l]=N[w]=N[c]=N[f]=N[h]=N[p]=N[d]=N[v]=N[g]=N[y]=N[m]=N[b]=!1;var O=Object.prototype,q=O.toString;e.exports=o},{}],93:[function(t,e,n){function r(t){return function(e){return null==e?void 0:e[t]}}function i(t){return null!=t&&a(m(t))}function o(t,e){return t="number"==typeof t||p.test(t)?+t:-1,e=null==e?y:e,t>-1&&t%1==0&&t<e}function a(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=y}function u(t){for(var e=l(t),n=e.length,r=n&&t.length,i=!!r&&a(r)&&(h(t)||f(t)),u=-1,s=[];++u<n;){var c=e[u];(i&&o(c,r)||v.call(t,c))&&s.push(c)}return s}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function l(t){if(null==t)return[];s(t)||(t=Object(t));var e=t.length;e=e&&a(e)&&(h(t)||f(t))&&e||0;for(var n=t.constructor,r=-1,i="function"==typeof n&&n.prototype===t,u=Array(e),l=e>0;++r<e;)u[r]=r+"";for(var c in t)l&&o(c,e)||"constructor"==c&&(i||!v.call(t,c))||u.push(c);return u}var c=t("lodash._getnative"),f=t("lodash.isarguments"),h=t("lodash.isarray"),p=/^\d+$/,d=Object.prototype,v=d.hasOwnProperty,g=c(Object,"keys"),y=9007199254740991,m=r("length"),b=g?function(t){var e=null==t?void 0:t.constructor;return"function"==typeof e&&e.prototype===t||"function"!=typeof t&&i(t)?u(t):s(t)?g(t):[]}:u;e.exports=b},{"lodash._getnative":64,"lodash.isarguments":84,"lodash.isarray":85}],94:[function(t,e,n){function r(t,e){return t="number"==typeof t||l.test(t)?+t:-1,e=null==e?h:e,t>-1&&t%1==0&&t<e}function i(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=h}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function a(t){if(null==t)return[];o(t)||(t=Object(t));var e=t.length;e=e&&i(e)&&(s(t)||u(t))&&e||0;for(var n=t.constructor,a=-1,l="function"==typeof n&&n.prototype===t,c=Array(e),h=e>0;++a<e;)c[a]=a+"";for(var p in t)h&&r(p,e)||"constructor"==p&&(l||!f.call(t,p))||c.push(p);return c}var u=t("lodash.isarguments"),s=t("lodash.isarray"),l=/^\d+$/,c=Object.prototype,f=c.hasOwnProperty,h=9007199254740991;e.exports=a},{"lodash.isarguments":84,"lodash.isarray":85}],95:[function(t,e,n){function r(t){var e=t?t.length:0;return e?t[e-1]:void 0}e.exports=r},{}],96:[function(t,e,n){var r=t("lodash._arraymap"),i=t("lodash._basedifference"),o=t("lodash._baseflatten"),a=t("lodash._bindcallback"),u=t("lodash._pickbyarray"),s=t("lodash._pickbycallback"),l=t("lodash.keysin"),c=t("lodash.restparam"),f=c(function(t,e){if(null==t)return{};if("function"!=typeof e[0]){var e=r(o(e),String);return u(t,i(l(t),e))}var n=a(e[0],e[1],3);return s(t,function(t,e,r){return!n(t,e,r)})});e.exports=f},{"lodash._arraymap":43,"lodash._basedifference":47,"lodash._baseflatten":51,"lodash._bindcallback":59,"lodash._pickbyarray":67,"lodash._pickbycallback":68,"lodash.keysin":94,"lodash.restparam":101}],97:[function(t,e,n){function r(t){return i(2,t)}var i=t("lodash.before");e.exports=r},{"lodash.before":73}],98:[function(t,e,n){function r(t){return i(t)?t:Object(t)}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){t=r(t);for(var e=-1,n=a(t),i=n.length,o=Array(i);++e<i;){var u=n[e];o[e]=[u,t[u]]}return o}var a=t("lodash.keys");e.exports=o},{"lodash.keys":93}],99:[function(t,e,n){function r(t){var e=a(function(n,r){var a=o(r,e.placeholder);return i(n,t,void 0,r,a)});return e}var i=t("lodash._createwrapper"),o=t("lodash._replaceholders"),a=t("lodash.restparam"),u=32,s=r(u);s.placeholder={},e.exports=s},{"lodash._createwrapper":63,"lodash._replaceholders":69,"lodash.restparam":101}],100:[function(t,e,n){var r=t("lodash._baseflatten"),i=t("lodash._bindcallback"),o=t("lodash._pickbyarray"),a=t("lodash._pickbycallback"),u=t("lodash.restparam"),s=u(function(t,e){return null==t?{}:"function"==typeof e[0]?a(t,i(e[0],e[1],3)):o(t,r(e))});e.exports=s},{"lodash._baseflatten":51,"lodash._bindcallback":59,"lodash._pickbyarray":67,"lodash._pickbycallback":68,"lodash.restparam":101}],101:[function(t,e,n){function r(t,e){if("function"!=typeof t)throw new TypeError(i);return e=o(void 0===e?t.length-1:+e||0,0),function(){for(var n=arguments,r=-1,i=o(n.length-e,0),a=Array(i);++r<i;)a[r]=n[e+r];switch(e){case 0:return t.call(this,a);case 1:return t.call(this,n[0],a);case 2:return t.call(this,n[0],n[1],a)}var u=Array(e+1);for(r=-1;++r<e;)u[r]=n[r];return u[e]=a,t.apply(this,u)}}var i="Expected a function",o=Math.max;e.exports=r},{}],102:[function(t,e,n){function r(t,e){var n=typeof t;if("string"==n&&d.test(t)||"number"==n)return!0;if(f(t))return!1;var r=!p.test(t);return r||null!=e&&t in i(e)}function i(t){return a(t)?t:Object(t)}function o(t){var e=t?t.length:0;return e?t[e-1]:void 0}function a(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t,e,n){var i=null==t?void 0:t[e];return void 0===i&&(null==t||r(e,t)||(e=c(e),t=1==e.length?t:s(t,l(e,0,-1)),i=null==t?void 0:t[o(e)]),i=void 0===i?n:i),h(i)?i.call(t):i}var s=t("lodash._baseget"),l=t("lodash._baseslice"),c=t("lodash._topath"),f=t("lodash.isarray"),h=t("lodash.isfunction"),p=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,d=/^\w*$/;e.exports=u},{"lodash._baseget":53,"lodash._baseslice":56,"lodash._topath":71,"lodash.isarray":85,"lodash.isfunction":89}],103:[function(t,e,n){var r=t("lodash._baseflatten"),i=t("lodash._baseuniq"),o=t("lodash.restparam"),a=o(function(t){return i(r(t,!1,!0))});e.exports=a},{"lodash._baseflatten":51,"lodash._baseuniq":57,"lodash.restparam":101}],104:[function(t,e,n){function r(t){return!!t&&"object"==typeof t}function i(t){return"symbol"==typeof t||r(t)&&h.call(t)==l}function o(t){if("string"==typeof t)return t;if(null==t)return"";if(i(t))return p?v.call(t):"";var e=t+"";return"0"==e&&1/t==-s?"-0":e}function a(t){var e=++f;return o(t)+e}var u=t("lodash._root"),s=1/0,l="[object Symbol]",c=Object.prototype,f=0,h=c.toString,p=u.Symbol,d=p?p.prototype:void 0,v=p?d.toString:void 0;e.exports=a},{"lodash._root":70}],105:[function(t,e,n){(function(t){(function(){function r(t,e,n){for(var r=(n||0)-1,i=t?t.length:0;++r<i;)if(t[r]===e)return r;return-1}function i(t,e){var n=typeof e;if(t=t.cache,"boolean"==n||null==e)return t[e]?0:-1;"number"!=n&&"string"!=n&&(n="object");var i="number"==n?e:x+e;return t=(t=t[n])&&t[i],"object"==n?t&&r(t,e)>-1?0:-1:t?0:-1}function o(t){var e=this.cache,n=typeof t;if("boolean"==n||null==t)e[t]=!0;else{"number"!=n&&"string"!=n&&(n="object");var r="number"==n?t:x+t,i=e[n]||(e[n]={});"object"==n?(i[r]||(i[r]=[])).push(t):i[r]=!0}}function a(t){return t.charCodeAt(0)}function u(t,e){for(var n=t.criteria,r=e.criteria,i=-1,o=n.length;++i<o;){var a=n[i],u=r[i];if(a!==u){if(a>u||"undefined"==typeof a)return 1;if(a<u||"undefined"==typeof u)return-1}}return t.index-e.index}function s(t){var e=-1,n=t.length,r=t[0],i=t[n/2|0],a=t[n-1];if(r&&"object"==typeof r&&i&&"object"==typeof i&&a&&"object"==typeof a)return!1;var u=f();u["false"]=u["null"]=u["true"]=u.undefined=!1;var s=f();for(s.array=t,s.cache=u,s.push=o;++e<n;)s.push(t[e]);return s}function l(t){return"\\"+Z[t]}function c(){return y.pop()||[]}function f(){return m.pop()||{array:null,cache:null,criteria:null,"false":!1,index:0,"null":!1,number:null,object:null,push:null,string:null,"true":!1,undefined:!1,value:null}}function h(t){t.length=0,y.length<_&&y.push(t)}function p(t){var e=t.cache;e&&p(e),t.array=t.cache=t.criteria=t.object=t.number=t.string=t.value=null,m.length<_&&m.push(t)}function d(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,i=n-e||0,o=Array(i<0?0:i);++r<i;)o[r]=t[e+r];return o}function v(t){function e(t){return t&&"object"==typeof t&&!Kn(t)&&Dn.call(t,"__wrapped__")?t:new n(t)}function n(t,e){this.__chain__=!!e,this.__wrapped__=t}function o(t){function e(){if(r){var t=d(r);Ln.apply(t,arguments)}if(this instanceof e){var o=m(n.prototype),a=n.apply(o,t||arguments);return At(a)?a:o}return n.apply(i,t||arguments)}var n=t[0],r=t[2],i=t[4];return Gn(e,t),e}function y(t,e,n,r,i){if(n){var o=n(t);if("undefined"!=typeof o)return o}var a=At(t);if(!a)return t;var u=Cn.call(t);if(!W[u])return t;var s=Jn[u];switch(u){case P:case I:return new s((+t));case $:case U:return new s(t);case V:return o=s(t.source,S.exec(t)),o.lastIndex=t.lastIndex,o}var l=Kn(t);if(e){var f=!r;r||(r=c()),i||(i=c());for(var p=r.length;p--;)if(r[p]==t)return i[p];o=l?s(t.length):{}}else o=l?d(t):or({},t);return l&&(Dn.call(t,"index")&&(o.index=t.index),Dn.call(t,"input")&&(o.input=t.input)),e?(r.push(t),i.push(o),(l?Zt:sr)(t,function(t,a){o[a]=y(t,e,n,r,i)}),f&&(h(r),h(i)),o):o}function m(t,e){return At(t)?In(t):{}}function _(t,e,n){if("function"!=typeof t)return Ge;if("undefined"==typeof e||!("prototype"in t))return t;var r=t.__bindData__;if("undefined"==typeof r&&(Zn.funcNames&&(r=!t.name),r=r||!Zn.funcDecomp,!r)){var i=On.call(t);Zn.funcNames||(r=!T.test(i)),r||(r=q.test(i),Gn(t,r))}if(r===!1||r!==!0&&1&r[1])return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)};case 4:return function(n,r,i,o){return t.call(e,n,r,i,o)}}return De(t,e)}function Z(t){function e(){var t=s?a:this;if(i){var p=d(i);Ln.apply(p,arguments)}if((o||c)&&(p||(p=d(arguments)),o&&Ln.apply(p,o),c&&p.length<u))return r|=16,Z([n,f?r:r&-4,p,null,a,u]);if(p||(p=arguments),l&&(n=t[h]),this instanceof e){t=m(n.prototype);var v=n.apply(t,p);return At(v)?v:t}return n.apply(t,p)}var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],u=t[5],s=1&r,l=2&r,c=4&r,f=8&r,h=n;return Gn(e,t),e}function K(t,e){var n=-1,o=st(),a=t?t.length:0,u=a>=w&&o===r,l=[];if(u){var c=s(e);c?(o=i,e=c):u=!1}for(;++n<a;){var f=t[n];o(e,f)<0&&l.push(f)}return u&&p(e),l}function Q(t,e,n,r){for(var i=(r||0)-1,o=t?t.length:0,a=[];++i<o;){var u=t[i];if(u&&"object"==typeof u&&"number"==typeof u.length&&(Kn(u)||ht(u))){e||(u=Q(u,e,n));var s=-1,l=u.length,c=a.length;for(a.length+=l;++s<l;)a[c++]=u[s]}else n||a.push(u)}return a}function tt(t,e,n,r,i,o){if(n){var a=n(t,e);if("undefined"!=typeof a)return!!a}if(t===e)return 0!==t||1/t==1/e;var u=typeof t,s=typeof e;if(!(t!==t||t&&J[u]||e&&J[s]))return!1;if(null==t||null==e)return t===e;var l=Cn.call(t),f=Cn.call(e);if(l==z&&(l=B),f==z&&(f=B),l!=f)return!1;switch(l){case P:case I:return+t==+e;case $:return t!=+t?e!=+e:0==t?1/t==1/e:t==+e;case V:case U:return t==_n(e)}var p=l==R;if(!p){var d=Dn.call(t,"__wrapped__"),v=Dn.call(e,"__wrapped__");if(d||v)return tt(d?t.__wrapped__:t,v?e.__wrapped__:e,n,r,i,o);if(l!=B)return!1;var g=t.constructor,y=e.constructor;if(g!=y&&!(Tt(g)&&g instanceof g&&Tt(y)&&y instanceof y)&&"constructor"in t&&"constructor"in e)return!1}var m=!i;i||(i=c()),o||(o=c());for(var b=i.length;b--;)if(i[b]==t)return o[b]==e;var x=0;if(a=!0,i.push(t),o.push(e),p){if(b=t.length,x=e.length,a=x==b,a||r)for(;x--;){var w=b,_=e[x];if(r)for(;w--&&!(a=tt(t[w],_,n,r,i,o)););else if(!(a=tt(t[x],_,n,r,i,o)))break}}else ur(e,function(e,u,s){if(Dn.call(s,u))return x++,a=Dn.call(t,u)&&tt(t[u],e,n,r,i,o)}),a&&!r&&ur(t,function(t,e,n){if(Dn.call(n,e))return a=--x>-1});return i.pop(),o.pop(),m&&(h(i),h(o)),a}function et(t,e,n,r,i){(Kn(e)?Zt:sr)(e,function(e,o){var a,u,s=e,l=t[o];if(e&&((u=Kn(e))||lr(e))){for(var c=r.length;c--;)if(a=r[c]==e){l=i[c];break}if(!a){var f;n&&(s=n(l,e),(f="undefined"!=typeof s)&&(l=s)),f||(l=u?Kn(l)?l:[]:lr(l)?l:{}),r.push(e),i.push(l),f||et(l,e,n,r,i)}}else n&&(s=n(l,e),"undefined"==typeof s&&(s=e)),"undefined"!=typeof s&&(l=s);t[o]=l})}function rt(t,e){return t+Nn(Xn()*(e-t+1))}function it(t,e,n){var o=-1,a=st(),u=t?t.length:0,l=[],f=!e&&u>=w&&a===r,d=n||f?c():l;if(f){var v=s(d);a=i,d=v}for(;++o<u;){var g=t[o],y=n?n(g,o,t):g;(e?!o||d[d.length-1]!==y:a(d,y)<0)&&((n||f)&&d.push(y),l.push(g))}return f?(h(d.array),p(d)):n&&h(d),l}function ot(t){return function(n,r,i){var o={};r=e.createCallback(r,i,3);var a=-1,u=n?n.length:0;if("number"==typeof u)for(;++a<u;){var s=n[a];t(o,s,r(s,a,n),n)}else sr(n,function(e,n,i){t(o,e,r(e,n,i),i)});return o}}function at(t,e,n,r,i,a){var u=1&e,s=2&e,l=4&e,c=16&e,f=32&e;if(!s&&!Tt(t))throw new Mn;c&&!n.length&&(e&=-17,c=n=!1),f&&!r.length&&(e&=-33,f=r=!1);var h=t&&t.__bindData__;if(h&&h!==!0)return h=d(h),h[2]&&(h[2]=d(h[2])),h[3]&&(h[3]=d(h[3])),!u||1&h[1]||(h[4]=i),!u&&1&h[1]&&(e|=8),!l||4&h[1]||(h[5]=a),c&&Ln.apply(h[2]||(h[2]=[]),n),f&&Rn.apply(h[3]||(h[3]=[]),r),h[1]|=e,at.apply(null,h);var p=1==e||17===e?o:Z;return p([t,e,n,r,i,a])}function ut(t){return er[t]}function st(){var t=(t=e.indexOf)===ye?r:t;return t}function lt(t){return"function"==typeof t&&Sn.test(t)}function ct(t){var e,n;return!!(t&&Cn.call(t)==B&&(e=t.constructor,!Tt(e)||e instanceof e))&&(ur(t,function(t,e){n=e}),"undefined"==typeof n||Dn.call(t,n))}function ft(t){return nr[t]}function ht(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Cn.call(t)==z||!1}function pt(t,e,n,r){return"boolean"!=typeof e&&null!=e&&(r=n,n=e,e=!1),y(t,e,"function"==typeof n&&_(n,r,1))}function dt(t,e,n){return y(t,!0,"function"==typeof e&&_(e,n,1))}function vt(t,e){var n=m(t);return e?or(n,e):n}function gt(t,n,r){var i;return n=e.createCallback(n,r,3),sr(t,function(t,e,r){if(n(t,e,r))return i=e,!1}),i}function yt(t,n,r){var i;return n=e.createCallback(n,r,3),bt(t,function(t,e,r){if(n(t,e,r))return i=e,!1}),i}function mt(t,e,n){var r=[];ur(t,function(t,e){r.push(e,t)});var i=r.length;for(e=_(e,n,3);i--&&e(r[i--],r[i],t)!==!1;);return t}function bt(t,e,n){var r=tr(t),i=r.length;for(e=_(e,n,3);i--;){var o=r[i];if(e(t[o],o,t)===!1)break}return t}function xt(t){var e=[];return ur(t,function(t,n){Tt(t)&&e.push(n)}),e.sort()}function wt(t,e){return!!t&&Dn.call(t,e)}function _t(t){for(var e=-1,n=tr(t),r=n.length,i={};++e<r;){var o=n[e];i[t[o]]=o}return i}function Mt(t){return t===!0||t===!1||t&&"object"==typeof t&&Cn.call(t)==P||!1}function kt(t){return t&&"object"==typeof t&&Cn.call(t)==I||!1}function Et(t){return t&&1===t.nodeType||!1}function jt(t){var e=!0;if(!t)return e;var n=Cn.call(t),r=t.length;return n==R||n==U||n==z||n==B&&"number"==typeof r&&Tt(t.splice)?!r:(sr(t,function(){return e=!1}),e)}function Ct(t,e,n,r){return tt(t,e,"function"==typeof n&&_(n,r,2))}function St(t){return $n(t)&&!Bn(parseFloat(t))}function Tt(t){return"function"==typeof t}function At(t){return!(!t||!J[typeof t])}function Nt(t){return qt(t)&&t!=+t}function Ot(t){return null===t}function qt(t){return"number"==typeof t||t&&"object"==typeof t&&Cn.call(t)==$||!1}function Dt(t){return t&&"object"==typeof t&&Cn.call(t)==V||!1}function Lt(t){return"string"==typeof t||t&&"object"==typeof t&&Cn.call(t)==U||!1}function Ft(t){return"undefined"==typeof t}function zt(t,n,r){var i={};return n=e.createCallback(n,r,3),sr(t,function(t,e,r){i[e]=n(t,e,r)}),i}function Rt(t){var e=arguments,n=2;if(!At(t))return t;if("number"!=typeof e[2]&&(n=e.length),n>3&&"function"==typeof e[n-2])var r=_(e[--n-1],e[n--],2);else n>2&&"function"==typeof e[n-1]&&(r=e[--n]);for(var i=d(arguments,1,n),o=-1,a=c(),u=c();++o<n;)et(t,i[o],r,a,u);return h(a),h(u),t}function Pt(t,n,r){var i={};if("function"!=typeof n){var o=[];ur(t,function(t,e){o.push(e)}),o=K(o,Q(arguments,!0,!1,1));for(var a=-1,u=o.length;++a<u;){var s=o[a];i[s]=t[s]}}else n=e.createCallback(n,r,3),ur(t,function(t,e,r){n(t,e,r)||(i[e]=t)});return i}function It(t){for(var e=-1,n=tr(t),r=n.length,i=dn(r);++e<r;){var o=n[e];i[e]=[o,t[o]]}return i}function Ht(t,n,r){var i={};if("function"!=typeof n)for(var o=-1,a=Q(arguments,!0,!1,1),u=At(t)?a.length:0;++o<u;){var s=a[o];s in t&&(i[s]=t[s])}else n=e.createCallback(n,r,3),ur(t,function(t,e,r){n(t,e,r)&&(i[e]=t)});return i}function $t(t,n,r,i){var o=Kn(t);if(null==r)if(o)r=[];else{var a=t&&t.constructor,u=a&&a.prototype;r=m(u)}return n&&(n=e.createCallback(n,i,4),(o?Zt:sr)(t,function(t,e,i){return n(r,t,e,i)})),r}function Bt(t){for(var e=-1,n=tr(t),r=n.length,i=dn(r);++e<r;)i[e]=t[n[e]];return i}function Vt(t){for(var e=arguments,n=-1,r=Q(e,!0,!1,1),i=e[2]&&e[2][e[1]]===t?1:r.length,o=dn(i);++n<i;)o[n]=t[r[n]];return o}function Ut(t,e,n){var r=-1,i=st(),o=t?t.length:0,a=!1;return n=(n<0?Un(0,o+n):n)||0,Kn(t)?a=i(t,e,n)>-1:"number"==typeof o?a=(Lt(t)?t.indexOf(e,n):i(t,e,n))>-1:sr(t,function(t){if(++r>=n)return!(a=t===e)}),a}function Wt(t,n,r){var i=!0;n=e.createCallback(n,r,3);var o=-1,a=t?t.length:0;if("number"==typeof a)for(;++o<a&&(i=!!n(t[o],o,t)););else sr(t,function(t,e,r){return i=!!n(t,e,r)});return i}function Yt(t,n,r){var i=[];n=e.createCallback(n,r,3);var o=-1,a=t?t.length:0;if("number"==typeof a)for(;++o<a;){var u=t[o];n(u,o,t)&&i.push(u)}else sr(t,function(t,e,r){n(t,e,r)&&i.push(t)});return i}function Xt(t,n,r){n=e.createCallback(n,r,3);var i=-1,o=t?t.length:0;if("number"!=typeof o){var a;return sr(t,function(t,e,r){if(n(t,e,r))return a=t,!1}),a}for(;++i<o;){var u=t[i];if(n(u,i,t))return u}}function Jt(t,n,r){var i;return n=e.createCallback(n,r,3),Gt(t,function(t,e,r){if(n(t,e,r))return i=t,!1}),i}function Zt(t,e,n){var r=-1,i=t?t.length:0;if(e=e&&"undefined"==typeof n?e:_(e,n,3),"number"==typeof i)for(;++r<i&&e(t[r],r,t)!==!1;);else sr(t,e);return t}function Gt(t,e,n){var r=t?t.length:0;if(e=e&&"undefined"==typeof n?e:_(e,n,3),"number"==typeof r)for(;r--&&e(t[r],r,t)!==!1;);else{var i=tr(t);r=i.length,sr(t,function(t,n,o){return n=i?i[--r]:--r,e(o[n],n,o)})}return t}function Kt(t,e){var n=d(arguments,2),r=-1,i="function"==typeof e,o=t?t.length:0,a=dn("number"==typeof o?o:0);return Zt(t,function(t){a[++r]=(i?e:t[e]).apply(t,n)}),a}function Qt(t,n,r){var i=-1,o=t?t.length:0;if(n=e.createCallback(n,r,3),"number"==typeof o)for(var a=dn(o);++i<o;)a[i]=n(t[i],i,t);else a=[],sr(t,function(t,e,r){a[++i]=n(t,e,r)});return a}function te(t,n,r){var i=-(1/0),o=i;if("function"!=typeof n&&r&&r[n]===t&&(n=null),null==n&&Kn(t))for(var u=-1,s=t.length;++u<s;){var l=t[u];l>o&&(o=l)}else n=null==n&&Lt(t)?a:e.createCallback(n,r,3),Zt(t,function(t,e,r){var a=n(t,e,r);a>i&&(i=a,o=t)});return o}function ee(t,n,r){var i=1/0,o=i;if("function"!=typeof n&&r&&r[n]===t&&(n=null),null==n&&Kn(t))for(var u=-1,s=t.length;++u<s;){var l=t[u];l<o&&(o=l)}else n=null==n&&Lt(t)?a:e.createCallback(n,r,3),Zt(t,function(t,e,r){var a=n(t,e,r);a<i&&(i=a,o=t)});return o}function ne(t,n,r,i){if(!t)return r;var o=arguments.length<3;n=e.createCallback(n,i,4);var a=-1,u=t.length;if("number"==typeof u)for(o&&(r=t[++a]);++a<u;)r=n(r,t[a],a,t);else sr(t,function(t,e,i){r=o?(o=!1,t):n(r,t,e,i)});return r}function re(t,n,r,i){var o=arguments.length<3;return n=e.createCallback(n,i,4),Gt(t,function(t,e,i){r=o?(o=!1,t):n(r,t,e,i)}),r}function ie(t,n,r){return n=e.createCallback(n,r,3),Yt(t,function(t,e,r){return!n(t,e,r)})}function oe(t,e,n){if(t&&"number"!=typeof t.length&&(t=Bt(t)),null==e||n)return t?t[rt(0,t.length-1)]:g;var r=ae(t);return r.length=Wn(Un(0,e),r.length),r}function ae(t){var e=-1,n=t?t.length:0,r=dn("number"==typeof n?n:0);return Zt(t,function(t){var n=rt(0,++e);r[e]=r[n],r[n]=t}),r}function ue(t){var e=t?t.length:0;return"number"==typeof e?e:tr(t).length}function se(t,n,r){var i;n=e.createCallback(n,r,3);var o=-1,a=t?t.length:0;if("number"==typeof a)for(;++o<a&&!(i=n(t[o],o,t)););else sr(t,function(t,e,r){return!(i=n(t,e,r))});return!!i}function le(t,n,r){var i=-1,o=Kn(n),a=t?t.length:0,s=dn("number"==typeof a?a:0);for(o||(n=e.createCallback(n,r,3)),Zt(t,function(t,e,r){var a=s[++i]=f();o?a.criteria=Qt(n,function(e){return t[e]}):(a.criteria=c())[0]=n(t,e,r),a.index=i,a.value=t}),a=s.length,s.sort(u);a--;){var l=s[a];s[a]=l.value,o||h(l.criteria),p(l)}return s}function ce(t){return t&&"number"==typeof t.length?d(t):Bt(t)}function fe(t){for(var e=-1,n=t?t.length:0,r=[];++e<n;){var i=t[e];i&&r.push(i)}return r}function he(t){ +return K(t,Q(arguments,!0,!0,1))}function pe(t,n,r){var i=-1,o=t?t.length:0;for(n=e.createCallback(n,r,3);++i<o;)if(n(t[i],i,t))return i;return-1}function de(t,n,r){var i=t?t.length:0;for(n=e.createCallback(n,r,3);i--;)if(n(t[i],i,t))return i;return-1}function ve(t,n,r){var i=0,o=t?t.length:0;if("number"!=typeof n&&null!=n){var a=-1;for(n=e.createCallback(n,r,3);++a<o&&n(t[a],a,t);)i++}else if(i=n,null==i||r)return t?t[0]:g;return d(t,0,Wn(Un(0,i),o))}function ge(t,e,n,r){return"boolean"!=typeof e&&null!=e&&(r=n,n="function"!=typeof e&&r&&r[e]===t?null:e,e=!1),null!=n&&(t=Qt(t,n,r)),Q(t,e)}function ye(t,e,n){if("number"==typeof n){var i=t?t.length:0;n=n<0?Un(0,i+n):n||0}else if(n){var o=je(t,e);return t[o]===e?o:-1}return r(t,e,n)}function me(t,n,r){var i=0,o=t?t.length:0;if("number"!=typeof n&&null!=n){var a=o;for(n=e.createCallback(n,r,3);a--&&n(t[a],a,t);)i++}else i=null==n||r?1:n||i;return d(t,0,Wn(Un(0,o-i),o))}function be(){for(var t=[],e=-1,n=arguments.length,o=c(),a=st(),u=a===r,l=c();++e<n;){var f=arguments[e];(Kn(f)||ht(f))&&(t.push(f),o.push(u&&f.length>=w&&s(e?t[e]:l)))}var d=t[0],v=-1,g=d?d.length:0,y=[];t:for(;++v<g;){var m=o[0];if(f=d[v],(m?i(m,f):a(l,f))<0){for(e=n,(m||l).push(f);--e;)if(m=o[e],(m?i(m,f):a(t[e],f))<0)continue t;y.push(f)}}for(;n--;)m=o[n],m&&p(m);return h(o),h(l),y}function xe(t,n,r){var i=0,o=t?t.length:0;if("number"!=typeof n&&null!=n){var a=o;for(n=e.createCallback(n,r,3);a--&&n(t[a],a,t);)i++}else if(i=n,null==i||r)return t?t[o-1]:g;return d(t,Un(0,o-i))}function we(t,e,n){var r=t?t.length:0;for("number"==typeof n&&(r=(n<0?Un(0,r+n):Wn(n,r-1))+1);r--;)if(t[r]===e)return r;return-1}function _e(t){for(var e=arguments,n=0,r=e.length,i=t?t.length:0;++n<r;)for(var o=-1,a=e[n];++o<i;)t[o]===a&&(zn.call(t,o--,1),i--);return t}function Me(t,e,n){t=+t||0,n="number"==typeof n?n:+n||1,null==e&&(e=t,t=0);for(var r=-1,i=Un(0,Tn((e-t)/(n||1))),o=dn(i);++r<i;)o[r]=t,t+=n;return o}function ke(t,n,r){var i=-1,o=t?t.length:0,a=[];for(n=e.createCallback(n,r,3);++i<o;){var u=t[i];n(u,i,t)&&(a.push(u),zn.call(t,i--,1),o--)}return a}function Ee(t,n,r){if("number"!=typeof n&&null!=n){var i=0,o=-1,a=t?t.length:0;for(n=e.createCallback(n,r,3);++o<a&&n(t[o],o,t);)i++}else i=null==n||r?1:Un(0,n);return d(t,i)}function je(t,n,r,i){var o=0,a=t?t.length:o;for(r=r?e.createCallback(r,i,1):Ge,n=r(n);o<a;){var u=o+a>>>1;r(t[u])<n?o=u+1:a=u}return o}function Ce(){return it(Q(arguments,!0,!0))}function Se(t,n,r,i){return"boolean"!=typeof n&&null!=n&&(i=r,r="function"!=typeof n&&i&&i[n]===t?null:n,n=!1),null!=r&&(r=e.createCallback(r,i,3)),it(t,n,r)}function Te(t){return K(t,d(arguments,1))}function Ae(){for(var t=-1,e=arguments.length;++t<e;){var n=arguments[t];if(Kn(n)||ht(n))var r=r?it(K(r,n).concat(K(n,r))):n}return r||[]}function Ne(){for(var t=arguments.length>1?arguments:arguments[0],e=-1,n=t?te(pr(t,"length")):0,r=dn(n<0?0:n);++e<n;)r[e]=pr(t,e);return r}function Oe(t,e){var n=-1,r=t?t.length:0,i={};for(e||!r||Kn(t[0])||(e=[]);++n<r;){var o=t[n];e?i[o]=e[n]:o&&(i[o[0]]=o[1])}return i}function qe(t,e){if(!Tt(e))throw new Mn;return function(){if(--t<1)return e.apply(this,arguments)}}function De(t,e){return arguments.length>2?at(t,17,d(arguments,2),null,e):at(t,1,null,null,e)}function Le(t){for(var e=arguments.length>1?Q(arguments,!0,!1,1):xt(t),n=-1,r=e.length;++n<r;){var i=e[n];t[i]=at(t[i],1,null,null,t)}return t}function Fe(t,e){return arguments.length>2?at(e,19,d(arguments,2),null,t):at(e,3,null,null,t)}function ze(){for(var t=arguments,e=t.length;e--;)if(!Tt(t[e]))throw new Mn;return function(){for(var e=arguments,n=t.length;n--;)e=[t[n].apply(this,e)];return e[0]}}function Re(t,e){return e="number"==typeof e?e:+e||t.length,at(t,4,null,null,null,e)}function Pe(t,e,n){var r,i,o,a,u,s,l,c=0,f=!1,h=!0;if(!Tt(t))throw new Mn;if(e=Un(0,e)||0,n===!0){var p=!0;h=!1}else At(n)&&(p=n.leading,f="maxWait"in n&&(Un(e,n.maxWait)||0),h="trailing"in n?n.trailing:h);var d=function(){var n=e-(vr()-a);if(n<=0){i&&An(i);var f=l;i=s=l=g,f&&(c=vr(),o=t.apply(u,r),s||i||(r=u=null))}else s=Fn(d,n)},v=function(){s&&An(s),i=s=l=g,(h||f!==e)&&(c=vr(),o=t.apply(u,r),s||i||(r=u=null))};return function(){if(r=arguments,a=vr(),u=this,l=h&&(s||!p),f===!1)var n=p&&!s;else{i||p||(c=a);var g=f-(a-c),y=g<=0;y?(i&&(i=An(i)),c=a,o=t.apply(u,r)):i||(i=Fn(v,g))}return y&&s?s=An(s):s||e===f||(s=Fn(d,e)),n&&(y=!0,o=t.apply(u,r)),!y||s||i||(r=u=null),o}}function Ie(t){if(!Tt(t))throw new Mn;var e=d(arguments,1);return Fn(function(){t.apply(g,e)},1)}function He(t,e){if(!Tt(t))throw new Mn;var n=d(arguments,2);return Fn(function(){t.apply(g,n)},e)}function $e(t,e){if(!Tt(t))throw new Mn;var n=function(){var r=n.cache,i=e?e.apply(this,arguments):x+arguments[0];return Dn.call(r,i)?r[i]:r[i]=t.apply(this,arguments)};return n.cache={},n}function Be(t){var e,n;if(!Tt(t))throw new Mn;return function(){return e?n:(e=!0,n=t.apply(this,arguments),t=null,n)}}function Ve(t){return at(t,16,d(arguments,1))}function Ue(t){return at(t,32,null,d(arguments,1))}function We(t,e,n){var r=!0,i=!0;if(!Tt(t))throw new Mn;return n===!1?r=!1:At(n)&&(r="leading"in n?n.leading:r,i="trailing"in n?n.trailing:i),Y.leading=r,Y.maxWait=e,Y.trailing=i,Pe(t,e,Y)}function Ye(t,e){return at(e,16,[t])}function Xe(t){return function(){return t}}function Je(t,e,n){var r=typeof t;if(null==t||"function"==r)return _(t,e,n);if("object"!=r)return en(t);var i=tr(t),o=i[0],a=t[o];return 1!=i.length||a!==a||At(a)?function(e){for(var n=i.length,r=!1;n--&&(r=tt(e[i[n]],t[i[n]],null,!0)););return r}:function(t){var e=t[o];return a===e&&(0!==a||1/a==1/e)}}function Ze(t){return null==t?"":_n(t).replace(ir,ut)}function Ge(t){return t}function Ke(t,r,i){var o=!0,a=r&&xt(r);r&&(i||a.length)||(null==i&&(i=r),u=n,r=t,t=e,a=xt(r)),i===!1?o=!1:At(i)&&"chain"in i&&(o=i.chain);var u=t,s=Tt(u);Zt(a,function(e){var n=t[e]=r[e];s&&(u.prototype[e]=function(){var e=this.__chain__,r=this.__wrapped__,i=[r];Ln.apply(i,arguments);var a=n.apply(t,i);if(o||e){if(r===a&&At(a))return this;a=new u(a),a.__chain__=e}return a})})}function Qe(){return t._=jn,this}function tn(){}function en(t){return function(e){return e[t]}}function nn(t,e,n){var r=null==t,i=null==e;if(null==n&&("boolean"==typeof t&&i?(n=t,t=1):i||"boolean"!=typeof e||(n=e,i=!0)),r&&i&&(e=1),t=+t||0,i?(e=t,t=0):e=+e||0,n||t%1||e%1){var o=Xn();return Wn(t+o*(e-t+parseFloat("1e-"+((o+"").length-1))),e)}return rt(t,e)}function rn(t,e){if(t){var n=t[e];return Tt(n)?t[e]():n}}function on(t,data,n){var r=e.templateSettings;t=_n(t||""),n=ar({},n,r);var i,o=ar({},n.imports,r.imports),a=tr(o),u=Bt(o),s=0,c=n.interpolate||O,f="__p += '",h=wn((n.escape||O).source+"|"+c.source+"|"+(c===A?C:O).source+"|"+(n.evaluate||O).source+"|$","g");t.replace(h,function(e,n,r,o,a,u){return r||(r=o),f+=t.slice(s,u).replace(D,l),n&&(f+="' +\n__e("+n+") +\n'"),a&&(i=!0,f+="';\n"+a+";\n__p += '"),r&&(f+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),s=u+e.length,e}),f+="';\n";var p=n.variable,d=p;d||(p="obj",f="with ("+p+") {\n"+f+"\n}\n"),f=(i?f.replace(k,""):f).replace(E,"$1").replace(j,"$1;"),f="function("+p+") {\n"+(d?"":p+" || ("+p+" = {});\n")+"var __t, __p = '', __e = _.escape"+(i?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var v="\n/*\n//# sourceURL="+(n.sourceURL||"/lodash/template/source["+F++ +"]")+"\n*/";try{var y=yn(a,"return "+f+v).apply(g,u)}catch(m){throw m.source=f,m}return data?y(data):(y.source=f,y)}function an(t,e,n){t=(t=+t)>-1?t:0;var r=-1,i=dn(t);for(e=_(e,n,1);++r<t;)i[r]=e(r);return i}function un(t){return null==t?"":_n(t).replace(rr,ft)}function sn(t){var e=++b;return _n(null==t?"":t)+e}function ln(t){return t=new n(t),t.__chain__=!0,t}function cn(t,e){return e(t),t}function fn(){return this.__chain__=!0,this}function hn(){return _n(this.__wrapped__)}function pn(){return this.__wrapped__}t=t?nt.defaults(G.Object(),t,nt.pick(G,L)):G;var dn=t.Array,vn=t.Boolean,gn=t.Date,yn=t.Function,mn=t.Math,bn=t.Number,xn=t.Object,wn=t.RegExp,_n=t.String,Mn=t.TypeError,kn=[],En=xn.prototype,jn=t._,Cn=En.toString,Sn=wn("^"+_n(Cn).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),Tn=mn.ceil,An=t.clearTimeout,Nn=mn.floor,On=yn.prototype.toString,qn=lt(qn=xn.getPrototypeOf)&&qn,Dn=En.hasOwnProperty,Ln=kn.push,Fn=t.setTimeout,zn=kn.splice,Rn=kn.unshift,Pn=function(){try{var t={},e=lt(e=xn.defineProperty)&&e,n=e(t,t,t)&&e}catch(r){}return n}(),In=lt(In=xn.create)&&In,Hn=lt(Hn=dn.isArray)&&Hn,$n=t.isFinite,Bn=t.isNaN,Vn=lt(Vn=xn.keys)&&Vn,Un=mn.max,Wn=mn.min,Yn=t.parseInt,Xn=mn.random,Jn={};Jn[R]=dn,Jn[P]=vn,Jn[I]=gn,Jn[H]=yn,Jn[B]=xn,Jn[$]=bn,Jn[V]=wn,Jn[U]=_n,n.prototype=e.prototype;var Zn=e.support={};Zn.funcDecomp=!lt(t.WinRTError)&&q.test(v),Zn.funcNames="string"==typeof yn.name,e.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:A,variable:"",imports:{_:e}},In||(m=function(){function e(){}return function(n){if(At(n)){e.prototype=n;var r=new e;e.prototype=null}return r||t.Object()}}());var Gn=Pn?function(t,e){X.value=e,Pn(t,"__bindData__",X),X.value=null}:tn,Kn=Hn||function(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Cn.call(t)==R||!1},Qn=function(t){var e,n=t,r=[];if(!n)return r;if(!J[typeof t])return r;for(e in n)Dn.call(n,e)&&r.push(e);return r},tr=Vn?function(t){return At(t)?Vn(t):[]}:Qn,er={"&":"&","<":"<",">":">",'"':""","'":"'"},nr=_t(er),rr=wn("("+tr(nr).join("|")+")","g"),ir=wn("["+tr(er).join("")+"]","g"),or=function(t,e,n){var r,i=t,o=i;if(!i)return o;var a=arguments,u=0,s="number"==typeof n?2:a.length;if(s>3&&"function"==typeof a[s-2])var l=_(a[--s-1],a[s--],2);else s>2&&"function"==typeof a[s-1]&&(l=a[--s]);for(;++u<s;)if(i=a[u],i&&J[typeof i])for(var c=-1,f=J[typeof i]&&tr(i),h=f?f.length:0;++c<h;)r=f[c],o[r]=l?l(o[r],i[r]):i[r];return o},ar=function(t,e,n){var r,i=t,o=i;if(!i)return o;for(var a=arguments,u=0,s="number"==typeof n?2:a.length;++u<s;)if(i=a[u],i&&J[typeof i])for(var l=-1,c=J[typeof i]&&tr(i),f=c?c.length:0;++l<f;)r=c[l],"undefined"==typeof o[r]&&(o[r]=i[r]);return o},ur=function(t,e,n){var r,i=t,o=i;if(!i)return o;if(!J[typeof i])return o;e=e&&"undefined"==typeof n?e:_(e,n,3);for(r in i)if(e(i[r],r,t)===!1)return o;return o},sr=function(t,e,n){var r,i=t,o=i;if(!i)return o;if(!J[typeof i])return o;e=e&&"undefined"==typeof n?e:_(e,n,3);for(var a=-1,u=J[typeof i]&&tr(i),s=u?u.length:0;++a<s;)if(r=u[a],e(i[r],r,t)===!1)return o;return o},lr=qn?function(t){if(!t||Cn.call(t)!=B)return!1;var e=t.valueOf,n=lt(e)&&(n=qn(e))&&qn(n);return n?t==n||qn(t)==n:ct(t)}:ct,cr=ot(function(t,e,n){Dn.call(t,n)?t[n]++:t[n]=1}),fr=ot(function(t,e,n){(Dn.call(t,n)?t[n]:t[n]=[]).push(e)}),hr=ot(function(t,e,n){t[n]=e}),pr=Qt,dr=Yt,vr=lt(vr=gn.now)&&vr||function(){return(new gn).getTime()},gr=8==Yn(M+"08")?Yn:function(t,e){return Yn(Lt(t)?t.replace(N,""):t,e||0)};return e.after=qe,e.assign=or,e.at=Vt,e.bind=De,e.bindAll=Le,e.bindKey=Fe,e.chain=ln,e.compact=fe,e.compose=ze,e.constant=Xe,e.countBy=cr,e.create=vt,e.createCallback=Je,e.curry=Re,e.debounce=Pe,e.defaults=ar,e.defer=Ie,e.delay=He,e.difference=he,e.filter=Yt,e.flatten=ge,e.forEach=Zt,e.forEachRight=Gt,e.forIn=ur,e.forInRight=mt,e.forOwn=sr,e.forOwnRight=bt,e.functions=xt,e.groupBy=fr,e.indexBy=hr,e.initial=me,e.intersection=be,e.invert=_t,e.invoke=Kt,e.keys=tr,e.map=Qt,e.mapValues=zt,e.max=te,e.memoize=$e,e.merge=Rt,e.min=ee,e.omit=Pt,e.once=Be,e.pairs=It,e.partial=Ve,e.partialRight=Ue,e.pick=Ht,e.pluck=pr,e.property=en,e.pull=_e,e.range=Me,e.reject=ie,e.remove=ke,e.rest=Ee,e.shuffle=ae,e.sortBy=le,e.tap=cn,e.throttle=We,e.times=an,e.toArray=ce,e.transform=$t,e.union=Ce,e.uniq=Se,e.values=Bt,e.where=dr,e.without=Te,e.wrap=Ye,e.xor=Ae,e.zip=Ne,e.zipObject=Oe,e.collect=Qt,e.drop=Ee,e.each=Zt,e.eachRight=Gt,e.extend=or,e.methods=xt,e.object=Oe,e.select=Yt,e.tail=Ee,e.unique=Se,e.unzip=Ne,Ke(e),e.clone=pt,e.cloneDeep=dt,e.contains=Ut,e.escape=Ze,e.every=Wt,e.find=Xt,e.findIndex=pe,e.findKey=gt,e.findLast=Jt,e.findLastIndex=de,e.findLastKey=yt,e.has=wt,e.identity=Ge,e.indexOf=ye,e.isArguments=ht,e.isArray=Kn,e.isBoolean=Mt,e.isDate=kt,e.isElement=Et,e.isEmpty=jt,e.isEqual=Ct,e.isFinite=St,e.isFunction=Tt,e.isNaN=Nt,e.isNull=Ot,e.isNumber=qt,e.isObject=At,e.isPlainObject=lr,e.isRegExp=Dt,e.isString=Lt,e.isUndefined=Ft,e.lastIndexOf=we,e.mixin=Ke,e.noConflict=Qe,e.noop=tn,e.now=vr,e.parseInt=gr,e.random=nn,e.reduce=ne,e.reduceRight=re,e.result=rn,e.runInContext=v,e.size=ue,e.some=se,e.sortedIndex=je,e.template=on,e.unescape=un,e.uniqueId=sn,e.all=Wt,e.any=se,e.detect=Xt,e.findWhere=Xt,e.foldl=ne,e.foldr=re,e.include=Ut,e.inject=ne,Ke(function(){var t={};return sr(e,function(n,r){e.prototype[r]||(t[r]=n)}),t}(),!1),e.first=ve,e.last=xe,e.sample=oe,e.take=ve,e.head=ve,sr(e,function(t,r){var i="sample"!==r;e.prototype[r]||(e.prototype[r]=function(e,r){var o=this.__chain__,a=t(this.__wrapped__,e,r);return o||null!=e&&(!r||i&&"function"==typeof e)?new n(a,o):a})}),e.VERSION="2.4.2",e.prototype.chain=fn,e.prototype.toString=hn,e.prototype.value=pn,e.prototype.valueOf=pn,Zt(["join","pop","shift"],function(t){var r=kn[t];e.prototype[t]=function(){var t=this.__chain__,e=r.apply(this.__wrapped__,arguments);return t?new n(e,t):e}}),Zt(["push","reverse","sort","unshift"],function(t){var n=kn[t];e.prototype[t]=function(){return n.apply(this.__wrapped__,arguments),this}}),Zt(["concat","slice","splice"],function(t){var r=kn[t];e.prototype[t]=function(){return new n(r.apply(this.__wrapped__,arguments),this.__chain__)}}),e}var g,y=[],m=[],b=0,x=+new Date+"",w=75,_=40,M=" \t\x0B\f \ufeff\n\r\u2028\u2029 ",k=/\b__p \+= '';/g,E=/\b(__p \+=) '' \+/g,j=/(__e\(.*?\)|\b__t\)) \+\n'';/g,C=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,S=/\w*$/,T=/^\s*function[ \n\r\t]+\w/,A=/<%=([\s\S]+?)%>/g,N=RegExp("^["+M+"]*0+(?=.$)"),O=/($^)/,q=/\bthis\b/,D=/['\n\r\t\u2028\u2029\\]/g,L=["Array","Boolean","Date","Function","Math","Number","Object","RegExp","String","_","attachEvent","clearTimeout","isFinite","isNaN","parseInt","setTimeout"],F=0,z="[object Arguments]",R="[object Array]",P="[object Boolean]",I="[object Date]",H="[object Function]",$="[object Number]",B="[object Object]",V="[object RegExp]",U="[object String]",W={};W[H]=!1,W[z]=W[R]=W[P]=W[I]=W[$]=W[B]=W[V]=W[U]=!0;var Y={leading:!1,maxWait:0,trailing:!1},X={configurable:!1,enumerable:!1,value:null,writable:!1},J={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},Z={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},G=J[typeof window]&&window||this,K=J[typeof n]&&n&&!n.nodeType&&n,Q=J[typeof e]&&e&&!e.nodeType&&e,tt=Q&&Q.exports===K&&K,et=J[typeof t]&&t;!et||et.global!==et&&et.window!==et||(G=et);var nt=v();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(G._=nt,define(function(){return nt})):K&&Q?tt?(Q.exports=nt)._=nt:K._=nt:G._=nt}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],106:[function(t,e,n){"use strict";function r(t,e){if(o)return o.call(t,e);for(var n=t.parentNode.querySelectorAll(e),r=0;r<n.length;r++)if(n[r]==t)return!0;return!1}var i=Element.prototype,o=i.matches||i.matchesSelector||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector;e.exports=r},{}],107:[function(t,e,n){function r(t){if(t=String(t),!(t.length>1e4)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*f;case"days":case"day":case"d":return n*c;case"hours":case"hour":case"hrs":case"hr":case"h":return n*l;case"minutes":case"minute":case"mins":case"min":case"m":return n*s;case"seconds":case"second":case"secs":case"sec":case"s":return n*u;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function i(t){return t>=c?Math.round(t/c)+"d":t>=l?Math.round(t/l)+"h":t>=s?Math.round(t/s)+"m":t>=u?Math.round(t/u)+"s":t+"ms"}function o(t){return a(t,c,"day")||a(t,l,"hour")||a(t,s,"minute")||a(t,u,"second")||t+" ms"}function a(t,e,n){if(!(t<e))return t<1.5*e?Math.floor(t/e)+" "+n:Math.ceil(t/e)+" "+n+"s"}var u=1e3,s=60*u,l=60*s,c=24*l,f=365.25*c;e.exports=function(t,e){e=e||{};var n=typeof t;if("string"===n&&t.length>0)return r(t);if("number"===n&&isNaN(t)===!1)return e["long"]?o(t):i(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},{}],108:[function(t,e,n){(function(){function t(t){function e(e,n,r,i,o,a){for(;o>=0&&o<a;o+=t){var u=i?i[o]:o;r=n(r,e[u],u,e)}return r}return function(n,r,i,o){r=w(r,o,4);var a=!S(n)&&x.keys(n),u=(a||n).length,s=t>0?0:u-1;return arguments.length<3&&(i=n[a?a[s]:s],s+=t),e(n,r,i,a,s,u)}}function r(t){return function(e,n,r){n=_(n,r);for(var i=C(e),o=t>0?0:i-1;o>=0&&o<i;o+=t)if(n(e[o],o,e))return o;return-1}}function i(t,e,n){return function(r,i,o){var a=0,u=C(r);if("number"==typeof o)t>0?a=o>=0?o:Math.max(o+u,a):u=o>=0?Math.min(o+1,u):o+u+1;else if(n&&o&&u)return o=n(r,i),r[o]===i?o:-1;if(i!==i)return o=e(h.call(r,a,u),x.isNaN),o>=0?o+a:-1;for(o=t>0?a:u-1;o>=0&&o<u;o+=t)if(r[o]===i)return o;return-1}}function o(t,e){var n=q.length,r=t.constructor,i=x.isFunction(r)&&r.prototype||l,o="constructor";for(x.has(t,o)&&!x.contains(e,o)&&e.push(o);n--;)o=q[n],o in t&&t[o]!==i[o]&&!x.contains(e,o)&&e.push(o)}var a=this,u=a._,s=Array.prototype,l=Object.prototype,c=Function.prototype,f=s.push,h=s.slice,p=l.toString,d=l.hasOwnProperty,v=Array.isArray,g=Object.keys,y=c.bind,m=Object.create,b=function(){},x=function(t){return t instanceof x?t:this instanceof x?void(this._wrapped=t):new x(t)};"undefined"!=typeof n?("undefined"!=typeof e&&e.exports&&(n=e.exports=x),n._=x):a._=x,x.VERSION="1.8.3";var w=function(t,e,n){if(void 0===e)return t;switch(null==n?3:n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)};case 4:return function(n,r,i,o){return t.call(e,n,r,i,o)}}return function(){return t.apply(e,arguments)}},_=function(t,e,n){return null==t?x.identity:x.isFunction(t)?w(t,e,n):x.isObject(t)?x.matcher(t):x.property(t)};x.iteratee=function(t,e){return _(t,e,1/0)};var M=function(t,e){return function(n){var r=arguments.length;if(r<2||null==n)return n;for(var i=1;i<r;i++)for(var o=arguments[i],a=t(o),u=a.length,s=0;s<u;s++){var l=a[s];e&&void 0!==n[l]||(n[l]=o[l])}return n}},k=function(t){if(!x.isObject(t))return{};if(m)return m(t);b.prototype=t;var e=new b;return b.prototype=null,e},E=function(t){return function(e){return null==e?void 0:e[t]}},j=Math.pow(2,53)-1,C=E("length"),S=function(t){var e=C(t);return"number"==typeof e&&e>=0&&e<=j};x.each=x.forEach=function(t,e,n){e=w(e,n);var r,i;if(S(t))for(r=0,i=t.length;r<i;r++)e(t[r],r,t);else{var o=x.keys(t);for(r=0,i=o.length;r<i;r++)e(t[o[r]],o[r],t)}return t},x.map=x.collect=function(t,e,n){e=_(e,n);for(var r=!S(t)&&x.keys(t),i=(r||t).length,o=Array(i),a=0;a<i;a++){var u=r?r[a]:a;o[a]=e(t[u],u,t)}return o},x.reduce=x.foldl=x.inject=t(1),x.reduceRight=x.foldr=t(-1),x.find=x.detect=function(t,e,n){var r;if(r=S(t)?x.findIndex(t,e,n):x.findKey(t,e,n),void 0!==r&&r!==-1)return t[r]},x.filter=x.select=function(t,e,n){var r=[];return e=_(e,n),x.each(t,function(t,n,i){e(t,n,i)&&r.push(t)}),r},x.reject=function(t,e,n){return x.filter(t,x.negate(_(e)),n)},x.every=x.all=function(t,e,n){e=_(e,n);for(var r=!S(t)&&x.keys(t),i=(r||t).length,o=0;o<i;o++){var a=r?r[o]:o;if(!e(t[a],a,t))return!1}return!0},x.some=x.any=function(t,e,n){e=_(e,n);for(var r=!S(t)&&x.keys(t),i=(r||t).length,o=0;o<i;o++){var a=r?r[o]:o;if(e(t[a],a,t))return!0}return!1},x.contains=x.includes=x.include=function(t,e,n,r){return S(t)||(t=x.values(t)),("number"!=typeof n||r)&&(n=0),x.indexOf(t,e,n)>=0},x.invoke=function(t,e){var n=h.call(arguments,2),r=x.isFunction(e);return x.map(t,function(t){var i=r?e:t[e];return null==i?i:i.apply(t,n)})},x.pluck=function(t,e){return x.map(t,x.property(e))},x.where=function(t,e){return x.filter(t,x.matcher(e))},x.findWhere=function(t,e){return x.find(t,x.matcher(e))},x.max=function(t,e,n){var r,i,o=-(1/0),a=-(1/0);if(null==e&&null!=t){t=S(t)?t:x.values(t);for(var u=0,s=t.length;u<s;u++)r=t[u],r>o&&(o=r)}else e=_(e,n),x.each(t,function(t,n,r){i=e(t,n,r),(i>a||i===-(1/0)&&o===-(1/0))&&(o=t,a=i)});return o},x.min=function(t,e,n){var r,i,o=1/0,a=1/0;if(null==e&&null!=t){t=S(t)?t:x.values(t);for(var u=0,s=t.length;u<s;u++)r=t[u],r<o&&(o=r)}else e=_(e,n),x.each(t,function(t,n,r){i=e(t,n,r),(i<a||i===1/0&&o===1/0)&&(o=t,a=i)});return o},x.shuffle=function(t){for(var e,n=S(t)?t:x.values(t),r=n.length,i=Array(r),o=0;o<r;o++)e=x.random(0,o),e!==o&&(i[o]=i[e]),i[e]=n[o];return i},x.sample=function(t,e,n){return null==e||n?(S(t)||(t=x.values(t)),t[x.random(t.length-1)]):x.shuffle(t).slice(0,Math.max(0,e))},x.sortBy=function(t,e,n){return e=_(e,n),x.pluck(x.map(t,function(t,n,r){return{value:t,index:n,criteria:e(t,n,r)}}).sort(function(t,e){var n=t.criteria,r=e.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(n<r||void 0===r)return-1}return t.index-e.index}),"value")};var T=function(t){return function(e,n,r){var i={};return n=_(n,r),x.each(e,function(r,o){var a=n(r,o,e);t(i,r,a)}),i}};x.groupBy=T(function(t,e,n){x.has(t,n)?t[n].push(e):t[n]=[e]}),x.indexBy=T(function(t,e,n){t[n]=e}),x.countBy=T(function(t,e,n){x.has(t,n)?t[n]++:t[n]=1}),x.toArray=function(t){return t?x.isArray(t)?h.call(t):S(t)?x.map(t,x.identity):x.values(t):[]},x.size=function(t){return null==t?0:S(t)?t.length:x.keys(t).length},x.partition=function(t,e,n){e=_(e,n);var r=[],i=[];return x.each(t,function(t,n,o){(e(t,n,o)?r:i).push(t)}),[r,i]},x.first=x.head=x.take=function(t,e,n){if(null!=t)return null==e||n?t[0]:x.initial(t,t.length-e)},x.initial=function(t,e,n){return h.call(t,0,Math.max(0,t.length-(null==e||n?1:e)))},x.last=function(t,e,n){if(null!=t)return null==e||n?t[t.length-1]:x.rest(t,Math.max(0,t.length-e))},x.rest=x.tail=x.drop=function(t,e,n){return h.call(t,null==e||n?1:e)},x.compact=function(t){return x.filter(t,x.identity)};var A=function(t,e,n,r){for(var i=[],o=0,a=r||0,u=C(t);a<u;a++){var s=t[a];if(S(s)&&(x.isArray(s)||x.isArguments(s))){e||(s=A(s,e,n));var l=0,c=s.length;for(i.length+=c;l<c;)i[o++]=s[l++]}else n||(i[o++]=s)}return i};x.flatten=function(t,e){return A(t,e,!1)},x.without=function(t){return x.difference(t,h.call(arguments,1))},x.uniq=x.unique=function(t,e,n,r){x.isBoolean(e)||(r=n,n=e,e=!1),null!=n&&(n=_(n,r));for(var i=[],o=[],a=0,u=C(t);a<u;a++){var s=t[a],l=n?n(s,a,t):s;e?(a&&o===l||i.push(s),o=l):n?x.contains(o,l)||(o.push(l),i.push(s)):x.contains(i,s)||i.push(s)}return i},x.union=function(){return x.uniq(A(arguments,!0,!0))},x.intersection=function(t){for(var e=[],n=arguments.length,r=0,i=C(t);r<i;r++){var o=t[r];if(!x.contains(e,o)){for(var a=1;a<n&&x.contains(arguments[a],o);a++);a===n&&e.push(o)}}return e},x.difference=function(t){var e=A(arguments,!0,!0,1);return x.filter(t,function(t){return!x.contains(e,t)})},x.zip=function(){return x.unzip(arguments)},x.unzip=function(t){for(var e=t&&x.max(t,C).length||0,n=Array(e),r=0;r<e;r++)n[r]=x.pluck(t,r);return n},x.object=function(t,e){for(var n={},r=0,i=C(t);r<i;r++)e?n[t[r]]=e[r]:n[t[r][0]]=t[r][1];return n},x.findIndex=r(1),x.findLastIndex=r(-1),x.sortedIndex=function(t,e,n,r){n=_(n,r,1);for(var i=n(e),o=0,a=C(t);o<a;){var u=Math.floor((o+a)/2);n(t[u])<i?o=u+1:a=u}return o},x.indexOf=i(1,x.findIndex,x.sortedIndex),x.lastIndexOf=i(-1,x.findLastIndex),x.range=function(t,e,n){null==e&&(e=t||0,t=0),n=n||1;for(var r=Math.max(Math.ceil((e-t)/n),0),i=Array(r),o=0;o<r;o++,t+=n)i[o]=t;return i};var N=function(t,e,n,r,i){if(!(r instanceof e))return t.apply(n,i);var o=k(t.prototype),a=t.apply(o,i);return x.isObject(a)?a:o};x.bind=function(t,e){if(y&&t.bind===y)return y.apply(t,h.call(arguments,1));if(!x.isFunction(t))throw new TypeError("Bind must be called on a function");var n=h.call(arguments,2),r=function(){return N(t,r,e,this,n.concat(h.call(arguments)))};return r},x.partial=function(t){var e=h.call(arguments,1),n=function(){for(var r=0,i=e.length,o=Array(i),a=0;a<i;a++)o[a]=e[a]===x?arguments[r++]:e[a];for(;r<arguments.length;)o.push(arguments[r++]);return N(t,n,this,this,o)};return n},x.bindAll=function(t){var e,n,r=arguments.length;if(r<=1)throw new Error("bindAll must be passed function names");for(e=1;e<r;e++)n=arguments[e],t[n]=x.bind(t[n],t);return t},x.memoize=function(t,e){var n=function(r){var i=n.cache,o=""+(e?e.apply(this,arguments):r);return x.has(i,o)||(i[o]=t.apply(this,arguments)),i[o]};return n.cache={},n},x.delay=function(t,e){var n=h.call(arguments,2);return setTimeout(function(){return t.apply(null,n)},e)},x.defer=x.partial(x.delay,x,1),x.throttle=function(t,e,n){var r,i,o,a=null,u=0;n||(n={});var s=function(){u=n.leading===!1?0:x.now(),a=null,o=t.apply(r,i),a||(r=i=null)};return function(){var l=x.now();u||n.leading!==!1||(u=l);var c=e-(l-u);return r=this,i=arguments,c<=0||c>e?(a&&(clearTimeout(a),a=null),u=l,o=t.apply(r,i),a||(r=i=null)):a||n.trailing===!1||(a=setTimeout(s,c)),o}},x.debounce=function(t,e,n){var r,i,o,a,u,s=function(){var l=x.now()-a;l<e&&l>=0?r=setTimeout(s,e-l):(r=null,n||(u=t.apply(o,i),r||(o=i=null)))};return function(){o=this,i=arguments,a=x.now();var l=n&&!r;return r||(r=setTimeout(s,e)),l&&(u=t.apply(o,i),o=i=null),u}},x.wrap=function(t,e){return x.partial(e,t)},x.negate=function(t){return function(){return!t.apply(this,arguments)}},x.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}},x.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},x.before=function(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}},x.once=x.partial(x.before,2);var O=!{toString:null}.propertyIsEnumerable("toString"),q=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];x.keys=function(t){if(!x.isObject(t))return[];if(g)return g(t);var e=[];for(var n in t)x.has(t,n)&&e.push(n);return O&&o(t,e),e},x.allKeys=function(t){if(!x.isObject(t))return[];var e=[];for(var n in t)e.push(n);return O&&o(t,e),e},x.values=function(t){for(var e=x.keys(t),n=e.length,r=Array(n),i=0;i<n;i++)r[i]=t[e[i]];return r},x.mapObject=function(t,e,n){e=_(e,n);for(var r,i=x.keys(t),o=i.length,a={},u=0;u<o;u++)r=i[u],a[r]=e(t[r],r,t);return a},x.pairs=function(t){for(var e=x.keys(t),n=e.length,r=Array(n),i=0;i<n;i++)r[i]=[e[i],t[e[i]]];return r},x.invert=function(t){for(var e={},n=x.keys(t),r=0,i=n.length;r<i;r++)e[t[n[r]]]=n[r];return e},x.functions=x.methods=function(t){var e=[];for(var n in t)x.isFunction(t[n])&&e.push(n);return e.sort()},x.extend=M(x.allKeys),x.extendOwn=x.assign=M(x.keys),x.findKey=function(t,e,n){e=_(e,n);for(var r,i=x.keys(t),o=0,a=i.length;o<a;o++)if(r=i[o],e(t[r],r,t))return r},x.pick=function(t,e,n){var r,i,o={},a=t;if(null==a)return o;x.isFunction(e)?(i=x.allKeys(a),r=w(e,n)):(i=A(arguments,!1,!1,1),r=function(t,e,n){return e in n},a=Object(a));for(var u=0,s=i.length;u<s;u++){var l=i[u],c=a[l];r(c,l,a)&&(o[l]=c)}return o},x.omit=function(t,e,n){if(x.isFunction(e))e=x.negate(e);else{var r=x.map(A(arguments,!1,!1,1),String);e=function(t,e){return!x.contains(r,e)}}return x.pick(t,e,n)},x.defaults=M(x.allKeys,!0),x.create=function(t,e){var n=k(t);return e&&x.extendOwn(n,e),n},x.clone=function(t){return x.isObject(t)?x.isArray(t)?t.slice():x.extend({},t):t},x.tap=function(t,e){return e(t),t},x.isMatch=function(t,e){var n=x.keys(e),r=n.length;if(null==t)return!r;for(var i=Object(t),o=0;o<r;o++){var a=n[o];if(e[a]!==i[a]||!(a in i))return!1}return!0};var D=function(t,e,n,r){if(t===e)return 0!==t||1/t===1/e;if(null==t||null==e)return t===e;t instanceof x&&(t=t._wrapped),e instanceof x&&(e=e._wrapped);var i=p.call(t);if(i!==p.call(e))return!1;switch(i){case"[object RegExp]":case"[object String]":return""+t==""+e;case"[object Number]":return+t!==+t?+e!==+e:0===+t?1/+t===1/e:+t===+e;case"[object Date]":case"[object Boolean]":return+t===+e}var o="[object Array]"===i;if(!o){if("object"!=typeof t||"object"!=typeof e)return!1;var a=t.constructor,u=e.constructor;if(a!==u&&!(x.isFunction(a)&&a instanceof a&&x.isFunction(u)&&u instanceof u)&&"constructor"in t&&"constructor"in e)return!1}n=n||[],r=r||[];for(var s=n.length;s--;)if(n[s]===t)return r[s]===e;if(n.push(t),r.push(e),o){if(s=t.length,s!==e.length)return!1;for(;s--;)if(!D(t[s],e[s],n,r))return!1}else{var l,c=x.keys(t);if(s=c.length,x.keys(e).length!==s)return!1;for(;s--;)if(l=c[s],!x.has(e,l)||!D(t[l],e[l],n,r))return!1}return n.pop(),r.pop(),!0};x.isEqual=function(t,e){return D(t,e)},x.isEmpty=function(t){return null==t||(S(t)&&(x.isArray(t)||x.isString(t)||x.isArguments(t))?0===t.length:0===x.keys(t).length)},x.isElement=function(t){return!(!t||1!==t.nodeType)},x.isArray=v||function(t){return"[object Array]"===p.call(t)},x.isObject=function(t){var e=typeof t;return"function"===e||"object"===e&&!!t},x.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(t){x["is"+t]=function(e){return p.call(e)==="[object "+t+"]"}}),x.isArguments(arguments)||(x.isArguments=function(t){return x.has(t,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(x.isFunction=function(t){return"function"==typeof t||!1}),x.isFinite=function(t){return isFinite(t)&&!isNaN(parseFloat(t))},x.isNaN=function(t){return x.isNumber(t)&&t!==+t},x.isBoolean=function(t){return t===!0||t===!1||"[object Boolean]"===p.call(t)},x.isNull=function(t){return null===t},x.isUndefined=function(t){return void 0===t},x.has=function(t,e){return null!=t&&d.call(t,e)},x.noConflict=function(){return a._=u,this},x.identity=function(t){return t},x.constant=function(t){return function(){return t}},x.noop=function(){},x.property=E,x.propertyOf=function(t){return null==t?function(){}:function(e){return t[e]}},x.matcher=x.matches=function(t){return t=x.extendOwn({},t),function(e){return x.isMatch(e,t)}},x.times=function(t,e,n){var r=Array(Math.max(0,t));e=w(e,n,1);for(var i=0;i<t;i++)r[i]=e(i);return r},x.random=function(t,e){return null==e&&(e=t,t=0),t+Math.floor(Math.random()*(e-t+1))},x.now=Date.now||function(){return(new Date).getTime()};var L={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},F=x.invert(L),z=function(t){var e=function(e){return t[e]},n="(?:"+x.keys(t).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(t){return t=null==t?"":""+t,r.test(t)?t.replace(i,e):t}};x.escape=z(L),x.unescape=z(F),x.result=function(t,e,n){var r=null==t?void 0:t[e];return void 0===r&&(r=n),x.isFunction(r)?r.call(t):r};var R=0;x.uniqueId=function(t){var e=++R+"";return t?t+e:e},x.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var P=/(.)^/,I={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},H=/\\|'|\r|\n|\u2028|\u2029/g,$=function(t){return"\\"+I[t]};x.template=function(t,e,n){!e&&n&&(e=n),e=x.defaults({},e,x.templateSettings);var r=RegExp([(e.escape||P).source,(e.interpolate||P).source,(e.evaluate||P).source].join("|")+"|$","g"),i=0,o="__p+='";t.replace(r,function(e,n,r,a,u){return o+=t.slice(i,u).replace(H,$),i=u+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),e}),o+="';\n",e.variable||(o="with(obj||{}){\n"+o+"}\n"),o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{var a=new Function(e.variable||"obj","_",o)}catch(u){throw u.source=o,u}var s=function(data){return a.call(this,data,x)},l=e.variable||"obj";return s.source="function("+l+"){\n"+o+"}",s},x.chain=function(t){var e=x(t);return e._chain=!0,e};var B=function(t,e){return t._chain?x(e).chain():e};x.mixin=function(t){x.each(x.functions(t),function(e){ +var n=x[e]=t[e];x.prototype[e]=function(){var t=[this._wrapped];return f.apply(t,arguments),B(this,n.apply(x,t))}})},x.mixin(x),x.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=s[t];x.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],B(this,n)}}),x.each(["concat","join","slice"],function(t){var e=s[t];x.prototype[t]=function(){return B(this,e.apply(this._wrapped,arguments))}}),x.prototype.value=function(){return this._wrapped},x.prototype.valueOf=x.prototype.toJSON=x.prototype.value,x.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return x})}).call(this)},{}],109:[function(t,e,n){var r=t("ampersand-view"),i=t("./sidebar"),o=t("./chart"),a=t("jquery");t("debug")("view:app"),e.exports=r.extend({template:t("./templates/app.jade"),props:{chartView:"object",menuOpen:{type:"boolean","default":!1}},events:{"click .navbar-right label":"navButtonClicked","click [data-hook=menu-toggle]":"menuToggled"},bindings:{"model.chart.subSampled":{type:"toggle",hook:"sample-warning"},menuOpen:{type:"booleanClass",selector:"#wrapper",name:"active"}},subviews:{sidebar:{hook:"sidebar",waitFor:"model.sidebar",prepareView:function(t){return new i({el:t,model:this.model.sidebar})}},chart:{hook:"chart",waitFor:"model.chart",prepareView:function(t){return this.chartView=new o({el:t,model:this.model.chart}),this.chartView}}},statChanged:function(t,e){this.model.chart.recalcXDomain=!0,this.chartView.render()},render:function(){this.renderWithTemplate(this.model)},navButtonClicked:function(t){var e=a(t.target).find("input"),n=e.attr("name"),r=e.val();this.model.chart[n]=r,this.model.chart.recalcXDomain="xSetting"===n,this.chartView.render()},menuToggled:function(t){this.toggle("menuOpen")}})},{"./chart":110,"./sidebar":113,"./templates/app.jade":115,"ampersand-view":19,debug:33,jquery:40}],110:[function(t,e,n){var r=t("ampersand-view"),i=t("./viz"),o=t("./empty");t("d3"),t("jquery"),t("debug")("view:chart"),e.exports=r.extend({props:{vizView:{type:"any","default":null},emptyView:{type:"any","default":null},activeView:{type:"string","default":"empty",values:["empty","viz"]}},template:t("./templates/chart.jade"),bindings:{activeView:{type:"switch",cases:{empty:"[data-hook=empty]",viz:"[data-hook=graph]"}}},render:function(){this.activeView=this.model.empty?"empty":"viz",this.vizView?(this.vizView.data={series:this.model.series.filter(function(t){return t.selected}),model:this.model},this.vizView.redraw()):(this.renderWithTemplate(this.model),this.vizView=new i({width:"auto",height:600,renderMode:"svg",className:"multiline",debounceRender:!1,vizFn:t("./viz/d3-multiline"),data:{series:this.model.series.filter(function(t){return t.selected}),model:this.model}}),this.emptyView=new o,this.renderSubview(this.emptyView,"[data-hook=empty]"),this.renderSubview(this.vizView,"[data-hook=graph]"))}})},{"./empty":111,"./templates/chart.jade":116,"./viz":121,"./viz/d3-multiline":122,"ampersand-view":19,d3:32,debug:33,jquery:40}],111:[function(t,e,n){var r=t("ampersand-view");t("debug")("view:empty"),e.exports=r.extend({template:t("./templates/empty.jade"),autorender:!0})},{"./templates/empty.jade":117,"ampersand-view":19,debug:33}],112:[function(t,e,n){var r=t("ampersand-view"),i=t("ampersand-subcollection"),o=t("./stat"),a=t("jquery");t("lodash"),t("debug")("view:panel"),e.exports=r.extend({props:{indicator:{type:"string","default":"none",values:["none","some","all"]},statViews:"object",filteredStats:"object"},template:t("./templates/panel.jade"),events:{"click a":"collapsibleToggle","click [data-hook=caret]":"collapsibleToggle","click [data-hook=indicator]":"indicatorClicked"},bindings:{indicator:{type:function(t,e,n){switch($el=a(t),$el.removeClass(),this.model.selected){case"all":$el.addClass("fa fa-circle");break;case"some":$el.addClass("fa fa-adjust");break;case"none":$el.addClass("fa fa-circle-o")}},hook:"indicator"},"model.open":{type:"booleanClass",hook:"caret",yes:"fa-caret-up",no:"fa-caret-down"}},initialize:function(){this.filteredStats=new i(this.model.stats,{comparator:function(t){return t.name}})},render:function(){this.renderWithTemplate(this.model),this.statViews=this.renderCollection(this.filteredStats,o,this.queryByHook("stats"))},indicatorClicked:function(t){var e="all"!==this.model.selected;switch(this.filteredStats.each(function(t){t.selected=e}),this.model.selected){case"all":case"some":this.collapsibleOpen();break;case"none":this.collapsibleClose()}this.model.app.clearSelectionState(),this.statChanged(null,{propagate:!0})},statChanged:function(t,e){e=e||{},this.indicator=this.model.selected,e.propagate&&this.parent.parent.statChanged(t,e)},collapsibleToggle:function(t){this.model.open?this.collapsibleClose(t):this.collapsibleOpen(t)},collapsibleClose:function(t){a(this.query(".collapse")).collapse("hide"),this.model.open=!1},collapsibleOpen:function(t){a(this.query(".collapse")).collapse("show"),this.model.open=!0},resetStats:function(){this.filteredStats.configure({},!0)},filterStats:function(t){this.filteredStats.configure({filter:function(e){return e.name.search(new RegExp(t),"gi")!==-1}},!0),0===this.filteredStats.length?this.collapsibleClose():this.collapsibleOpen()}})},{"./stat":114,"./templates/panel.jade":118,"ampersand-subcollection":18,"ampersand-view":19,debug:33,jquery:40,lodash:105}],113:[function(t,e,n){var r=t("ampersand-view"),i=t("./panel"),o=t("lodash");t("debug")("view:sidebar"),e.exports=r.extend({props:{panelViews:"object"},template:t("./templates/sidebar.jade"),events:{"click [data-hook=button]":"clearClicked","input [data-hook=input]":"inputChanged"},bindings:{"model.search.content":{type:"value",hook:"input"}},render:function(){this.renderWithTemplate(this.model),this.panelViews=this.renderCollection(this.model.panels,i,this.queryByHook("panels"))},closeAndReset:function(){o.each(this.panelViews.views,function(t){t.collapsibleClose(),t.resetStats()})},clearClicked:function(){this.model.search.content="",this.closeAndReset(),this.queryByHook("button").blur()},filterPanels:function(t){o.each(this.panelViews.views,function(e){e.filterStats(t)})},statChanged:function(t,e){this.parent.statChanged(t,e),e.all&&o.each(this.panelViews.views,function(e){e.statChanged(t,{all:!1,propagate:!1})})},inputChanged:o.debounce(function(){var t=this.queryByHook("input").value;this.model.search.content=t,""===t.trim()?this.closeAndReset():this.filterPanels(t)},200,{leading:!1,trailing:!0})})},{"./panel":112,"./templates/sidebar.jade":119,"ampersand-view":19,debug:33,lodash:105}],114:[function(t,e,n){var r=t("ampersand-view");t("debug")("view:stat"),e.exports=r.extend({template:t("./templates/stat.jade"),render:function(){this.renderWithTemplate(this.model)},events:{click:"clicked"},bindings:{"model.selected":{type:"booleanClass",hook:"circle",yes:"fa-circle",no:"fa-circle-o"}},clicked:function(t){t.shiftKey?this.model.app.toggleAllExcept(this.model):(this.model.app.clearSelectionState(),this.model.toggle("selected")),this.parent.parent.statChanged(this,{all:t.shiftKey,propagate:!0})}})},{"./templates/stat.jade":120,"ampersand-view":19,debug:33}],115:[function(t,e,n){t("jade/runtime");e.exports=function(t){var e=[];return e.push('<div id="app"><nav id="navbar" role="navigation" class="navbar navbar-default"><div class="container-fluid"><div class="navbar-header"><div class="navbar-brand"> <div data-hook="menu-toggle" class="brand-image"></div></div></div><ul class="nav navbar-right"><li data-hook="sample-warning" class="navbar-text"><div title="warning: more series data points than pixels. data is being sub-sampled to improve performance. To avoid sub-sampling, increase the browser window width or zoom in." class="alert alert-warning"><i id="menubtn" class="fa fa-warning"></i><span>sub-sampling</span></div></li><li class="navbar-text"><i id="menubtn" class="fa fa-clock-o"></i><span>x-axis</span><div data-toggle="buttons" data-hook="xSetting" class="btn-group"><label class="btn btn-default active"><input type="radio" name="xSetting" id="relative" value="relative" checked="checked"/>relative</label><label class="btn btn-default"><input type="radio" name="xSetting" id="absolute" value="absolute"/>absolute</label></div></li><li class="navbar-text"><i id="menubtn" class="fa fa-line-chart"></i><span>y-axis</span><div data-toggle="buttons" data-hook="ySetting" class="btn-group"><label class="btn btn-default active"><input type="radio" name="ySetting" value="linear" checked="checked"/>linear</label><label class="btn btn-default"><input type="radio" name="ySetting" value="log-scale"/>log-scale</label></div></li></ul></div></nav><div id="wrapper"><div id="sidebar-wrapper"><div class="sidebar-nav"><div data-hook="sidebar"></div></div></div><div class="container-fluid"><div class="row"><div class="col-md-12"><div data-hook="chart"></div></div></div></div></div></div>'),e.join("")}},{"jade/runtime":39}],116:[function(t,e,n){t("jade/runtime");e.exports=function(t){var e=[];return e.push('<div><div class="container-fluid"><div class="row"><div class="col-md-12"><div data-hook="empty"></div><div data-hook="graph"></div></div></div></div></div>'),e.join("")}},{"jade/runtime":39}],117:[function(t,e,n){t("jade/runtime");e.exports=function(t){var e=[];return e.push('<div class="instructions"><dl class="dl-horizontal"><dt><h1><span class="searchbox">mem| </span><i class="fa fa-search"></i></h1></dt><dd>filter stats by typing in the text box</dd><dt><h1> <u>cursor</u><i class="fa fa-caret-down"></i></h1></dt><dd>open/close group panels</dd><dt><h1><i class="fa fa-circle-o"></i><i class="fa fa-adjust"> </i><i class="fa fa-circle"> </i></h1></dt><dd>click to toggle individual stats or the entire group</dd><dt><h1><i class="fa fa-expand"></i><i class="fa fa-arrows-h"> </i><i class="fa fa-compress"> </i></h1></dt><dd>zoom with two-finger scroll or mouse wheel, pan with click+drag</dd><dt><h1>x<i class="fa fa-clock-o"></i>y<i class="fa fa-line-chart"> </i></h1></dt><dd>change x/y axis scaling with buttons at the top</dd></dl></div>'),e.join("")}},{"jade/runtime":39}],118:[function(t,e,n){var r=t("jade/runtime");e.exports=function(t){var e,n=[],i=t||{};return function(t,i){n.push('<div class="panel panel-default"><div class="panel-heading">'),i&&n.push('<span class="suptitle">'+r.escape(null==(e=i)?"":e)+"</span>"),n.push('<h4 class="panel-title"><i data-hook="indicator" class="fa fa-circle-o"></i><a data-toggle="collapse" data-parent="#panel-accordion">'+r.escape(null==(e=t)?"":e)+'</a><div class="pull-right"><i data-hook="caret" class="fa"></i></div></h4></div><div class="panel-collapse collapse"><div class="panel-body"><ul data-hook="stats" class="stats"></ul></div></div></div>')}.call(this,"subtitle"in i?i.subtitle:"undefined"!=typeof subtitle?subtitle:void 0,"suptitle"in i?i.suptitle:"undefined"!=typeof suptitle?suptitle:void 0),n.join("")}},{"jade/runtime":39}],119:[function(t,e,n){t("jade/runtime");e.exports=function(t){var e=[];return e.push('<ul class="sidebar-nav"><li><div class="input-group"><input data-hook="input" type="text" class="form-control"/><span class="input-group-btn"><button data-hook="button" type="button" class="btn btn-default">Clear</button></span></div></li><li><div data-hook="panels" id="panel-accordion" class="panel-group"></div></li></ul>'),e.join("")}},{"jade/runtime":39}],120:[function(t,e,n){var r=t("jade/runtime");e.exports=function(t){var e,n=[],i=t||{};return function(t,i){n.push('<li class="stat"><i data-hook="circle"'+r.attr("style","color:"+t,!0,!1)+' class="fa fa-circle"></i>'+r.escape(null==(e=i)?"":e)+"</li>")}.call(this,"color"in i?i.color:"undefined"!=typeof color?color:void 0,"name"in i?i.name:"undefined"!=typeof name?name:void 0),n.join("")}},{"jade/runtime":39}],121:[function(t,e,n){var r=t("ampersand-view"),i=t("lodash"),o=t("jquery");t("debug")("view:viz");e.exports=r.extend({_values:{},_autoWidth:!1,_autoHeight:!1,props:{data:"any",className:"any",vizFn:"any",debounceRender:{type:"boolean","default":!0},renderMode:{type:"string",values:["canvas","svg","html"],"default":"svg"},width:{type:"any","default":"auto"},height:{type:"any","default":400}},bindings:{width:[{type:"attribute",name:"width",hook:"viz-container"}],height:{type:"attribute",name:"height",hook:"viz-container"},className:{type:"attribute",name:"class",hook:"viz-container"}},initialize:function(t){switch("auto"!==this.width&&void 0!==this.width||(this._autoWidth=!0,this.width=0),"auto"!==this.height&&void 0!==this.height||(this._autoHeight=!0,this.height=0),(this._autoWidth||this._autoHeight)&&(this.debounceRender?window.addEventListener("resize",i.debounce(this.redraw.bind(this),100)):window.addEventListener("resize",this.redraw.bind(this))),this.renderMode){case"canvas":this.template='<canvas data-hook="viz-container" id="canvas"></canvas>';break;case"svg":this.template='<svg data-hook="viz-container"></svg>';break;case"html":this.template='<div data-hook="viz-container"></div>'}},_measure:function(){this.el&&(this._autoWidth&&(this.width=o(this.el).parent().width()),this._autoHeight&&(this.height=o(this.el).parent().height()))},_chooseDataSource:function(){void 0!==this.model?this.data=this.model.toJSON():void 0!==this.collection&&(this.data=this.collection.toJSON())},remove:function(){return window.removeEventListener("resize",this._onResize),this},transform:function(data){return data},render:function(){return this._chooseDataSource(),this.data=this.transform(this.data),this.renderWithTemplate(this),this._measure(),this.vizFn&&(this.vizFn=this.vizFn({width:this.width,height:this.height,data:this.data,el:this.el})),this},redraw:function(){this._chooseDataSource(),this.data=this.transform(this.data),this._measure(),this.vizFn&&this.vizFn({width:this.width,height:this.height,data:this.data,el:this.el})}}),e.exports.create=function(t,n){return e.exports.extend({className:t,vizFn:n})}},{"ampersand-view":19,debug:33,jquery:40,lodash:105}],122:[function(t,e,n){var r=t("d3"),i=t("lodash");t("debug")("viz:d3-multiline");r.selection.prototype.moveToFront=function(){return this.each(function(){this.parentNode.appendChild(this)})},e.exports=function(t){function e(e){if(e){if(t=e,f=t.width-c.left-c.right,h=t.height-c.top-c.bottom,data=t.data,d=data.model,v=d.serialize(),F=data.series,0===F.length?S.style("visibility","hidden"):S.style("visibility","visible"),S.attr({width:f,height:h}),"relative"===v.xSetting?(g=function(t){return t.xrel},x=m,w.tickFormat(r.format(","))):(g=function(t){return t.x},x=y,w.tickFormat(b)),x.range([0,f]),(i.isEqual(x.domain(),[0,1])||i.isEqual(x.domain(),[new Date(0),new Date(1)])||v.recalcXDomain)&&(z=[r.min(F,function(t){return r.min(t.data,function(t){return g(t)})}),r.max(F,function(t){return r.max(t.data,function(t){return g(t)})})],x.domain(z),C.x(x)),F.length>0){var n=i.find(F,function(t){return t.data.length>1}).data;L=n?x(g(n[1]))-x(g(n[0])):1}else L=1;d.subSampled=v.allowSampling&&L<1,"linear"===v.ySetting?(k=_,k.domain([r.min(F,function(t){return r.min(t.data,function(t){return t.y})}),r.max(F,function(t){return r.max(t.data,function(t){return t.y})})])):(k=M,k.domain([.1,r.max(F,function(t){return r.max(t.data,function(t){return t.y})})])),k.range([h,0])}S.selectAll(".x").call(w.scale(x)),S.selectAll(".y").call(E.scale(k)),q=S.selectAll(".serie").data(F,function(t){return t.cid}),q.enter().append("g").attr("class","serie").append("path").attr("class","line").style("stroke",function(t){return t.color}),q.exit().remove(),q.selectAll(".line").attr("d",function(t){return j(g)(o(t.data))}),L>6?(D=q.selectAll(".point").data(function(t){return o(t.data).map(function(e){return{x:g(e),y:e.y,c:t.color}})}),D.enter().append("circle").attr("class","point").attr("r","3px").style("fill",function(t){return t.c}),D.exit().remove(),D.attr("cx",function(t){return x(t.x)}).attr("cy",function(t){return k(t.y)})):q.selectAll(".point").remove(),T.attr("x2",f),A.attr("y2",h+20),R.attr("width",f).attr("height",h).moveToFront()}function n(data){var t=x.domain(),e=s(g)(data,t[0]),n=s(g)(data,t[1]);return data.slice(e,n)}function o(data){data=n(data);var t=1/L;return v.allowSampling&&t>1?data.filter(function(e,n){return n%Math.ceil(t)===0}):data}function a(t,e){var n=o(e.data),r=x.invert(t),i=s(g)(n,r),a=n[i-1],u=n[i];return void 0===a?u:void 0===u?a:r-g(a)>g(u)-r?u:a}function u(){var t=r.mouse(this),e=t[0],n=t[1],i=F.map(function(t){return a(e,t)}),o=i.map(function(t){return t?Math.pow(e-x(g(t)),2)+Math.pow(n-k(t.y),2):1/0}),u=o.indexOf(Math.min.apply(Math,o)),s=F[u],l=i[u];N.attr("transform","translate("+x(g(l))+","+k(l.y)+")").moveToFront(),N.select("circle").attr("stroke",s.color),N.select("text.name").text(s.name),N.select("text.value").text(r.format(",")(l.y)),O.attr("transform","translate("+x(g(l))+","+(h+34)+")").text("relative"===v.xSetting?r.format(",")(g(l)):r.time.format("%b %d %H:%M:%S")(g(l))).moveToFront(),T.attr("y1",k(l.y)).attr("y2",k(l.y)),A.attr("x1",x(g(l))).attr("x2",x(g(l)))}function s(t){return r.bisector(function(e){return t(e)}).left}function l(){d.recalcXDomain=!1,e(t)}var c={top:80,right:20,bottom:60,left:100},f=t.width-c.left-c.right,h=t.height-c.top-c.bottom,data=t.data,p=t.el,d=data.model,v=d.serialize(),g=function(t){return t.x},y=r.time.scale(),m=r.scale.linear(),b=r.time.format.multi([[".%L",function(t){return t.getMilliseconds()}],[":%S",function(t){return t.getSeconds()}],["%b %e %H:%M",function(t){return t.getMinutes()}],["%b %e %H:%M",function(t){return t.getHours()}],["%b %e",function(t){return t.getDay()&&1!=t.getDate()}],["%b %e",function(t){return 1!=t.getDate()}],["%Y",function(t){return t.getMonth()}],["%Y",function(){return!0}]]),x="relative"===v.xSetting?m:y,w=r.svg.axis().scale(x).ticks(10).orient("bottom"),_=r.scale.linear().range([h,0]),M=r.scale.log().clamp(!0).range([h,0]).nice(),k="linear"===v.ySetting?_:M,E=r.svg.axis().scale(k).orient("left"),j=function(t){return r.svg.line().x(function(e){return x(t(e))}).y(function(t){return k(t.y)})},C=r.behavior.zoom().scaleExtent([1,50]).x(x).on("zoom",l),S=r.select(p).append("g").attr("transform","translate("+c.left+","+c.top+")").call(C);S.append("g").attr("class","x axis").attr("transform","translate(0,"+h+")"),S.append("g").attr("class","y axis");var T=S.append("line").style("stroke","#ddd").style("display","none").attr("class","x cross").attr("x1",0),A=S.append("line").style("stroke","#ddd").style("display","none").attr("class","x cross").attr("y1",0),N=S.append("g").attr("class","focus").style("display","none");N.append("circle").attr("r",6).attr("fill","none").attr("stroke-width",2);var O=S.append("text").attr("text-anchor","middle").attr("class","xlabel").attr("font-size","0.8em").attr("fill","#bbb");N.append("text").attr("class","name").attr("fill","black").attr("x",9).attr("dy","-.8em"),N.append("text").attr("class","value").attr("fill","black").attr("font-size","20px").attr("x",8).attr("dy","-1.2em");var q,D,L,F,z,R=S.append("rect").attr("class","windshield").style("opacity",0).on("mouseover",function(){T.style("display",null),A.style("display",null),N.style("display",null),O.style("display",null)}).on("mouseout",function(){N.style("display","none"),T.style("display","none"),A.style("display","none"),O.style("display","none")}).on("mousemove",u);return e}},{d3:32,debug:33,lodash:105}]},{},[1]); }).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{}]},{},[1])</script></html>
\ No newline at end of file |