From f10d9f51df5fd0a0310344cac6203aa355f82243 Mon Sep 17 00:00:00 2001 From: Shyue Ping Ong Date: Fri, 28 May 2021 08:26:44 -0700 Subject: [PATCH] Update dev docs --- docs/_modules/index.html | 10 +- .../pymatgen/db/alchemy/transmuters.html | 10 +- docs/_modules/pymatgen/db/builders/core.html | 10 +- .../db/builders/examples/copy_builder.html | 10 +- .../db/builders/examples/file_builders.html | 10 +- .../builders/examples/maxvalue_builder.html | 10 +- docs/_modules/pymatgen/db/builders/incr.html | 10 +- .../_modules/pymatgen/db/builders/schema.html | 10 +- docs/_modules/pymatgen/db/builders/util.html | 10 +- docs/_modules/pymatgen/db/creator.html | 10 +- docs/_modules/pymatgen/db/dbconfig.html | 10 +- docs/_modules/pymatgen/db/dbgroup.html | 10 +- docs/_modules/pymatgen/db/query_engine.html | 10 +- docs/_modules/pymatgen/db/util.html | 10 +- docs/_modules/pymatgen/db/vv/diff.html | 10 +- docs/_modules/pymatgen/db/vv/report.html | 10 +- docs/_modules/pymatgen/db/vv/util.html | 10 +- docs/_modules/pymatgen/db/vv/validate.html | 10 +- docs/_static/basic.css | 83 +- docs/_static/documentation_options.js | 2 +- docs/_static/searchtools.js | 2 +- docs/_static/underscore-1.13.1.js | 2042 +++++++++++++++++ docs/_static/underscore.js | 8 +- docs/_themes/README.html | 17 +- docs/builders.html | 69 +- docs/change_log.html | 77 +- docs/dbconfig.html | 17 +- docs/doctrees/_themes/README.doctree | Bin 5679 -> 5788 bytes docs/doctrees/builders.doctree | Bin 101873 -> 103227 bytes docs/doctrees/change_log.doctree | Bin 18496 -> 19015 bytes docs/doctrees/dbconfig.doctree | Bin 8008 -> 8204 bytes docs/doctrees/environment.pickle | Bin 349677 -> 350203 bytes docs/doctrees/index.doctree | Bin 39653 -> 40049 bytes docs/doctrees/mgvv.doctree | Bin 99315 -> 102316 bytes docs/doctrees/modules.doctree | Bin 2592 -> 2638 bytes docs/doctrees/pymatgen.db.alchemy.doctree | Bin 13183 -> 13823 bytes docs/doctrees/pymatgen.db.builders.doctree | Bin 264719 -> 280839 bytes .../pymatgen.db.builders.examples.doctree | Bin 53905 -> 56966 bytes docs/doctrees/pymatgen.db.doctree | Bin 266396 -> 280772 bytes docs/doctrees/pymatgen.db.vv.doctree | Bin 321231 -> 339757 bytes docs/doctrees/pymatgen.doctree | Bin 2867 -> 2913 bytes docs/genindex.html | 84 +- docs/index.html | 77 +- docs/mgvv.html | 161 +- docs/modules.html | 17 +- docs/objects.inv | Bin 3701 -> 3737 bytes docs/py-modindex.html | 10 +- docs/pymatgen.db.alchemy.html | 37 +- docs/pymatgen.db.builders.examples.html | 85 +- docs/pymatgen.db.builders.html | 441 ++-- docs/pymatgen.db.html | 415 ++-- docs/pymatgen.db.vv.html | 585 ++--- docs/pymatgen.html | 21 +- docs/search.html | 18 +- docs/searchindex.js | 2 +- pymatgen/db/__init__.py | 2 +- setup.py | 4 +- 57 files changed, 3279 insertions(+), 1177 deletions(-) create mode 100644 docs/_static/underscore-1.13.1.js diff --git a/docs/_modules/index.html b/docs/_modules/index.html index 259d8b2..9d36d9a 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -5,10 +5,10 @@ - Overview: module code — pymatgen-db 2021.5.13 documentation - - - + Overview: module code — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/alchemy/transmuters.html b/docs/_modules/pymatgen/db/alchemy/transmuters.html index 462b145..3005faf 100644 --- a/docs/_modules/pymatgen/db/alchemy/transmuters.html +++ b/docs/_modules/pymatgen/db/alchemy/transmuters.html @@ -5,10 +5,10 @@ - pymatgen.db.alchemy.transmuters — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.alchemy.transmuters — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/builders/core.html b/docs/_modules/pymatgen/db/builders/core.html index 2b3b48c..88c7d7e 100644 --- a/docs/_modules/pymatgen/db/builders/core.html +++ b/docs/_modules/pymatgen/db/builders/core.html @@ -5,10 +5,10 @@ - pymatgen.db.builders.core — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.builders.core — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/builders/examples/copy_builder.html b/docs/_modules/pymatgen/db/builders/examples/copy_builder.html index cc19dd4..97b794e 100644 --- a/docs/_modules/pymatgen/db/builders/examples/copy_builder.html +++ b/docs/_modules/pymatgen/db/builders/examples/copy_builder.html @@ -5,10 +5,10 @@ - pymatgen.db.builders.examples.copy_builder — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.builders.examples.copy_builder — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/builders/examples/file_builders.html b/docs/_modules/pymatgen/db/builders/examples/file_builders.html index 76e988a..49ab0e5 100644 --- a/docs/_modules/pymatgen/db/builders/examples/file_builders.html +++ b/docs/_modules/pymatgen/db/builders/examples/file_builders.html @@ -5,10 +5,10 @@ - pymatgen.db.builders.examples.file_builders — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.builders.examples.file_builders — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/builders/examples/maxvalue_builder.html b/docs/_modules/pymatgen/db/builders/examples/maxvalue_builder.html index 82edfa7..353762b 100644 --- a/docs/_modules/pymatgen/db/builders/examples/maxvalue_builder.html +++ b/docs/_modules/pymatgen/db/builders/examples/maxvalue_builder.html @@ -5,10 +5,10 @@ - pymatgen.db.builders.examples.maxvalue_builder — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.builders.examples.maxvalue_builder — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/builders/incr.html b/docs/_modules/pymatgen/db/builders/incr.html index bb51874..3c6e974 100644 --- a/docs/_modules/pymatgen/db/builders/incr.html +++ b/docs/_modules/pymatgen/db/builders/incr.html @@ -5,10 +5,10 @@ - pymatgen.db.builders.incr — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.builders.incr — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/builders/schema.html b/docs/_modules/pymatgen/db/builders/schema.html index 5501aeb..3751938 100644 --- a/docs/_modules/pymatgen/db/builders/schema.html +++ b/docs/_modules/pymatgen/db/builders/schema.html @@ -5,10 +5,10 @@ - pymatgen.db.builders.schema — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.builders.schema — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/builders/util.html b/docs/_modules/pymatgen/db/builders/util.html index 2d746f0..d6d1a61 100644 --- a/docs/_modules/pymatgen/db/builders/util.html +++ b/docs/_modules/pymatgen/db/builders/util.html @@ -5,10 +5,10 @@ - pymatgen.db.builders.util — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.builders.util — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/creator.html b/docs/_modules/pymatgen/db/creator.html index 9cad3d8..6449ab2 100644 --- a/docs/_modules/pymatgen/db/creator.html +++ b/docs/_modules/pymatgen/db/creator.html @@ -5,10 +5,10 @@ - pymatgen.db.creator — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.creator — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/dbconfig.html b/docs/_modules/pymatgen/db/dbconfig.html index 8eaa4a0..4ab8fd5 100644 --- a/docs/_modules/pymatgen/db/dbconfig.html +++ b/docs/_modules/pymatgen/db/dbconfig.html @@ -5,10 +5,10 @@ - pymatgen.db.dbconfig — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.dbconfig — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/dbgroup.html b/docs/_modules/pymatgen/db/dbgroup.html index 93d1c52..10493a0 100644 --- a/docs/_modules/pymatgen/db/dbgroup.html +++ b/docs/_modules/pymatgen/db/dbgroup.html @@ -5,10 +5,10 @@ - pymatgen.db.dbgroup — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.dbgroup — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/query_engine.html b/docs/_modules/pymatgen/db/query_engine.html index aab6074..b3ac246 100644 --- a/docs/_modules/pymatgen/db/query_engine.html +++ b/docs/_modules/pymatgen/db/query_engine.html @@ -5,10 +5,10 @@ - pymatgen.db.query_engine — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.query_engine — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/util.html b/docs/_modules/pymatgen/db/util.html index a897b24..6d64c2c 100644 --- a/docs/_modules/pymatgen/db/util.html +++ b/docs/_modules/pymatgen/db/util.html @@ -5,10 +5,10 @@ - pymatgen.db.util — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.util — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/vv/diff.html b/docs/_modules/pymatgen/db/vv/diff.html index f4634d5..b5c1936 100644 --- a/docs/_modules/pymatgen/db/vv/diff.html +++ b/docs/_modules/pymatgen/db/vv/diff.html @@ -5,10 +5,10 @@ - pymatgen.db.vv.diff — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.vv.diff — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/vv/report.html b/docs/_modules/pymatgen/db/vv/report.html index bc1b321..f0c3e26 100644 --- a/docs/_modules/pymatgen/db/vv/report.html +++ b/docs/_modules/pymatgen/db/vv/report.html @@ -5,10 +5,10 @@ - pymatgen.db.vv.report — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.vv.report — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/vv/util.html b/docs/_modules/pymatgen/db/vv/util.html index ea9db0d..f6620c5 100644 --- a/docs/_modules/pymatgen/db/vv/util.html +++ b/docs/_modules/pymatgen/db/vv/util.html @@ -5,10 +5,10 @@ - pymatgen.db.vv.util — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.vv.util — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_modules/pymatgen/db/vv/validate.html b/docs/_modules/pymatgen/db/vv/validate.html index 3c4eb8c..d613db4 100644 --- a/docs/_modules/pymatgen/db/vv/validate.html +++ b/docs/_modules/pymatgen/db/vv/validate.html @@ -5,10 +5,10 @@ - pymatgen.db.vv.validate — pymatgen-db 2021.5.13 documentation - - - + pymatgen.db.vv.validate — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

  • modules |
  • - + diff --git a/docs/_static/basic.css b/docs/_static/basic.css index b3bdc00..aa9df31 100644 --- a/docs/_static/basic.css +++ b/docs/_static/basic.css @@ -130,7 +130,7 @@ ul.search li a { font-weight: bold; } -ul.search li div.context { +ul.search li p.context { color: #888; margin: 2px 0 0 30px; text-align: left; @@ -508,6 +508,63 @@ table.hlist td { vertical-align: top; } +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + /* -- other body styles ----------------------------------------------------- */ @@ -634,14 +691,6 @@ dl.glossary dt { font-size: 1.1em; } -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - .versionmodified { font-style: italic; } @@ -771,7 +820,11 @@ div.code-block-caption code { table.highlighttable td.linenos, span.linenos, div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ } div.code-block-caption span.caption-number { @@ -786,16 +839,6 @@ div.literal-block-wrapper { margin: 1em 0; } -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; -} - code.xref, a code { background-color: transparent; font-weight: bold; diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 74933d9..788a7d1 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '2021.5.13', + VERSION: '2021.5.28', LANGUAGE: 'None', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/_static/searchtools.js b/docs/_static/searchtools.js index 1a90152..e09f926 100644 --- a/docs/_static/searchtools.js +++ b/docs/_static/searchtools.js @@ -509,7 +509,7 @@ var Search = { var excerpt = ((start > 0) ? '...' : '') + $.trim(text.substr(start, 240)) + ((start + 240 - text.length) ? '...' : ''); - var rv = $('
    ').text(excerpt); + var rv = $('

    ').text(excerpt); $.each(hlwords, function() { rv = rv.highlightText(this, 'highlighted'); }); diff --git a/docs/_static/underscore-1.13.1.js b/docs/_static/underscore-1.13.1.js new file mode 100644 index 0000000..ffd77af --- /dev/null +++ b/docs/_static/underscore-1.13.1.js @@ -0,0 +1,2042 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define('underscore', factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (function () { + var current = global._; + var exports = global._ = factory(); + exports.noConflict = function () { global._ = current; return exports; }; + }())); +}(this, (function () { + // Underscore.js 1.13.1 + // https://underscorejs.org + // (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors + // Underscore may be freely distributed under the MIT license. + + // Current version. + var VERSION = '1.13.1'; + + // Establish the root object, `window` (`self`) in the browser, `global` + // on the server, or `this` in some virtual machines. We use `self` + // instead of `window` for `WebWorker` support. + var root = typeof self == 'object' && self.self === self && self || + typeof global == 'object' && global.global === global && global || + Function('return this')() || + {}; + + // Save bytes in the minified (but not gzipped) version: + var ArrayProto = Array.prototype, ObjProto = Object.prototype; + var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null; + + // Create quick reference variables for speed access to core prototypes. + var push = ArrayProto.push, + slice = ArrayProto.slice, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + + // Modern feature detection. + var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined', + supportsDataView = typeof DataView !== 'undefined'; + + // All **ECMAScript 5+** native function implementations that we hope to use + // are declared here. + var nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeCreate = Object.create, + nativeIsView = supportsArrayBuffer && ArrayBuffer.isView; + + // Create references to these builtin functions because we override them. + var _isNaN = isNaN, + _isFinite = isFinite; + + // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. + var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); + var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', + 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; + + // The largest integer that can be represented exactly. + var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; + + // Some functions take a variable number of arguments, or a few expected + // arguments at the beginning and then a variable number of values to operate + // on. This helper accumulates all remaining arguments past the function’s + // argument length (or an explicit `startIndex`), into an array that becomes + // the last argument. Similar to ES6’s "rest parameter". + function restArguments(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0), + rest = Array(length), + index = 0; + for (; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + case 2: return func.call(this, arguments[0], arguments[1], rest); + } + var args = Array(startIndex + 1); + for (index = 0; index < startIndex; index++) { + args[index] = arguments[index]; + } + args[startIndex] = rest; + return func.apply(this, args); + }; + } + + // Is a given variable an object? + function isObject(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; + } + + // Is a given value equal to null? + function isNull(obj) { + return obj === null; + } + + // Is a given variable undefined? + function isUndefined(obj) { + return obj === void 0; + } + + // Is a given value a boolean? + function isBoolean(obj) { + return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; + } + + // Is a given value a DOM element? + function isElement(obj) { + return !!(obj && obj.nodeType === 1); + } + + // Internal function for creating a `toString`-based type tester. + function tagTester(name) { + var tag = '[object ' + name + ']'; + return function(obj) { + return toString.call(obj) === tag; + }; + } + + var isString = tagTester('String'); + + var isNumber = tagTester('Number'); + + var isDate = tagTester('Date'); + + var isRegExp = tagTester('RegExp'); + + var isError = tagTester('Error'); + + var isSymbol = tagTester('Symbol'); + + var isArrayBuffer = tagTester('ArrayBuffer'); + + var isFunction = tagTester('Function'); + + // Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old + // v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236). + var nodelist = root.document && root.document.childNodes; + if (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') { + isFunction = function(obj) { + return typeof obj == 'function' || false; + }; + } + + var isFunction$1 = isFunction; + + var hasObjectTag = tagTester('Object'); + + // In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`. + // In IE 11, the most common among them, this problem also applies to + // `Map`, `WeakMap` and `Set`. + var hasStringTagBug = ( + supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8))) + ), + isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map)); + + var isDataView = tagTester('DataView'); + + // In IE 10 - Edge 13, we need a different heuristic + // to determine whether an object is a `DataView`. + function ie10IsDataView(obj) { + return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer); + } + + var isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView); + + // Is a given value an array? + // Delegates to ECMA5's native `Array.isArray`. + var isArray = nativeIsArray || tagTester('Array'); + + // Internal function to check whether `key` is an own property name of `obj`. + function has$1(obj, key) { + return obj != null && hasOwnProperty.call(obj, key); + } + + var isArguments = tagTester('Arguments'); + + // Define a fallback version of the method in browsers (ahem, IE < 9), where + // there isn't any inspectable "Arguments" type. + (function() { + if (!isArguments(arguments)) { + isArguments = function(obj) { + return has$1(obj, 'callee'); + }; + } + }()); + + var isArguments$1 = isArguments; + + // Is a given object a finite number? + function isFinite$1(obj) { + return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj)); + } + + // Is the given value `NaN`? + function isNaN$1(obj) { + return isNumber(obj) && _isNaN(obj); + } + + // Predicate-generating function. Often useful outside of Underscore. + function constant(value) { + return function() { + return value; + }; + } + + // Common internal logic for `isArrayLike` and `isBufferLike`. + function createSizePropertyCheck(getSizeProperty) { + return function(collection) { + var sizeProperty = getSizeProperty(collection); + return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX; + } + } + + // Internal helper to generate a function to obtain property `key` from `obj`. + function shallowProperty(key) { + return function(obj) { + return obj == null ? void 0 : obj[key]; + }; + } + + // Internal helper to obtain the `byteLength` property of an object. + var getByteLength = shallowProperty('byteLength'); + + // Internal helper to determine whether we should spend extensive checks against + // `ArrayBuffer` et al. + var isBufferLike = createSizePropertyCheck(getByteLength); + + // Is a given value a typed array? + var typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; + function isTypedArray(obj) { + // `ArrayBuffer.isView` is the most future-proof, so use it when available. + // Otherwise, fall back on the above regular expression. + return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) : + isBufferLike(obj) && typedArrayPattern.test(toString.call(obj)); + } + + var isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false); + + // Internal helper to obtain the `length` property of an object. + var getLength = shallowProperty('length'); + + // Internal helper to create a simple lookup structure. + // `collectNonEnumProps` used to depend on `_.contains`, but this led to + // circular imports. `emulatedSet` is a one-off solution that only works for + // arrays of strings. + function emulatedSet(keys) { + var hash = {}; + for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true; + return { + contains: function(key) { return hash[key]; }, + push: function(key) { + hash[key] = true; + return keys.push(key); + } + }; + } + + // Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't + // be iterated by `for key in ...` and thus missed. Extends `keys` in place if + // needed. + function collectNonEnumProps(obj, keys) { + keys = emulatedSet(keys); + var nonEnumIdx = nonEnumerableProps.length; + var constructor = obj.constructor; + var proto = isFunction$1(constructor) && constructor.prototype || ObjProto; + + // Constructor is a special case. + var prop = 'constructor'; + if (has$1(obj, prop) && !keys.contains(prop)) keys.push(prop); + + while (nonEnumIdx--) { + prop = nonEnumerableProps[nonEnumIdx]; + if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) { + keys.push(prop); + } + } + } + + // Retrieve the names of an object's own properties. + // Delegates to **ECMAScript 5**'s native `Object.keys`. + function keys(obj) { + if (!isObject(obj)) return []; + if (nativeKeys) return nativeKeys(obj); + var keys = []; + for (var key in obj) if (has$1(obj, key)) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; + } + + // Is a given array, string, or object empty? + // An "empty" object has no enumerable own-properties. + function isEmpty(obj) { + if (obj == null) return true; + // Skip the more expensive `toString`-based type checks if `obj` has no + // `.length`. + var length = getLength(obj); + if (typeof length == 'number' && ( + isArray(obj) || isString(obj) || isArguments$1(obj) + )) return length === 0; + return getLength(keys(obj)) === 0; + } + + // Returns whether an object has a given set of `key:value` pairs. + function isMatch(object, attrs) { + var _keys = keys(attrs), length = _keys.length; + if (object == null) return !length; + var obj = Object(object); + for (var i = 0; i < length; i++) { + var key = _keys[i]; + if (attrs[key] !== obj[key] || !(key in obj)) return false; + } + return true; + } + + // If Underscore is called as a function, it returns a wrapped object that can + // be used OO-style. This wrapper holds altered versions of all functions added + // through `_.mixin`. Wrapped objects may be chained. + function _$1(obj) { + if (obj instanceof _$1) return obj; + if (!(this instanceof _$1)) return new _$1(obj); + this._wrapped = obj; + } + + _$1.VERSION = VERSION; + + // Extracts the result from a wrapped and chained object. + _$1.prototype.value = function() { + return this._wrapped; + }; + + // Provide unwrapping proxies for some methods used in engine operations + // such as arithmetic and JSON stringification. + _$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value; + + _$1.prototype.toString = function() { + return String(this._wrapped); + }; + + // Internal function to wrap or shallow-copy an ArrayBuffer, + // typed array or DataView to a new view, reusing the buffer. + function toBufferView(bufferSource) { + return new Uint8Array( + bufferSource.buffer || bufferSource, + bufferSource.byteOffset || 0, + getByteLength(bufferSource) + ); + } + + // We use this string twice, so give it a name for minification. + var tagDataView = '[object DataView]'; + + // Internal recursive comparison function for `_.isEqual`. + function eq(a, b, aStack, bStack) { + // Identical objects are equal. `0 === -0`, but they aren't identical. + // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). + if (a === b) return a !== 0 || 1 / a === 1 / b; + // `null` or `undefined` only equal to itself (strict comparison). + if (a == null || b == null) return false; + // `NaN`s are equivalent, but non-reflexive. + if (a !== a) return b !== b; + // Exhaust primitive checks + var type = typeof a; + if (type !== 'function' && type !== 'object' && typeof b != 'object') return false; + return deepEq(a, b, aStack, bStack); + } + + // Internal recursive comparison function for `_.isEqual`. + function deepEq(a, b, aStack, bStack) { + // Unwrap any wrapped objects. + if (a instanceof _$1) a = a._wrapped; + if (b instanceof _$1) b = b._wrapped; + // Compare `[[Class]]` names. + var className = toString.call(a); + if (className !== toString.call(b)) return false; + // Work around a bug in IE 10 - Edge 13. + if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) { + if (!isDataView$1(b)) return false; + className = tagDataView; + } + switch (className) { + // These types are compared by value. + case '[object RegExp]': + // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') + case '[object String]': + // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is + // equivalent to `new String("5")`. + return '' + a === '' + b; + case '[object Number]': + // `NaN`s are equivalent, but non-reflexive. + // Object(NaN) is equivalent to NaN. + if (+a !== +a) return +b !== +b; + // An `egal` comparison is performed for other numeric values. + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + // Coerce dates and booleans to numeric primitive values. Dates are compared by their + // millisecond representations. Note that invalid dates with millisecond representations + // of `NaN` are not equivalent. + return +a === +b; + case '[object Symbol]': + return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b); + case '[object ArrayBuffer]': + case tagDataView: + // Coerce to typed array so we can fall through. + return deepEq(toBufferView(a), toBufferView(b), aStack, bStack); + } + + var areArrays = className === '[object Array]'; + if (!areArrays && isTypedArray$1(a)) { + var byteLength = getByteLength(a); + if (byteLength !== getByteLength(b)) return false; + if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true; + areArrays = true; + } + if (!areArrays) { + if (typeof a != 'object' || typeof b != 'object') return false; + + // Objects with different constructors are not equivalent, but `Object`s or `Array`s + // from different frames are. + var aCtor = a.constructor, bCtor = b.constructor; + if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor && + isFunction$1(bCtor) && bCtor instanceof bCtor) + && ('constructor' in a && 'constructor' in b)) { + return false; + } + } + // Assume equality for cyclic structures. The algorithm for detecting cyclic + // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. + + // Initializing stack of traversed objects. + // It's done here since we only need them for objects and arrays comparison. + aStack = aStack || []; + bStack = bStack || []; + var length = aStack.length; + while (length--) { + // Linear search. Performance is inversely proportional to the number of + // unique nested structures. + if (aStack[length] === a) return bStack[length] === b; + } + + // Add the first object to the stack of traversed objects. + aStack.push(a); + bStack.push(b); + + // Recursively compare objects and arrays. + if (areArrays) { + // Compare array lengths to determine if a deep comparison is necessary. + length = a.length; + if (length !== b.length) return false; + // Deep compare the contents, ignoring non-numeric properties. + while (length--) { + if (!eq(a[length], b[length], aStack, bStack)) return false; + } + } else { + // Deep compare objects. + var _keys = keys(a), key; + length = _keys.length; + // Ensure that both objects contain the same number of properties before comparing deep equality. + if (keys(b).length !== length) return false; + while (length--) { + // Deep compare each member + key = _keys[length]; + if (!(has$1(b, key) && eq(a[key], b[key], aStack, bStack))) return false; + } + } + // Remove the first object from the stack of traversed objects. + aStack.pop(); + bStack.pop(); + return true; + } + + // Perform a deep comparison to check if two objects are equal. + function isEqual(a, b) { + return eq(a, b); + } + + // Retrieve all the enumerable property names of an object. + function allKeys(obj) { + if (!isObject(obj)) return []; + var keys = []; + for (var key in obj) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; + } + + // Since the regular `Object.prototype.toString` type tests don't work for + // some types in IE 11, we use a fingerprinting heuristic instead, based + // on the methods. It's not great, but it's the best we got. + // The fingerprint method lists are defined below. + function ie11fingerprint(methods) { + var length = getLength(methods); + return function(obj) { + if (obj == null) return false; + // `Map`, `WeakMap` and `Set` have no enumerable keys. + var keys = allKeys(obj); + if (getLength(keys)) return false; + for (var i = 0; i < length; i++) { + if (!isFunction$1(obj[methods[i]])) return false; + } + // If we are testing against `WeakMap`, we need to ensure that + // `obj` doesn't have a `forEach` method in order to distinguish + // it from a regular `Map`. + return methods !== weakMapMethods || !isFunction$1(obj[forEachName]); + }; + } + + // In the interest of compact minification, we write + // each string in the fingerprints only once. + var forEachName = 'forEach', + hasName = 'has', + commonInit = ['clear', 'delete'], + mapTail = ['get', hasName, 'set']; + + // `Map`, `WeakMap` and `Set` each have slightly different + // combinations of the above sublists. + var mapMethods = commonInit.concat(forEachName, mapTail), + weakMapMethods = commonInit.concat(mapTail), + setMethods = ['add'].concat(commonInit, forEachName, hasName); + + var isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map'); + + var isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap'); + + var isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set'); + + var isWeakSet = tagTester('WeakSet'); + + // Retrieve the values of an object's properties. + function values(obj) { + var _keys = keys(obj); + var length = _keys.length; + var values = Array(length); + for (var i = 0; i < length; i++) { + values[i] = obj[_keys[i]]; + } + return values; + } + + // Convert an object into a list of `[key, value]` pairs. + // The opposite of `_.object` with one argument. + function pairs(obj) { + var _keys = keys(obj); + var length = _keys.length; + var pairs = Array(length); + for (var i = 0; i < length; i++) { + pairs[i] = [_keys[i], obj[_keys[i]]]; + } + return pairs; + } + + // Invert the keys and values of an object. The values must be serializable. + function invert(obj) { + var result = {}; + var _keys = keys(obj); + for (var i = 0, length = _keys.length; i < length; i++) { + result[obj[_keys[i]]] = _keys[i]; + } + return result; + } + + // Return a sorted list of the function names available on the object. + function functions(obj) { + var names = []; + for (var key in obj) { + if (isFunction$1(obj[key])) names.push(key); + } + return names.sort(); + } + + // An internal function for creating assigner functions. + function createAssigner(keysFunc, defaults) { + return function(obj) { + var length = arguments.length; + if (defaults) obj = Object(obj); + if (length < 2 || obj == null) return obj; + for (var index = 1; index < length; index++) { + var source = arguments[index], + keys = keysFunc(source), + l = keys.length; + for (var i = 0; i < l; i++) { + var key = keys[i]; + if (!defaults || obj[key] === void 0) obj[key] = source[key]; + } + } + return obj; + }; + } + + // Extend a given object with all the properties in passed-in object(s). + var extend = createAssigner(allKeys); + + // Assigns a given object with all the own properties in the passed-in + // object(s). + // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) + var extendOwn = createAssigner(keys); + + // Fill in a given object with default properties. + var defaults = createAssigner(allKeys, true); + + // Create a naked function reference for surrogate-prototype-swapping. + function ctor() { + return function(){}; + } + + // An internal function for creating a new object that inherits from another. + function baseCreate(prototype) { + if (!isObject(prototype)) return {}; + if (nativeCreate) return nativeCreate(prototype); + var Ctor = ctor(); + Ctor.prototype = prototype; + var result = new Ctor; + Ctor.prototype = null; + return result; + } + + // Creates an object that inherits from the given prototype object. + // If additional properties are provided then they will be added to the + // created object. + function create(prototype, props) { + var result = baseCreate(prototype); + if (props) extendOwn(result, props); + return result; + } + + // Create a (shallow-cloned) duplicate of an object. + function clone(obj) { + if (!isObject(obj)) return obj; + return isArray(obj) ? obj.slice() : extend({}, obj); + } + + // Invokes `interceptor` with the `obj` and then returns `obj`. + // The primary purpose of this method is to "tap into" a method chain, in + // order to perform operations on intermediate results within the chain. + function tap(obj, interceptor) { + interceptor(obj); + return obj; + } + + // Normalize a (deep) property `path` to array. + // Like `_.iteratee`, this function can be customized. + function toPath$1(path) { + return isArray(path) ? path : [path]; + } + _$1.toPath = toPath$1; + + // Internal wrapper for `_.toPath` to enable minification. + // Similar to `cb` for `_.iteratee`. + function toPath(path) { + return _$1.toPath(path); + } + + // Internal function to obtain a nested property in `obj` along `path`. + function deepGet(obj, path) { + var length = path.length; + for (var i = 0; i < length; i++) { + if (obj == null) return void 0; + obj = obj[path[i]]; + } + return length ? obj : void 0; + } + + // Get the value of the (deep) property on `path` from `object`. + // If any property in `path` does not exist or if the value is + // `undefined`, return `defaultValue` instead. + // The `path` is normalized through `_.toPath`. + function get(object, path, defaultValue) { + var value = deepGet(object, toPath(path)); + return isUndefined(value) ? defaultValue : value; + } + + // Shortcut function for checking if an object has a given property directly on + // itself (in other words, not on a prototype). Unlike the internal `has` + // function, this public version can also traverse nested properties. + function has(obj, path) { + path = toPath(path); + var length = path.length; + for (var i = 0; i < length; i++) { + var key = path[i]; + if (!has$1(obj, key)) return false; + obj = obj[key]; + } + return !!length; + } + + // Keep the identity function around for default iteratees. + function identity(value) { + return value; + } + + // Returns a predicate for checking whether an object has a given set of + // `key:value` pairs. + function matcher(attrs) { + attrs = extendOwn({}, attrs); + return function(obj) { + return isMatch(obj, attrs); + }; + } + + // Creates a function that, when passed an object, will traverse that object’s + // properties down the given `path`, specified as an array of keys or indices. + function property(path) { + path = toPath(path); + return function(obj) { + return deepGet(obj, path); + }; + } + + // Internal function that returns an efficient (for current engines) version + // of the passed-in callback, to be repeatedly applied in other Underscore + // functions. + function optimizeCb(func, context, argCount) { + if (context === void 0) return func; + switch (argCount == null ? 3 : argCount) { + case 1: return function(value) { + return func.call(context, value); + }; + // The 2-argument case is omitted because we’re not using it. + case 3: return function(value, index, collection) { + return func.call(context, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(context, accumulator, value, index, collection); + }; + } + return function() { + return func.apply(context, arguments); + }; + } + + // An internal function to generate callbacks that can be applied to each + // element in a collection, returning the desired result — either `_.identity`, + // an arbitrary callback, a property matcher, or a property accessor. + function baseIteratee(value, context, argCount) { + if (value == null) return identity; + if (isFunction$1(value)) return optimizeCb(value, context, argCount); + if (isObject(value) && !isArray(value)) return matcher(value); + return property(value); + } + + // External wrapper for our callback generator. Users may customize + // `_.iteratee` if they want additional predicate/iteratee shorthand styles. + // This abstraction hides the internal-only `argCount` argument. + function iteratee(value, context) { + return baseIteratee(value, context, Infinity); + } + _$1.iteratee = iteratee; + + // The function we call internally to generate a callback. It invokes + // `_.iteratee` if overridden, otherwise `baseIteratee`. + function cb(value, context, argCount) { + if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context); + return baseIteratee(value, context, argCount); + } + + // Returns the results of applying the `iteratee` to each element of `obj`. + // In contrast to `_.map` it returns an object. + function mapObject(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var _keys = keys(obj), + length = _keys.length, + results = {}; + for (var index = 0; index < length; index++) { + var currentKey = _keys[index]; + results[currentKey] = iteratee(obj[currentKey], currentKey, obj); + } + return results; + } + + // Predicate-generating function. Often useful outside of Underscore. + function noop(){} + + // Generates a function for a given object that returns a given property. + function propertyOf(obj) { + if (obj == null) return noop; + return function(path) { + return get(obj, path); + }; + } + + // Run a function **n** times. + function times(n, iteratee, context) { + var accum = Array(Math.max(0, n)); + iteratee = optimizeCb(iteratee, context, 1); + for (var i = 0; i < n; i++) accum[i] = iteratee(i); + return accum; + } + + // Return a random integer between `min` and `max` (inclusive). + function random(min, max) { + if (max == null) { + max = min; + min = 0; + } + return min + Math.floor(Math.random() * (max - min + 1)); + } + + // A (possibly faster) way to get the current timestamp as an integer. + var now = Date.now || function() { + return new Date().getTime(); + }; + + // Internal helper to generate functions for escaping and unescaping strings + // to/from HTML interpolation. + function createEscaper(map) { + var escaper = function(match) { + return map[match]; + }; + // Regexes for identifying a key that needs to be escaped. + var source = '(?:' + keys(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function(string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; + } + + // Internal list of HTML entities for escaping. + var escapeMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' + }; + + // Function for escaping strings to HTML interpolation. + var _escape = createEscaper(escapeMap); + + // Internal list of HTML entities for unescaping. + var unescapeMap = invert(escapeMap); + + // Function for unescaping strings from HTML interpolation. + var _unescape = createEscaper(unescapeMap); + + // By default, Underscore uses ERB-style template delimiters. Change the + // following template settings to use alternative delimiters. + var templateSettings = _$1.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g + }; + + // When customizing `_.templateSettings`, if you don't want to define an + // interpolation, evaluation or escaping regex, we need one that is + // guaranteed not to match. + var noMatch = /(.)^/; + + // Certain characters need to be escaped so that they can be put into a + // string literal. + var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + '\u2028': 'u2028', + '\u2029': 'u2029' + }; + + var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g; + + function escapeChar(match) { + return '\\' + escapes[match]; + } + + // In order to prevent third-party code injection through + // `_.templateSettings.variable`, we test it against the following regular + // expression. It is intentionally a bit more liberal than just matching valid + // identifiers, but still prevents possible loopholes through defaults or + // destructuring assignment. + var bareIdentifier = /^\s*(\w|\$)+\s*$/; + + // JavaScript micro-templating, similar to John Resig's implementation. + // Underscore templating handles arbitrary delimiters, preserves whitespace, + // and correctly escapes quotes within interpolated code. + // NB: `oldSettings` only exists for backwards compatibility. + function template(text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = defaults({}, settings, _$1.templateSettings); + + // Combine delimiters into one regular expression via alternation. + var matcher = RegExp([ + (settings.escape || noMatch).source, + (settings.interpolate || noMatch).source, + (settings.evaluate || noMatch).source + ].join('|') + '|$', 'g'); + + // Compile the template source, escaping string literals appropriately. + var index = 0; + var source = "__p+='"; + text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escapeRegExp, escapeChar); + index = offset + match.length; + + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } + + // Adobe VMs need the match returned to produce the correct offset. + return match; + }); + source += "';\n"; + + var argument = settings.variable; + if (argument) { + // Insure against third-party code injection. (CVE-2021-23358) + if (!bareIdentifier.test(argument)) throw new Error( + 'variable is not a bare identifier: ' + argument + ); + } else { + // If a variable is not specified, place data values in local scope. + source = 'with(obj||{}){\n' + source + '}\n'; + argument = 'obj'; + } + + source = "var __t,__p='',__j=Array.prototype.join," + + "print=function(){__p+=__j.call(arguments,'');};\n" + + source + 'return __p;\n'; + + var render; + try { + render = new Function(argument, '_', source); + } catch (e) { + e.source = source; + throw e; + } + + var template = function(data) { + return render.call(this, data, _$1); + }; + + // Provide the compiled source as a convenience for precompilation. + template.source = 'function(' + argument + '){\n' + source + '}'; + + return template; + } + + // Traverses the children of `obj` along `path`. If a child is a function, it + // is invoked with its parent as context. Returns the value of the final + // child, or `fallback` if any child is undefined. + function result(obj, path, fallback) { + path = toPath(path); + var length = path.length; + if (!length) { + return isFunction$1(fallback) ? fallback.call(obj) : fallback; + } + for (var i = 0; i < length; i++) { + var prop = obj == null ? void 0 : obj[path[i]]; + if (prop === void 0) { + prop = fallback; + i = length; // Ensure we don't continue iterating. + } + obj = isFunction$1(prop) ? prop.call(obj) : prop; + } + return obj; + } + + // Generate a unique integer id (unique within the entire client session). + // Useful for temporary DOM ids. + var idCounter = 0; + function uniqueId(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; + } + + // Start chaining a wrapped Underscore object. + function chain(obj) { + var instance = _$1(obj); + instance._chain = true; + return instance; + } + + // Internal function to execute `sourceFunc` bound to `context` with optional + // `args`. Determines whether to execute a function as a constructor or as a + // normal function. + function executeBound(sourceFunc, boundFunc, context, callingContext, args) { + if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); + var self = baseCreate(sourceFunc.prototype); + var result = sourceFunc.apply(self, args); + if (isObject(result)) return result; + return self; + } + + // Partially apply a function by creating a version that has had some of its + // arguments pre-filled, without changing its dynamic `this` context. `_` acts + // as a placeholder by default, allowing any combination of arguments to be + // pre-filled. Set `_.partial.placeholder` for a custom placeholder argument. + var partial = restArguments(function(func, boundArgs) { + var placeholder = partial.placeholder; + var bound = function() { + var position = 0, length = boundArgs.length; + var args = Array(length); + for (var i = 0; i < length; i++) { + args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; + } + while (position < arguments.length) args.push(arguments[position++]); + return executeBound(func, bound, this, this, args); + }; + return bound; + }); + + partial.placeholder = _$1; + + // Create a function bound to a given object (assigning `this`, and arguments, + // optionally). + var bind = restArguments(function(func, context, args) { + if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function'); + var bound = restArguments(function(callArgs) { + return executeBound(func, bound, context, this, args.concat(callArgs)); + }); + return bound; + }); + + // Internal helper for collection methods to determine whether a collection + // should be iterated as an array or as an object. + // Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength + // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 + var isArrayLike = createSizePropertyCheck(getLength); + + // Internal implementation of a recursive `flatten` function. + function flatten$1(input, depth, strict, output) { + output = output || []; + if (!depth && depth !== 0) { + depth = Infinity; + } else if (depth <= 0) { + return output.concat(input); + } + var idx = output.length; + for (var i = 0, length = getLength(input); i < length; i++) { + var value = input[i]; + if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) { + // Flatten current level of array or arguments object. + if (depth > 1) { + flatten$1(value, depth - 1, strict, output); + idx = output.length; + } else { + var j = 0, len = value.length; + while (j < len) output[idx++] = value[j++]; + } + } else if (!strict) { + output[idx++] = value; + } + } + return output; + } + + // Bind a number of an object's methods to that object. Remaining arguments + // are the method names to be bound. Useful for ensuring that all callbacks + // defined on an object belong to it. + var bindAll = restArguments(function(obj, keys) { + keys = flatten$1(keys, false, false); + var index = keys.length; + if (index < 1) throw new Error('bindAll must be passed function names'); + while (index--) { + var key = keys[index]; + obj[key] = bind(obj[key], obj); + } + return obj; + }); + + // Memoize an expensive function by storing its results. + function memoize(func, hasher) { + var memoize = function(key) { + var cache = memoize.cache; + var address = '' + (hasher ? hasher.apply(this, arguments) : key); + if (!has$1(cache, address)) cache[address] = func.apply(this, arguments); + return cache[address]; + }; + memoize.cache = {}; + return memoize; + } + + // Delays a function for the given number of milliseconds, and then calls + // it with the arguments supplied. + var delay = restArguments(function(func, wait, args) { + return setTimeout(function() { + return func.apply(null, args); + }, wait); + }); + + // Defers a function, scheduling it to run after the current call stack has + // cleared. + var defer = partial(delay, _$1, 1); + + // Returns a function, that, when invoked, will only be triggered at most once + // during a given window of time. Normally, the throttled function will run + // as much as it can, without ever going more than once per `wait` duration; + // but if you'd like to disable the execution on the leading edge, pass + // `{leading: false}`. To disable execution on the trailing edge, ditto. + function throttle(func, wait, options) { + var timeout, context, args, result; + var previous = 0; + if (!options) options = {}; + + var later = function() { + previous = options.leading === false ? 0 : now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + + var throttled = function() { + var _now = now(); + if (!previous && options.leading === false) previous = _now; + var remaining = wait - (_now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = _now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + + throttled.cancel = function() { + clearTimeout(timeout); + previous = 0; + timeout = context = args = null; + }; + + return throttled; + } + + // When a sequence of calls of the returned function ends, the argument + // function is triggered. The end of a sequence is defined by the `wait` + // parameter. If `immediate` is passed, the argument function will be + // triggered at the beginning of the sequence instead of at the end. + function debounce(func, wait, immediate) { + var timeout, previous, args, result, context; + + var later = function() { + var passed = now() - previous; + if (wait > passed) { + timeout = setTimeout(later, wait - passed); + } else { + timeout = null; + if (!immediate) result = func.apply(context, args); + // This check is needed because `func` can recursively invoke `debounced`. + if (!timeout) args = context = null; + } + }; + + var debounced = restArguments(function(_args) { + context = this; + args = _args; + previous = now(); + if (!timeout) { + timeout = setTimeout(later, wait); + if (immediate) result = func.apply(context, args); + } + return result; + }); + + debounced.cancel = function() { + clearTimeout(timeout); + timeout = args = context = null; + }; + + return debounced; + } + + // Returns the first function passed as an argument to the second, + // allowing you to adjust arguments, run code before and after, and + // conditionally execute the original function. + function wrap(func, wrapper) { + return partial(wrapper, func); + } + + // Returns a negated version of the passed-in predicate. + function negate(predicate) { + return function() { + return !predicate.apply(this, arguments); + }; + } + + // Returns a function that is the composition of a list of functions, each + // consuming the return value of the function that follows. + function compose() { + var args = arguments; + var start = args.length - 1; + return function() { + var i = start; + var result = args[start].apply(this, arguments); + while (i--) result = args[i].call(this, result); + return result; + }; + } + + // Returns a function that will only be executed on and after the Nth call. + function after(times, func) { + return function() { + if (--times < 1) { + return func.apply(this, arguments); + } + }; + } + + // Returns a function that will only be executed up to (but not including) the + // Nth call. + function before(times, func) { + var memo; + return function() { + if (--times > 0) { + memo = func.apply(this, arguments); + } + if (times <= 1) func = null; + return memo; + }; + } + + // Returns a function that will be executed at most one time, no matter how + // often you call it. Useful for lazy initialization. + var once = partial(before, 2); + + // Returns the first key on an object that passes a truth test. + function findKey(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = keys(obj), key; + for (var i = 0, length = _keys.length; i < length; i++) { + key = _keys[i]; + if (predicate(obj[key], key, obj)) return key; + } + } + + // Internal function to generate `_.findIndex` and `_.findLastIndex`. + function createPredicateIndexFinder(dir) { + return function(array, predicate, context) { + predicate = cb(predicate, context); + var length = getLength(array); + var index = dir > 0 ? 0 : length - 1; + for (; index >= 0 && index < length; index += dir) { + if (predicate(array[index], index, array)) return index; + } + return -1; + }; + } + + // Returns the first index on an array-like that passes a truth test. + var findIndex = createPredicateIndexFinder(1); + + // Returns the last index on an array-like that passes a truth test. + var findLastIndex = createPredicateIndexFinder(-1); + + // Use a comparator function to figure out the smallest index at which + // an object should be inserted so as to maintain order. Uses binary search. + function sortedIndex(array, obj, iteratee, context) { + iteratee = cb(iteratee, context, 1); + var value = iteratee(obj); + var low = 0, high = getLength(array); + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; + } + return low; + } + + // Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions. + function createIndexFinder(dir, predicateFind, sortedIndex) { + return function(array, item, idx) { + var i = 0, length = getLength(array); + if (typeof idx == 'number') { + if (dir > 0) { + i = idx >= 0 ? idx : Math.max(idx + length, i); + } else { + length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; + } + } else if (sortedIndex && idx && length) { + idx = sortedIndex(array, item); + return array[idx] === item ? idx : -1; + } + if (item !== item) { + idx = predicateFind(slice.call(array, i, length), isNaN$1); + return idx >= 0 ? idx + i : -1; + } + for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { + if (array[idx] === item) return idx; + } + return -1; + }; + } + + // Return the position of the first occurrence of an item in an array, + // or -1 if the item is not included in the array. + // If the array is large and already in sort order, pass `true` + // for **isSorted** to use binary search. + var indexOf = createIndexFinder(1, findIndex, sortedIndex); + + // Return the position of the last occurrence of an item in an array, + // or -1 if the item is not included in the array. + var lastIndexOf = createIndexFinder(-1, findLastIndex); + + // Return the first value which passes a truth test. + function find(obj, predicate, context) { + var keyFinder = isArrayLike(obj) ? findIndex : findKey; + var key = keyFinder(obj, predicate, context); + if (key !== void 0 && key !== -1) return obj[key]; + } + + // Convenience version of a common use case of `_.find`: getting the first + // object containing specific `key:value` pairs. + function findWhere(obj, attrs) { + return find(obj, matcher(attrs)); + } + + // The cornerstone for collection functions, an `each` + // implementation, aka `forEach`. + // Handles raw objects in addition to array-likes. Treats all + // sparse array-likes as if they were dense. + function each(obj, iteratee, context) { + iteratee = optimizeCb(iteratee, context); + var i, length; + if (isArrayLike(obj)) { + for (i = 0, length = obj.length; i < length; i++) { + iteratee(obj[i], i, obj); + } + } else { + var _keys = keys(obj); + for (i = 0, length = _keys.length; i < length; i++) { + iteratee(obj[_keys[i]], _keys[i], obj); + } + } + return obj; + } + + // Return the results of applying the iteratee to each element. + function map(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length, + results = Array(length); + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + results[index] = iteratee(obj[currentKey], currentKey, obj); + } + return results; + } + + // Internal helper to create a reducing function, iterating left or right. + function createReduce(dir) { + // Wrap code that reassigns argument variables in a separate function than + // the one that accesses `arguments.length` to avoid a perf hit. (#1991) + var reducer = function(obj, iteratee, memo, initial) { + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length, + index = dir > 0 ? 0 : length - 1; + if (!initial) { + memo = obj[_keys ? _keys[index] : index]; + index += dir; + } + for (; index >= 0 && index < length; index += dir) { + var currentKey = _keys ? _keys[index] : index; + memo = iteratee(memo, obj[currentKey], currentKey, obj); + } + return memo; + }; + + return function(obj, iteratee, memo, context) { + var initial = arguments.length >= 3; + return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial); + }; + } + + // **Reduce** builds up a single result from a list of values, aka `inject`, + // or `foldl`. + var reduce = createReduce(1); + + // The right-associative version of reduce, also known as `foldr`. + var reduceRight = createReduce(-1); + + // Return all the elements that pass a truth test. + function filter(obj, predicate, context) { + var results = []; + predicate = cb(predicate, context); + each(obj, function(value, index, list) { + if (predicate(value, index, list)) results.push(value); + }); + return results; + } + + // Return all the elements for which a truth test fails. + function reject(obj, predicate, context) { + return filter(obj, negate(cb(predicate)), context); + } + + // Determine whether all of the elements pass a truth test. + function every(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (!predicate(obj[currentKey], currentKey, obj)) return false; + } + return true; + } + + // Determine if at least one element in the object passes a truth test. + function some(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (predicate(obj[currentKey], currentKey, obj)) return true; + } + return false; + } + + // Determine if the array or object contains a given item (using `===`). + function contains(obj, item, fromIndex, guard) { + if (!isArrayLike(obj)) obj = values(obj); + if (typeof fromIndex != 'number' || guard) fromIndex = 0; + return indexOf(obj, item, fromIndex) >= 0; + } + + // Invoke a method (with arguments) on every item in a collection. + var invoke = restArguments(function(obj, path, args) { + var contextPath, func; + if (isFunction$1(path)) { + func = path; + } else { + path = toPath(path); + contextPath = path.slice(0, -1); + path = path[path.length - 1]; + } + return map(obj, function(context) { + var method = func; + if (!method) { + if (contextPath && contextPath.length) { + context = deepGet(context, contextPath); + } + if (context == null) return void 0; + method = context[path]; + } + return method == null ? method : method.apply(context, args); + }); + }); + + // Convenience version of a common use case of `_.map`: fetching a property. + function pluck(obj, key) { + return map(obj, property(key)); + } + + // Convenience version of a common use case of `_.filter`: selecting only + // objects containing specific `key:value` pairs. + function where(obj, attrs) { + return filter(obj, matcher(attrs)); + } + + // Return the maximum element (or element-based computation). + function max(obj, iteratee, context) { + var result = -Infinity, lastComputed = -Infinity, + value, computed; + if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) { + obj = isArrayLike(obj) ? obj : values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value > result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + each(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed > lastComputed || computed === -Infinity && result === -Infinity) { + result = v; + lastComputed = computed; + } + }); + } + return result; + } + + // Return the minimum element (or element-based computation). + function min(obj, iteratee, context) { + var result = Infinity, lastComputed = Infinity, + value, computed; + if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) { + obj = isArrayLike(obj) ? obj : values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value < result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + each(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed < lastComputed || computed === Infinity && result === Infinity) { + result = v; + lastComputed = computed; + } + }); + } + return result; + } + + // Sample **n** random values from a collection using the modern version of the + // [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). + // If **n** is not specified, returns a single random element. + // The internal `guard` argument allows it to work with `_.map`. + function sample(obj, n, guard) { + if (n == null || guard) { + if (!isArrayLike(obj)) obj = values(obj); + return obj[random(obj.length - 1)]; + } + var sample = isArrayLike(obj) ? clone(obj) : values(obj); + var length = getLength(sample); + n = Math.max(Math.min(n, length), 0); + var last = length - 1; + for (var index = 0; index < n; index++) { + var rand = random(index, last); + var temp = sample[index]; + sample[index] = sample[rand]; + sample[rand] = temp; + } + return sample.slice(0, n); + } + + // Shuffle a collection. + function shuffle(obj) { + return sample(obj, Infinity); + } + + // Sort the object's values by a criterion produced by an iteratee. + function sortBy(obj, iteratee, context) { + var index = 0; + iteratee = cb(iteratee, context); + return pluck(map(obj, function(value, key, list) { + return { + value: value, + index: index++, + criteria: iteratee(value, key, list) + }; + }).sort(function(left, right) { + var a = left.criteria; + var b = right.criteria; + if (a !== b) { + if (a > b || a === void 0) return 1; + if (a < b || b === void 0) return -1; + } + return left.index - right.index; + }), 'value'); + } + + // An internal function used for aggregate "group by" operations. + function group(behavior, partition) { + return function(obj, iteratee, context) { + var result = partition ? [[], []] : {}; + iteratee = cb(iteratee, context); + each(obj, function(value, index) { + var key = iteratee(value, index, obj); + behavior(result, value, key); + }); + return result; + }; + } + + // Groups the object's values by a criterion. Pass either a string attribute + // to group by, or a function that returns the criterion. + var groupBy = group(function(result, value, key) { + if (has$1(result, key)) result[key].push(value); else result[key] = [value]; + }); + + // Indexes the object's values by a criterion, similar to `_.groupBy`, but for + // when you know that your index values will be unique. + var indexBy = group(function(result, value, key) { + result[key] = value; + }); + + // Counts instances of an object that group by a certain criterion. Pass + // either a string attribute to count by, or a function that returns the + // criterion. + var countBy = group(function(result, value, key) { + if (has$1(result, key)) result[key]++; else result[key] = 1; + }); + + // Split a collection into two arrays: one whose elements all pass the given + // truth test, and one whose elements all do not pass the truth test. + var partition = group(function(result, value, pass) { + result[pass ? 0 : 1].push(value); + }, true); + + // Safely create a real, live array from anything iterable. + var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; + function toArray(obj) { + if (!obj) return []; + if (isArray(obj)) return slice.call(obj); + if (isString(obj)) { + // Keep surrogate pair characters together. + return obj.match(reStrSymbol); + } + if (isArrayLike(obj)) return map(obj, identity); + return values(obj); + } + + // Return the number of elements in a collection. + function size(obj) { + if (obj == null) return 0; + return isArrayLike(obj) ? obj.length : keys(obj).length; + } + + // Internal `_.pick` helper function to determine whether `key` is an enumerable + // property name of `obj`. + function keyInObj(value, key, obj) { + return key in obj; + } + + // Return a copy of the object only containing the allowed properties. + var pick = restArguments(function(obj, keys) { + var result = {}, iteratee = keys[0]; + if (obj == null) return result; + if (isFunction$1(iteratee)) { + if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]); + keys = allKeys(obj); + } else { + iteratee = keyInObj; + keys = flatten$1(keys, false, false); + obj = Object(obj); + } + for (var i = 0, length = keys.length; i < length; i++) { + var key = keys[i]; + var value = obj[key]; + if (iteratee(value, key, obj)) result[key] = value; + } + return result; + }); + + // Return a copy of the object without the disallowed properties. + var omit = restArguments(function(obj, keys) { + var iteratee = keys[0], context; + if (isFunction$1(iteratee)) { + iteratee = negate(iteratee); + if (keys.length > 1) context = keys[1]; + } else { + keys = map(flatten$1(keys, false, false), String); + iteratee = function(value, key) { + return !contains(keys, key); + }; + } + return pick(obj, iteratee, context); + }); + + // Returns everything but the last entry of the array. Especially useful on + // the arguments object. Passing **n** will return all the values in + // the array, excluding the last N. + function initial(array, n, guard) { + return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); + } + + // Get the first element of an array. Passing **n** will return the first N + // values in the array. The **guard** check allows it to work with `_.map`. + function first(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[0]; + return initial(array, array.length - n); + } + + // Returns everything but the first entry of the `array`. Especially useful on + // the `arguments` object. Passing an **n** will return the rest N values in the + // `array`. + function rest(array, n, guard) { + return slice.call(array, n == null || guard ? 1 : n); + } + + // Get the last element of an array. Passing **n** will return the last N + // values in the array. + function last(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[array.length - 1]; + return rest(array, Math.max(0, array.length - n)); + } + + // Trim out all falsy values from an array. + function compact(array) { + return filter(array, Boolean); + } + + // Flatten out an array, either recursively (by default), or up to `depth`. + // Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively. + function flatten(array, depth) { + return flatten$1(array, depth, false); + } + + // Take the difference between one array and a number of other arrays. + // Only the elements present in just the first array will remain. + var difference = restArguments(function(array, rest) { + rest = flatten$1(rest, true, true); + return filter(array, function(value){ + return !contains(rest, value); + }); + }); + + // Return a version of the array that does not contain the specified value(s). + var without = restArguments(function(array, otherArrays) { + return difference(array, otherArrays); + }); + + // Produce a duplicate-free version of the array. If the array has already + // been sorted, you have the option of using a faster algorithm. + // The faster algorithm will not work with an iteratee if the iteratee + // is not a one-to-one function, so providing an iteratee will disable + // the faster algorithm. + function uniq(array, isSorted, iteratee, context) { + if (!isBoolean(isSorted)) { + context = iteratee; + iteratee = isSorted; + isSorted = false; + } + if (iteratee != null) iteratee = cb(iteratee, context); + var result = []; + var seen = []; + for (var i = 0, length = getLength(array); i < length; i++) { + var value = array[i], + computed = iteratee ? iteratee(value, i, array) : value; + if (isSorted && !iteratee) { + if (!i || seen !== computed) result.push(value); + seen = computed; + } else if (iteratee) { + if (!contains(seen, computed)) { + seen.push(computed); + result.push(value); + } + } else if (!contains(result, value)) { + result.push(value); + } + } + return result; + } + + // Produce an array that contains the union: each distinct element from all of + // the passed-in arrays. + var union = restArguments(function(arrays) { + return uniq(flatten$1(arrays, true, true)); + }); + + // Produce an array that contains every item shared between all the + // passed-in arrays. + function intersection(array) { + var result = []; + var argsLength = arguments.length; + for (var i = 0, length = getLength(array); i < length; i++) { + var item = array[i]; + if (contains(result, item)) continue; + var j; + for (j = 1; j < argsLength; j++) { + if (!contains(arguments[j], item)) break; + } + if (j === argsLength) result.push(item); + } + return result; + } + + // Complement of zip. Unzip accepts an array of arrays and groups + // each array's elements on shared indices. + function unzip(array) { + var length = array && max(array, getLength).length || 0; + var result = Array(length); + + for (var index = 0; index < length; index++) { + result[index] = pluck(array, index); + } + return result; + } + + // Zip together multiple lists into a single array -- elements that share + // an index go together. + var zip = restArguments(unzip); + + // Converts lists into objects. Pass either a single array of `[key, value]` + // pairs, or two parallel arrays of the same length -- one of keys, and one of + // the corresponding values. Passing by pairs is the reverse of `_.pairs`. + function object(list, values) { + var result = {}; + for (var i = 0, length = getLength(list); i < length; i++) { + if (values) { + result[list[i]] = values[i]; + } else { + result[list[i][0]] = list[i][1]; + } + } + return result; + } + + // Generate an integer Array containing an arithmetic progression. A port of + // the native Python `range()` function. See + // [the Python documentation](https://docs.python.org/library/functions.html#range). + function range(start, stop, step) { + if (stop == null) { + stop = start || 0; + start = 0; + } + if (!step) { + step = stop < start ? -1 : 1; + } + + var length = Math.max(Math.ceil((stop - start) / step), 0); + var range = Array(length); + + for (var idx = 0; idx < length; idx++, start += step) { + range[idx] = start; + } + + return range; + } + + // Chunk a single array into multiple arrays, each containing `count` or fewer + // items. + function chunk(array, count) { + if (count == null || count < 1) return []; + var result = []; + var i = 0, length = array.length; + while (i < length) { + result.push(slice.call(array, i, i += count)); + } + return result; + } + + // Helper function to continue chaining intermediate results. + function chainResult(instance, obj) { + return instance._chain ? _$1(obj).chain() : obj; + } + + // Add your own custom functions to the Underscore object. + function mixin(obj) { + each(functions(obj), function(name) { + var func = _$1[name] = obj[name]; + _$1.prototype[name] = function() { + var args = [this._wrapped]; + push.apply(args, arguments); + return chainResult(this, func.apply(_$1, args)); + }; + }); + return _$1; + } + + // Add all mutator `Array` functions to the wrapper. + each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = ArrayProto[name]; + _$1.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) { + method.apply(obj, arguments); + if ((name === 'shift' || name === 'splice') && obj.length === 0) { + delete obj[0]; + } + } + return chainResult(this, obj); + }; + }); + + // Add all accessor `Array` functions to the wrapper. + each(['concat', 'join', 'slice'], function(name) { + var method = ArrayProto[name]; + _$1.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) obj = method.apply(obj, arguments); + return chainResult(this, obj); + }; + }); + + // Named Exports + + var allExports = { + __proto__: null, + VERSION: VERSION, + restArguments: restArguments, + isObject: isObject, + isNull: isNull, + isUndefined: isUndefined, + isBoolean: isBoolean, + isElement: isElement, + isString: isString, + isNumber: isNumber, + isDate: isDate, + isRegExp: isRegExp, + isError: isError, + isSymbol: isSymbol, + isArrayBuffer: isArrayBuffer, + isDataView: isDataView$1, + isArray: isArray, + isFunction: isFunction$1, + isArguments: isArguments$1, + isFinite: isFinite$1, + isNaN: isNaN$1, + isTypedArray: isTypedArray$1, + isEmpty: isEmpty, + isMatch: isMatch, + isEqual: isEqual, + isMap: isMap, + isWeakMap: isWeakMap, + isSet: isSet, + isWeakSet: isWeakSet, + keys: keys, + allKeys: allKeys, + values: values, + pairs: pairs, + invert: invert, + functions: functions, + methods: functions, + extend: extend, + extendOwn: extendOwn, + assign: extendOwn, + defaults: defaults, + create: create, + clone: clone, + tap: tap, + get: get, + has: has, + mapObject: mapObject, + identity: identity, + constant: constant, + noop: noop, + toPath: toPath$1, + property: property, + propertyOf: propertyOf, + matcher: matcher, + matches: matcher, + times: times, + random: random, + now: now, + escape: _escape, + unescape: _unescape, + templateSettings: templateSettings, + template: template, + result: result, + uniqueId: uniqueId, + chain: chain, + iteratee: iteratee, + partial: partial, + bind: bind, + bindAll: bindAll, + memoize: memoize, + delay: delay, + defer: defer, + throttle: throttle, + debounce: debounce, + wrap: wrap, + negate: negate, + compose: compose, + after: after, + before: before, + once: once, + findKey: findKey, + findIndex: findIndex, + findLastIndex: findLastIndex, + sortedIndex: sortedIndex, + indexOf: indexOf, + lastIndexOf: lastIndexOf, + find: find, + detect: find, + findWhere: findWhere, + each: each, + forEach: each, + map: map, + collect: map, + reduce: reduce, + foldl: reduce, + inject: reduce, + reduceRight: reduceRight, + foldr: reduceRight, + filter: filter, + select: filter, + reject: reject, + every: every, + all: every, + some: some, + any: some, + contains: contains, + includes: contains, + include: contains, + invoke: invoke, + pluck: pluck, + where: where, + max: max, + min: min, + shuffle: shuffle, + sample: sample, + sortBy: sortBy, + groupBy: groupBy, + indexBy: indexBy, + countBy: countBy, + partition: partition, + toArray: toArray, + size: size, + pick: pick, + omit: omit, + first: first, + head: first, + take: first, + initial: initial, + last: last, + rest: rest, + tail: rest, + drop: rest, + compact: compact, + flatten: flatten, + without: without, + uniq: uniq, + unique: uniq, + union: union, + intersection: intersection, + difference: difference, + unzip: unzip, + transpose: unzip, + zip: zip, + object: object, + range: range, + chunk: chunk, + mixin: mixin, + 'default': _$1 + }; + + // Default Export + + // Add all of the Underscore functions to the wrapper object. + var _ = mixin(allExports); + // Legacy Node.js API. + _._ = _; + + return _; + +}))); +//# sourceMappingURL=underscore-umd.js.map diff --git a/docs/_static/underscore.js b/docs/_static/underscore.js index 166240e..cf177d4 100644 --- a/docs/_static/underscore.js +++ b/docs/_static/underscore.js @@ -1,6 +1,6 @@ -!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n=n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){ -// Underscore.js 1.12.0 +!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){ +// Underscore.js 1.13.1 // https://underscorejs.org -// (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors // Underscore may be freely distributed under the MIT license. -var n="1.12.0",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,g=isFinite,d=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u=0&&t<=m}}function $(n){return function(r){return null==r?void 0:r[n]}}var G=$("byteLength"),H=J(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:K(!1),Y=$("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e":">",'"':""","'":"'","`":"`"},Kn=Ln(Cn),Jn=Ln(_n(Cn)),$n=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=0;function Zn(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var nr=j((function(n,r){var t=nr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a1)er(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var cr=nr(fr,2);function lr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o0?0:u-1;o>=0&&o0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),C))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a=3;return r(n,Fn(t,u,4),e,o)}}var wr=_r(1),Ar=_r(-1);function xr(n,r,t){var e=[];return r=qn(r,t),mr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Sr(n,r,t){r=qn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,o=0;o=0}var Er=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),jr(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Br(n,r){return jr(n,Rn(r))}function Nr(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;ao&&(o=e);else r=qn(r,t),mr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Ir(n,r,t){if(null==r||t)return tr(n)||(n=jn(n)),n[Wn(n.length-1)];var e=tr(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i1&&(e=Fn(e,r[1])),r=an(n)):(e=Pr,r=er(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u1&&(t=r[1])):(r=jr(er(r,!1,!1),String),e=function(n,t){return!Mr(r,t)}),qr(n,e,t)}));function Wr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function zr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:Wr(n,n.length-r)}function Lr(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=er(r,!0,!0),xr(n,(function(n){return!Mr(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);ir?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o=function(r,t){e=null,t&&(u=n.apply(r,t))},i=j((function(i){if(e&&clearTimeout(e),t){var a=!e;e=setTimeout(o,r),a&&(u=n.apply(this,i))}else e=or(o,r,this,i);return u}));return i.cancel=function(){clearTimeout(e),e=null},i},wrap:function(n,r){return nr(r,n)},negate:ar,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:fr,once:cr,findKey:lr,findIndex:pr,findLastIndex:vr,sortedIndex:hr,indexOf:gr,lastIndexOf:dr,find:br,detect:br,findWhere:function(n,r){return br(n,Dn(r))},each:mr,forEach:mr,map:jr,collect:jr,reduce:wr,foldl:wr,inject:wr,reduceRight:Ar,foldr:Ar,filter:xr,select:xr,reject:function(n,r,t){return xr(n,ar(qn(r)),t)},every:Sr,all:Sr,some:Or,any:Or,contains:Mr,includes:Mr,include:Mr,invoke:Er,pluck:Br,where:function(n,r){return xr(n,Dn(r))},max:Nr,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;ae||void 0===t)return 1;if(t=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e":">",'"':""","'":"'","`":"`"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=/^\s*(\w|\$)+\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o0?0:u-1;o>=0&&o0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;ao&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);ir?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;ae||void 0===t)return 1;if(t - - krTheme Sphinx Style — pymatgen-db 2021.5.13 documentation - - - + + + krTheme Sphinx Style — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +38,7 @@

    Navigation

  • modules |
  • - + @@ -47,7 +48,7 @@

    Navigation

    @@ -55,7 +56,7 @@

    Navigation

    -
    +

    Database “Builders”

    The Materials Project relies on MongoDB databases. The common parts of the process of creating these databases from either files or other MongoDB databases @@ -96,9 +97,9 @@

    Navigation

    -
    +

    Features

    -
    +

    Parallel building

    Builders can be run in parallel without explicit coding of parallelism by the author. This allows CPU-intensive transformations of the data to run @@ -112,17 +113,17 @@

    Parallel buildingget_items()).

    -

    -
    +
    +

    Incremental building

    Incremental building allows successive builds of source MongoDB collection(s) to only operate on the records added since the last build. This can save huge amounts of time. An illustration of the difference between an incremental and full (non-incremental) build is shown below.

    _images/incremental_build.png -
    -
    -
    + + +

    Writing a builder

    To write a builder, you must create a Python class that inherits from pymatgen.db.builders.core.Builder @@ -132,7 +133,7 @@

    Incremental buildingFileCounter builder that just counts the lines in a file, and a CopyBuilder that copies a MongoDB collection.

    -
    +

    Simple “FileCounter” builder

    The first builder simply reads from a file, and counts the lines in that file. In this section we’ll show the whole program, then walk through it one section @@ -232,8 +233,8 @@

    Incremental buildingFalse.

    Note that this builder did not access MongoDB in any way. The next example will show MongoDB access and other features.

    -

    -
    +

    +

    Database “CopyBuilder”

    The next builder does a simple DB operation: copying one MongoDB collection from a source to a destination. As before, we begin with the full program @@ -347,8 +348,8 @@

    Incremental building

    Incremental builder “MaxValueBuilder”

    The incremental building concept was introduced in Features. The central idea of the incremental building implementation is that any builder @@ -511,9 +512,9 @@

    Incremental building +

    + +

    Running a builder

    This section describes how, once you have written a builder class, you can use mgbuild to run @@ -531,7 +532,7 @@

    Incremental buildingpymatgen.db.builders.examples.

    -
    +

    Displaying builder usage

    You can get the list of parameters and their types for a given builder by giving its full module path, and the -u or --usage option:

    @@ -551,8 +552,8 @@

    Incremental building +

    +

    Running the builder

    The usage of the mgbuild run command is as follows:

    usage: mgbuild run [-h] [--quiet] [--verbose] [-i OPER[:FIELD]] [-n NUM_CORES]
    @@ -585,7 +586,7 @@ 

    Incremental building +

    Basic usage

    Run the copy builder:

    mgbuild run  pymatgen.db.builders.examples.copy_builder.CopyBuilder \
    @@ -602,8 +603,8 @@ 

    Basic usageDatabase configuration for more details.

    -

    -
    +
    +

    Running in parallel

    Most machines have multiple cores, and hundreds of cores will be common in the near future. If your item processing requires any @@ -619,8 +620,8 @@

    Running in parallelprocess_item() method is run in parallel. The get_items() is always run sequentially.

    -
    -
    +
    +

    Incremental builds

    The concept of incremental building was introduced in Incremental builder “MaxValueBuilder”. From the command-line, incremental building is controlled by the -i/--incr option. @@ -673,10 +674,10 @@

    Incremental builds

    diff --git a/docs/change_log.html b/docs/change_log.html index 9be503b..6dd5fc9 100644 --- a/docs/change_log.html +++ b/docs/change_log.html @@ -4,11 +4,12 @@ - - v0.7.0 — pymatgen-db 2021.5.13 documentation - - - + + + v0.7.0 — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +38,7 @@

    Navigation

  • modules |
  • - +

    @@ -47,51 +48,51 @@

    Navigation

    -
    +

    v0.7.0

    • Fix deprecation.

    • Ensure oxide types are handled properly in creating docs and querying for them.

    -
    -
    + +

    v0.6.2

    • Minor bug fixes.

    -
    -
    + +

    v0.6.1

    • Removed Materials Genomics UI. Pls use Flamyngo as an alternative.

    -
    -
    + +

    v0.6.5

    1. Proper specification of requirements.

    -
    -
    + +

    v0.6.2

    1. Update dependency versions.

    -
    -
    + +

    v0.5.0

    • Updated scripts for new MongoClient.

    -
    -
    + +

    v0.4.8

    • Update pymatgen vand other dependencies.

    -
    -
    + +

    v0.4.1

    1. Refactor of builders (mgbuild and matgendb.builders) to @@ -100,8 +101,8 @@

      v0.4.1 +

    +

    v0.4.0

    New mgvv diff features.

      @@ -110,41 +111,41 @@

      v0.4.0 +

    +

    v0.3.9

    1. mgvv diff HTML output can make they key field into a hyperlink using a user-provided prefix

    2. Added brief introduction to mgvv in front page of Sphinx docs

    -
    -
    + +

    v0.3.8

    1. mgvv diff can perform numeric diffs. Better error handling.

    -
    -
    + +

    v0.3.7

    1. New package maintainer, Dan Gunter <dkgunter@lbl.gov>

    2. Added vv.diff package and associated mgvv diff subcommand, for taking the difference of two arbitrary MongoDB collections.

    3. Some cleanup and simplification of config files. user and password are accepted as aliases for readonly_user and readonly_password.

    -
    -
    + +

    v0.3.4

    1. MAPI_KEY is now a db config file variable.

    -
    -
    + +

    v0.3.3

    1. Minor bug fix release.

    -
    -
    + +

    v0.3.2

    1. Add option to use the Materials API to obtain stability data during run @@ -153,15 +154,15 @@

      v0.3.2 +

    +

    v0.3.0

    1. Significant update to materials genomics ui. Ability to export table data to CSV, XLS or PDF.

    2. First vof RESTful interface implemented.

    -
    +
    diff --git a/docs/dbconfig.html b/docs/dbconfig.html index bdc9df1..2b9e0b6 100644 --- a/docs/dbconfig.html +++ b/docs/dbconfig.html @@ -4,11 +4,12 @@ - - Database configuration — pymatgen-db 2021.5.13 documentation - - - + + + Database configuration — pymatgen-db 2021.5.28 documentation + + + @@ -45,7 +46,7 @@

    Navigation

  • previous |
  • - +
    @@ -55,7 +56,7 @@

    Navigation

    -
    +

    Database configuration

    All the pymatgen-db database configuration files use JSON syntax. They give the server host and port, as well as authentication parameters @@ -89,7 +90,7 @@

    Navigation

    admin_password

    Authentication password, for read/write access.

    -
    +
    diff --git a/docs/doctrees/_themes/README.doctree b/docs/doctrees/_themes/README.doctree index 16225885a0e6d8a3e9e7a4801fab81ac58fb4d01..e2b415fa175c9dee5bc0ca23d3cbaaa2b3c15e21 100644 GIT binary patch delta 1472 zcmb7^&ubGw6vsQ}N4sgNZBnb!G)-+oTl1?zMG>r^7OY|}Du^`HZ8G#F?rzfTMq98( zkHR9xSv~b21@)j(?Bda@3PJED;>m-EiuwZk=2F>YL8gjkls+tW`@jYR`u^BimFCr$nq!nq5Wjhs{3KI*p&w#UiHL(g zUYHkQaK#vdp@ad$ID$Avaf~O70)!v}0}uxPNjs*w!N=a%$|P#8+5@C`0zVyZy^?@w z#~R5V!Jxy{+FTxO!qM^T1~=-^Z-}W>Kx2LFy=>ZfnMB!h=i-42tvhj}$Sj*}|6W|I z=SLToWa*%q6O+`?J92r7R4>sAo$Mx^t-MlUp4LVA@0zUm?!VcycO4TuLU0JnB6Pl+ zl}!*3LzD%CGgAi6+-`lvo@zn1A(Y8FyXxANFq<#(6qBFS1I7F0(Wcey82pfZaqY(K z>FT^ye2wqr=C!Q0<7Hko(tN?S>eKgz;C_v>H3a#91>Ha%vzu;T=Z4i=@RdDt4;H^Q z@03&d+{mFtWhVxIMD3Tq^_6vKxGn7JeTng zqn$y9bcS9ASdm|btY2wTVuoDp6pajp*eMxGK&%49YCx0}?aMn>Jq=hzDM;t3fH^92vkg6PTR?C+!taBG>|z#$!}m5~Sa zIUh(*X;LcQV8V1cF7=bYa2SYdW!L~s1%@XmuE62T3G}P(WNXe4yU9SAiKIu65X8XA zXE{&juFGHt#-LaaQ+Cmm)+x{c%wPkm*o52LkoevJRJ4YWqE%2wivkrdo6OIx#HkC5 zrpYzjHj~S^ed^Bu)l3r~=d3xR>UbaDtVoL5iY%Og|2 z5$4K_SI`jR$S#U6&P~k8K?|ohgd773rx%12!NN%bsQ5`~l2pbqxC7Y04nPFkIbNU1 zCwOD(Sr{1@GNiMZfD|FqVSxuS{XZeapuht<0avPoME;TtPe^J68MzRY1_|ky4^)Vh zjDa~8X2ay4eA2Ao0%fu!zqA`tk-`Pk!;F;lnee&2hpjljv?w`sN`^MDINDsr|DKW2 zcXO7YDI=ry?lUanXO+GB7wfUB?E2FA9FxawGfJAW*XI^4%YDr~5YB8|<$O1|D h6=x^_nJSxIL`@h)xKdJ+^NSKoGV}AM_(8m?2LL~H)F1!= diff --git a/docs/doctrees/builders.doctree b/docs/doctrees/builders.doctree index e390b5b1764a8bd90c5ef14d6381e181d3aecb60..05a3d417d3a1b25738f405dff92f1fef7ad24abb 100644 GIT binary patch delta 21496 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
  • Rx;mc{gngz|;itf{JAS&m;NAO(Ow|i;?DR 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 diff --git a/docs/doctrees/change_log.doctree b/docs/doctrees/change_log.doctree index 2d3b45c800c52a32808346dd8acda5ae77f2a5f4..dcf77755d0c7b7501c4067a637ef6ced35ca1131 100644 GIT binary patch literal 19015 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 literal 18496 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 diff --git a/docs/doctrees/dbconfig.doctree b/docs/doctrees/dbconfig.doctree index 6413090bc6907922a743612fda95e1585bf8c840..2e5e67001553bdd9c7b4303edcac52182d98fecc 100644 GIT binary patch delta 1804 zcmaKtOKclO7=Sx*>^QsK#OuUv>%<#-*CZsg$;MDFd6pIw(Z;B%KuB$5Hug4SD}L0E zLy=Ia1f^69D*W3>1w>nMK%Dw8LW(L>aic1-3PR$9goL;?5)wUdpn`wB4|^qxi`O&% z%=dr)% zkn%BX2181lHfT>_%_*?uyN_~j^xYw6;71_}vVSF1vap;B`+@&?9C^h*2|Ipo50zsQSATCQEdXMhHO=X zzGcj5=?1uoNL$yRRcgw*QdKQwIL?K5581Vg#`45?I45q&mK6~9q?@cQuW?5#XsoCd z9P&dh!VjC|po{DjF@{M8;ntAUTJI;WB8;r4AlQo=XEg@*@`p|GAs5*(jw5-|HqP&d*?{CMJ7(=L&IOL6@!dci zjeiXYykc_GE^fj$7Lj`rL*0zwWquJM@AGqf#e|ey5JyfzNWqai>5{_)9df6F$Bwkm z1fygNxnjDG*N=UWJG-3YoWE?Q|In4*sUd;sFJY)_4O2tQc&=q!^I7M6ay5N5FaZ}Lzck((Ns)!e zhG;bZ7e4ZT;!j=cH(tit*|J(SJ_31Tz{OTPRi{DYvk;}@t)Xz>% delta 1668 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 delta 51290 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 YzozJ}>U@lAyZnN;A3P0jZ?DS#e|(6Iz5oCK diff --git a/docs/doctrees/index.doctree b/docs/doctrees/index.doctree index c99606b77dd7f6d9b76c8f3fce94db46234a4498..e32f28bc1f49290eeb10396a767c457bd32b650d 100644 GIT binary patch literal 40049 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 literal 39653 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 literal 99315 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 NF~cUZy>R7&!!P0HkA46E delta 366 zcmX>nvOt8Tfpx0rM3%!$8H^Jz7YZ|GFlWg080&`?rxq3K7iUzKrcMrF)MS*MT*qi9 zCRaN}BSRr}N`?{;s{pYY5Nk}n#AwZEKbemyqh2e+FheFoJ44o+B||zxuQVw!16fZG ze@T9FNl|L5Zh28+K|yNKlthFvu~SMjv@&#n`gk(H&H$O?SDKUxH=>85pfWeHBt10` zs1ND{6frljdmsjJ0S#hC805`_?igg7d)SKeON)|Ir(|dY9kJP(`8^|J-DYi8BSuE; z$#HDTlMk_7o7~8zwRr}+E2B(AMrd&lXI^4%YDr~5YVnlXDH#!d#Tg1fI&||-4nsx} Xu9Vc|{G!B?%>2A5ejrDbCg}kHM2vlM diff --git a/docs/doctrees/pymatgen.db.alchemy.doctree b/docs/doctrees/pymatgen.db.alchemy.doctree index b4ae3a29a7c187ccded43ed2ed6ef1e7f95e2246..0c731ee9b090242991f662c8470e30df0fa36fcf 100644 GIT binary patch literal 13823 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 literal 13183 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 diff --git a/docs/doctrees/pymatgen.db.builders.doctree b/docs/doctrees/pymatgen.db.builders.doctree index cdf9bf0c9b06e35377e3e129c318f82b14ed3cd4..ca86744d60416f924b37d104b1f15c948bcf9574 100644 GIT binary patch literal 280839 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%0AcqWa{VW&F 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 literal 264719 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 diff --git a/docs/doctrees/pymatgen.db.builders.examples.doctree b/docs/doctrees/pymatgen.db.builders.examples.doctree index fc8fb764a671546194d58d1a1e9ead12e6de2f52..d6ea07515af0a858270a94410d81b17b0ee3399e 100644 GIT binary patch literal 56966 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 W4zZxUM4R4Zo!ld&v>|v?`TqlkHf9h2 literal 53905 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 diff --git a/docs/doctrees/pymatgen.db.doctree b/docs/doctrees/pymatgen.db.doctree index d895ad069c3234b48f6c320e0ae3d390159fb35d..4c22a4b67b42d4f679be9be8d7a06096eb76a08b 100644 GIT binary patch literal 280772 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 X|G{KdKT75m5Eaae(h?_h^3nefGR0}A literal 266396 zcmeFa3xHf#T|eH?WRpzNrcFxv*iE_J7IsoLlQvLdQv#$(`k-x^CTS_OWiz`oyE8Yl zGs`@ZY-@j1PTAeXCw^+G#6JqyGywbQWs$=E+jIQfam-)y`6|rqY_}%~zY< zrI#;l{i&sUmx{sKcKJl7)oagGmx9w!W2RPbRNB?%(p^iznN+=7Z*)qc{pwD2rdw|{ zRrA`a+DL8nT}#E<+F(_;-fdKkqF~d);(WO~S8bLm)80aP=2&^IxA{GA_CT<*QEyh44)mtWL8093w(HZqF0dr5POn!w zgu&{WM!D0$NBq62S)S*At*P`D^p9x()~?P{onElITb`q$rP_wtXl*@>SQ`s=Zojot zZFjbJYKy(<_I7ol)!8m_+g6$04mx$F+MTZY2!u=cy;R$B!=rlBwRN1>np$Vc55c;_ zy=g(34yVm#`y#)V#9R6DbBDG5y0+YOY?ePF) z6#!Wa2Dj!HTD@k)U=-(J?KEKDn(4NyCKE+j+(5O_V4b7{kOsxUs&<{xxp=^0ZmHau zsa59}mtMGZAUMZpRGRKV=0IOoa;8~w{5ZZ)|PG<0kg{sOgbSNbB)&Y(gVRrtzM}>m>&qv5M8JbYnr|J>1w-LS-Ro0pul9e z(`q&rQMUk{&}a}XudaZN{>j#ly7rje$w*QL${rL^0i>d*9Ma=K>9Oy2UNlbqc*a+}~U8RyTN84ee1eHn) zi@V5NK}nl)UTfAl9IV9(W-Zpj_Lk=$)indV;PxZ6dPk7kBdu&!J6_q_*KRedUbp4J z1|_NF4oLeNIRT{DS6fs@I$#>+*x<6;K-VL!ebYzEonxHtMK;xeur7{n zT?!uS5S>z_n_+JF~9Lj3+ZM?m~vxkwq9*iIs$~=0z@3+^%ffS8T{4ReWcyPsPpB8`qZ)NqO1m(W_yjs zRIgnZHQK!utT{XV)n@TZDwde>A2v$+P&>>&e-l22U1!O_r?Ce9dFChy+&bjy{}NaKf?cBj zt!DqL*kmNp5Wj3Zj=ILVB0NqyKlt$d^J4?~SmZ;A3Dd=tHL{MxNPn=AT67_m#GD>$ zkeN9za`m6Y9MQkUoDuFBNL=Jk8rbB)pmGx*^BGvf@)fpjrsjjSQj(I0G-{?>(3 z5@Y@*A7lQ>)qfIWMF061^FOXp`d|znynn`QjJonJ?i6%2$shBR&7t!im2;vwhc(D- z%O2PP^RnT7)7W!(l>RT=plUVh&e60FU zSN}<@68-08)tb{C6L24_;=}jPs?F};or_y%N2*GWIZAAZJtp? zS)#O({jjlUyGH4QXMFJfd3J^s^mefdo3=bGF455+Y?OY+g;Ek@UX+h9uXgpH#2C@P z&6u=h@0(ns^uZWDc>jz!8&L*(`@zMW^=2)}Ap4`uqz}2!OJdRo^D*g@uKtslB>K0R zl%_qOca72qllb8MGihxov>pnpQmJIhO7_EM#=pAINMgo6dc=O1R=`gsnTfyj^UBT}RbEHF9Y>rRi3Cu2icZua@>qBWa;L(`DP;N4f2) zZ4Oq8=6btEf5OJk4MYf*#icf}*Dq9?6>OwWodn6u-Jen)ARwh`b)$~m!g9mt%D

    RURLK=KX$Ebg&Lj{V#N(OQ8sD(w^v0dE8c~T8!8~M*-%=d3|^kG&tL79_z(2#K+wZ$FcmGNCY2u)@1vB-Tjy@PCqEV3O@$M}KnRR-$|RixD`D zY*`!WFCDK^ZzH*&MHz9(L1=bCV9L9pqz0sFEcCj_mnrbHm}*6c^(s;!qw1{TYA-MGn9S<-2(s$ibW49)SICM4J7R7 zgq$w&@>ohvp{z15Fc3j{aIsr!H75WA_8RMmRm>oZ0tEzO)tl+HDL2!bZMBiXXil3f zQ0aVm5xGT_P(qd4Uh70tWEk-r2-@tbcr9Q|$w=6Gkl91GzvL0Ym51+p_44zD2KiCo zjPg?a7myx}`adnysWz4+m6ejOhMkAP41r6lgQq~Up)|-k_ByTkD&&{4-0l^JS*9PmR8?BjRQ!FpQn6-po zvNqUIMRF`=-q1Gy_56q9r!1l?_kcwa>fxHLx!*a*7PR+ zL%jDlv8w)C@Q-qlh>ltkBM zMj5;;&o){oFncUEpbx!fgfFLJw9P>^2B(Mb`z4Om!}mQn>B(O^@T)J}H1|Hn>H85z z-{f?A@)rd6)`NS0klrMTd&f;o!;V9%*Co$^IRWD(!A~}yi(j0l1*AT<$m@`dEqAd;$H#m&0fR(8T!Dt;%8qJ`}H; z##*}Cbz@ev47!+{HA}9i97%86Ht#z8O9+zxEK|JTKI0@8CQxr5PZR8rSy$QCUaMVz z3s7!QADo|*dVHo>$xeaQ$jmn&4pK8RpO!);wtnm^RA=h55ZwFylaM*KTJ#r5`Y4p( zKZR3q7wZa3=T*?-mwQ?f89P+zp1~1Uj1Gp-8KjnAGetgLoB4!4>hDY;8<9oK@=s({ zlZ9drC0>$H9Hf7-ETc7Ld4?8kwkXWg$qOv&L>4K@4$F2F!r(s@gDGDkHJ$TV3KsqW zR7m9c9P1&D=c@FoOn9+nQ4}-H?JF~N<0j9jPtfG!awUa6Ik~(`sW~{k2kZHALu)=A ztZ^`WoMH~+PWI|NP!Y1y9~8-$>b)WbjdV7@ERoHsbVo*{FwGNMnDtBAN(7~htrbZ| zeHu9*OJ9;gi<~T-p&U?B+*|42km4SyKBot7zT=%}W4+~MFU8a+3nyxItgR?q)bW~- zgC5qZ2m#?t3Qny!d7qkl`nxH3rt|y*i9A=OcPuC7N{)kN9R^bX;ge62ek+B-IVI_s zOkQQvfH*6aU!n?3qP+YPrE_JaHIV>m6=l}s>nV7rOV(EsB}ms}A6ikNKQlwY_Nj8sjXe?Vfwg%w2gpS$7|jm`x+eo_M;% zY+yaaxf!Z-TPjYNc^Foqsb_0yLrsiPpT^6_$@M7|$jQmS+cTb-#{II!3_5aUep&?1Fmal=EGD$dY(O-ysF z`vSUWI8>aoo{@_zgwFV)w3%6{-6<4Lm$@qwWloiTaS-x9eBY}W1K{~CI}41l@~}aX zHTd&EFnuHo+Ne+5%%{;$N|CR88htw*!{bUF$}5gl@M@zJk*iE*0;3H6=^ z_A^=92+5-?reG;|O1U42)EDftA?J)sBrXh~L>FYg6lnfYHJuU~I@}>dH1t(*ipl5) zQm{^!(f20Gs46`$Wb_pp!LWOV^bpkfr03l!bj&F|zZ*FYLK3tO86h6u&sd~HDP0Mf z3v@RO2^L)khQ$&7;zPciCbtsj{ zR-Z}wU647Ctr_M`u&bFWC2v2w2TJwC!x)`ob!ezNMsRinFqxO&C{g@pDzahqpmC~o ztcSQbl`3tWYC0)AgHt{x(U3Sxzc`kOb0IJdJv_GHE*vF#DA%U$Wxz((3#Ir2lGtM|fTRTDvQYy-2kep_xRl@UI}K?6i>kzq{TVFE!W zFGs0BeM56fb0w%2r4r2}?}!7a0YHng*Q}oKZmgfYrn-3Z-R7Enl4bfft30iY)V12I zw&y4vn%W@_c&v%c-oiqS4gpA&zOlaTn(DTjJ-ROxn^z65vxpSI`4TqAr1PZ-1lmk` zCoqj-a%@dghBc!g5@WVWN>B)qk*VF9XI#*&5AtPd>Dm@yc;du~l0sjs<4VY_-j2WN z@=>aTOX65+Bu&A5Jjz#YEB-SpQM5PE^$9mI%jyqGqnPEmGDTj~C)X$agW*#K&c1T|#`f~ODJ z0K#<{W|zuJ`gd>&JhNX4?6fG5o}je@1EppE>Q(f$Jl#R)9Zs~|gu|e2|JOeB zD?@B1_*yR6+;w*frPAlFGIu4;aWZqId~nN z;3B!cxy?@#&?ylWmVo=zXtj><@C4jS?~dqkgu6yuc)o(~4 zQo3lrE>W~q>FY9*4e19lCmxoYd|K*Xl@Zn-0*gm|qG&!vcrb;>5k*MUEq@1P>5Tf@ zGo;>Z<5eknJmplXe;%*;=nTDX;#DI_{e4|MUi(OJNg20iBj{P&>J_7hUU6e`tyRH2 zU%vSc=Xv1kb$?m#f0^G{y` zNhiAcC1mo;?l@^<`?8LOXS?JeI6sy*I0%DtFyZSD3?RcdAo$+|bt9J`_*Vk~`_U44 z0fN7eol@}k;~)P5U<`9WS04!M*=f>m3yy&j*G4I!eeEmucuzlk^8p0xDRNZ5yF87^ z0;v{`nzDP?aZa3NGSTvdf*N!|J)gMX8}->*iKJg7evSH%qknR(A^w5z=ynl1hk z2i80s%Dfu0@IsyiDC;fp>u9!y7K)mHowbFR)e$;LiG$t~pZGKXs!mQUFndL;<2VAc2KSQ+&o-t%gu8GEsxi(;UNd+$fkwv#J zD>uG}ZYh`bp;o+-jd~kMgeBZhx=yF*XkebIT`?k5SB3cQX%L%}2?h&E|3uZWMZqW#ER1eaHv>kO49f@s6a5zGQ%~{A8 zNh-MH0$;F9p-?rHmu1DZtGF?PMU@Mb^E-u;|5#pNwxM+mRSabUK$=d`Xi8lDHxeC2 z{Wl15$RnKbt_IPP?p0Vu?PLsky=Krk@JMaT;`p0q# z`l$a$8AL>^#7IOkuEgGzp;xgIlbRrPGkN_eJSS=2l*DH6ocuii%Kt9?&(-)JTPtD12{~0OaJyW@qmmyjcS?N3 z?1#T>ydMh;!sa>Ak-Esyz_jNfM`}y9>dcYS)bz)Qu&2V2dTi8@a?#$siq!x|JgQYd zpl^@r1|pj9s5m9qguR-G66aCHuIFij6(&n|0F$K%Y}-0^gPpb5<0k7UhIW~(3VmN5 zlXVI1M>&p12~*5e#;BI)Yyi{baJeOf4s*0x4JZOo^0%#icMF#0Gdssst04!VB#`{w zHMM^8A43BUY-?VMUUJ!*z|kPV);y4{IpYe;r)Z6T-KTjgkwVD}!C ztva)NE`*nRcfhf8qxtH#d>YJ%<@-GN)VJl^PNd?NZyAM{S<^2HfpqRU_|b?i)aSX zJ!3TE$*gL+h^Q!>kPr1+;mVe~&&vR$5RT`fY7XJpa1%Dr*uEK?l~j~0@?8NGM2bMg zm(!>Q-Q&%p+~^kMqGJTB8# znPH8`x@S_>WjnHkkIWupU8dlfL-jZ8G1-)#u#LAf>W!Hl6p`%5UP+#08yHA`!VBbh z6(Aa+T5mQ}ZkqK`=>${KzsxL9W=!g{s@3w7O|1}vb7RQB@GRQ9ersf19>20eRdyNd zy8d7j=Q}_%*JARUjs~Xv4h62h%BtIdpK%;lnkf!Dpm$UN3Zbty9;?^o#N%{FgH$}? z4VV-i+R4G~V-^$#S;u2E4>I1L_W9QduzF={iz|?TVas@2e^I}?06Fd%YLq9M_~6Iz}JG{Q=gxDWGx91Tn@3r%NtXRFR)1e&D&B2o8; zHVqgIa8Cmo(#SMW2IPHD1HVqx64L-D0kduuqDF>k;Oc8};Gfb@L?Qwi43<7X83<)| zfMgP>3p0%#y>^65mPHS#2;FTs%P1dlkqR@6u9TYj?;!+6{dWsIpI8k zG}h2_Ij$wFM<(3X*o4@fTeu;Fm=v+dcO@^(EPqAtJ6%{zv;1Y%D!6mVi?NS@%7p`b1Lw7 ztDucD-fHF>4*L9$h^!6TjnXpzG9U!2T%v#SINr;yS&Xia7hr*|Z;a&5+bff>RWC&9m4Rm^d|E4f!)-K$&Kg$v!C@A zK``JOK;90z6Y^BOIFxC$p}jbiHk#JbXA_z6{$o00*i$otm#fg^_Vgy%dHKV9_(yBv z4-<;b!6WARq2pX8y6FryWnwjCVj;arl1$hhv}sHH|D3iiFFN8g;{P}O{R8|D z1zyD4L(-_jE0;zmZ9_zaY`*AlL2PK^LN>1i$}WHYHS|5kpBL_MziF>qX<0QTmQ^W^ ze8vq6v&R9v_{T@RDzj%}SHY27w%)8N-FW+>vRllD|4ooMn`>eE@V}v24LP)8gCBC> z*U8<1NslMEF30Y{M}S&*MotX3{DGr^sdk}o%ZFHXd-ou3YVMaDLngxbc}Ig(7;W8k zRA&nhEeihcVw6*|@Nn!5Sc2mY328_ptBzj>uD5!)jhQwM#lySZ8V;CJ4Cy%Eb1I#jZ=7Hff2^bS>wje6RhG^_2Q0$W zx{?0LwT>F@_Od0UB51Zjzy!}cn)#ES)nR7&h~=mGNs)jV`w5cN>Ez&?$nCgWB%5jw6Xw#Z%iLB@DQof8l&|qd{i{;2ASX@STJ#gFsn?y7Ix)P{Y@*k(mRW5b<|h(h}`Ptr((-M;oKH<)Xn= zq_mLDCLaTPO?8W(SIniu|5L3_75#K7lAb?kLa}}DP+5PeM_&eV;R!a;G5><2fy2}G zPs5d;uyCKtR-HNKn$Z4V63tJ=j({T{z#(C7_guppanC;l`1^LxSD&ffb5026p8r14 zB+flIT$T$C%ETRy+ZvUBqa5O-DoSPiM*|M9a1;HL#|QO)k8zIyeU@k(mN8RgXwDKQ zUE&Cnu0+6|3*sU&mtr87NiWg&7?Uml9cYJDN{d+9q}cR~JFKBj;|=<7_ah_2rdji+ zIwC(}nv?X9{xWVeK;{75Avwv`hU}I}X1a^UA(;&k5ctu6$af{B%&_mzETX1i-=kU$ zdG{%TL?|pYmP8azlVvdVcLLq88YY_h+Z_!|y$!{Qjz$MceR=zz)S!I+St3KG= z?K5oSL8x*DzHiFDMXMAGwbLVm5FfFyC>H?v)V1I~2ue+L;= zorS4-6VDXTbdP&`=3A8>#X}cypDbb)#<5!5RXO4KTypef&+-7+@VSzbsJ1xzN?1W{ za#UwV4u;HGri7MFwf_z3nvlhdo;lV2hiVlZ7+?+R1U)plhL%MuuntkDi$i7hbR;Kb zNeo@trocHHa?Yb?IU1O15SmBVXRFSvx~8kY4$V%5Rrmh~ymXsw4Nb&se;1ANo9z*P z6DEx)%{E7qneFchp-Rn?x@>Q)I&+L|B;c7Jb)mVGCajMdxNYsWJ%lNDO6jCuZs zN>u!7i65i>e)`AIE-ULw_$pWAKY($ZFY(IZ!ly&glH9xOKBN`c)B9q&P17Mnjn7(E5M3t;&%)t{4DO&cd86r13&s$4DjgSy=USdneIPVcwHGStto!=FkBkH%p zm(4J*$pEB~omZi14%vAoJy<~7i4Ge;uLRA~3p?5jh&{~W^#}IuIW*}Vy!kNwTe#ui z&DS3|a+qD(c<|;U__kFUjAa}_5h+;4K_FFcC7R|iSfl=%GcZg@6)`NAR3*x^JgqEE zn{@G#8;MYpoIRBML|oN4clghNgwJ*l*39;rGj!5TxSoGSC1Hnn2(IUTN_U?wcj_}! z75z+E>=Vwj%qw^Xa( z*#mgKnNSOP!aMtu4&+4&oB;CAyFdrAEUHvC73{eNjwV}neVs6ljV)ey?^3bm zA>(Kq|GfnNeH{K*G8zk^BRBcHxXMx=<15&P<_|&d{I0`?Rjc6efUbj^ zgtot+@~P}uHSf&-*MK^_^iP}`|H9G0)P>Oe@!4$EndQ+G^glzyJQbGbk1&wi@@Qxx zmgj?L)VJlK5vAqfXfn(5JA`qZ`Yb>5ZHkS@Raw5M+o{73 zpgZd+uXh&e-Y9gs?H=v{Y2!Dpqr~BGH>EQ=e#V5%H4?39d1r8|ksPZ7f0a5UzY-?+B^vOv>SoW&#Mu?Wsn} ztuiqPj=`=duCevilTzR|<8EtEHxhT-!8(YGyQ$J*W&{*`LH0I~JsQcBJ$tqev4X|r zwx^&@EE5qFVp+xr$|$Qkw76V31CT%{C9;_n^`0;rrf*R+^D{h8p$Tghvi5GU~T75J_;7h%{tQuH)~Rc1xJ6DD3RS#?AU8Kfr5v)B?|xX9AiBr%uTB#tga$a03x6+)ICmQsvJ2$@mVirMft2#DamGlcxlRI&_9Gj`h- zo_x*{CLWDjiJ^VJ3$L?jEk)zY{kv%VcD1M?S6Aw{ZMD{H%xaX)IP6N*D!6*U#T280 zy><$n{IOS1I+1`Saa(any9@?Ef3UHB4B!uYb&1QWQAY#Q_XsVk&dpYxEvqyw{mn$y zQ?aZnU?BIhN<$M_R{al@sqbYKjVPB@98KoSuON)GEUUWWQ8Bhcy7kcY{IPX@ZI;@A zr1#Y66F z#)Rsmue!EKi%A&|dyKtn${H9f)#2_Gpw0RHM%0ZgxsJ0A;+9;h^z10uN>lX7+iEql_JLVuP4SizS+B}!yh-{Li3izn^> zq*pD?mG}_|Zq7?&?vW2VpR@ov!|EjD>VG2z_CXdop@HKKf>_A>J%fc7GLv2iOkU(( z$gCu)gzB%@lx$H=wETa^xH(oZe7xntW)r*ofKAq#yGqU2!t~r_M9w*UMqJa)?BAwH zn_*^2Q*x;qqX(i9@id^^8g$1*3ddTZc?nB zB|ik#imoz^%-7laoa|Uw$HY2Hdi^_qHRgk7(m$E!gAHhLn`*%zzM$_%(%%$}al&0? zW!y`&mV!}UY(1x^N^2trx=Uqp?0?Y$DtK~eStwhS78ZBmG6L*w&;_@MSV>M2k7Ol0 z_jJPwV5D!3xM*J)ualNLRosY9)b6$Uo#--UO#A8?YHISI5lc_=o#d) zFkQF_ry@N5#u(Nz`>x*05T<+L>oYZ696VEAz?;`)+Au=?wUaEkm9Nvmq6ZzZC?Q!; zdjGmL?IXjtX!}+)sr*T1@=salt=TE&9(PuR(%=sq*o5#qgq9Fw}(iYZ%X6g zzn#Y8J2r8gw$b{i0x)eBlW5U12^uZ`Bh*1C6nln6c(JOo5=HfST}MDxww6rMm2KF+ zh@r!Zlo*ixD@Ow}LL@a$+??^}thyaZJ{^+8;IdCrtIt?>vA=Cdzvmb@5z>ElG)RS1 zySvhxmHw*a9X-qA;$7dlfLo@xqt{Unnr^R5<3BVF)aRChRoJ|%SC*Jux?{&0oJj2W z9UwwX?D!m)wZahq+RGD1)<_k|$NV&GC>K%|l6)6Flh=$ykZYqGo!WUk|7tjnon788 z=2h)Fx?kFgqgz#!u%~O%bA1;Z|jc>cv`#lo0OD*U?%Py;!Fi-j`A{C5(s_(^LbX39dA9nLnIT!JQ?(}}LR z%<`0ip~NM!K8?%roFatSR^nPUqln`uGgK7bOXTY?i5`aO`#^M2diq{bIR8!O+6ZT$ zx41N>B-`72ipD~bD`nE*=SkT|kt;oWux|H(Ruj{%_(DD+`x2dlM>yQl)XSf?`CJs7 zl$sRJPig3A?(L~o!Tv!OmIjg7Jf~*cV2wmwg0DZ=2;8qg$urAp1pF6K2ccOOc{*fd zljzM&l|6%<6>cUfS(~Ekj7kzY>zj?=YXM%^1SQUIzsMS7K8*2JSN}lZjJEdNL{Noh_JlcRU6d`*IfRobHC2k?_(#K}2 z>n-4vG16+RMu+zwIdc7hYY#Kv5b>;dC+gi=tJkG{lKO0&r`Ra!{qI0VbA5qxy_t{e zuXr|vEAW3;fE+fIrkNw-Blhl}OW2JGhc+hlCjTYj`wV~8 zV{t#)x`4j1l&`Inw{wUh;k=sK2%@++yWpNePF${vzIj|Ckp2`^2>V#|K+S|@(uYjBLjV}5Z8sD&3E5mE*NW(F5i2qb1WfRJQ z42X-F^#-D<@&N#?UowZgaxV)Pg?IkQFPkYh$t9z`V(cViA6EwMXwoPYID|ShzO&Ds zB&L10SETW$3D;5oXgYORR9N^$XQ0WQ=}qK8KO$%*o-3l$0K|U2xJi~l@$Q23)1*b~ zI~IJ=o*QqRQXaI9441p`!KZuODuTe5CI*2^W)Go=a0JYR?bt`luxO}5xGCmM)9dZw z_(I(Ns2I+4;T6Pm!}!Oq>tq<1_9|bdS_OxO5(W-o#iFu$Q~8QJCMcbBV$z$SJ6q^q znQudX&$RIN1e+G<7j8YIU8V{6Zyf!fK%zu{9oVFLgF-rMz?mZEnpFO;QU`>Z7GgiZ zxBSr}pT#2f(=JbpV9->JUAkpr4+~PfM9{;%>zCmU5ZM6?tb;VP-x{|&^hX%l=et8n z6~*q*$Ehf?JH%9NOl-XLo9A(nwGi*i8kju{#TwWhhOI%Q6kf`D>!U5=UluHthBKQr z_=0LREOE0yHA?<>sDqH!{w2N*Noy@s zhpe?$-y%-tis=I~WJc3yV*PN}hLpt1aejmnc1PTkf>OAb0krmf<#|Ut4QcLK&Kl6(Xn`&Ei-OJh=G~rZ72Gx)FFXo=NQ-a2qo`bQ zI-c8Le)-l(uP8lprq%3&>7vuy0u$`3bk8Tfd+yz;eDp))qYt@jo5c4kV&${zTBuC4@1Mc~)!FSdODp<+WG`TnqK z6&xIn2{Ex@#zUue70fceHa9=n_ zqlJ_muVL~%0*`37+__u985RSU+-Y1IGHzsyz}y-@I*6(8ccKGf83fu)m)8jfxpi4@ z2wWj9Ju73rT3Dn5nw@H6mfmH;88_TZsm_D(tdrIPazgZr4Slv&66o(IFh~8p0@`%P zlu)IYyb9EU=a)ZCp&B1YLNl2xE-8afl$dCSBpIn^VIY^0dNzHJF;W81K{Cb1D${fl z$}&}QdWNyOB-vQ;#_{Ir#^IPNIZSqgC0nq?O<%r9PcS}RYNVNATM;i+Fy&E1 zjfuaNItVG^MtmDc5gpu;${2neba2Wsg*->lp>Kth9Y7%+BuP@pn=rI%7QBVNFONcA zK&c;b%9t_(QqutxQQKJFQU6LfCs>wm2Aol?hBX6nJVFY%Qej6kAp2n}-f;y-9>vqp z`#tI)qHG31+=cRD znK-3OnE_?<0TfT$RNYzs%J(k8zI@8}cGYTFGoZ#Lq=0L5iI@S^2U`(;Pr;N&5j7_M zhpB^*B0hv~11X||TT&T^Gy^Jfh*jTP1s(cUNZA1t(m|3Wh5QPJb}8i7>HG31ql&c&+PO~^PfIN543xPG8Ov^@sXx1?<|vwG3-c-?xlg4{l{KiV4m zOj5X9%U;shTUD#!qpx<+)VopkWg>Z>rfUJ#@IleUi$ab$8kkxkf^YIJjas(q?3xBm zH-C;uNc>*ztv>$_jO5hF=^10F^}SIk%fW2X&A@`gVGbMf#Bg*iN&XSlh{^ zE-AQvj@b|FIGqlQCJU@LYbmQ|eN=K#qur}d3qGa`fsC}1)%#=BYCx-JLB@g9JnPrEJxiA=ISw|Awe~N(|v=Fp}F4 zYH%Wk@FQr{zagX{r6J^qGDG+=!a2?mn)lUQ$WAm%edM=h)SC;qo`N(%*}=4GN)Y_f zQDz0tr++d{`vg7RS2CEJ6OwpFgv|m5%m&Nme-IAQbK9FS4pb zdtc~-8GsZg_TPu9IgH!+hvnr>;zlNQue)@!5^8A9Bvc~5ieSny8IAfM%Yd-p3L!jX zuH<}W=$jdU72Nq6Q6l@)vr^sT;V{?GD_*YHz)Z(!W62ZY0QNwPmueCIE1e)r_x>Zj zp42@eTrMsrYQB7QMtUf6nULH_M9QRZr}&8FnB9<>Sx2Odtgr8UAM{CJTHK;fETZ~N z;ld>1>zWp+mcEc&judn!uzchW0Y=IhPfN7_AH^h;NVw3>~@ z&`;b=+wOFCUsG;$94o~$?XIN}3xBp%=0;FIn|(4@i`S`E!3_h22*V(=Afa9_UfDN! z81_YbjcM<(**DJHWw0;$gH5m*hmA=LxlK75m{VscvLW!YR>-SZvE;Y- zWkY?B1BgVZPjE1@URL{ntN*0SYDNF{Wwj*y5{;GYhmFN6U8D4ISuG#jHe5Mba)za% zF0QPRH6%v*gN@ZYTv#PtB>dKVy!jnh|4F zSCotjf41566&IpO?D}#(cKwU1|0H&a{w;Q`VsnH3DTEQqw9aLy7*`~4&Bayx@vD1s*Exl@caes5J z-mI3q>u1q%x7TiZ$IFdgmET57&I*QX@)?TmimMC0@{Y<;1lSd9LvG6Vf$B1 zur3o&oRa9|bq+gYPPPyA1C!I*INNY-Vdo8ZqYw~-;RK!wD z5Y~0I+6h!aD-kmYUE(>Df~2`_+>W}Dpyd?n0DfmQXvvEltKd-3QZ1NcR>vn(U^HTS zy_BlvLOO5I@@_)k2wK|Y5J5{tj!0lll{f=ys&tc!!)gKyoW;;jYH#Xi{5(bWnu2I| zrjUxLDlSBQCaao!A?iikX5%WT41sw2vV~9RGzJ19mJ`SDlKNlOu-jqZv$@9Ncp(=gS^~KG@SCn;M+3vDni}l z8iZqwChbX_#D&3Ev#LYefY_bFbsAatFT04YDgKMGyXrloR)zE2w!LugL=}=d+v+td za{ZQGQ42zPT?oK|kN_lR{IF^6h742?tRgB5nN>M=B^nuk6)dY0C9<<@<#emnU~F;t zW8`Wg1HhwAv8q=Bbe-^@T2d|>+9Y*5!>7UGN)eUIzA=QGxJKpzGjBk=J-d`2UYGz0+1s8CtZgXH9+MCfJ z1-l|U6|A?Ex0Lyalp|?95r6YuI3!(o7)?CK!=LVEH9K?{g1iTzGg+vX@nAd`g~lXw&>&GwHCOgKX_`j&`~1ean(hxZw;Wnvxo zJ}2V=E?{|#Lo&pB*sOzCDG@u433=-K3^Xgq+jnMz(FIOv+mNpEI$Zj!dOUztO7x#MIjZa$r;p?)KD-VU$|#@=^EpK*wK`kC zY1Q=C1KPooqp~gF0&ChKMK%@(Wbn7)Su#w18nno2?q6Y02AKH#`-w4PLC4W%bJV{H zJLR0C%mv-(o(ckXwoC5u*Xor=nOH~3yZ;MB^-+I`{>dCBrQ?Rt%Q^b z0%{vZV{bC>0%sH>N;gs{kx_z>#^_R*Oop-Rt-gx7>av%NUgK0hExk1>SiVCEJ5cygP?=6307L zdT1H&R@el~(L3aZpwA~aXQz-fA~%WpFY_(ln?V}ICO#SNl!%$kxA;|7b!hn(2Q#29 zW|y0Yt|_yN5xv_;&nQeX?U<>R>rJSQ^k!W}S}a_pU~4(V*7zlrw878LfSX_d;WlIj zWO^a{xfwtdBAslbce2HbgAV%e4Kd9t z|L3T0zL?F|kK!8d0$q(z}yu z_he-kXEmiutQ5qGKqW<8-Upm~7Im>7{`qbCzC0n9$H14JS}5}~n$EaO=wYsCbWip$ zK=5VK7@2}E93ld15=oO?dVOX0#HIWJTDgU*!=P(q3u#pJ2PKqjzWfa6Xif+5cEb$C zd`h(nZXV7yu0m0~X{66xZg%4={JIq@PCHFyovfs)tRNJQQQtAA^GY@qz5#r~tBAx< z!QVR?n9GjPTKZvD-44f`73QMA$O?3<7L_C$)o&aAM~&x%{|6kPtf7vxT>U47Iz<0g zsAG*3SBZ@NU}JNkYqUNB9vp~x1Lb5=YIPRy&hvl6M4W$LLRQrre|hTV8ywT&Ug|X$B=9$?zKw=k8ZI~wQXK}T;I#L`+F0r5A zo-Sjbp6V4S^-(|T$=ep;)|Z=$TTw7Sjboz~Xgdr_nf6sxe06qthkE$FSCt;V@73n% z%b($j_JBZK`qA-@mtcW^KegC$!)owPQ|%O7>GmMT4Le6+>mgQQzepgCi77F%3gdHu zURVWq+y)Gx0Fp53%A_+6a^vdTkyC0S71?F$-kAce834Kob)AvZx3Ny*0zj&Ca}3;C zf#Yg`ht!K{=F@a=)PG9~YGlU6ik%pdwxAP7R9?xd4lQKz#SB0SY58kZ%^@w$$Om7R zyNWauT%};ZcWC$=nPpIh`e9+}qr~f@bQK3;OSH>_C7IgiQ7bvD%&Nz6 z)Syslb+>h@xXlo|p_XqpK3#3JPK+}rj=OiQW)*>0Ea@7JNs7fb=>sbgF9{bRY8#^v zX~A=rLhpZ4;4AH=y)qc#C@F8kAZolWn5xya89VwRJ~iB zH);k8*N{-3EYl@5e8&c{2f6x~m|v_+PwXj<4{A-rV^X0ptFcXuW z@v%c!+mvT|jdI&6*fD|IOj*ceZLku{RtuCT^Z|+#@103)u}&dGuvCelqP5I_8xeQZ ze`^M%c!;Ww`LCsac4y7(46$F0)rco!X5Z> zmqCRO6HcT4?=pPSmu-RstI*_w=}r9i^WHhN61B*G168$X{CYNk|7-Y1#XoLl#{z{V z7k0XE&jdZGIlk$u&OrY^eOEW$y5>DL9rPF_lImRZ(7*g(>Wy)Ile?v%& z`d?s>CsNb5Ws2Sx_#A8Hf53nxB1cyZiYvtE@I86D2~6n0RRl zib6$2{Jz(asDI=%_;xxC*zTZ^C<+98GrftFC{C+95=9gyiQ*nZa?4-lC`j|G#1amd zvEaW4lNn;X!mA!9VwDt8#&OB2iWF7tAbGJl$F3(kfR8xq)He1_XtRYP>f9UJceOpa zh*M>u?5)&wBBOqDouMOEn&`jG}jv!Ji$P%s+b45FlI z=cxb86mlD}Qqq!)p}PI7>d<1P@5lh8Q03o1)f}q4@&MM*Qhxal%>_|7>VKFz%@qOt zoeU6*2q-~3WU^*T8vC0JAPS;>p72)=G@!MU#xB00x+v1bSX2V>4&wq1c7isNEA}1g zk_V+THCJ5mS<6xXpVGlMr=K&S9siKtMD7a^#+jI+s6qpf*k^G9MT(f54y6~BsIBr~ zo(xSXA&*3<{TBla$Hh7H*>|LfjXieRqST}0oyNwfFOlI|eydJ2Mop~;NDZ?hj2sfC z>cyH)09(n&;F8FHC{bfm*A7r8o9>%&>5^*YxD2+xxHJbe6qSBdQE1kM_bwG{9zr6a zM_wdQ{|WKbK>1H2_)bNX_bfBY%TRD9;%L|+G2X3!b&weEGtgefcsbrI0`_>pB3QF% zB2Jbgva$ncq9UiQ!puK$Xkr6HyEJiuzAw*y(M7mWcM309&el)H>f@zp`l$ODKr1gc zB|`UD}tqhP0Jr0v%G^bq2Z& zBYRgVQe3n%HAi@JNelVYro)54D7h(W|xJIah8 zbLJEs4B*e6@92)*02B3MSF6$ZdQ<&Ys?E&JD?u<*gX2Zb^j}}DS_KD&HC#M+0*n5rpwiTLDsz`ftouojG%wj{dI^Nl(QpnVzvqwl7rTyPWp|W^OYT^yb9elm)R@nycvc4&!RfIW)>k^PHg8;Ay|B2A2Edi? zmw*?K!+(o+Es@{*EDQtau5ffNM9@;k_9k7Gx!ebCETXsdAYh&8D2qk{gL-f^-TL0W&WX z9s&}+V;kyi^gVHzkO?q(O*8;gH;&s4~r2t#SE{0$7_pJd)A9TXS-Y6LK(#p;5 z+cuU0cO;&RLMs>J?Sz3sMloZtg}@)noJl@)6>EPgKj6ZDXG2{5k9&X-g6Se# z27guCZMizq*SZ#}Cugb)l!WZbxVHI8*)nF)KLf60(=)k7q8na6rCJRZP;(+FZe&n< zi~dJwG(IcEaoR@eVFe!d?XxZXG*bSTse{mBZDW-7!gH|hgg715_{?f8-PC8y_UvyP z;(x<{VMjJ`i{W1!4a|u&v~c?lt8T9{?FSz1eG$71FzXLC;2VlL0bl26kQ4CJA@(j3 z%g;n&`rC$d!ZC0ni7$3ENQKlkk&f#8ItP+3HoIw2Tjp~@Op6Tnig_8_Dbs=*#)I*0|?NskN&` z70qh>31;ecaL_bvwlBOfreoi7iD#$}ZhY1%2=sW&h*lkvV!Fj^;1=_#FwQS7J9;pM z$6%c07q`&P@QcNSo8}lFK`Xu>A=AnoV*@$EJ^ncH3h)02Vx~AvEK$g4ax2Cm`iCu> zi5U$h4~`1KfXkr_u&qyVF2_p=A?6FMRg<4^JC>*@;tp}Q!{@M4&UnAK(-#j_=c*_7 z;cZIH>_Un{f5C|LZh>&^%qs2K{{sh&(gB2HpQH>fjWFCVj%j&|<^FRxWOf+aD&V7(zbSJTEt^`3_sg?n)s1m z(5o*aTS@*|lfOa}E*M4-t-JqZx7w_D^jb-!+^!&|3{!{vf_ihN(W~Gl6mJ%RcDCAJ zQE422taLowL)^ptMU>lK!Mi11xzMi8(b+?~_^@5&SFqA)8wyz?ovq{Tvlqn_^&sDb$roiuxe`sZ+Iv}S?r#uRx6EarCQy6Ic}yB zzk2h#cZgKS%|VV9nkW}>qC5uwgjLWbV53xh%MElKaV))w|2poHN}Q3gal4Xb-+t9A(A7kOEZ)i1L)C7t-IO!U37nQ?GYQ`o#oS|G!$zw`7{}x$dRdpDE_C7N1+dD= z>F*-A*AOW}-i#?+7W z1iA+dY7lZtL`cuN156na;gPD}wo&P;_HAVYc91}62J5&TS-q@tU`-4VcG4KUCpuyi1JPU8GMRqFESl!cG;_o#I~fA8ZdC>j19aUr8~@m^MSX#U<0G5{$= z<@>0bLsUj@qLf;)EzHu;HEi<>-9>gkyNpRD*3m3UtOk>_;qf+a(jC9`Xpv@JgyTnO z51BXX#M-&LxS;NNu)ZnOnZL0u1F(Weml7qitMf{Bu^#giZjDAmk*vweZD_7efyRvR zvn@u~1}ekc--j_-^=`RM0Yx!hvaXBUP@a+khIH|-O0OqZT|~TGoKBoeq>C>tznl+~ z8wnR*&gF`i5f|S-2xuM0xaqUY#b2cFi7tL7z~qJ(08_htcEh-B<)2o7S($7va>6x~ zOtvd{zW)?^`F)DN{7%addabTi>ES5~$KnIepgYg!IQkl3mwDXLT@l9%aNYuMG&jn3 z-yMxZZ*sJehSXVR>+ORev^jyr8%cB3@@my;paVQk&_nB%Gc5c??8r(78{surk)2{? zmSFyuKWz%U8@Pmxe&X8Y9gYSGYnQjO>UMaYWc}{D9S|D@fIynR1~RsenZLxHdJRovakYd-xffS5$%;mlD=UsBbKZY} zFwU~Fx?wL%!o*p+>E zYOK}<=mZYde+vT0Im}+u6*TbD9<7n+Xb_kyGcp-fK~v<2$09mUW3pA<8buMM9)bSm zfG%F5xl=H<45p09$$x4&S^h=d<1&y^c!d|EDkf|p(V(j1tdIYMRr>4-c!da9G5O)% zCvt1-6)V&HuaaasyLxb+yk(geipy(-S+}+Xq_q}10`jNgHj|t^Dd?I`<9~n;Y=L-y z>}DN6pQ5)5@**p%hEu@4UGVG(qEg%)B{uZ8r9e+`in|66r&JxlzxHoO-|>VJ zp0y%W@behmoa*)VU0R<_Ku^tfkP@($PN0^C9wIX#W~u_`YWerL%zA|XO-_MHzI z{DGfKK{TGTLIr+?b>LJ1UX-c=1Z9V(a2W2`iU8O6(Ja! zzcMb&JyvyS;jwRI08&h{Uq#ilN!Ca(JL^EmF_d#jv_MNlvjl<_%Cy%aiFQiyIOMVEfkOiB5?i4eO>|JOT>r$}VOb zAefh{77VjX`#u@)ra&NfRTNTz)Kc&m&Vy}|Jw$jj@)L^IXy76Vre>?s!s4zW_e-e9 zN;-wPYO~58!T$-qpPEsX?D$8B$)o-u#cRGIkB=^KBNR>R z?Vsv~sP!#k9|^Xbd~qK?F+oI}(8^IY%S>l4R_r*Pl8&N$#ek?t4_NG;xO~UX(q;Jn z%kfmgLaW`~y<_KPm+zcZQnGvEc)7EHLfp{MX4h8IgX5jfiB`KJe(HxUc29K6onsx; zE;s6QJZy?D)kHH+~oSD8&B)X`xT^%r#1#1lCb&7~2K(gX zZhccq#Qf$LDA>|8NMb}8#2O?2`P4xuruvuvTg67i5v=g=Sz%;FB`c|UB~_B_;6H3W zyar^<6(xQpYmoVZ(l@*MPr9H~^lx2Iy3Vi!5*h28jnjKwWA<@fDF;QnMAF@n4oxVT z=jEI-7Ly9vY&qFO#S){H?1zoYpSV!jgelPS`)Elr!mru-1P9_g{8C=jirsPu{AKt5 zMOXhx>=FH2>{-RkvK&MFvd8(BYn(n4P_X@PT-JB#X>XHk01qLNAF)ugk}zce?sd zVv^|JV$y2i&P#OEZyT2nxyI^)RUCwYShdNq?r`zyOuL>$F#OrZ^K&jdlX&)L`FQqK zSN};o6a8B}OEr4`>KdgFZt=kf;?}t_3qlviHb(18uDObA&YihErwdVF4KlkBW3K*_ zI4Ang$GJ;gqx8W!KKMYK+Ynl@yEs5(hz~vxht3LzP+TlpXH=3rvcB0&I_W|$iAmjjOnRZK|0E`f{_`^(O-r|d_2wq0l@JqbkT)%v zz1nvzm8k=9Q3$UU65|<%aOJygY0A-qnL}xC%}St|N4xyDEgeEDe%Ojw!*5#}5tvbw zm0$h5EZZrJ^Td&q1O#^X(sNNy+`V*|{$#>p2*yX*ZY)b*@~}9mHzRwoxVOLBo~5^) zx-D$e^6l5Xtww`yWU2d?3T3)9miB_hvb5x}zL_40WH1zUT6jQ8Z2H0}I9_emt4-YY z)GjwW4fg(MVY*5;3DLD1?Ru-%QG3fG;T4<3$Rn14SNTz$m;Yack+Q%3{lvRb|Am5u zGC?GLJ9#Z&es;VG`*LiHS~uF8b1C;wgzPC6mvS&_LE8uU)!yzg}%rIwe=%g%fqW zaWP+BVE2Hb$8tmL%yNNlx9~n$qk6pBzy)OVLO6T5f}et6aCp=K?iOQt>x2LjALyQj zI>s|@6q`gRT_DscFM5luo>wc=^BPpSN5JAS2)w5O6aX}JG7AlAouGsTBsI+MlJ}9_ z{*;^~#53?oM5N+@$f)~2rG#X|_D4!Rv)ulqoW%UGJW6?7g0*=?UTfnoQ44+%o3;=B zD>fN>jAz|5ULN1&-7`Kt?(Om}zxQ70bVdu5`D6PWZ$RJS4QO+Imz%6h7!6*M0A(HU z(4ZI--#^^SvW0}LDKSfP&%KkvlI*@?yj+?dzYC9ekS;S5f}@yRpYgH{%o;0b;{Lk= z=EVyAX9kVN@45q+-Nj7H%nU9ej9Q)ICH;&z@mjyP)x>nto9VXNlKO%DQHi(zdmM@n^$W#D z3kpAa$R<7Uw{WoB#uGMh^;8nNIl&#_w zL11-rxkUAl#0+7>eF1(#>X9K-A%V*eJw>Mi1Xq=%~x2}l}qk_)_)C|pOii+gA(IkE=4hD(UAj#BUK1u%R6!PVi79*!>z@$nJT+%(DKS^PJPL13xlL56>9u$W%(lyhm zk2;%B&NXrf&0NNYonS-K3MN?$gh@ZUNop)-k1WVp_kXER2@Vw51{X4f(X4- z1c~USDsk$iDm^cb|C)V4d>zO%^)!%vJ}1;cCjAVL3X#}g>!%TOh!#2EPS?fDQW&0B z7j@pJ)<$EO2RLV{2R3G1(0;QpkZ%(N?h(5jzeJ2w{=%XS?L?2a&Qy*37wp0l~SdGa50)M8AZ%u8e zMQ7Bf@l35vm;RTgkT<9F(@ibnV4hc$Az?)D#5cA;zkb$ZcM?r{JUhahpdi!)+p(IU zRry4L_9fwE;{BO=hhES0bhmLTB8QM`<@l_qze_JxnV6z&Tt?8v8Zx3_R%nVr3k`;u_$J=3&3*y5m*x9S}z=#)M0 z@bk4NYW10#m}l9(ET5SQqGOTIP{A`&-nh(3@H?&MIBmnC&kAKIV2_rc@+D=(J%fb~ zyRHUXD(;=ya(CA~1rPrxyQIx5_JMt@PL-!y$E#DdUZa7M@iMlX7dzN0whAVV1~|Pw zw@6i6z3xJ|HoS0%fF3_RPv5JKHkvkR;jm6kA-ArdyR44tZ?tJ zkM{0*;+4C+;xqOfI&l4gYq#&%>fKn!{sFevryH%AV@UbHBV8xz*w*jS#@TeE+&qRG zfST2-yj~MebRmBP+f}_L_V}^PE=e|UIoRdhKo@bBvCl@V#Y=rS8mqt=0nl$K5fatiV){r-rhD5rC#QJXyGa^ASDxz@; z&i2cYt3Zwxj+KY93(62sm2@*-UZk0VZ3j|>j>9wE>ef8XcxGUFP2)owzr5*Qw?Ki9 zdD=r^P8}m`uZ^SYRXq4i8=mMNh$F?q@1attheE5_z-wv;T3wC>I-NvHV0k`QYhe}~a&;!$GsanGS&aweJy@dsAT5@>U>hGR$CCkTzshk6hbFX_{)hb{8<@a=Br-*gdwaQx3Nx~ z6EQDJorw9{e!{bMJz#iE3Y^AdyEmokAd~HN=sVM7t4I==Y*mSKvK6KJhLP7l(kBp^ z>=V3U86c&NZa$-xXtIN2KHzj`ti4~i4DiZ%ltDY_)J$nBvk*Abxk+5Yvm{B8D{?U! zlQ2m=$AYa z+!7`OxVF^9>nVfbCB;e4_RWj3&Q$;x!5I{l-p|% z!yil4DU_<(=G#yHnC9_oW;p+B)eNtHmxmvG<&0k$*UsVgdIe2=7!iK|6I{1Gmabdo zgz+RO)*q!ekrM{j!8{WNX)d2Il3V>UpOK`yFAvltHey+Tmu7%IM;2g9*hS+yL9a;9 z3-P2to(;a}QFd#GZOkE7)7eUqBHCz}UX%eR7Dz$TitushvP_DM@mCb&=3Q~CGYaCm zdP2k%Tt&*hvS`SEr_dvL=`Xe={)2VmjE3-{^k|5BvI)Jo-e=nQ#B{$>WE^ftsX9nB zw z=MWR7Agk(>HfmUGnRE`jBsd#K7o8fmr{rBtp=gRCBMOhx)hzalc>1=522PSXt&n-G zip&?#sE0)3t`rqbRxx39p2<3KS{+_AxYcQ=z-h!_TPalsu{vG!olFv8breY=R!5aM zt&S?aP>PUSFf|*4w3^U8>eVy=wlygnl@h6J$r|}ZkHajt%h0;UV zpHtypdsOJ60(-Uipu1#HKQtt$U-$@7dTnnXDG)h$m2Tf}16xufRQy4%EayO8V_aX9 z-N5(SomLx`dj>aHcOr%xS*T>Vx!sm0klF4SGvvKCPGxsRYuZ%fCzG?;Y3phwVW_Qd zip@-j|0IQ4$!1Ad>QAsvoR*pw4Q{Ewk^-k;sUJ?MI*6tID*8?)iLlg)BoRxkN}QHj zmA)X^QqP==_-KkqM0~!)F6CP=4`(=WCLScAbCxOhf%xa) zDKlXA$qc=U2TA0~X}LVEy++;@4c(^eTrRwKsaW&yhj`#a-gq6XhJm3Zh9$h0R{KbB z>7E;}-*b5X;ijI)v}UG4GWx zMSBdrDG&kvk8R+KwLg^~f(s2;oITUVP)%QAztJ^15oB}VDpEquOyb@vZ1IZsM$9Yi zpQ>5~GsDj0aiYxb%-8P^oHb!5OH9ZJ?Iv%x7b&wbKBQpJdWk@C7i4ji%$qukb<{%vDYTRqY zJq+!$CxO-~jTCPJEmBeBO(3RZW8%?{eyzjf_TGHsjr;c=x&Gz@$(G>>nJk0d+W=PK z0@EsldktBHGacoy2I0@PUi_Tkw6w3;EWyvHR>9QJEkPKKkQG=zp|jAG1=v6q!2E7w z`C0{U9_`my`VUeEA?<%5z74GXNeq^ne+o#lvKpL@d-rjNB+q%IqKD76JpF0yS3mulUMAQBviUyv8n;ASOODWxj%&8n!wNp#T)}pmkyX5~<11FOooTP;ro?Z)ow%-R z1-H%kYPP2kSYlp2ABVa2{9dR>nrCH)^YdRo4MbM9kG!5&c05wm>h3#ed4<;` zgt}hgssXHU2e6V>_?ysm%nHAUKJ{mX7kBTvVMg|5)lLs9+hXrwdy!Q=&-y}pv(B)o z{X-I$`BwA$bge$@&3dG~h{i%K*&J~d*xH-6*DF^wfR*b2QqszO7+uG#++WhCKCRpv_iVc%d0);ZRjYPp zYUPIQMOUu%g;uW4uvhMai@K4j=jvL0Sh;$nohug}bq&4$vQ#Z{>^VI_k1o&34d>)9 zqXr@?_c-Lu?8?>i?BB}OUC03Qvm|7?Ub(6PtXv0>l2+~}bRDyDH`Ay7tlTs89U4QF zwM<#-G6~eOnb>t3TmlUX6 z8~Y>$RQ3R8JD~Dz!?tVMr}PYHy1}}iYXA;qz~wUHP#EZ_(FFxVRU3coDa_$McH&B?k7BM+!ME=u-^Clw*Y zg8o9_QSCT!+~8`l^x`~0lncWnm{mAF|DS271kI!IYEy8cxyK3U8_xmJf?6*e_QDYg zjvp>w{{t9tuYBA8cQhi|v;+Y!`}-u~(irN%)@oD6loAgM$R9dBDcDwG8BJyWBh=-9 z|DUqwbV5_y>O)jRaI0VHVQ1o2YL?(u8vP-FlepEAixsz;BN&DBNmxqxajZ%Vv=>%2 z7}~T;bOR^KwB&7uDX^^zv#~85!G+t4WnhB%#uB8q0gIxe&GLCIly&B-ffm&^Y2;{< zV8*i=5FJDOgLHaO3!6N3o~UaD`)8i@MrX%NIP}HB`;#gzj)baUtR4CGOfS}B&MMsf z$eO8t5j7AI?uy9kl}QANxRu=FsKA+d(@F^^H*bn#`@~bFHb_!ymoEg-p$j}tU&A&~u<1VGwYC1+MR0%vy6WfEup6grAIK7N)y#V}`I zjI|e;Y>h%VtE%Ysy`)>tE18I0}*!pRpj-|uG0{#81~G&`a40(Ec@#cT4^kM zt;MoKvhI#)FTMmIHclKi(>_@wp~|FNt6b5OZ#PM1#ar-`Y`_E($j&t{rceaK&SKd*E3^Q34$!BUDwhWO{D z=6Jc$y1k8%!p-SBsrx~*`*>dJL`-V&G15kdr0)-7w7kt96>YTTBWJAG{`S;JwNs{>KPc;+~s?1n)`L5l}=Z)T^K!S4$FVLej5=C%CmYHxSHPzNQ782)*4s zv_LoSs%DrL}?r8qrh|A|Pq2 z{UJIMTdl3VdWiDl_E|B|UiR756q;NHw2p4G6dSBMBHvnv3hTT~DlDVH*v(d|-4b@g zCz-pU(Ik}Y6nDQgTCI856q^W?UqPsMdtVH-G;`$~6!+1;HI;xs2mIqV3gS&C5mS%- zTS*(Z@cHx^S3ntamIuI4(YC<)Nb3v1M$9~Wb|>YY9jVvC+4(0@1Cb4Rc@iQR+=KRx zx4@{t-|aoR<1@|4tYXh;5JSqfXP@J!U~XcOt)a-p?HMeIkei&PwQbMWWfaL7IrbEu z>KIYt=6#tMQ`XIUr>p&>&0Dsgck_O_tDi15Z_&NYEmJX+TAVj;7cC!^&HJ<%Ha6|v zyTfsI?A?!m+4Q`3zlcyJ@2K~iWwBK7Ysn&=N`gT{EZDJqqS~s$`3LW6l#2$`#9I~R z;x&7A?UawM6p8s45%B@fhw!5yO>%V`KTsJiRMCov7Y6n*qiyQ7>;DOW2>$p-^pBy5 zNR$sqtmykD!4SVo4hs^|4?r)%REtgx#4%C{Fr`>UnT#Ez6 z_3MjQf-=bVPL7Y_6BCOwgq*dzNJ-Pm(?OhJ4Z5GS={5@$S{6f*CC|DKfT(IjM~(tEjR@_XfX>wS>Wf=8(K zHrf!_D4-MzY$UoNt{|R3Q@57r{Tz-r#TXT9yxJ_F99~}9g)fc6)uwEs;gu`&tW3$# zihQi8u+?~ZkWZjaA~1GmNdiWW1~wDGk5V9%i2%OGjl>av{(8q_1Y#Nj!DD4aAZ~(E zKH~m%3hFwDJ8`|JfJ^Vp(5ei$MBL8|M?)t;Q?{W2$bd_)E=;*W+Zj_P*BxX?PcVG=%v*0I$AWy+6H2gp-(x6Ul*9`IVFO1)X) zlVr6LRR?ITdp7U2NNcgWfIj#pb#$Gkdq2k@<)KLJL3**YRIPL>-Iqj4szuO|uNMNZ z$Rj{uHsV*x20D(nbgiQXuu%IxSHgg2XdjC0Pu5x3`h+b{|F+@r3d}4jL?)htU+$=2 zGSkRW{tvSi=YwJhW&aKWI1$cKIVf6Qd{Me`9~Q&0b{rNbF!r7gi|-=1Nky*!1|KkP zC%9x#^j^G6zPTrSk0W!^;YF|8zPES)PxFm7DGQPO^zp6x1~h&7AEChx_#c*IR?Iu` z#KJ1zNva`Kz#r5TPOPRJ7!`cL^EC-&OTnmDcSSWwj73-5NxVGatR0>SAiEe0h^6UlH z5T)wW%+s{Py!vMn_vwUV^6H=HT75Y4n}dxiWzWwIA?D~2O>Gz#n~p@bn%4dXrXFV4 zkeh#5POd)NQ6Yh=AIrtZc23t?1t7YdNuXQs;VgBFieKk!9!F$hyfj$s~jR4f&8&akZa>EZM$= zEX#pd{IF-yaP`s!szm2GQI%Sp#ifwZ`Nv?iM^9X`^y(%@bc;&iI6Fk8AA(o+EGoT* zP$fkr0SFeAek}KaRPFbZuJT&NE%kA{=(mX#%Hse;QKoRB_D1Gb(j5S=8Hj zYYA#k%%f1LA|yXOc#Y@Ef#C9R4gD9lbG5PRfiZlcnEm79cpRM`C8x;y^n4oJCrDN< zm@l~ynY7suqOJ6D#2H8Q*EKojq)9HwQwwxPy_uU~yg(#~bin^X3J6e6 zSQ_} z7*j*VP77J_Mm!U!_rl_O*&JA7K{wYF1aP#{o?=2nH28g;Ar>}aG2g;IDTTChF6>F`=xQx&5*y7`%uA70F0C!B*u7&AD6y#O zhlNs=$``Pf@N8argx~W!1Wqps)3;mU4}Y6`g;|5hbgJHx0)|X0?DE7FroWc-3hNU{ zLQ?O0SD-nXS3a7%ECtvdG?%zPDU0=k8MY{CMJ3TBYOIWiX3ApyS+ScfGXw{)WT*}Y z{WFZbKwGFKKi9uCGMJM;E5p>K{B(rinj$|L7VAydiYF+;m}qj(f&+T&*;@%yVi{p? z=&=<&*V#*-z<0LUgNQd{*sFO^Jhbqht0jrXTU($nsZ`*_$u=0ZY+~#%r^HN1SY%?p>ZQYc;`2bE$yDQs z-?YtqM%M~PXWVH&W>OK?`5iL|S*bC%Zo$n{?eoWo{l@x6_8XmHL-+fDQ}k$_Xz=*9 zqk_3%M6B}P;NnNke)C($=n|*%s2E>X`^}=KIKY);5|Hg%CV>n$wF{AM$bs%zRw$n)|c@35==B;?8V^C9mgu3ox8p6EO$@=}Yl@h#lR{I7#q9X;dQ zS*fx^%=MOV#8KJL|2SsQvl;HKgfwY}6ChzT+$RY-aUM(NC6ww_UW?DyT9*Z%bm*zZ zyz%Ntxdx3X8I{%*y`cj`#cQkUuk_aMf;J3Bq6Yio($Tzt{9Wsc^l6Q~nN zP^zpRq=0T^d^(O)-ZnA(HSfAzK12cQ3% zb@>04p8R7M{=F>>ZW5fIp`j>@27DTaxnsu5X@ZIe{Qu&4#cL)EHSVvt=;JoQ8MFzm znF-Q7mm7&AP5t%v)ncX@`0uk#kg%9bLH|Egukod5itd-KmTh(FTWNOEyTYvVVBq%>3Z=6f?tT?+5-B)Fys?}oj3gR(bA&C4p( zfvs55TA|$aLVC(w71Z+a2(=`Nt87L7XaX<~k=oyX*rv4^kID7&Zx6QmKyGTJ!&$2`^sgo~i+|X&xXIN^7Zxbdc|2EjA}qByTcE-< z<1fQ#{~Ik(or}wT5iA^Wbl>og!wh=1Ks|?$CM{3`By7o;MbOD&fx1`*b+P=nDIN!h zMj~IxVcaV!9;hDjM6@Jg8O3Tviw@m4psCM)IgJ*sVsg;wcb{p-6yU5s_MuMP%8Oxl zgi!6g)sY@Rr?6YO(d!sGW|oErZz_L|zM_26WP2nZOCj;KG%UPHOaH8xF%9oIa&w>) z+Fp1BtDiWZLEDQfX1EdNJZWjhFHcwcw>`o4q)gB}QN09Zood{7aU*fMGW~T~`~>u% zf`mdKPHHRP3FjRt6EsdZZ|9=Ps@R(%dlTX1=I|ayeYjPYQa%@?D}xlA5LY6?n;F&> zi~{WeP7HQzcM_8w`5Jgkvfoaba3+j?gByv%sQ$WTCZ?{3AIwN|pb{EiJ}UWI3eY;J zBz~u)qJIGYXN=>m8CsR+CE^|#&r7e)(5gHyDORa?dGe^G*R9&MG&9S5URt%;eO_8i z`TaRBEoUwm>t&nmp;&IChx5=*^E@O51mzj7>$a+1lRaVAY1NthS%FJB{A*h!T-A_S zYt|e*jJs9M&ePFsIY8khD}U)_!>fKXKx~qHw$slhU8@go!OB5LPCJ+O02$X=Xi20! z*MXuCmQkX&nPo$AA7B#Q@)M5{d$~epFT_z-`$@+L*}i>@;D^ZNhTw`K(Q@_D#W6y3 z9?v%-$B5km7S?HXk>wNa!cTa+RL&^OuyJ#jYgS24hIfkbWIf`&*42IzZe;uUaC48V zmo9K4I`0WLCwA~57k(C+rPKk@y8!E#ac%PG( zccz2cC||8i+pmd>tB)DBg4 zEfT>%If|dwN{B0{h+wiA9o3sla9meyPI@EN(JBm$B4|moIzCww85F;} zS;WJ0xC2$ep$W}Zq4a2?;in<^2^yfF(5w)V?*Vz0lF^;~bBautz!n#*$%}uwg0byu z-O2Co1ois#F98wYKynfNlgsz_rWwC1rNly}!VBeq5adVusRq~I;5FMda>;IZ(#4uA z(-c6bNKq}yEegalTC7w@PzdN2j|U;h&v+dg5el<2GTAP8qodUkB3l*w=G1<)9K!f& z0plz4!r0$NHH6Qj3m*IK0c+Zc$O>d{7j#WC4k&*$*=E@}!f|xZ1x1pKnIX9}>UW1lpkNoQCOCK| zE5W?vj?o_GT|~-iLaqaM6dMYpuQs&UVi&0nc|+^$wxV2Gk>6+HCt&jkYZCS+_eAV6 zy-z06o{MFLYsf!B%W%Ly6j_b&inj>HPqZ+86atjJEW?7AwyZy-NiCO0rx~+l-DXJZ zFq`bwDpJ}{wWwiPM~bB9DjpuIj*LOPD^HM!151i{4-}*sw&*mW7~;MnM>9(^5oU;Q zN`a4QIJp32ou;tYb0cwv6a979Oix}O`l1K*7UN#6SbTV zPoGGcZcaR1X=(}yS9s8fP8_t11%Ib4344fK)4(8|)m1GiL<_@wBqpJ)ZX%zXe{<9R&TfDwh?kyoIb(hA;r|HV)I~i5-E;hxWm>Oaj$LFz2fnq zwp7EHDdOxc$s%tiia3)SiCf$H>ofWc2R*Z(-#vlCXjb_sY)qzps! z=yj5tLL)+oio>KPs#OnqYQ;gJLYfO!@Qiqqq(ef9YD-0wZWhP!I5(6Y90pswuvruA zy5b#zcEoEIh>K5n5V^pz@xcDN4f+6>m+{1L7<5&_#aFL1AZ;Siqg(o z1AaBbdX!9q)?+TFk<7KE7mhmD=kmf)_8H9{GJD~?3X||1w-)}C^84e3BTjE62zjxd zI77;0Hk1_aj!%KqPOLXha7%wI5~5RfR=Hn=905D08}egcR2jj!*OSxbHW8>#4|Z@3 z`R%MLDmkRngJ-@jt7H@-N3U$&KK>SHGWXhe0ypn5yiM0S3IGaUh+7hwInOTguFz~Q zBfnUN>tnUu8h_bP_ypz?)lT|JX6uh~1^Y6@EJBL{xcFiB@_?(CBtHewOZ=*jxWn8h z24%U!gu*Ekm+d!{Xv+VIYqUu)`H=%A%62bh81>VJ%dcHMCBa4XloKwg#o3e}Qnvpg z3@g=?KVugBQ=Dr(CdO4b$_^|3n=$I1t@taqVm(MJz5oN;Pydo25@*FXB*)9e1q0m1 zYQQuHb61;Ue2PcbH{QAA|lV8sVo`gSnGa>uKK8 zUexAs3(8=G7daX*iyF=x>?2aCkHhnO+TVtH!CZ10nVR&bgIU~3umBm}5x6>xR9n+` z@^|=pPE6nFA3=Bi8dM6^iT*Q@7f3fxIw2hox5kZ9_ZA0yGofkJ8;>o%hA zO0j9vb34UBgBcXdtyZHtj7OVRPY2o+D1%%>EyW8qmys134a4?~gHH}|Ni>@#x}0jv zKn5HZ6Ox#Mo8QKvys>977)ZCP;LwT1|{>I=Sk=|pEfi0 zo3r=<`Q2~puhanQ%82Kz+1{Qtnu=$woAR?( ztKBr-YQ0Nn)r>G#$N}Wq#xqwWYvpO;V)pt=NelVd>%+QMAKsz0CctpX$6se{6GB7w zDG`4Sr{o_`4Mh0sk1^w(`D-i^6@z{HjPF%8Fqy;tL?SPZ!=A$&)@YzR7JEhn9X5+y zwBPI?1HrCBa~YW|_1p`SjgCB>$v#A&6-;(OPCIR^Qgl^F0h4u*UlNnuj*eoO>~-`h zj>(F#_QGU0;33LVS@=+w;OA3S#cgvo4G*w#z9PN3(6nJ`*sCF37~2cZaxwtwB3>lj;nA+3mm7)qaxx zOtzoz*3he5y>xMFNOT_0)gr3KhJb~oYCKIY`RM9!VeF*NvI>x{Pc~%V?wWIwzVNTa zXl-q9Jmx;&YCj2cvi*FR`?RZq32{_(J{KwaL^sP z(OWQyUIjP*XM{JY8x>GtN$TkYpg7&A8UKHBkGw9#OpC1B*k9N+R&AMN!N%nyIIK@i z(vtwVIe?!PnBBdJLK7O(kuiB?0M7a=8v?%t`ju_RdKjRh#h|1<7&j453MJs}$!bL%7$OZnET!A*r_@TQu+1 zt(18~ezQKYlHMyPdLBXyagXRy@9LC0h~`xYP3ho`n_7H5bWkYBo2%tAD8j8!HozAoChCTN zH~SIFm|5bE)~e87d=;togcYnlDiqv037HS|0<~I`GtOIMuS4*i7{fgb+%(6jqKPDL!^zVt09j4rk=ZLUQm^wGa_bzeMtcT4XcZsHQ{z*sB<(zm=0yyf}W95@aZ% z=22Ld4EA4Zup749kM7|EElF5qczus~4dYBZgtLZ&TL%2|QYOWlfjDFnMly<~%QLhpMN>t7iXA2nS&61Qo_%EhEZOb(6erY2!Qxd-}Qf{~&TUlamEyi-FA^ zsg;{eDKbCbIj-}m?d3g+%mpD1G#YTe3C>QDi@DU;oSm)dGHpwL3ew?0FxLro&7j~Y zdSX*myphlk02f-ZgJYq?LBTsh_n9api`vW0EWLbKSbh~Xkcnq1VVOJ+?$)*XHD~R5 zr>97Qt$`|g8gJ4A64VgS`qebZ{uoZfelQA4%Xjy(>(cz_KeS_SnYaMqZj5_is~#wx0=&T%qU6BH^YHW&z@# zjNr+3aXu-gVcXC7OVkEv9=*-iBMAFrvVH(%qC2eV={ygf&Vs+hxjKK*(SpgY4D?y9 z&fi2m!_`@Gu{2-je?%>@QPPSQzRt$vX!{ZV&iz<#Oaz3Plx>Y&oqvXM(qH6b^e3NB z3<=}{jgle*nD4cF#Lb$;`Ur$lvI$khKeyxF5P|_~xwNagni2Sq(s=OBq#Tyo8RB^X ztp#%5euZmJnKnALbo7GCyaS(bwc6F%H-;1RFQx`q5(!mSYqH}->nbj8kA0CvhmP?(3SbVATzeh|9K%YS$B3gs&Uu^=T|g31mU?l4QHZ}| zCRUz3kLNjtl{k-Q2>@sHdAZBgev;3NY(JmR%WGY|bm8+NI*;E-oWzz|oVBN}<#{x; zr~ajYjUoGxWFobs;gC8+*RxQmH_?^4RidllM=Z6Rjcg%;_*ZqPj!n_^NfFUCc{7t6 zV`j1TemM*!a@b<+kP>TibZU#dU!nGe$os@hjYP!ZeANT)d7#1#P{8bh`*#qUGjZn$Y~)|1FJf!2gXLq@rb;YD}C<@wtBj z5X0FCw1rzje;f@4J2RZv;_W=Kh4fD*Rfn9Izkq58^>8?f{;P+J=r+1qBXC#h;T1H( zk_~7&JHg3qVFt5KBj8SV!2+UlNI+ZplB7W-?6oF`@DN~?NkLT5kq)^Kl?D+iudeg6n5aX)VvJ9SZA( zCPTW%}Jc{aYQvNP#Aj16~BZ}%#3@v)5OH_;wJ1UrKH=;Xy1{d$YqWZax zVI|JvnT`rM=g|*E^{X7iN}R`^2mohQRKL;Hev+bEwx3T?{SH?zT_~zW=kXhblh{&= zv!dFyJdcW^`Ub$pEj)xn>JT0-My2kA2jycy-73jJ@FSKSHX@rCwo`I271e_gMRn+h z*BmMjj|{0Jb!Of4cVy2>qPKO^XDQuuazC~@`lr;SkdIG~s~6GzJWOEeNdx_mqXmHXpZl^f1;+3+Y0s>}Nyqb3a z6)6<=1m3Vy5$5=PJMwXEPgJ}{jrA)qi;!|$kB$7S#h426WfVl}E~79%mLe4BA|ANW zY_knL4(^nW)Y}uS!PQXgAUq)=7~;@^K90!hn`H{Zna?4EQJ0KY45d{SlmF7i(bKG$hltGs8(e zQB3OWyp!@*QjHZm<^duh%jmzM<05n$-4slgPHa{B!Cy!t#G?Sj&{jOw4IMY6%*#~4 z+8YhcSQ^ zCL|o;M&gj5zb2V5LZl>>0?4Vgd`N1iOfe^te#ZXi`WvESvS1l^wL{xjZ3>)D9{aM#y zhDXh?aZ)E@VnRZNL+sE?JOuD|r zPg0#ERAFkxbWu~2lm99j-he+XN2#Qg_|2H6NOzgGPz|B|`(r)D#A?bmtssI%G{xAm zT%2wCuh5Z;jlZ4pW7xPHXvbDzl0S)-(mt*9=NO!}@?{&`d-UKe`}7B#V>9j3Ve^Cj zF5EN@&QzPi`pWQn)>W<-%F6X{^J>>TJewk8l!Qg24`38!(XzVsOn57d4U8=m9CU0g zkhcc6yB4Si8o*-NL*)dO5uB#RL5;Ut)tYKls)u5~hvfBX%pTzTdcvI$ z1+&`OIzMOvXMu2;9$Ff8s|k@n7*5DPof_cLgi_lbj}06%3?c!*<&%ApnA`F1_-(-S zI^@J8=YX}23g$)`krP*Oaa*)qOpiu~WG$y*$++`W5ryY4!^ZDbj^QNAxm(15vN})P z=xRR+KC*qwd15y60W}r*%bv%GtDi31Cq(z5yr9GYwZ~^b&xsxE%7vkYW+^o_JJX)w zvt2Vxia~xPAEsXBYCj26vV99vvxqyZ*@z$ZEMD#Er3*ZX&U?bsQpXc$sE&OEImM(Jj(*=e^_dQ`~fg$|5uro(|S0GbAZM^Ju%_j*j z*XF~^GhFQ_;YGG@;l+9eQT(uHQFHau1y)4oJz-@@L$dvR7<#>{mo6|QI`0WX3uTB;J{G#rGglT+xY56D#Jtxvr6k1Mn-4Lc zaJ8R=7}pkzti!zR1qIff5vIS zliZT&k%u8qXo7|etx#sSG9gsDCCAQ{h)TL8&zOpcjVFY>6qgJ(Mx2jwlG0|= zpG;|ny7fXMj03wM8TjeG4fq$!fhj^vw3X1TW=`G4 zuyg|E|85^GDs2osq%taWn(%p^;G5)47@hF!lDCZl>v2%(R*PJ#fX@7c0_JJi>xIMVVENzrSLlnDon zxM-&#v8Y~05M%%^7{L#H!r7k2LaC~F8IGzi>;KcDmz_G2_v9LVBK^zbe zf&v!eAG(Av(r&h3Bo=#R#XvNW4CHfbbOi!yQCTK%6NBGILuf-4DpRlP7Cq+U9ioTR zfYd5pWt+eXrI-_l2}Ch}2gQq5hdK2BNEuI9QNdk@yav|%VP+VshYGtula0ewGL%dp zNIl(q;E_-i3-royDl}F651VyJN1mXgk#6Z|K@1)3JC5#vjM7yUVS9>D(a!SDb;a!h zw^M?Q)~laj5llIP)q`?yUxn}oUa*($;|zOvdY}qw!r#R6X-h3OC%uvCC|>E~TPffy zlX$EP`v70aK|y-n4AG{Ds`!P7am3avUQ<3)-oqBp;xKNzR3r_9{fI{l*bLaTXbDkH zT$PVBd88af>+iLMmEwMipSP~J` zh_JtS=;E17jUYboC*p*lN{AViA_qUKl&99W>g(|j5nojk%kT6QLJYq^VEB36V)&Fe z4F3x-ER=GD-ZF3Z6LgENiuXt$`gsRD$bc+JGA_!EMtQ1$i+1B!{90UfI7t zyZXB zICOaV4Qa!Z^@@>Nu264YHzVGJVLxg2QwE~bQB?=)omW$|olGkF^>58P8S8U*gV$$r zY&Ja*kJq*O0|f2N=#z{}cjaPxnnS7|?>#Cu<-Ml)!2L|LIrLiAW6%bm^rKU zk0Bsrv8=snJCree`V!}9ad8yKBhq;AI2BbaetZz%iSg6ugp4@ zsW6z$5K@~*$HLl2IE_RrGS>--w^E#>et6T^kQ3ep402aZonOvP@?aP9Jq|RY*-=2h z9HUC#C4Wnsy|}M*twb5X8Q#d)dnM@EJ5naXh2Da6)svG@L%||7Tx~VV4QLc#5@DD8 zbwxT3B6v@&QqYvH&!#mBVnhLRHf~gi-_wW24WRU;c|iHa5>Se^Q%#n>gz{`u4x#M7 za;b6h`vC+41*^fPR~rRAuijWF;=fj7O8h}T7}~^dHu0a>q`8cE#40pOh7~69jH4)m zdl_N26wPZ;JCmlNL2|ih>g?jR^88O~XZehnIx9%_D7Y5!H7)pYAF@>v_qR#!1SL4B zIVt4-&zZ1ZrYsxXowC@K5HJnuz?n{x4#frvNhfh#t2=vY3q&JYB(N*ST`2rZ4AFPo z3;%1%@3>INva1?s)(eHo^F{l^bX1HR+`IMQtP6$jcaDv(sP%eheJBjF$2XJc3;_8+ zI2mG(uHv$d&WP+*rP&6qBQ?qM+H+#Q49GPI&2`a z7ZDdlO>GKUnE@^#noCkialy-^{)q|Vh!)2e=_Mc2&Uw$HdAbn zv2v~K9-(4RHXZ>Is;ohOnIrEEBM)Ke;K2k54%$}*O*2bRm*td-V{w{`iYQY?2Q1UL zmdgba6CKbvQ;^AvUUJ!^EMKf*1|g7Llf336JG34;N@0gnDWf%`k?lZP_Tt=0bCB`= z+S~y6l=ERD{dHOVpf&h{ghC)9YRe>|ct#|MXuxlzOpc}@qjeD~Qd~n-w614x(R8Yr zdjr3Pq)A5q))QuWc~gc#N_u$%isqn~1@tTh*|FiNr|8zo(*p^tY{2?n>M6&99q`|o zVHy(FG>u%aPQQy7nL;R|6swllI>Q_Ics>aID!KUs+PdOy{kU~O4rv+*VgLp-U)X3)hHS^R*MX6zi zCR1K7j{>~eNYm7j|A($MGt&%p;%Cmscsh0B6`qGJOCKvT!7TBYJ*yLM$SIaCa#S$4 znTQl!$X1+Xw-8qTd{pbd?DiWV$1S^sL+Oy+9!90^WH;)Lwg|dZA|}XE!Y?F=xC6?C zs=W)LeH(`tI=Py$4?FQ!lG@m{2wp(r<@MO9Dc%P5FvXz-cOg=fOYxTelS+lEfx!5jOd93@=KyiOPmQbW||uJi;bll&v_k$q-cj3khod zHXZth(2JW*hC}IKlRheS$0n&e#U{lBnN5zRQ2;u0-ePP$Np)RT+UG_6S=;y1=OGkVHE^ zgV|bnHhgC7$;oz)aa2fPyT1k`A$D0?!vX{Aa)#C}F`K_D{K{YUu$MbVk+@r&&J{98 z)>z|eKS|ds+qZPR86s<3?CPfreXr==W=c7+vdCI~F1*ZBB@}AH3>!PwyJnRXB;dMy z*eSW%Pr{CD-@;C6e2sBeFJ0h9be0v@*Py_ zPEeull%OIe$b!oEXs)q>${Ejr`k{E+bTsIhaqv+MU`N+*vmqY0qrU}2;oi~TN?&4j zbh%4*>uR}{wv$S^RVMd?)V+K~hl0qg-osA5)ojPy$8{)5WB-oq?Q7N?JX~%ZXm)Pv z3(Zy)XR$MF?(z=+G+{sAmi|FqE7;uimacFhHDcir=*h;WoC6w?%UZkR3DKrptk~Mo z=^&ZB%l``|pX+e-&s-t%cKLl*`$-I0wx5q7|I*b<7Ytc+Zm;)*&GHKZ78a6baI;*z zHz#fiTp=@Vmb= zAYPVS{d9p9(S1)?nWuID$<8dVi{sYl*tGPg&F_!6CXocJmOzGerkEqPAGN=zpLS1o zxOz%LyXYw=TvCg(Xcz8R{^!Af`Y+mj6ur1byKpESqTPE?sXNh*x>KT^m>`RG@1wc) zBHF12AlhlT*$|Ht?d}8i-J;z`=}R9)J9Vz=QnXXmdl2oGkr1ZZF-5x=c}*2n>xtzx zooTPCe+BgN%WDtlT0O{XdPKZ@#zJ|mLw<^AC=3~lr)XRII%+3NUk_s{xuma$92F7- zlpkg*&TJ(FtN#OnaNkdiUqdf$wh|7dgROi4mAYdq)SY50VuH+8{)y(=3tLeQfURh_ zWn(LAZ;WFr8|X`a*vhJdhbFsqCs0*m*-4l7qp)4ph96%v@qjoFGbGYMhk? zxeS%MVey$xU$#VJUryVF*!> z4Eo>3V^!g!WAykLMHc9M^epz>vBbyD=n1ie$Ig~q$8W1qggOdOr=5U1^7V4|&%*4m zqR*s%0QvM4O=zRX&6evL{J7c1t{tb|94r-=v#iI>rh}72uKBK6gz<$#2rh`|%}XT; z^;jw;J!=L{x&5NqzPsTiw0jC}b_cu(piTq@Q;Kys1XR`|+}bGa*wSr>-BYbG{Jahh zcXYA5S-i@dKorsuM0HYDj@1RUCBK#@%C#xPW<%7=VY-PsRNUS|kU-iB#GQ%}dOMMV zQo?syH%c$o``$=veX})%YovUQf9n-RH6{eR#c0OS_5pD#9(BVmsT9Y?nQYV#RV(NR zuP@d-gsY;MgosSmu5zTa!`^VQUFD{{Ba^i{`xWv9dTL>)xVgv=_+hjMa08@(Ibgc= zqHL8TvxlBbLVte#_kRxTxS^ z$`QewX1(1Q!K+VesqV4CVuY`4fWMby{?1^b%AqiU(>sIE`yn`yZfRi)YSQzvv@KK+ z^Mj*}HmC2NmOhb7b_Vmo^F(L>)Sr)qj~hM+B!C|aL^mb0eGoqp*pfz5YBy^5wWw7e zDGg(e^tCx1%*MDHQ{djC^?C~-RXyY5j$;EDr$$;6?eWqPFs|`w0uP@LXzTu>M**YwZX!HM1xYz3H2 ztKC$EW(Tt?-f;T>+FK0c?*x3iPy!ry969sBy+%Bm)bvY(#nlPKqAsbJ!qdV0c58I~ z#p|2Z1Jl8B`(w$Y5aXpWu-BT`0Gw&4BdzIRiHK-zv@)ApnGRM&zC@bvpG#!CShO3C zLDgPve~45LPM|q}4L8RCq8jEj9W1JqClFNofCq?I@cTG#Vmergh{*LurBv}IK_BRb zLMiRU!_DjuM-Zu2N{BBxT0Md-I9Ob6x9X)ZD>$wSqFPjGk56hvEdiD@C;(;ydmlBp zgmZXrAoPb>lTEK(sh5t76G@!_E(gAk9XzbbR5H>k9jZ2~cuUVF%z zs}{uA+F&6j(}c?&Z$bFBNETz~K8h0+ES~fxOJVS6lvzkQPTv`v%A*l+ zLm^Cn;s{0+5b}aX`LO`}B0MusL4FdZObN=-{Qn zQvNM|mTGl`$w4+CxIzb67t0D5BmPrD?St(}3}!KSPpjGjc*JtQ6GT!UK^$(NTCM++ zh$A3&k6rErilahyxdRdMXv8O?BTz*P3=yzFu#4vObHJ;t+zDK|aTGA zT*?%G5BmGCKK&bMzZ)O($L<(=(JL39a18(F?^%jZyD9m=8A#qs$5kLudfY~_Mldpz8WZk3pGxaiKFuU5semeb9>_Yy1 z7$t7ZZj8v?EX39uNn-bqEW_eA_Q5;FiEr#vWB=s;crF0&FeNw4Lvk}EvvJkQFHmwj zC5I^a8YSPNB(#cL^d;;{urgcUc5*m0`ig5+SDwNznN; zCV5`|8yeZYluVwCq)kb1Dw02@=N zWCJCupNM3LlIKwJLQ4MExk&D&&1tU+=$CDUt>yoM6y z3-rD^Kc=1tBYJH;6O5vl+xbj~4S~*diGVT-DroWB??O{EPQz?avhhhsE~n%UN?uOM z7b*ENC1*St$=Q_nl+-D?my-8Ua@<8o=2EhglD(9CfRc|;QoI<+6Dg@t(xBw4lzfYl zYc4^uo03N;`7I?Amm+CV@!tx)WWALkUm|J z^y!w5Pq%=4a-;Rh&DJNc3!l6)d@_{!WJvYN%Hfk0#3zlRPZ~wu1x3@taNq1% z#~g#l6Yw$yo^(-{qM=qCDuNEn?V5N^gCgkTZM3l}p6nTi;!|i^Wsti9SB6#;zkxu~ zh!$7MydiogZY3#z(I%db+6#rRDlP=If{dh($2g#LC57-PR#^Qo-N~l2O}VvkV}Zl$ zJ&V&K{!^{5+*k}V`GZ#~57!TQrLlIchOaA?5_HJ=uuiumDnVg$V2X+hCBhJQRq?t~6VH~c44dG;o}*znNH|!%vABcYQKJXY z2qOAjE~ttp@sI_c=Mgv4RS9lHeWb_Q)cYAqe+;a&>I8mZVw_)FLLq3Ft6qcaLYIsq zd3mDxOwl8bmlFDf&2sTDoUT~7uU8yaRx8?;pn^g}WBB;}( K=1H6>hWfSI07Uj;6NbZN+3W8ABVX=!WYO#0)*@PRrT?@-_i5l z?CuDNjq$#DuaD}g>guZM>gsz|-@km>@@4c-cT;P&Qmr4KD3;6hM%i!8ch{90rOu3B zZ_nR1zxBEEch48PL(Sr`R-@A_`SaanC{e0ZYvrb2pMS=DcOw;VS8J^aS$}QIFSVf}ALy>CRqOuzfzDL1J6vqHo7JgK z8>6OCuB?_@G@`YoTCvr_OFXZx7iYxNx^ibW{4oV6oBlMF>2%k&i-+mcd}UK*q_UxM zZe?X~JPRn`mS zhuGV!UUb*r)|rxcY6(Q0VZRHJvI`LH5D*=xoJZrXoR7g)E&z5f!v8P9|3~rvtr$q< zQXas#C|(%@Agck$5D4CwnQe6HWrJ{nrj=zFeWTQF`X*83x3rEbBi)S(8DiW(I_TD{ z3RG{X)=RZc*`Kb~B<^R5$IJd~yE1>n8jz zVqLv6Gvzn^^85|Uy2H$Utwy~zhqA-q>abTD{ocwJ9`#xv?Qv05bvMa@jvs3lXJ`H9 zd@+i>$Dp2pJz(3{*zT@x8AK~8mS&&Lr*435}f;-x!`L8)HDG1+e&LqcONK0n9il8JJ4dfF4+sWG~Wgk!!JV}4=2 zF+a~3^Cp0~th>5eFZ;*iQy`7aO`a}vSIriy&H3(#0RL()VQBN+bHvy2q>q&~2io&R zV$=IE8VO!^GLw{Nf2S;)en1(=|q?y1eUW97=myu9tP`I z3>0+FzK&>8YSd~%>bJ(cV#{m!ZOw&_5+Q-!h#|cpJAwXx$k&04Twxj*c!d(bJ*1mW z_BAcw7As!&;_LicyXX~oaq+74BxG-$@1C7N`U$Q&pU410sDnFKVeu{*lu>K$GOW<} zGTEwPjcRwArkw7s*=E|bk_m*5eE6{=;eRJ`sJXHBI&Frs+L$7>=mumoZ3Ij#6Z^m!?%~};Y zf&txfInxxOb;0C9Cvj_lXfirX)zBGTJXymFRzq7%A7OWSJ+>AGE2+vz4K;zv`+22=!U-zOV+jR! zG^PT`&v}a}x@+W8*F7~sD4=(qjt~pob<>?%jmcU0Cb7|np~rxIZdeXu6xF{Md-h~z1`fy?n45)LsCeb(OoOQhg=fAs*D8JM7RY!ykXX_ zmmvu!j{{K#F}j1Fq=(pjdX15x>$p`_wI_>Ig&YZ z;{t&e(usVxF!_QT@yErK2GL<55&dV1)%tw!4Akqc#f$dbELc&JskkvM>TAM@`(iHmcdC#;wC1osntejG;tpm=b%Zz zF#`sVp+~`kA%|@dtKpR2KIZ#%uYIiH%{CiQs@t#uCe#Ykqm(9oa2NG463of2DqFJH zI;2DlY<*$u8K@Ydm3F#XuhJqr8IkEyL=AOMi!$oSDQi=9Ugy5Qju}9$i&3NB@F!jdaLah%cKPtj_v}?M|W-= z^Exfx+qq-MHvMY*(VfFm48k`731w2FyH=7y@vr_Ja_VmhPK5);v7nl&0ZsM$sPvZL zh4kmV8#aK`Uy4W8%7;S^G5A65#+-wAH z6g)x*O;`O|Ie8UhuP=X($tU_WEUHFrk>OjExug9E<|{oG2)dErp*#Z#z9>fjzvz!p zlcgjTkW4kob1_H_OrP8G3c&PMZ+zU_cbp8@7FKXiI8o%%08>n=uakJ+s2?^P{E<{) zV@B4GG7p1w$=0l2s!mr+^DheOsL7gRKthLYfZ&JpG!py={(wejbXRzVaC$J>=#xqR z;0C-K*LHfK2^4I1OzF>+qjsoUux6;B5KU9w;Ms03_UfUhi@z$C*VVtDEpq z(#|B1Q@lX!9tr-PsqIGdcZlpG0r7tiO+NS+QS>uhH256;*z8dVzGS?EJyfjHzKOEY zZWTZEFq!LaA}VK_cfbPIjhrNwe6J~eycv(_OP{7 zs(9^+@3mM<9v0f0F`u_)uB*nC(i>KZ1VtLdNHCda{A^1}weJ*Eei|yf<_4`u zlD>qpO!U=gr4ESHM4etWKSkxjRX`bB{W(c14|dNgwk88?%oMhI1z{S(*Hvkh;Ss$c z!TBNFb`!Fa?HScelLqR85w5L#M7`*4;?7h<1?30*nl7+b_aPh)`nS#1^G>Q3D*s;j zzm}UpdA{KA3tpz{c4r3S?o`9YP9td%KhT3+ArYWAt)k|=0vmof1MJ|{Gy-ZXxX_rE zatTS@9x)vo*&J=%lPq%08y*^_rliXB*m){-He+Rr5h>&q-60RU;!28L~z2U&JAU5RpTADx`?V z5U7}V{4#)C6!CZsAykS-F>)4U^W}o0@Vx5uTCMO4(M5eKk`*@&}ol*Ei38Q8G-+HT$o!xrN zJJ{^N?>j9~#L6$QR;adUQ@%!!d+RQ$v_%T78z37kdrPV_L*4aL*mv~X>5iWv z+SrJ0TFC05^Xe?DPF`WU)+n~wt#UJd@`M-bSnyv4l6tLKugpAL(+{v8wc@^$2klJ*5}XWar&r+BJUku{ISs@wn^JFyv}r3K5%Cj9Z^@r9jOj%e;w^bA+IC<` zdP_8xV&0M{lG3~-3FU@D9?(eY8ZR-6qP5bOWFf6bf>-pw70LzkM1+yx7Q>AXnzm2CSH zhB3XU$+p4YqHxmod5V*71psnjNwTfRQjBe*NJ?YdgmOb64;XA4z657QYxQQ^uk^rG zjBTAw1}`NZ7zw%=T9vLOS`DIRXjB|YSK)Ck+ItCGE7b}m5cO}3HeS50&&6BPv%i-r z^;*2b)#qAUX;L8xv?dknWilm6i4e+@UvG2{SH`^Si#6;FH{e%n9)rtMjbbsH(g^4- zMr$DSujIiYdyx;KhRYlxhLfy8xL#z|ST9(^&2PjT7ayRJ@=M&FJL;Q%Uh6?N&oA;%PGRP5~ z<>1S}si_d9&k*I;L3DEP1zoEdh_CU=ehI~5v|xDqhIC8fQ^ZAyuWET+Nze8O*R6KZ&*`FEg{rXbmUU0o5z!QY zSVRPcxy8MFkLn&zcIRg~JMS)U#G|6mpeiGQ?0cxYrdsC%X+}KvYG!}csr+Skyw%+? zLcFJoomzWRSR zl1dFt{IEwh>F)3HXn(y)CBW#DR6|;(CQ)h?ebuAkANFXDyGP^N9B88|TuNE#^a6KJ zE;`Ac^3iGD-CrMc5@7U8C%xb$(uuxmI`I#iPJiScjf+li$VaDlyL)ocN%oYFP9Jjj z*9V;h7=6-dy`haHQEH9&u4tux+SGc;Jth~mKA(?T-*NZkqL%C_AGLn!?ynDO2{7_d zt9M!2wM)``mN>8>_#RZOtyj1j-{2oR-@+E<~#)57Kd9tojb-$ml`U1Ti$WBJV+gMuY;k#Moetj@MgTT--^u zrMMsrAnHxin0<=Rjx=u**c2CQaf*;oX~$uarEm*oDj+?MruvZ@X$T4OyUDgh3<2g7NAT_ z8E3O}{ef0bI`?QGH*pf$M=~T6+AlQ{g4YqHMuOMSpG7F|H0!(M+Wh&43o%0(Ea2*GU({%NVIKLt0sniqfdD_!Y^@z1L-qXjGiO3hC zx%8PzUn4}mMiIIHVTZI|gvP)UQ7C(}#Q8kxbkyZ!i7UuYC8To=XQ-LbQWhh9karVK z%r&mN)_YdRhejF34N9+y6%Mwlm;dXQ2uachk%|5{I_XbeBlMrRzM5-{A+ht;1ZAWB z_onRr#ii^6!pY?o%GHtx=DUmJ`EC)BdN&F2QpGPFneayG{V0W26y@Q`F>jP>insn3zY!3-lC5UCB2Hc+O=5e>ISVZp#cK^7MesSW*dqVP~Y zIBg72FVWmLcSdNsKn6Oh7$_c{MW0OWv8)=Q_1Hm$(Cv{lMnW%sX!c=4=B1Gq(_yC> zEMv2}3}Jdv)2os90OrflwtJq*@GOm{Sa?GfS!u zHdBUHWB2;Bmh-XsJmzo|Zi@@L8&$p>o)ID?k8Rz)gJ>?STba1Z=81PYdBQYqd#A{G zTQ61#^CFpC6Fi7|hIQLBMNYbTD~Cwz%bcT4u#*f_@`An379R%5V*lIy0^G)^+0%RA$B&YVgcWuLF4<5@Mn;<*2D9sjt&1Q7wsJjxSEd*D>1g3 zPYs7ti{;ploID$~He?*&52%vnhp1uM-FCZmXt>pwfv<~?meAp0_Jm{@H(V?tDZG!AZ|~yNk_mC&g7n6Dg=uha*8v z_Nyj$x&}!IB5&!{R6}Hmt7@Q~)zmp@HAXa&KwUbvF3(91X~AH-=ta=yucKEHT=_hD z;-F7{iUwB-385ecEA=h8JUQDZuiJOy!D|xbSE0B3617vMSnqht(`=!n+KY&$lPqA> zbd9{#jKE^*m6DLjT;LW{59qqx_F%=78h=Dst(6w38u>5_DpC?gBO1z^H0XJRR5;+^ zjnqIyNX_HjVhO2af-6yVqR`C(>lG4r$pR}ae+20+GX7gN0BMkb#>~>-V}L_QgOAe_ zO9OsNkp^;>^_3VJIZqy;Cf7~Z9NhZ^hde-@Zu5!+PJ5ovuj;zpI|nQ$ER6ImEqsAtLXki=u(l0!8B$&rB4%#vedNJ)-!>4_x=KMh23?7QQdy$2IDiR_Yt+gNnT zAzO7zj<671c@fDWzS)xFkw9^}MeNovcIvt(NOH)*#w3S-yjThiBGxnHD|_(Q=>g=C z9O1Boz0^QNa*W~K(n=07>=P?F6zW-WOh`QTEjd&JkQ@mp%`7<%0}i2cROpE%2R|*1 ze*uqN>7GBjV=d*qD`?lJLcz zZNDbDq#q^aIl6B5_z6)`LNtcnmkpybBO+4MYxm10vTDrtHWFU02a-qRgu@SBMh!$n z&T+h3ERmDW3QFLdNCL39xl7_OS=@v^nbRe&BIJR6G9vax@oUOgO|IaNsGE`Cjk337 zwlzIwgdp<7+(|WrC+77U)J&cjH8M1kK zt)WP~50?j<@FOYcad)BK4FzXXgn0eMe6>y04{%Q2Yv!0)pX4ao`)Bf9T z+kfEkiR-*;zgX5wo$cB8i*-xP?+&FvZ71pq5z(;L`~b0_f7>&pBPrdFBJeC-cVL^C zdQcH@Ff=+-#T5(n!&)S4U~@&iv4R{{05Dqu^b!s3Y7LMTEVu^()ag|6I)V6$x zW)=r^iLYdF5ZWcKjbIsU<|?9z6#M~oI1>E6>^GS?lPr`Osv#_t-_<~8vQX3*A+Zvu zn^|JL4ZRA9^>%t zr*Oc*=c$2+eEI<1EtY&TNvdSiV3Evn=|d7v1CvWXq7FxbAIg4{*)mBkeUNGhx%8hJ z=uC1+jS+GwfvTD1(&qI_E}cwIESLBxO)d$D7b2I=J8<*lEw|o$%f4F=Ci{-KPb}5=DNU*gh!-N&&L|@Sm2WK(A;tOzqVpZv7S%}=V`4_Q(jML*H7M@7v~$cW z?HWU7i`v|zB>5grH7nn7KDU;7g$xXhW0U31taza^Acld(;^=>PJP43#)?g*<`I5BB zeBoBYo~!G2j|@l&6S!vkFub$qF$=>Qd(_Qzgeyur`JJ7HP`$-sK#w*We@~+#Nd!7m z*8MiBx&ri7L^CDZo9D7dvb`0hU5TKIw+!m82&ixEAJjK51k_XFJS{M9qj`f_j0<2C z_DdV}AMSrVALQ|5&O-NDcTcW-S+XZ9U)E}#*J_CJmp!&`xO?m)W0n9UjDja=Z0fX5 zZabN2V~U_83a&RwsnJ>Q>@hCi;8LHQQ|Bl7=(ow;lZ$?`r@Zvr;_k5z`Uyb#q~E5< zdXYrEAzen%&Uj-}?h5zlHsfGKEPLikafWOcszU9_n*Z@ScTXjBXL2C;}Ykp>#jF+mXtfDLa@Y&7!D?QHo#mY)jpUbMiPf@mzjWUV)!6lO;?-9OA_WKqZ7mJrjHzE ze8Ujs#KO%~N2`ra3z{5qS5ra@dfP&_nR}Ep6{F= z=88hpp^LHxtRgZS{F;Okhjl_n_ALjH0&O?w0W#oUI{G_0RXxmE&PK;U#`4_N-Z39{ zMYVACn5VLw$?OzfsaOXCw8MmFnrH{(4dWQGY8oer`)WKy{VN3O=kuaIxQ}X_cLQBK z6=Gxn$)H}J2U3*`>UC6Ui<-=|N|+b@!f1iFCVw)h8%sO+(r&u^>`9bVWMBPoweIs} zQ+pe@!io>Rd4-)@F|X^>V29~y4Kvp+?%_I3l$7hHm4(D<9z2*C5oTtD=b~1a_!09+ z<%;?%d;m))UGGDmOlOppIzS@Nx|OQO{oS95wC8pJ$n+8a#PFpTH4_2kO&{@DwCzTc zOdlbT6v>uB^i+DyD*mCT7n{T1?Ps{Mr}*9JcIWF2zEdz*?`%+3oMcln9i7A(67xUH zf%)LuD4di}Fy&IERRAal=E0t^#2r!YM47~NX9?wY=AWe+pWQwxLsmwi2vwM<)g;!q zk>D?Spr0ru^Jcx1i@Fn`-B{X{NoeirUuZcT1-mmdpqndXg1alwT#C@5Pm3wEZjQ8< zY3kg_@TC_ug;w6F^CYzGMv@d-0!g;q5OPZS@Dha9;eLiIds<|nb-W)?I!lQ8JM&>a zNoYm6GfikEl(Xbcwpp4Yw6ax((27FQTWDR@1N}LL)^(->k21X73|}_1DVRWH1|iiS z?x}?(RGXfVTTNGc)x&jU6c(|)oK84N!?K-#az5BEHS%~de{*JLbk9vGz~01oN~1n~ zHDwseU73C4uoGYcQnDfBHZ#(XbuZ7}21iCq?2QCbczW}}8y1%jZe%_X&O$dE$mn*> z25bz6J6?|njKx#6=B0;Nm(Ox*A(CpXa72si9Wr(_lc=)rUs*brny z6uREL@rlLdjcc@%kvQWT+Qss)i&d+ZC=Wal9F`XxCVaJ`H(jjOL^kp;=~9w_FdUVV z9gH^`e=HhSZM5mLKxSBm=2*8$)Mn{xgc&aHYs`8K-Tvx>^if!Pll~`pN$+e@aOqq^YoyFM zb`@3X;lBvIQFq)8xG3$8U~po6Yi%48zYu)p6*~2r-y)AzMZlQBum1 zv0+Y|TlDDqZAzc1+*ik{?F#!M(G@Mo!$l<2KY9qaN;%hhMDT7QWCKzgVX{%+=OzoFJ4TxhNyA1;7pSNWY0+xD@~{7;?5v zH#*P*==ZK+v1VZqJaFR+I+qpgD%c+8Uo9hqzWrD_6V;k0EYZc+RqXBX&l_D|= zEAK9xeVkr;R9w_7uO6tJamUMlaR>ozfk;8>LOL-}NRmU8%SMn;5y?*!)RkmWJxZp_ zNEp;-(ok)oH%x?k*AGvWW1JQDL{5~E;HEqh5pMsH;EAZ=3U46EDFr=A&Rl}tz0$~p zgUaKrB3#^+WI7?Wf20LDHr4Ek1>pm5TqjHJH4(pb3JmJ887M-2#G zP?v?-?C|+W4>phIO9K5_wB-`=1{p0k>Nij?e-h}ApqAJdBO;|OhvCV@f0!=x4imuhI3_#9Gj75a)DuG8a!^97JY?o*# z^NZVXgu%ts4EG%dysnVAucRH(SJ~Lpb(~*06z)iU626hbwgZg zxgTvw89q=>VUe&&(myc-DV1`x%1I?pH2@_~GeJZL6`SV{9dr^v2rcgrJ#h>@KSi}X zAp^EV$>GpJ)k+BPv`UZ&o=olUo6}k3-ks6V)ired6ooF-LBk#jmDhI9Q9^FKJT-pw z=r|eq<1>wNr{*KquMBMsOHGugCXOEEVtNyN zdg~*Oq{?RXq8k;lO`mR6S1rrM*Ih`9jNn&+0nFCB=}+cd@0(ELPF;gxJ`*taml)&K z-7NwsS9=Pr5@BLs^WAgB_wnSnNB6j#gC+JygIp zT<5n+&FXBs+NkRgE&FAN{ofPV{~e9XB$;h8Fb$KU+WJ*8a*xeGY2Ornu*=!ju1CBh za$@7wrBs_tfQLl-7bVi#ZYH8lgbXQ==+Y*(P#~#>rvTNVI7W`UJqHjC*{AXLp3Fp4 z%On|Z@6xrp&+1dD$V1a81|!DwIEzY-}$Y5mLq%*i&XruVg9lcW@qgG7f{t@awyu;v6+A2vc|EQb&AErP;99A zu16`o6YhQdQU5T1pW(s$I7kh+ zToSiOda%vGd@hMw(Uwa-7=*N35{FPPze{2tY6+JF5h>LraY9xWW)dP^76(NW<)nk+ zdU_NNicqWCb}eoKm%au%mP}_Spi9sWU{PG)GK%du(u1|mHQ}m)Js(oqY0F1d(?Th@ ziy#;Y<|H7!y#z`tJ8^hUM4ElOvz!9<%W%*y7K46K-a!X1q#Ebluo4&xp-71G?|mKD z@Ga^pMR74QR&Vo_hL!b>-^&B2+9ZE~DrqSO&Rmor|1XdpVq83Vt2D^)maecL^JY5O z4Cn1&+S{H++<)U3u`X?@?H(S-EtJJ(d$L`fLFB(*FZ0uGc{e5TXH)E?vzd3;uTOYX zw1tX(tvK8A%e%elS_Avm7vZ1}-%zO<@yxbSzC4AE?DEvESmV2}F+SVDO+0{i3R7)+ zc*;m_RY#(rdg@s3$V?wI?#UKtwA9HcxIaU4FhG*d9?&P#cC{7=;USMiw)VQb^23o9 z?FAuXkEs~=4>5%4MNM&^_w>O>(Y6~+GLToJDHa1C#S&1N7&Vko?&H6746Q{;_m^*M zki$_Lrfaui(Cdv~8f5b)ICkVDcvhfiDKIn8SUv|%dF&yh7tsmam$(jg}t%kwm6GJNSpO<59r2?WV;p5|P% z?M9N6B^pUFSrWxjnk-2uw>icP;arS=120G0=*`PN&CAQqCROC%A7*G(29%JN(L?D~ zk%OBe zHz69iSuNID-Yv}r9sKmJlWLhqIP=7EJgR&umr|artaWVMy-<%o$$4igI?822KFbhm z!3(GX8bCOQf(G6#(DlGR58g~mW)oVr=$^|HNHjKYpC$3v_hy@F07gjyDmkJ`=!)*! zB>xa_i2b%V(i88u@l$k1OPFYKzpZ}>BFt}BmHlovmYQ(B|?lfEGN)1DE3BPpt+ti1-irO99Gx_#ff0%MPS7@78-BJx;`F5*PT zJ?M0whY%K_@7#QC`=QM*SlHE18%_VBhngffoF4Q~qpHh8rX&q{&_9u}EIDUG><9ly z&=DS%+&SCj%Pp^0J6jWy2!@xBv^wdo4IzxVYu^os7fogc%TED{rN>s_f~D185?ZnZ zkzFDN1lOA2M{l~>pj0LDY8a7?Ks(wpmevduYyx;7*h%y!^PV&9diHyn&SK0e#^A67 z8JzX$co<%957*jT`52;hZ|UC}IjquLmM+9G-X228O8-f7H=|iP6iA$v2q~@$z(cP6~5R?*?nxvMB%X(SR2Dn{E5EOkE zO4;ww6Dwu>v@}ZDC5>hod8EpdaNV{Xs@aY#s+rkVs)E*i&fsk(8!*;&95&{dtst6} z3qVt6rj8SzaGF!FPF!K!V3t?bmi^M6qi+SB(^oXN^7v+5_vZwyVch5DD5``5&j@T- zD@*VPTb;B%LA2@LHtPOf4?nj;`M0R*l0>FL`5>1yA(zxog53N>kgMM|1|Vf^IOXFyGu9s>0UfNmhtMIAaR&9|G>hQ;3I71&c_9SYU+Jxj&Mm zOE%xb-RA>RfsjMehg~5-EN`Timz51?J|nVqOUcRu&#T( zlSAAq*0s8B_nyHk0@2Y%+#V~M(#Q&39_p37KB>15@bqY-=NWp4xmTs9psH)?D0xk8 zjwfdq%rBf2aqqGbpLfipOo$bCoI4oOX$hs?zrq) zWZygz`Zpj55DtM%1X3u790@GIU<{gdAZtkj(B~b`$B`hvWMuNBWKs{-B(mO|UDWi+#_qk|q@0|95%Gs}f zYc%lGA3Duu+jLGLaAi`QHB>44)PLqRa0bYfIAtWTsn)UgN z+RUP=YXY05O^wSgs>7|@KjbgU4SBk3P@^QHEM%VG2thX(qwLI-8I^MSJp?jlj~xWi zi)W9$g|IB`F@X-Y6mBQXWU?3=E$rh|X^Wg0DF#^ns}-&%=Ab;D zH_B9lLJ9K^EB$DJ6^z_dc>bTvXfVx= zccE6Iwf4X9fvvSflY+jQ1{(zWV-`4O&H4*&3DYJDU%JR7p+L#mzRu%yPA?U0{uM6j zjy8Xc+?XL|I3V5a@)d|*X>@93sO4?e!;w~!azK*g#6fgU93$3Ln*;P-k1|S<_kPYg z-6l=?kTUVXX=pB;59n)z4=(FxxFPZTst)=^A?Z!=lX+z6=pmh7o-Ys-cQ&bFvcHsp zkEG#BGAN@Z@e#ptpGyev=_i}(EfKQ0ksuA%o2XI`k!b|;oJVJ@uNICe%1lb?Brb)j z*2iaS#gaaK-K$v08NEt^35t2f#nb+o8JIwli^iXeTyB1mhM!t0)dKIXBn>~MwrFz1 z4ZofnTfc$f2*a;SPrR|kPfo)x6L{(vHo((46zqxxaY7_L9}XQL5zsxLq2s3*ba&F3 z?}bJW?;_#*g!W8LZ*OHt2r`N&<1>sx?uQ>Ld22W4(h0RA8ATHVf|Y}E*s z*-8y#t51&MP8sV7Uu+b-R}Uu15Oo{vAtHjmre-3x^EQz{Bn$oGhIPNmMLz8uk25s- z6R4Wiu>KgAH4N)@YM4@=S!JwW-Ie&LD8kP+4gRfvn7_qvWKJ&f6W!DO%a;K{{F6j> zXO(6k_w4jeHBLWOt)|&2hHDhUqH%6_^QBjgawc)UkBA)rmrs2iz0d5Ae z)2>DJP!%ySS+7OiVos#;JXcppDY}=-YMUOU- zp5h*e3w2KxM6#y!8nO7O{?t#q&%^FMU5p|6%!8%gWyxQbB)6CRtVZx4WKVLaLI_XH zHTDKnTA*u8CDNh(m0wIOSM0!fqZEmWQE29+v6oRs6Wn*Oo6XkUhtgFdtyvus9154g zT3I<{$nX^?^4k$6v37;KW4XHwo@6XP!E2~>aqKEnW;dIGUl)PRR+94N=Xn*{axJk2 zf0#SY!JnXB{`@@is3kl;M0=5+Cldn59_BsiEhkRHW9B5j=wXPFCp363%E<&i_tPW$ zc?}D7M6e{bPrWA`yy-^17elAsk*wh?qgf*OJ8FL<_@L}Y*&{Yrm-J9`Dr=KkfXnxC3ofT*<-RVbPO#=~< zd}Cw`8tJhwm?hEr>FcwYB_qMlKmeD7B+#X+?#Eoz?VP;=mPeQh!-xmmwS~tP^4C^AK}d%inx%PmF1T2VZ`i+pekJ;WTMNMqRR@e5H6a`*!0OHinUmx z1Xembgi0Ux0{IfocI}I_mkv20U*-t8mf=e;YA#wywxeFxG%;=29UUq89`w%bHv5zAdt#h`z9aev!>kjUeSK9d5S*HD!cf5GzvSm*jov8Rl93%AZnk|;g z$Wgc3d*tl#tFe97#J%;qy&e4X?$I$%m#pmc?m~Q9qq*C=Xy+A=y#DfQuZ9$_x5r!6 zJN@0>t{qorP9C+y!Fandi=kV1xZ0a4mW~{5 z(xr0aYWUY*M*oX6TGVR{UH?e>Us9c&DK#GTs4K6$ z>MDuPW0HFwxnqYIG=&PZ%LWtdnAin2+A;A+e@2x6>~UtM@J?cXIR-sfBrd0`$FUbD z$vRz}sn+IpdwX%gVWU<=;M+{2UMw~EZ=*Gf-8vc(E(c&CbjM3DE0N#l;fX1w(Zdsy z4=cldet2S@n2BjC1AnF$^rUSJ(+i=t184&;R0D#yPy@6Shx%ghyLh)ipCdavMFuUG z5=2HHCDIz$N&Zx2guP9#l-Nvkg=V?DMl}ErLIPql=hONW;1E0FpQb0?uji-OjyP+h z3*8aFpwz+9v} zRpfuwb-QyXWOG{#IHDc@a5c2!3oD3Ph_2+LPw;C;{Wk6p_YU|SAF8o_G3H%EdHg5> zvECYQA*tUq7WWIGJX6*kG^A7o=owPO5UP~?AQaD?_=rd~zX%m$3Rfm8wGAq%s8mJ| zWgJH-vz9@bpp}}<>Xi75-mEsnC+NK5u*z=lO6rC+O{Ez<3YwA7$hc)b)Uw;VjDSs0 z)Y5gki}qbb|4XWruHD&n7OI*}Aq?t>G9n0Z_DC;NI$#C)u`9dq|I4EIQlvsvZ5k=` zkO^dI?N@?eLMLnk1N5p z#2aHj#v(w**u(2U<>7VU;dMZ*r=}b4VW-@L@|`{Gl(QUpzYI<}+sgTwwp8-i{-J#n z{FEAq*#2L~yT!BpQ_MMK_McD#i!J_dN*wlW@v8=4@h6}&v&DbmS<2$Sh@RNu=clEy z_%FgCMjS~}=dvve-qTsMkp~)u=*Ay$gRIPB8#mEKYYQ;@`9PEfg-m5!5UGCR>83Je z(|$B?X>OF~@dI3`>vo@gV*CIKtLzF0(;==AC=nj|Fuj!d+CGbIeu2M4{j`P2ZF;y# z!o(Rielx1NA~uxgkphu#$XJ%5G(!pmPbBCF4@(}U**zUlv746x z>P3^K!5pDZ9%~l(Uc`HA%I>y zZSo$%veYI8I#^G-m@t#3O=j5vR}Db^YAoCI>79r9egGll?Z>QHGpsS}*8O6!5td5WZ>b6~`el;nLtvCK! zp|3f@AdL<4a1)PPYBH|k(V!QlMQVy#lN4(}K*Vcu45loF;DY2rGIVtG?z^S+eaHL3 z&Dhy{n4uB2Z3ajaCMyp!G{+_F|@t(yhkq|NlL5fEmE2qg(rrKPVkr10Ezxk zhY0>B-YuFUl;rP|OO8~JPWZydirMQWCi~u~Pz^vaOF(MojfyV;4xyVpL{F@n@sm?G z3#pf6?@QBN9YhC&I-81Ju@F2J`!(J4R6_JwK=*GNI(~{lw|J?9p4e*C#pz;Po4c@7 zLRM1|1u{=6q3vYDTaC$7LbFZ3-JV;dU^qgCa$Q z6N8fn*sRsbSl}5Wa_bAb!{*7)R4OBrw#qS{-M8yA}VG?UgXTeEl z{)So?>qw@YE4F0&Km@jk(-<-^}<8uoNf%D#nwp@bR;16>P zD)>0+mmf^{q=#RU`)hSIPj%U=7cYyPiM$_hKe= zIeSF#PH&Q%IWg>MMzdWebU7W(r6+WuujUpU)WTc|U842V*FKW^lx_PIhR2p)5k6K4 zT{dx1cS09W=!ITks?n(N-B|nUWt^VJ8D|wRMNV=%pSIE-3mm5)v0@@sMm!k2|&2Ak}2V zQxY45BSXupQsFFY!@0>L)mh30r5q-Hz13;@lf_o4THSN7+40A`QpGPFnJiVCrB1Eb zlrM1wMB~_Gy;zsO`Fb6*p(=|knbo=F&lVAv*J!rni?Tmm?9|%)OT}5}ov*ISF z>waEj|NR}{BvZnqQ{QyF{+X`Ty?anGuPGE|Z%F8)Su43m$w2*EPiz+9AJ7BH?~e%w zAH1KMiTGn)@bkeB!c}58QkIK!uMtOv&H;a`?g?!}r`{a9Q`?VYnjL+M_yLz9)jM73aFbA7=`rXg#bJzsk8=0q@;=F) zEDEk7v9CH4KkSk1bNAN={R9|&((lxS1uBVx8|`vxgwfabSfA-0tBZYZH*#{fJ3^7qMh-^Cfj}P!MVux(tKolmAfYw*SScUDI_{oa1d~1GBiOII`|E>X0*pKa>s^*MIFk(M zCEwueo}KE!Nx6qM1T(hp`NuF07r5`q8?K!AF8D)YEE!@iJPN$^`DSUn_T2g`MDE)N z5NI^v3oqKl6K}iufb@xEzGUO=5mvI?&fN>tB^&O3?3*>-OHGPR&a=|$MNH}kBT(3` zseIRI{1u^i%5K5jTS(j4{0Qph-`RW%YKfgqBCXijOdmD5RplKTC)}CFj7Q|};WFlJ z%`c#w+}8XvdW>#sUQWql+s#f1E=$^T@eE!ZLpry11=k$ZTUE-+E2Vc!-;&&4Wi9N3 zZxBQy!Pg{U%2A!p0yG2Z81l~t4H6Ohn*Gz-)$CPU-gL3nf@>K!P}jXG?u*6!)80W` zQLwMsq`RjZl$eo{H4n2eK$dK;G3}9i8C8mHk8a?sH`*R(G=@7kk(qCrlJa?|OM2ae z=k1>!R<1T`U3juv9o$e`MZ@Th?(nS6%+}@@u35jV>Gul(YsfC&7wqyMdD$iS9@P+c zmL$^b-JqH2^ddZBP6)DjjZS;E!<0MRfo~tXlh~dF;iiDsc5}Ef75JrgOUxCzFS-h; zK0}18H|pcp+_rcBerznDVhJIoEzfV2ibMk@T(r}WSyZnjTyjGPV~V(FIH^5N%U|d* zgfw1#9*cyP^arvkvq(@hUQ4=*WDsnezkcg;=kG>p{?*-YgT}U7%%XDLtKsTzq|h!` zLCi7SEmZbOomRUs1J0nmuChUB5E;bh*2GS=r}m6+4H52wMh(B^l{-!10zI$WjbUte zXTIV9pVu9-LEbG5sJ54pty?a4w>FvW`Tg?U<`ll`zKiq< zT*W=fx`DYs)k(Qf>jjhtl3?JKVzUZypjeKof)A$VNVmW(8pLn-7cyqLQ)9)i=^sWi zA{In#AEJCz6EVN~jrS4;)(b%EdV(8y?3WV!oI5+Iq z{25GsF|&m(f}~$FQ>1IC2`!?m#%Hk}5fiYSAes)#?rK<-YLG(L(6U7FSGZXPZ%7l} zAsT7ap*~jYNITv3>i#iYujNC0kOs=~5B$e+hZ&*Nrpx%iOK6DsM6X7_#3Ky(V~^mE ztNZ1Tvs3uvj^$$Ikqd%fMo5beHt|{&)*3JwF(nJ6`A_PvV>IW(pIe99o!J_h4hKOu zY19!J3v@yg|Kc$0RYu{JIRDjvG$fidr) zdw!e$vzwk6C84D6&MYke5n9ZHEA~fNsxs7F2h*`aLU#VXd9CWMQ-o7~*5nN35^zy@ z)oLFdIe1nJhweQme*VPyDBUA0{VmG4Ixj^ub>Csn1w*D3z3EO}q#S200`h^>hFT5l z5V@PA^(<5js1u`bZ77Mt7PeG4gvAU$h>&wQ`q*ibvcaN-6;!(IU>LR%YcN>3(28uG zoF&a7EGCpcbVxg24jl@m$r~4K0N{ir9)dCH-mqw3FE!pte%%w9*0y9g$s&ys4?~(< z;jlS6@ZLycZs{du1VO;kYq_Dbckv?uy3DiUB70W6Ldjtf`<!WhU)lSIfBk{G$R|2Q%^G|4$Xb2z2YC6JvFHYSgQf(9(D$>>n zI@RMBI~*x{kALoDEB7Jbx9Yk-U%1riW;w)>cX+~7v&$Pi)$HI+`4Vatp7iR)^X{X1 zkV#Rw&NIe;$FnbeqMEUbf19x^?Nx?&4?aN95d$s#UgZTn*)V0#G6XliX9@5Zx@XDT zSyw|R3cg1;lzWx}F}!v3r-Y-lv|#3O%~$M)vx%)s;V%%mq+teP9c^`{M65bHAbDwr z2T3f;tzmpujsn^^l4dEb_lFKO4jme!6`7O(+T`%rMdi^B1^2}!<8T26K;oLcHC(iB zTLSn(ZtpHh^I+Fy=i9z*dl_8K7*fk$Z2ApFDyPpT+Om|(9`(q}-u9fBH?WbrYR{48 zT=36b(8yPSZ?qum(ys*gdN28JX8FR?=qGv_8M_PzuLo!Q$BV?w@YRries&hFH|)Yq zRol&C6J8W-1MvZoF^^2(64~v;n)|gqUaKDQdD`vXt(f7qC1~70%91n>EI%?2;ds+p zVtF+x8(1Fdo>XJx)h4HEjnWa*`-i^`)LY{ZrlZFNqWKw&R zf{jFc{mg%F?Bt)FFcFi0QTjl9Se1oaCJ5 zflOeeR!KCXl?uCJ@7$Nq01zUB(KG3Z^DFUFEQ1lN;R;+ULsr6hbp@gdJ_3mPkW(Uv z={c5;Xb5W>LVk)t$OrKjdO77KG)isw;NQG;QwBSe8tikOsj#K{puFhHv>z;b$WXk2K5+g!46o zGiK8~8*newrs3oxY|}hQ$dfjWzz8d2ze>nSvuO`~WtaCba!k+S>orbhj6P)CA~Nrw*?VcYM_x^bx+T!6~9 zC2m~nW()C6!Xf=p8P>)dEs@v}^>09G`V!*S+P0vgkQz6QV-PyadX0tgYQ{|J<@{__n<@kIS671bn0 zq(o2+Kq6>N+oGhmJ8~;v6B1z?J+VaKC#OWPdx=Up37$#;3-HcBhB9UZyJ8`j!C6U1 zx_A04pnH^tj-O)CEnd3!gZ}ZhP&gNy?%irCBC+zMd*^Lst1+4G9Wk5>Ng{R&keV*9 zOtPv8PPaGQsA~-_!Mip1_>w2P1@l?K^Rc><|&bGpU(~)Z8c% zyek^<>QOKfW`(KSZNFsr9?qqtlbqZ(EphcVBVI0xoYGHMRrRWo`N00a zNFbCUU?12YQwR1lcWH%<1Ye`pg&gc7LHRc#utg+et_0;@L0c}dWAKM*DhB_Kdijs> ze;T!ffk?FfIZse-FHX{_LwwQ0?Bt+`RTt8-!~FaiR1v!!hDXKIo--T)t=7le&~32M zF+D9kY1(PlyPy{5!AaEVNU)y%HFD5l1FqxytLMO&!o*NU?^?Ydj$NVo{sIr1)_YQ!_!M)~s8P8|52 z+7)Yj7lIt=%s;_PVLaP$cVrEx{Bf*O9%qc?B=4!m?axdfGtss!-N+o2dExh=IgaRy z=Od?2=3KSb8Sn}giQwcF%a*Ay_3kR7l;SY)!{)7LMq0F22UA-i2xUI|!yF&}wCxsU(SF|;Ok_m^*MSiPb&OxK`Eccg0$uI<6R z#OE?2{A0PO`{aRTVi}oD{JuIx>LZ{{&PoHM)X(FY` zeLMzCfw(lGPi9X&rHS5JKy&=8nTyw{H$~b@hun}QZ(#V+i<+_|XrXX-J>}szj#LSy zYJ2|PP^}DhFUQv*e8n1rvuN|dAEUS%Nm7<*B*kP&6h~>YB%$2qTak;wVg`+_Zu}cK zGulRPUVd2*T@KxO?Iuskv+X4 zIx^YwCwwL`#%>8Qwv-Vil|0x{)~QdGwn%Xt#^rB{i}v;mV5ofjy^TDA%5byZY4&8D>$ma@Pho$aDrLvMR{IhZ#1u_1GgPK} zm(x^?N0i)*ZbOG5(Mjreug8ZTBxTaSu6H>_dct8Y(z{hJsrjfmt3-{vlH8zGqEVAH zA)@460M`{!Lf^#>?HB2Z_mBB0wnNMMjyx=q2|VSY*WRcE@LEs~9s9@hSwQz~4IMwl zpj(vvpf2Ps)C&cHiNFanA5xBMXj0%?qs^Hu%a%k)sHJc&#oxIIz+qNUe zU^ul@=uFO=tkzsC7HGw~>8qqtlxP!rg|5{-GKg>)O&H$fHBt!Z4>E;-`fZEb(>1tB z>Z4oJ4u=|?M$JUFnV&UqLJQ}Fu`zslA_&rlVc+d6N~#5Fjr?gN>ryAOoVxZXs)B#B z?iF9(m;j1{l7u zNBF1ie)}Mv0H;slof2P>lgJ0@N(;9docd`G?eE+}a}nY4L`MA?%? zwVpQ*jkx>kgH8gBKIybhX}6M0mS(YHo4$sV9&Hj`?jDGX-FKiWv>01+5=ypWiZ$}5 z-RHILK3!}f`pko+-et*4nWVigebCvNVDe;tWC%~pANdp5hzs;bs-QFKUpXU%($226 zpP`3L&dBZVptDZ9TAR48;kRyV96pQ)h|B?Jtq6lyo|$eTCEzT%J3H9yIn=VSfzFTE zw$bX5iE>W_CffkacVEo2(U!|$WAKFOK?+`sdf|?s@+c&28N$@9&)*x=p^^p-)DnIp zqPGY%>p6JsUfMEf%avJ>IG~6BiCoda@1dLwEt{oBcA*=t)r)U~f5Fp7GLhB@Nrrv$ ze}pau?KjU>Sj)2Db=2cX@EX~1Z`T0LHFBU2*cZSUO+?Qbj2^LlfIQr|LY5G0R_N_hUQPFw&!{D5HOHPsChrIGz^DAk4^pKq3Q}6? zzKiLkgOAP;UIC9#2xpqi+sX(Ou;?2+f=^LPLh86`g=pmp*eT8fHqQr%R?0v1NmOqT7}?C#=C9?8htO%U=@wNOO-TKF&bSO z+Wg*)$aqCmnl#?Ih_>nxnrOM238}~}U`BW*LiX+m%_t5TWtT_2^;A!gzdnPJpqz;WSA9bjMMW)Vk@(fl{=Ps(0PMvKW$!yYwUljNvjA^8Ply<$qZGrw z1HCX$>Sa2d&H@n11|rfcjq=v{?u8K}Mn;0jauZZ9vP%~O$`R0YrrAz`LQQaq-%ML= zp@sWPt3*d)R*N5+w7il3ekWbsJ4^4?b-S|z+(eVei|k_!X)G|eTPG#y6Th{6BCGU! z_~6A48#$lT15Da>bM7R4hWXgGMa_K)a}(v0T-Mk`SqWMuz^h+V^aB;Kq5WR}(0(U3 zwCVFqjf}iEA%_H?Am|1YW46JZ9Vw^xL&#!&oWB613-sdzY|wLdxpPJ#&}3YhzyVu* z?~%lUj=smx$EA*L7|Lgo8N;Vqe725pETvUE>}yjn^}A+{pa2j+j7QL)JnHTVnbnM) zizKMPPG2!(=AkC3(wMI_YFGqbod+*!RlkxdZIN7^5=oZ-oYQ$Ek;1V4gE-5?Zz$_C zuNV;I(PKirgxKwwhiAsDUx-?vZ;IAV8Q6a-KBOEIqE9A+S>8dx+4eCZ9pRN6&UGZx zUb-|T_~ap>3d5IP)b!isjQk2_(6$>%GVn_yDHhlt#SuoHct|Lr+~ycNXg==7zhS~h z+enw$B%tV!%FR8HM|hTpRBq&=?n5fuu}In6T*v7{<&lAMOKI7psjt~M!rwg>z1IQ^ zljqV2?IJt&;ygXS2|__39D zqqrMMlDjpMV%#0YQ5ttAl)I3)y9axO{GO#W_&M57?-}sQ9te)j0B4ixXv_W#txA_4 zEi9P~AY{SkqP=~5Yej6YKJu%7YkcxL_%k$TGI%LGM96$ejjF60;{OU08=Bcu6B=vZXxSy9+hnX%q! z6fhMh@(fQ=@lvXkor)`Q>8G$yZiwlww3O3l8>+pTp;~|h6CGy~VUO)iQYQVQdzVwb zdct8Y(z_*xbX6!#Sh*_Pm1JbLGA=Yp6GETw0jIhmv+28teLjkTiO6hzip4&&<6@y{ z{LfLoW9>?rZ8m0cH|!joDVOwcroc=<$ngUFDVwy#sG1^0yAp;X4=HFoC7p~nHmkoB z=*lKWm8DDp$-kj%bz1}VrKkZ%1Cz7G?)|<7JIO=hb{~a94qi#k5CkE62QR?8MKi;@ zF$!Z1t9%#}M0Cwo=ZoZEfReaPo+YE6YCtz@jfk$@kQw#XDRxRqi~iRDL(IJQ(i5MF z;3wzI3o+-o-a`eD06-lJZda55reE*zQ4QV4G<5tFgKkmIL`*#4;7vE`%t&5ATz-S| zb%`PYvLYo_k=0B@Qsl{{cbU~tfp)s+8st5rPp{*sL$!=_rM1pXeb0_DuheQSB)i@> zfZqIaLRJrpFD)BkV{tl;PO4HLp<3%jktSqMGwlJ?66B> zZ`Ii<{$cmG)!knoVV437TR5dT&{s2Z3 zdA_?R7kOk)7I}I`GT-O!uMZ*#F!B(ocUjuyNfNtDAEWz2NO&V2lY9~~XFv!~Y;Wfa zsI)+(QpM;}|4NAzs|_oWU!sL4OTvINA~Cw+M$^opxbKg!hvkm!Zc?GRW~+9@?Z>GB zu^_Jzr6N+|A0s{3{-At;wI4-WE*FYHNXr56In>J^So>bo5}Ox9BoSDv#z=g^e#|W= zMnPgGA>x_FPJ+tLF%yC{mPEF16qrg+Bblm`T zuGPD24|#bgwkICXk?HoQv$qLWQQg~=bQ|TT>$=_J1GgVEHY1Ar8i5X>23U9V5tjJ1 zt&v+5_-;NfsCk|}r91RclPrx;8^3?qGI%-hPi6EO^Odd7m?se;&y6;FQx=ggb>CS+0B4>fs1Uwf|~;)eQzBIVHAOR)!IOYXlDT2<1 zTz1SGmxJ(mDmV*s*^gsz(;aXX(KusVL6neg;)tV#r(pt6bLDI#|tgRvfvY#G4I;1WpAcfD z`6w{JBKkH$#zM?T)d1`>jaZu`z0JqJ0T9A`d_O(0`N&T(1C1rqLSt;sF19A=Vg~kk ziA6=9SGw3`l1<2p3lNvmG*c}lT$H(1cOrzP{%y~(&r8B786DAAD*s;jzt&arYO;S7 zli{KZF{g0jQyOJ#?i?YX-Ph)H*>xRsp=U3Z|$4i6}z?1Y+2=!@3x zY^6cJPF8aE>p|sKa`vHWRwd_}jAcn-2=N>|j-VTioKXq`p*vZ|gmA@V%vQj;crvCz z$dU?!zyQmbO9>eZQ5aMMkTDvud1cJ=0ECb+&!;DrG5q9|F?KHzvrpXytUMY3PrLQ( ziakREe^WzupN5W~V$dy$zj@+`x7~bT5kdp4W+KutPiWx9Rzn3HVnnfkRivV+xA*K) zA~UB)`c1%Ry5KY^s?;5dDSo}KHJGhhYy9z8z{qE@N}OcBwbzSx>j5N*NB4RW4nBAn zH4~BHrzespX1gw8AlW}S2jetoKZ2?`{MTP__vG?l%bqO%wIh)1+wPwF@Lmf5Y{8Sn z-?X9nAx4W~yRTEzOwiF@ir0vb{0XbE`e}3AnsL`ea}sF$=e0Qy)YU0OTQ3@3N$OB+c2S-(vVnuu-zk5yBJGIbMTG3)DH(76bLK6b>P( zSmAgbUZ*M?i@3#bFv1?Ww-_d=0U^y*kd-~Dijf{7CVQ@{fS-Z3TxzdDNNbDX2ph#1;b)DRqlsAc0W!LMgWmh;Le7~N?|iW8#_^?pNo0Zr@R1=R9L z@I2W;vWLbL=EU^_3nWX#pMi{iHy?~ZGOLSl8zLo;%qp!zpDg2Cfu~UE+K@Omsl9~- zlD*zZNw@y>T3vTAfn-Uek9pjzxUkT8H(y7T1~c+3Es*T5^iY%3RHxGLZd7%NGo{Xx zy7P{VWoac1u^+shpc{-8e_A3D43UfpueR?)2xDvO{|AT{xV8o?uQ`6~tAsXb&kJ1e z^7<-5%R=mV)c_1;jbdBP>AeB)UjRbb^FN{|w&(dNW-+rQ$P+)N)CYj4?Vm*O(&NY0 zO(^Jw=!v1@rxi8+xKbFUkHrmx9HE) zwYr@_Y+%Gj9<%CCPADRD!GtebRp71foq8}yV$;34gop@sP%{zhK4!KXMq=z+Boxg! z2`05#<7*|9~2BS&OfZ^k6eXzJRpfM_VrS${?g=Exrl$@>`29M=fD35|L7^#SBXQ}lmkiMbW+y6(tlOg9nAH{X&4xgExByF zm}`n!_9Sqs6h8*0T*A&=XMd2fEUmL41%mGrF$QBxo|Q@nLuecJWC&$!_5C8CUf}8* zutaBj@)4krT7U&USgt-qs9A_TsTzR6rqOIGO}*{Os{xy^Cm&5uY_aiE%wl7ykjI`> z3I@Q_8h0Xi>GtG)4c!wpbo>;9Zc*&X(OdZtW&h`qMEwO=jvGY_g$f7T^=T=VfUEqL z;-s!Mn3!&bD>lT!=;t-+z0~;RPrdfDA=uQg<~IbxaR$$#W+H~*8i9JDkQfd><8{R0 zXMCYuLiy7M_(e{DokIF~sG3zs-;=Q{3F#y}EWI(*287AtID{uAj-QH33lzu77^41_ zEEeQvS^RXoPL;)rXbinm_M;Z-+{Vz~Py;Sw=mU`+Y;_=?G4wvPq4StKh-z6ZpodUST0n27$EXE#(cY$CZ2R6+tyn*Tbf$E~ ze9SvmZC7xwnUEWL`z%vgEo6dkQGX-BH)XeqzijF!SwtrQogr=#a<%tPPHX06ms7!f zrE$V5#ZU7fL?t)<5mnkEmxq*8?M8}Pb>6D*1hHy+C|u`(yEgkRX+Ah7|Qgb zrl`rAk9`~3cB4vWtk$TCWvq^3ijMYp58ZR07YU+CD0h<06`E7Kkq?;2(b~4+9G}P| z!G<1aBR-HBqlv$J$TM+C+(_^PE}BjZYE>qlRnuBAYu|U|Y{3CIq)05atBpDZtV^uv zlP85_?}jKwhs{*wh$0>X&~abRNW8Uz1W9S-q0YMA>Qk)F);mpUmPvOxXNB9jaZK0k z9v#GfP8k}rB{%s@bH}znX)O@Gb{6Bik2Gh0i;*4cUYYy=r z+)L06#SR-C9toRK4lBWhFV~nr|Pk$s?uY zx-p>|g6Qcp2ldw_-IVZ7m-uStP`vn;b*;g~i%0MlbsZRJNVUZOQ-ho&Q{2Kg9B%L* z)C~0>@@DXPyj!#hrgQ>DTQ%22$2`}*D2LMbAvV+B~HR;dHw&#*mgOt4Ql5bSa1?UAQN194FmbxzNMyLYe3wwFn1$3D@w>{_FtT>_T z4kr71WY{q!AlJ#%5cuG6G>*Y6qMM>)NM1oh;9@K2Rsg$b6Fm48w5DdYKm*U}OC@Fd zp4F-W%xaC@P)ZrIdX3PilQPQJ0EAdUXXuING(S1#wB1X@NKwbel&eh}*p?7w@Pa*% zY~A#20s1VUyHi8QPci5gWm`bb`D=@%Bc0iO&1R!H-%W`k6D($yv=?`V2kH?Lrwn8( zIsqPDG}A4g;9lath$1oUA20c{WRL0FEX-H7Si6rJ;4vnxuqIcSs>I85trLqGZPjT+ zK$S?~0DH`@*3c)7*)7V$kq57$W(Fb+d34DFFoY*20ACFF7AOFfBc9kyNk1`cmVPgh zh)kA#uiyII`MaUwuI`>4$%VX6F=*y=$RChBDUH|icy&)v>5wB0+ZmDnf!Yv@{E#jf z@dJG#(obZS&vlmNV`!@%hy4FSz5EXO_o0?>$P=-IL*5uBs3-Fx2VH!Zj&DM%sTHRs zDmJP-NVVB!v~gpK3hGSWRis!13y7XC_R1qI#33!Ul9sri(wIKE0{{6LJ@FF9PbrIt z93)n&z8zcRLL5IqWK!v!^)ls3XtR}wDr>AS1G!+?2BpW+(mlg0zR;YTXYUeRqvmfq z@0iQX>AKcn?y5CM91DfsV1E^Y#C~ZnGX)KO{$(Z{c`!=NFtL811*)BF(};eyKSV;G zGi2d>j1y+36K^-F<_LMd(cP0PgD^o!&z2O-Hb zs~la~yAoNp%5jNOIePbHYazcy%?jb+&Xa5llLsQu*zA-qQs92H)sJHG8q~|Ln7jzJ zgknNu7K({`>))+wdu=H0v$Wx zD4|&(cn`Hb68weiLh+={1*QO^>4dYl!O2PRrOPctb5pYqjp!xFt|&FPbkqM6=v-)R zpQI<&+W09=YZK5eL~Gk6R%tq^xUXJnWJ_4?^bZ(KrRr}&IJ!cwABe$K*f!?1j#Oun zX{)v8`eLo+kAXv4ou)roY?Z3jJqMc|yed`v(vithwOQ)aicR^lSgSRTP1cKb`MZVK zlu5H8nJMEyqmCwUfnBj#Y&V+X!n!f9>`xavwe~`;ulsgpPE<=FZ9#lf*BYeXz@i{) zQrd5zoCQ`9A)Tcg!Th4ZN}Yos)*PLKf`!o zk71j846ZB49>H)$u$6wR-<9s3T-cI5St{{r7Ak6Z@|Qif>)k!}p%@E5>~+Fimz-of zIVS&-D7V2ZrG{s}v`0DV9;J(dPs>Na8Fx=E3d)`=3a+9hK#frRut#>6yT3l@C&1{F zey1iZR!J1xXqQtXjJ~$VI`1BVDw40O%Ww9k#4$-rd#;N zrrS^5qjS;izw*&-!{vP|39=`PZW)%nbKE`lK{)|PpOjl~XzNK-Q@QM<+d%!a>2;ZV zOfGtDN7WpjyKCG%x#pSd$)Z=!n^JFf_tyut1Q>l%Yg5FWN}||sSVm1W^Oa4xihF!6 z%9Zm`?x?#b7v*G6`6%~1cYl3QPJq!TzIcKMmNCRlXsKg_M8_KMibs5jakXhR9m zaW-Yu$bxIX<=g*)!w9u-~%+}@@u35jV>Glf&Yse;J zf=#yNWs_hl)j02lmEf^Nn!Ot|Gu>T;N6ZB{^+7hT(P__im~w|Z@bK5$zF#K7O#!d% z=CHW-y(Q1A)@q-*)S^(lOG#|o%^U?uIEi*V6_;(;-5zo0Gd zGbA<|S3e;lm~(`v2j>)9Oh3qigB6Gz9God0t%95IOfsLAV6Qdnm#Wj%QjtTAAz5Z? zRmh;R;VB`LARJoYT;eJ|H9ym6p=R-D@wQU4I@|W9aQkIh@-V~?0aW&R%eH0l64oXO z9u}zE=^948LWv0=SdCX7z4AYd4Xnk$M#y)!3%)zpFW+rW;k)j;NUu;E&=ICHRw*bC zB*7p~ip?s-fnqtT3O<;cBi-U^tZU#g{0kW~-Knt%Yx;+qev1WB+lMHmB~GkQ!>ox2 zZuFbgVy${7b7Koas?L%STnRO!>_LbXy>fAGyxkbbA7Z|$W|m**A%qkz3kpy5OX1Vg zDE!Z$u<%h5Ws1Dq*Zspl^--TxKmV`~9gr1CrbV&YEY1!4HGc+^U(9Twiy-OU%oOPw zYC>b#X}9ObXR#g;6R?~hnhwkEYFL$OkV4ncvP5_6c>IPm(H)|ZMjh&7wchfZZLjVh zt5xeh#0P1h%!<&GSniN`f}TUcH{c~S#C)PxqhI0?hWybK{4v`vf1I7dA9pMlE00_d z{IVHx;4`@y_o8Mv207H@#z3EP!wGapccqByDD)SU`yw zg+oKh5w@$Pnj!3Dct3=6!!p)s{y*~G1WvB1N*FhLy0a1>2u+8A09^^44nYtI1PCDr z1j3R4ZcJ0%U7fC%>Z+!yx|4t)t_VJt(MDx)bkvz~WgG`}#!&}F9sLH!1-DU0Ma5A^ z$9*5i|2gOG_uY5jQr*@3zmK0*UcYyjbI*RyJ@;O8F-W11TUvsER5#3!$Zr9A1+DPb zF+|cR!8{4d-*}@8x!iaoGe@XH-Z5hX08W_YA!tJPwiyF^w(*Wy>+dbGHlohq3WGF4 zJ#==;aLP=x=#$;$qh=B*-7J8hjPxVlMI<>3-OnjJ6g8{>Pb)a z#oWDHk^YCoDqaHhB*fpPEQ^bd3g5wR5%tJ0v%csU9v#beF?Z=IFe7V`-vY4PT#F27 zIf|W?3?xF6{0Qt3U9O}4{UmxB{`;DTSOQV_ADZH=UA2Fr3k%nZpW}kvSXVwVqU{W=BkM! z&1k`Qw>9$lz&BE}hxnHRzGM^rZPF_wMw>Z2#%k!^i-EJt2TRDz5OTpV`vlrsSWFwL zv>K%b1Vdmohjx4P7jPy!jMMLK$^CL#U9Iddlh|$DDwtuD=Y^)kJBct-v@U^;0g{Ctd0U_Z`j&hfd5*JL+kdv<8t#1R%<7N#@uR_x#-_A-rEgNKX+6XXLma zKF`?04j@f&8NhnqbcHw5#y&rOmN0LKUk%V-7^;sPYG=FMdjXf}5>SM1i`(t~PS)z= ziGLD_G@nvi?fChJ@-xfmvfi4q`7t?w>|5;A;Dd*;8G=U6P{PC5`GXp1ND&sbU1a*H z&*rp6{{nLt@uvy=SG~Y{Coo@vs=iD!L1f(g_IWC+f!!sUjg80zeIb4oI-mVvg8lRS zVE;FP5*)Qiv!nCk_q#pmOdnHwcL(yGvSqif^!Jw|yOn`qYDitRM(LDX7AKl6-ktS{ zX7C9hpO(Xj{{8VRmaX84%qZUpmD-$9ic_Yre=(h8B1?Yo1MoW4bTZvB5NtM`IMHk{oRupqXiT>yTRQ8d(3VfhXslqQvtAGNvL6F+ zF4SV_tVm|>F%W#@$bWRed+*#>FJe9J_lkwH+!_iO#zOEext-l zsa2AT(W%Nxr5!Y|zn)-%ckAA3t!pKev5wu#&WI_EKFbYuqUc&d?^NDSuoV;($y2M;fZT!U;BaW$k0>r65>XKWvGEiqAdYgEpn%K>D@inm zGuI}d-iA3@_vK%M`8tludTfDkivm;=-MmrD&C3xFeha;hyC_ zm$a8@6T`16Xt!8+FWli4X#m@>qFfOGJuBh-iW9Rn^bE!xm04e10;YlxXzh*UHWKQ3 zYM~YrYK(5}m$f>1yN)?#E5wzkd~cI5XAfwp@dmeIGuXG{{a_T{wK)-|2ta^KyP=E1 zXdZE?m-SB5qcJ`n_X*I);qlMM-!SbsR#*hZMFX-~V^G@p_e%vkxsC^ZBY?re;(v)x z6c(qaNYI(MJj=znBKjcx-K;h3byCO}cven5@;A@P#qt$mzw_tbCr#HwExMmtSnX!N|D4@HinRndvcb?V|ha2d@7eAk?Cj==t-&wSp%Sxc)Fy zYSUhdz%}+Sj3Z-rGL9dC*DMg2a4bW*z%|q7sRP&NSWIKgzQTmSwceK*xV{*h^#-n4 zT`PEUi3N?xPT2z27eQOz>D*$P&J9nG?bbsd!8K4%P36RuHLkhdfl{M3eP>VuPbfGO zYO%mIlGz)$<|9Y`>tx{C*8IeLNPgWvv?Uz*6%Pm=fpR=>eHK1O0@rL%EIA%FRWN=iMfoR{`@wC|E3#tYD5;W=Id7;2=a21}^QASurue z;rReA^X6WFPvmRTQ;atkFlfPT%su5hnc^ZTJh>isasv;m7twC4(g{zK5*S3{*4awD*RRB<@RW^6#3{BC%i%8giiA>=tXw-&@quEAo~x8(%<$?BmUC*TjzmXGx`LK;p$*Va5vz<)z; z%n3juF(*Kb5zPxX_Z`(x#2iSpG-kdBhRsdpPoPS~%&%r92CVuNp0J>{#z#L$?Gc=a zjrIg5;6Is8N9sJDv_a?H4|N1w9FBXT7^dX@r{g>}7wA}0b6A!RHsY5pRVlQd@yNfQAb;I$FSzd-Q%l<89qqnV}{@S#C`WLW#;!hJd zH^}k147S(qJp-!xl#g!ru1#4M?Vdt;uot02Jj}Y?3%ewn#cU{2U`5Q|HUP6t^B0gx zr42?;etL@d{UqY; z-c#NSuHEE#4KDcrk6S1m5d(+I%43#!7%BC-ZRnphuGaD|^Sp?xYs@8+8+@*SQMnDF zJltSV1`AonoQto2+>$980LgTWDy?J=0795#ZpJ5)OnRCf$vhGcC8#=# zWWgtpSf>p+>}GPvTFGw|FY$6iWNDJn#Z^-7|(osT28Xo&_uv>by;D_VyD3?^DP;}eM%JBw@`iT56oZUt%+sXx#=@mDdsM5 zW^q`pHpHt(Z>NY8%)xqN5RcS57!5Ej7Tqy#O8jZ^;Ws$_+>+*ZqrNKZcILKMeegU@ zM(qk+VPL}!I61zWaVJLskX-AniMn6O;k!iG8-@BAR81R&`f?ZXY4hMO0;DshuY#U)RUnGtfb`Ut5gqLWqC^9rrzC3CAT&MY z2}GR=urV#Q1)oSu(bFtxDHeQnxBy-)B|^5wqH~tuH|Gb@PJTDwGQd*0hW@?f$gq^wY_6lFS! zS`_P6pP30?8|tr2v3WCKFJ3+P#pVsNZfE8S`nX6%NY7>L52PDZYREjcJIwS?_)G9f z;K@Y8KgyxFw1?LZc`sB=>xaB2Wm)t?6n2BZL+Co_wJRzIH-Q~z2A%G) z7;co|J{or1HQd|TsK6y`Oi_$jkMjuRV2_cU3SuL*HYOBKSWHxeIFblg7r8w`6LikzOHVpa%$MjXGG8L!yO%@T&TgTNJFBG$xLR*-1?Zd0>C+mR zL#NMxBFX7np_ML*RjiB~l#T%krJKSDLy7r`Yh|t3_w}?vMs|2FGd?oiZoHGCM84hz z33hg0PYpRJVl!<8W>VVwQ=lWwP@t6ZJ-!N>h`nD8m1e}=WADP=vmuj0KO9FN8l5#sik!FCL{o310N#fXvel3jyL;SEa0N!O0%3Gqy5^X;_v-qT@8mclypeZHCVuo za{Dy_nmWR>^n9k~-TJ_LAUW?T8x`03`^!N^21XVtCYQwsk4p#4c7*5efOu|?PeBv$ z_+AT@X2j#e-i61<)E;?!_rU8|k8cJeJeOFkk=fOyif$<+~c%%H#44 zLcQ!R-$hW1xqL{ZIG3-(#+kSSsg}mIya~#2Z*(U<+5w)^(G7$1RZv~RElY_xY|9c}Pptg&v_LO_**V)hUEzAp=);-K%>VWnQ~zRlP{-wn$v zD-=cMK%rIIj{!%xrVsvsBq2B~w@}1DBURZzhk>6~L#4=&d(4Ue&6>>@zC z5eu*LLs?+dEC$9g;Snd0tG&p3NpuQ;yw67D-SeIVUIY9WyQ5e?=hsw1=yUJ`k>3OD z!ji4)KxF)cvMxl*Q0gp2!8}3yScRAudR|^7D>03fAj!*t1jVQjT9<C@lMGgRKoE?@+aDdM6_mtct^R@b7>YywlH6Pumd(M@xC>BmVW~^{x*Toh$?>A^*gDk|D^e6oAawQ z3K?r8>tifMl(%%RJ#*vCVZWBRCCz(IYEJRLUS<+7eDDt)Om$_l?6d6sknkh z6kk+VxLL*j8fe>(R<3XvS~Dozu{=ZNy(B5zrKoTv6M`;KFHGJ#ln02ZS;Y4(ZQwgt zg`;7UxQK%M^E@M!vJz>|7L_=C>nK<7>02V2q*0h$7PO+>N3tG0J%NG|J?d>zTpIAU z6xx|z8h{>l!pu)x8gO@tR{5m?Vqzg2#@r`J7Lg2taH9oWn1uTcRqVLXY(YZhFu!{n z(f~L5L;C|-OIDa)L7V%embBTU+FFANP|`Z_(Q4#+MYy(?nK$hMgC!g@!sC&DOKv7> z_IPSJ6d_bxHGWLinqypP$$|!DnbujRzca`EOF4q%BhuI@UvtR(6hHa~XJY40Gd-Mp;ZD+>h5hA2a4l1CA_$$ zZ-{=?$6Id|;`p>%U?5Zz2D7yQe?V<`7>XoKB6= zZ~plvJ;59hIg?t-tjN>9Jeze(054m|AHpYE$ET;rIzCy?-hh#$opt;^7M2TOH9x`B z+vio0_0=?nYAD{)Pj+qzd_adM$Oy%DrHc!?K z=LkD;zx+(hF?-~2T*lFBevX2wY0b|ODa)eyQ5X&mN9d3xX50L%ve+ud@F>tChUX6; z?lWb0wj;Kf;o&GCEAYQkojLAe(yYLfuUDBDg_Bk4g;e431*Dt=S0d_rf-CT!O!Kin zB9u)3UdAi?xCEn`e6AwK2l`hMKCAv6fi9W;E#njEUwVquzYJVpF|#LYrYS%asZ%l$ zAyTo(7Bk{+QpBZB24O=&NKX+6*=`!fX}P1OC&3mPOk+sOhISnkFu>|s_Cam1=b(A^ zF<-!1U|X2`%2VZ93-)rA+2$Ue3k}<>#1j;#ZrgHde_`Xs{cwNPK6x%m#$7Nk<&5W6 z@H%bvdCncORyaD_hEHIY?42@Qi^Y3pyu_bUEXjP`E8%qMY`^(ZV+`)WX3PmqcouDO z&Os=On&^4a%k`GnS2OUr5DSQ43;V+y=DWSa^qQu3Le&hJ&mZ>p?T0TZvt1hZq*_pO8?E&qABE|o5VE#U>^u*Bcyupajh%a`i>7{Qb} z)%h3xo_u8EJsD(6+{`|2htC$~xx$ixk&|Fch2nG(YXN)|graAYNXPhx;v>>psG32x zivFH_MB+VVBhpj-{pFA<21afoahv8M(xNJU6lCImnS{F1KO7&Sc4Z^f4gQ{dgyKCJ zgqpwQR537oG)J}H-&YPIF%a?+Nw^!FNXBUz^EYmk1A#|#ATRU}#D}!o8F?1YQ)znP zV&?UT{=}bVpRe-w>0=4jXBI3am&GZY%d42>DO+$qXn*(C3I$DMmiBz8)YdFb9G-!_ zizym&q-cuvLT-|rfjWIHuFc)F4_iE7B!z`3?z#InY=AqN&cic4YxQ78(6Vigws8fjr)g?ibyR{S&6Vp}VaNU>WhI_KgOXCTEACYiLH`6DRDr_T@JBSn3+$^Ge9 zl^eKWg3h*JN6r;mG{tKcCNWc;&cf(BP-%_z;Y#m;dSgUR{Le~N85T6LI;>=>2BZoK zeuYr=1i#?GB~P(XOyES24$i3v;R<`fotln?85FR6@N(@{c*(_(n_oUy8lR|^w|3*$ z3w+*6E5`k>ls#JC);CmY^ljMMU4Z{a>VvQvyrsB7`|C7uWH1XCNi@q$vCd;3cesqf!**urTh+3d{Ty9dKBLXbaur z?}|qkg=q#!k&zFxV&XwK;{YNH-PQ1kf{XMtJE6M`&nS&oVISCNB{_WOJj_7VZzF{F z64gqvK7si_gX~aDNC_G#H(_rdBna(m@(|uIZd((F9F#{(lU4B-Zsib##_E;fvZ&H1 z-!xfilt;E*T&gz9{e`h|b%Ga!WvtRvsX>25lN-eq-NKJyM@cD7LBX;+fKusHsfdnX z%EJp}t=Zp#sqh;;A3^`dytQuamDDyg($`3svxf!Mc!RsK87nOKoVg@CnF>9$xYC4% zzMHW{R|!zr_G=S=@ATr&8*h9oRP{Nyg0(R4_7*Cu1>P2-6gdW=-UI0D4-?>z?9R^mZV~TnWQ>wr%!)+rD6qC%@8R(&fk-dRJ^Bbq}t@~F9)d@ z7&%F`d_*&sE@Ca=1q8X|-zLE>_7BS!9=b3a!S?!l@)3;pl#O6R{{C_hjDeApU|rIq zaZzg_ZC&NA3H!sO(=Gnd_~>*X8=da-_vE7!?FOpYW;v{&LWXfsvC=%k^2ci&RT^0YNSKw@I)o z{loGRY*#jd-Qe%ZM=;(~HiGT<_m_iU42&!UOD>BGZ?1X!Y%jdM4yHKTiVa2<`6;#v zn#jW2ZBS`O7T&OTTv2!g;&?1nLDBx(`MfJ};qAB!OU-g~Yhf!zi?-efQ`w19qgfu< zPJ7*MWC8&b*Co85iYKX8fce*3JYufEJ=xoQaJ3eg58jF`vEa@s3mVloMR?wB^=U?i zv#rVfHMHdmS!fhC*5n?9dfC_H?txltO%CbD*5o3CMNXoF8+tn&bR!Nzf~HxZ`vjEZ z3v~D5qrE_P%2oA=$toOVj|WCgjzh*{lWnnl#`Y^NFN{{;Bq^9@xA47Om&;T~YT@8B z*ndy(X%2=6hnsAn#|ltza4BxqPdU?qlo4DdF2{{*A1O_=@PxQVeSB;8SgSR$b@S%o z`bc@81VTCm;W9w)z;JzhbE7<5nJ70mpK<1yXKy)c6JWOrOQ4(J(>R#bFofah`MeT zkucUp0$y&EYs2N~S5J#Wqk>-}j7%}jR{s*2q~Cs@8k3}*CL5J$0umL+Z?SGq@Jm8w zq67pS|G1;}XUSE>DjOqJylF;2_$r%5;IF6XfUj%`jRMAvH4w=!x5QZ_rVINgtzx8N z;_B9hr-{|Ajrc^XTl6$Lt6QgnTs8;yPfZNg;1bRW+`t4I(D}t3j$KP|tcQJBFYWa; zn`vXA>oBt=*QJ~*%_2fW*so2l-T~N*UxD(cYo9Oc=DwUW^>HNj*vvJcwlC*=h8&7( zdCD6|z80$bd=)(eeoe}<=shd!23I3=IO5s%o_9h=ns0>~gL}^knuzzj6)Me$_l&)x z6M)_`8#4Jm=i=zek#X!S($m(qU4_1~^laeZ9l9P7Hi|;3(KgyBT9_zR8cn#b2i$5f z(<6nUL*Vd$Jyz~co2^Lk3POatC%B7)pWXqg&G!C|h%gbJ?@)ODvNi<(;|FH87<}FF z?lJ9M*bV51T@$TxgWZe^(-i%cL=0KeH)O$zIA!&ItR#5@{gR()05Cu`zvPH!Vbi9< zcJAnMcHpkn@AZo8YG22ly$_~_Qa|zS#ZZgp6T4A>_#t}lhL?1Rp7W4J{Hm*Az}+ev zaEZX^Ctx$X1+O0fes)jrE`rGGjRZdhG(k~Be8TiY9KLlA6;0-rCD+iVZpkY0Z#hij zlW$sx@q_y<2JY9fQhGjFPI_a6?K>A{(|jp`3eER`o1bQZkP!c4LXm$Y9Pv1k8Akjv zhWLWM1Z2FEV8KiHfA%dk><0xZO{d|16R!2C;nE`n8BfpU zJ;w_-Kg#hq0LJG7pjAVWJ2ttT5IIEQ3{!q_qXefZNQql~4g1r?>#o#zMdilneF;|T z4PJ+$ur6}^b$G^grRrpPXQKg`tdJgz|A#Zx3saRkgd!kktBJ=?!+}qe6V=KvnPo88 zJpLf>cnY3{ov;~S&IaX3SzA594Os?@!3iKSc2sqz6hUac1BOLGdnwl92h*eJk7+c z*D+rkkS(+^CtEHXaZSg%v$={OjFN)hCAf{OesQ%i{b?AvSm?Lf47;*BhZD_xwvi6PbVA4V7kO{)N4Z z`4<~9%?nlG-;{B_9tGeE@eEIOg7y&dknygOuUvsQ}Gio z{Hm+o>=Q4$1+Up9FK{VAG{N(OEKTh zd?^JwI`P_-1wumnCFv25Bbi~u8L$bFKEJpAFS73JFLUc-GM7uj6$U3rc+%MTSVUl zz4%`ywHEF2I&(g1&4a3tx?r5+HE)~f4W7)N4)^!uqZaQeE47aI_n3oP43I3;N-m48 zqq0iD&B$V%a2;#Vk=u1t&_rCvA*eJXt|Rs?Tt_x!avjS!`Z(87&ym{2(=O;BrqaYj zqkgagYq4dxo@~6{I0Q?x_0|NWO|{?%Cvhx4I46ZtwOXi;7U1mtXoC2RwkerExE9&4 zC)nfVMqN)MUT}?e1d+iGdA^EQHZI-y-1f;<9R>|+%~iM{d9+d+VRs3L)OQ>y-iJ6^ zuU6{^@Yt%M$x0RO0H?8+Aa5IT$N($dP^i)gdUjuh;6k4!|4d;Yl_zI68xoHyq z!1RTFNIFBLQsVf{aWqR##(vIU8%3Wvsex!GYdM z12v<6mO2ut`3xuVHVx^~5jI>J*jbS#)5Qys|xw8ZjH z7BKO&B!f>|IzEJ$26FK&9XKAox=4tS9l&MU3^UO&d-*`;vTluBNlOwu1SA{*FoV(~ zGW$yt0{RAwiiLo_iBA*)qNkV;5I4ET@E85)?H8o*L~yTx>AtPe_UxM3RYJD_B2Ib)!)elYUK0rHm#{$ZNCIJR26 z2<_DcNCK~nkh=rhI;!%7_oQNys=-eIA3&A=#(y+6j^`W%dKJ|8FIj`&?gO}ABfw;E z$42w$?wTSw}{Jo6shs8|TVKQo-NBX)qZRikYT`V%L<+XMiogsWig${vmHWz5fv~hp9Kjw%ebuVsN)so7neEq-jmajRC&%H6 zI{JgO3J1Y9Y=+=b!PA9E6b6O5_gB3%1EcCatS_-YOhET~0rhT~x(ceM4Ub-)vMh!J zT;tEZWvVd9lxTCa5T4B=Lz}0jHVZbH4i`1bqm_~A-~xcr9THFwMM456L!}fUfult4 z+%n4EgRQvPVR3K{{6i3+I>)V3jPw*1C_*2o5Wyec2E|N!qlX1HTL%wVozgbFi|Xa( z<@J60U_PAsAc7Zh0HnLOO9LY;ih~GJb!Q$-@Jei%WegpcP+j?=Bw??zU@~oYwu1^@ z4sH23S>p;l8z#6P>SaHu;CWDs9aMlE#||n;96YdvIJjV{L)Ja27>OH^84}!B@_rwH zay)+Xe0(GZ)}|?EqTQ>E;#L9JJb=NP5(QV_VOUzBChasR!5iUL$O8>>*Ov+~ct66` z6TFv$C)nF$C2KN>W1BFbYTfPD1Dja4k`orHaDZ zCm7Z~mKAHk!&rkINT5a#%zm=$SF%7Va`3*0m82R5j`#0UJRQ+qC}NCo1MXJ@r$Hf{ zGcg{WPe*eIUM4GE4D?-$+(>hs=(5;9PCXhu@6J>@s7?5e#ved);K!~F=NF2Wip5X5 zBkss93=W&G3=-dGC17`K_nLo&*`im{g4NJAi07XO!uX=PO3t`5ELaEt`O(Bv6eXJG zZAicppwhWH)W#;1J1HHPNYP7M0gz_*W=0R9I;|)8UILntXZU_bl#K)vAU2YIo{A>t zGcTfDZNj-;M4Q?yL~qN)JUo|qD^}_is>c@N@Z{^%p0>)Ur8_Hds!pR`+t%k}FLsJsg*`#c(rn24cN#FSXX4v?pj@*UTA?yqD}j&hHDoyy2f--Y)BgFPncx=I4E=kufhfp6vfiPE%2`G`5jH{ zXo?pmF$f4IPXC@jq#=*#;q&K6vlxT5w93*xIF$`nbEQIAh6+Wz zGtux(Ig~8AL?Iyf1~y>nl7E4BGpS2_Y#{W=6N3<>Lq5fEnp=m620({6(3@I^%-=0^ z$O3#K9YRmDq(k;>zv8OPcg~y+(b}6q9b&X<>k#`R>Ja^%DLlslTJ?Ej79H|rS$EEK zh(0hDd{>^y(!M5L;b!U(@ys@KKQxTAv!EPl6WM? zX>J`N8UP*QKyPXtvK!!Fe#n*hL^_0?ygEerm14STido~XuL^F-DO$X zJk<$fakScM^y~3vNbn;8&$;S3$@$amKI#6fJ_or;)(UT(8^=i^n0zKRKRwckHWAr~ z`D&`c7s|o8)S%y^REP;)fXxteYAN*SSn{#RspYzGQq#s3%+-O z^fge`7laWkfLC_CippvLLw37}Yp}DPOt>ST(Io3t%u&22|0o`4XB3N>G&vBje*xIV zpC;Jg~tJ5x)?8NHyi(x$4IwTqleyFE{hzXb)M^J@IZF>u1bs8by zE&-QDa_ejGnneN=R;Sy%kNOY1AE8=})rd6rQ7^s{0A=B|#m@Vvmtuj~#G`CW$_t?_ zpX_U-)YmV9HBc}6lJai=H*856i4=Pu^_&|QVi+W(9%FO(LKMzE5y`uz&?tJa-($!9Fw!t1$1~#I4E9I)<#;M09~-HFa7HH9kLl*9CtQOQ!_Oo z=@Kv(gi+Ssn9B45FMGT69cE;mD{F;!&Z%!=;@I+24AaMj+<0fA;z~KF>^_M?NU)nY z)C?G(3GdogxdDkW<^+W)ctR*;1`f&C*?fSx=SiXgn1wh-sm+s?3I=pdL~a5w*hHj( zPc%)Ur^rNv#H8JcNRb8enknS_jBN7F8@47OS!BD{E!(o;{Br$LPHUlI%y3JbT;CyU zg)f?0xt1ufWO|AGz>K#1+mz*d|4>p4kXztVV;oVHiasm$sIcA`c9KVnc zF1H+u20)G-BTOsD9|SO%9DfL(NRH`gmgE?BQNiJ{c#?!uY+#>bYpgy3b~>XR^M>1y zxM|_4;Kevt$ z4SZ^o?I1HaiL(tPKX$TfqXvFCU;gn?85WL|wG(-#=$%gY= z`i+3v_z7y9r9WBLnrrPKQD9qo`GKoQ@wcfW&z1wpZs`>gg0rw0%hDeY?`BX`<5Y0amB~Jknfg%7< z26N4diT6iUBy@p6@%)pACUhjiSnR6D-9Rbl#OE)UpWA;PY|GKch5?~uGp9B+ZDzA&e7>u`zV zjZ{`!;#frN>40AQ0D$wqOqd_a5Az4xfqAKrB?s8%H-KEdFoFL{e&D~58F*90>bhAF z2YqfAYj(ir4yIu|ZpT_d6mhI?hDvQ)Yq6|>5D0tBq>}9MbKrF+mNmMrHkE7UWsM`S z0p>Tkmo?T}J(%&KY|9#Jpe>)gYos)mH40EK`?AI&sKu5wkVvu18gp!3h+UA3dh7`O zEnU`-!|+t2)1Vw*)L4v<_O7^7w-@9#A+e;OuGr~k*ZkJ%7yv23=K7M{%ay&N)JefP z2uV+HHV4QZf^dvxt_?e3-igNJ_-43T`GA()p%6*h8#HucIfbOl7?Li@ilpFaSc7eQ zQ?NR=y(Mpw(J$iTBCo%au+koZXJ-La?0S0!R_f*6N%9pD=O`ycpNZ2BxV>=nmiDQaM8^Xu-0r878g+X4}?0HZlayuBj80xJalXt>+J$ z{W~CD7vFfP5gsuve1B2a3h$c3`D+9ZR_tu0O$Fu(+OMU|kZt(B99#BDtint1pV*8Q zN&76kYuh)cX#v|Xm4-J^Zt=_v1`l}!pXVdY9ZnMs$YzbD!L;GD?rT7megStbEyE`Y zr_oa+U`6uM?gIFUqm^=XBvHz@WRY@evJK%r+9lk)(fl%fBA_$7Oc!LW@Og77(|q`r zC@)f2L3_#mG6nZ3asb%{R}DTm4V$q9w+G(Mq~Ln!F65PgLGs$m2bNo2MFTj;ijFR= zyj}}cnY>2yO*(tLU)Gw7 zWh^HOEcxxy(9W!|_QsUs+vH%f%dtX4a4R-r$?+(>n@KrN-~%Dc3>1>(F+RB5vMd?^ zS$2#ttt`J0z+kfcm-s}oOi!~T%g5Iz5)Ch$Ne3rZ?7D*MAI>}w4(W600tAyAK?>;COvsY(>rk&tIQ&94*<$FHnU3aR4E*rmQs0g95n?d;tQC#IbM!3y8==e z3JTZ^!q|z`y!FtTwgdzUNNiG45V6rHkqo+^QrqfKtmYvELhrGmlipi~SV(h(W}BOo zF6R9R8)-y}(`-_@8XI8FqkA=PkJW?eJZD?YyAs;Uvzm7U)XTn_cOlebt9eMI*wwrz zf=Cn3AT1L@yR@WNhjM&LZwEfwOM08P7xs}lH%_)xYf*5@Sfw=c#h;FQQIYnqAfrfpTZ?&oJU^#f)vmgN`25ZvM0nRY>(RkOM%sxkE! z8s*`7V`SUzdJPU^V-pXRhPBd$jVV3*wWJ)yt>5Y;n?FhZEwXO-in;b0EUfXFiOK{! zDh7=li&_?#DoEd~EHLXUOmw=nS0--%S>ng#Z+Nr7{t2r3?1)%a!7Q-%Q&}wwY?;O; zY<%V*7PIg42?ikkG=cwee&8P^fKp%N_PD<%-$ib`C*vZwg(w|jZ0rwnWWVtDm*W~Y z28MFLaMGsRf+)3;%VG+d60qQX2y};>&af|~Zkl#`rV8wcXZi*hM%$igupU}r=er-X zS2?E)MP%##l9SjuDc8?;KXp6YCN?Zn3v?HPZg*=o>%$c|1A2t3UTGM!SCmW`6ai?U z?#cL1?B;l#f6)C#U*ZXe~wzuv&;fida+?~teE1t-%YH-bL996B`5qmxCAzWB?=GJqzaegyFyE_kPugXA! z;C3h+f;Tb>85PyaaHTbUr<&x_Jsm`{R;d9y0;hx5Lh-yb2v%JHJjy)YNbc0T@{E)b z0sNy#bNEFU2PorA#d4HeusiGvQcrvWP$Bcu9+W)k0>xc>7s{Yq2lUaDXDw!}sx%PPSw%M(6Ew z=odN;-~Wl#Vm$1KaDMpyj|jr}qPiB#DnUPkw*6@0T1=uT!rV5N;+We}?yx9VNLq)E zkHCF)E6J?=Xaf2otnF=3N&RmRl z5{)D>XIyJCay%~~GWfCmr(vZ84@h%u)GW#&CcqP}iPdGP;Y!cr;Q}~VYFalFyz5kK zelb9lpa;RR?g@4zmlNr!h{sIi_wyf5PZb`th#dJV@$H{tmLtg;O{ilE#IwsBO*C7X zyA1}$)(zwO6ce*0^N+P8!ox%!kvu< zT(20~w@1l)4n&FAnXt^vt7dW^NP=`iLUrX#R9~>@E&^1xQb=6;)`sS~& zfm9P!5$M2d-#5ux;T+*ahDId{KygVLn`3-XLhFjv`QxB!q`}`~GaU-k(5T!I7zI%z z0&_n=*meX)tPLV-fsLV5VK#J%2fTqJ(;0rzjLgy2?Rq-}Q>MO0?<>3~p*Ia<6|NEY z=vfV$H|Bi@+h8+?E?Ll;#yxKJW18G-YlM$MTRx+tk<_r0KY@B``XsU~T=S~~rABS~ z&Y*@jAbtUAvH3m{i>(oA!$c2(e8S$~FW@_0bwji!7&%&~)2e(CYturVi5n}9C6Y=6 zi-2*EGUGH3T~bpy4@tRB7>L90iPB!^DaJtXL4u*oy#ZwF?#XJ^5g<*KTO#kwwA0mM z8nqUfvZR(A9n)mq%#w|O;Oti5WLYbGZl^3`%)lerYDdKuWZEG1yJLIuv?> zv#^;?nT~UyGfmH+7T{;!Du^Pc<9MhvW2OTk5T=6-orRJS3#3L8&b~dzvK<*#a#LHE zKjXl-t;^}cx@7L!v_BQ>g>hV_Q%+1S+;72ZYT;}aY9F+f$3jg)z3dk1nNW*aDC7xd zp)w&t*{~;qjv+Qi&PiiH?|^dL<~|D^?;d*+*lhTZiGb!Rowt+HGh9nm{d5`Tfw6L} z&>AZ@%7qgAA2zhBvQ4>c)owGA=Ym%v^;r=W+>bR_evE?EvA~ubU(&a<^8x6uB&-x&`nxQEis;eB3>mPFyQG`j&PS#KJFy z5&t;>xyUs9|A? zKeIU93D?6DO~dFZW*Wv^%iL42Q?F{&_chAR<`reQeJ<6+>!dg*&1kBP>DEz3L&e(U zIN0U!mPpgfn8tq&pi$Qx@dB%d+|HD>!pTlewv1s%rdTVi&&F zLO^gSHbbFNl?1p{P=&2lYAJII;0wJpGv(xK&_ncWf_kGDRBwXcv!SZb#TI161izt*JnCWhq9632rWWbz)b=62(uC=6o4YFB#`_V5!thMe?5cPW8(`Ax-c|8Fs|QnqWt)$_ z2io!pi$+S_e+eFfdfDfre+9MJd=!ZkyQ^Z(G%PU+5-`Dkpa|{fp&XxJ{xv>QXhoY> z9<`@3K2a^>i8W+V3#~?Jcz>B)>;-xx_Pf+A!Pl_ep5Whk^Ma*Jg6kSU%mn8agBm*W z?m1XDT%WA93Pr=n>4*QshB1s9a1RSKWBDEeJb_N%UV_7&&4G04OMcodHe7JEHYo~Rune2Q z-j($WehFA<+iC=)iRktkC#{7gVE~YV_%)}7dkyZmTY)!@hb(m~Qyph0Ji963*Mm%0iO)Mr*eIuX2n|ZROh)_b*Tt z6z4)%O4{(eX|(i#rP*g9aoGDAEX%Hg{WyqF^UF2F-kO> z#N>IJ9>sXXGlXJ15}!yh(vw#)n!V_3py_Q95|M!t!@t(_cKq$_CrIelOX%n+0^N+H zk!}M1K?k%_uceAjpWspAyd6t*XUPLvuAs@A`g1N|4Oz^st97~wQOEh3pT)=7UzA|w^}`zb}U;^^ANPG zC?J>zGl!_w@Rm39c{Ch0!sjKz)X5t}PfoUHcwC2N(*#fggT8<##&vkN*b>}Q3?%O_ z)F_kK0sW>d4%%UR$GF0^`LE%qeVC7LNtHHd4)0+*(1lxNOKFh$Wy6)Gevg@ZE9fF_?LPsuZM(JPQL}Sq_9I8}xi`ZE`79seiUgQ#n-*utCJ&;uM5{I!MR2Kh0185(khJ9%gtI}t5B*o%B7J* zGJkh_o_4-{`#oAqQp$ou$cH__0WUkcT$i~sZ-n(02Nowx+!1)=Q-m=j%0l;d&;@o|@n(WeV_@QwfJEd8e$>e8si^;`krT}` z->;k~H%hH~gSegj0Z}yrWe`L{$HvDa0Z*oz-Das^gOuzgy%MjbQ)gtkr<;eP|!N?9PGT>L+S8a^&Z zf#3*6h%+JBPhp;mFT4~n_48NaNjJiwln9J2b}*6jti^l|n1C%(zZ3?>)?(->vf4o* zmv&Qb*0t(`&M^oXV*tFt7^EpCd^CiS=9w&cl5W#zJJe`{SVTM~|Bw92aC6}kAC=eqv!21B? znVbQB3fhC7DPfzTgXSWy=af#I0iLqAQK~hokj^2Z(YQPaZu=D|I~QHZajWX4dLkcrh1K#*U zmf@2<{Vmi;X-^SNDedWZsc5ppVw{G?DQmows37Vd{cIpqss(FQCfspZiAQJG-jf{-!bCe zlu!#onfWVmZ%QaUSF2%mNhy=#a8)X-W`{B z0{+se4B;bTj?0T=t+3UxH9rG$H0;k!&_(N>Km+A8( zs|VA0&X(!(eQ3+aei|utvmg8#>SfRL`5M$>wjPNTo9Q!G>WcUT>6hRm;DjVtdIM?| zs`7QH!dOf5u%EZHHe8y3Odgz8;T=W?;XHs^sajxKkZ<^bw4YK7u7s*q3q$2XW3q<1 zLG{T-fgL>FEoNZD^=g%;ZKAtgZs24LPSY8xz@|v_;o*2*$SZj_rjKWV*SngGrzQ#dKSg!X!gvsJ1M!^%dZ4s@ zFb?Sw^7=T)>qlkXIT8`a=vd%DX~a!^J4)cJQ>fhZ}Ca z*G%$!TR-{?-_zB2OcZ!ILC=6M29|hx{LHic$M?A7Lizk-+kQ0A2K$j}MUD+{K z9^TIaRk-O8*E7%o#b+gYut5=4(!j_;#($;RT{6R#{e==l8z&~}P4IHa7wW4)K(bWr z)0&XsuJKvv@!Pk*j`az92#j8(HVAG;ob&_-Icied*(V@*Clz_4xhKgHJDF{mS=C~4*3BDwu`?7?No+8lANHW33JtaJPGTr&j zu@|!OMl6pqOA5h7yous?r8Zb;mB*XgPVFy@mk#njwwx;d8-Vu{+qU38BXGengkZOA z=`U>Dxc`7S1WCLG7iTuEPNBOro z&_79#v%8CGxWWHoGnTt}P8(z+>gd~`muZc$k7kxam;5dWtGzLYeB_{ywqD2cFsKUi z^6|xTpJj@)3^rWDst-uBpT@&6g%QNB#ZhASVMWCpj09 zZgo*_-h>zqJegy7u73l49K`V zj1B~3f_Z=nE%^)QJ$z$}g2P}>m~k;jJ+@Nf%vt|-p&1MaRlgZ28k2Alo2 z@J+TV)q#uPEQ8DI`}RR{PU@TYiZ`0hlbPUGjJbKw-JN;c-czt;=BwIs3cI?+xMx@} znM(rMQUbR?TfQl<#uY|N;Q3H5drIJmP>ZDmBE4BkVB+AB8)=t7?_A6>hz*eo5@!Fj zVskZ=<102N;iG*d*y-1lY9saW>Y+lDrks#FHqof#NgTKbi-+Y#;aXP+afuW_8Cc6# zS?avtnFtYF;=%zFF$a@-be9+95f2FK*sa-e3da_`oG3hA%fq8A6ufzPlc*^ss6@@u!MxNI%?OV*cAoo?h2Z$1q@v~rX^=oA zCpGbFgqo=asZ%pm1)!$gTQW8Ok)V%90kSPWc}&k%ngt5` zx(F-h#9YhDza`Shz#LIB@g6_cR7744&BdI(G> z?uotNhZi2uo3IwaBXD{W*pG0xhqF*^AJ1~LHx@=SUrJp{-psGP4Cqf2{JE^#xm$kR zSfCYWwY0BR0~SKcxxFB;Xeg~#6Kk88HmU|2EW`$|OC==1j{z5L2Yo5tOy}8#ZgPVl z;rT{$j&2J6{e+X>8G}x&?L z?Ha$O2UgzFH(9ITCh@+lg)O%V92^Ep!TMsN;%Ye@S2Bzq3f47*LPBsAHehLpv*F!L zY6uqt2>md(L?G>O4##0`?I0Qe?chLXYVFVhIGA>r#3#}Y^fa5=;hJlAUwUyn+JPFF zG3~%xb7}|m4ZLEe9oQ>VBwo(RDO@VkQT1zwyJX!t(hhu#mUi%a39pwxXVC#_sKNc% zfTaUo1n*`~2e4tztqu^VCLM4G$6;I<71sTZcY`+OlDJf`k!x@JvSA^J%khZ>k)CEp5RYzBHUVyv~UJONb7u+lCOXHCrkUPd1uxP(BYqDW+U3dSWao{xli#B*0gED9+E2$IH5%yZ6c* zd*tHq#S9tDBUhUU_19)zxBdkj74fHuq;us!T~h1K=spXo`a)R3(Z{WXr>887nQIF7 z!BY@AR0bW$TnkrP1km!8Ks|^oHU%9+m=@4D7NDI$H5CjY(pdO{V}caZIz&pE1L?lH z^B^4Z1y=+%%ER>rTptLhHM5i9Yu&IB5c?_Pb#)Eiz>PAK1H#m}Nf2Vy@V_dy*%;`)bhL1z zOjf5rcCB99R4ea;Bgm#;HFBh0z(Wyu%Z2fJ1K=5hU^f5;;Bt+yHhj)pj!{|tIfetI zrpCEKxE#TIA=V_L>&rB9h&g?1O3VSPDRbhYdoL&#Ji?CsQ-uAf7; z?(HRJejMo>zEF-aU(L~d+v?M=D0z0sH)#yhVH=6AF!~Kd%Wfk{-}MBaNI)L)3STxwsnFM(94b_7vwja1OZ+Bx3Cd`1?Y)b9Mz^WAUWHv`RP_y3|rt_Sdbx4{6pS>=qje9M+v@t_@ zv(=QBYsCx&`zPn&_+*Mm9TKJ}>=;{;C6k=C94fzt0P~N58#QFpR1#%$fc7mzE|Bne z#Z=Ne7;#RVh)PJcX(W44w38_>&ru?%+}NVSmtmYN)=5v^SZ6Bm#O^-;Pae2nRxGjv z(M2rT**I%5cyvC1gZZNjy6;Np=qUo-j2tD>5Aum8vV-VOfaw<_RfgV-*h79>10qMGfA1^N=@Q67`zmv7Xn>w|oB9Rq2qOME(#6s8F z8>w?>xXa7F;rgT3YS6(lY=)L})M0cNwogMIe^X)T!y;|6B4$W>rCCZ$w(Qp?CQk5T z!W*Jq2UWq88=J=GZ4=$XliAa${+@hW#(7W14*U6M$ioou(d_Fye_uKF*fS7JrKZP> zgjira{un}xcI?P1q>LuSF6u4U%LpWzFU>Jt?;qppc^EH02_jp4@c#`rOrt-x0A2!s zdkDbPlq>st@==cWWKwR6q8vP$qiXv5%0W2>LQcvp*R`#SY)g0nK{5HaIjqn>EFZC6 zl8spR`g`&bi}z#@%Xix@snWOl`^!Nv21ZVTt+oxKi)h`dkf59X$|T)K`~&on?nBu~ z_ZfdrKGN}?4ALzkhd>OF|7DKtKm0xBARYrG3-OZ6;<}~F>ULn=GFS;1a<5e?h$3s1 zzXZRi?X^mA;s!zhx|{BiU54~xo9=(jeJ`-U+d!*}#VC+T@O?UQ;>M~`(}yx*!eKin zZXAOxGY>BD&-y zv|^5YkT7eeRiCq<9OvET_-LQGA#M?Zd%0YvYQ%k(3=nL`R(pc;dE;V&ZSsKS5g}xA zGj}1}X^41@DZ#P(6~ZO3oY$zpJx?g+4~J*VS8b{E-IrADinYFayxIIT6>wC1=1 zc!6l&A?#b-P!{26W5{b5s*fD%7w3ZXLq-Ljv@$q~YnjcQ6WZa_Tp&DmoX`%+TH$RS zpU_&kwo(O`>(muS-FzuUfgH1j9E&UY$UnzbcnEI7W~@2x3CUz*ZkIL(T8MS%tvPE| z?;&i;{xHY!67M*?Gt?JCRi6qMq{m6y?Nn9=7`f5~uzZgI(;p_lZ_E$y{p|p}ge@nt z9rq@ZjZXl!{M&^5AM!)~U^|enFeKiAb4LLfh4t1P%V+bC<&n%|N$115q^bixtad-2 zsbVw_27?3qBsm3T#IJoOAf|1VJt znCZc;5@*KMhXOFHEF;Q18g2zPz#P@ZtdteaSY`EK`Xbr<(Phw z^nZZ{%pXM}#a;?K_g0cP1}T}w2R#Mp!RAkYl1!#$?~Li!!%~*!Bpf(SXJgfH+aAT` z3-H8J1DgEuS2)>av{Hrh&EVjCFmrH30Gx@@YW8=RTf+lzk1XV8*4$og=Q@JJbPv&8lMbpq}XyCW#uS~+d$ZFjylj20A=M%K?MRjYC^+cpQplv_O zc!G;WStRGp#uy;Lne*l-*W=?8iMh~Q3^bkHa=f>O&Il%9RT5B&yuuH68>OQDqx$-B zmJktwE5Jy=5pSfQG^^nhfTTIchXD$mE#tYtPfacWAD}@2rREokmP>=5^qyu`03Nkk zj~@q;fG2%^mY|I!#0Y5Y<%T6x1*_fo5om1ROK`>)ZHMhofVTa};%qOG6=8cD zS8;6bD0ifrLnPJ1m;%7^c5BHjzc2xf8Cm`mBbHGpRv|Zsxc*`aXQIQyO2CvoTIDCLiCLDI)cT?37qy9albroHvMcWe7{d7UMf}Xt7ylXghc=SaQzU(n zR!!PH^JzUC+N~uD;)Zg$z@oO4pPIb9W46=A0?#qB{{gejqFBID8_ZXlC4_pgUrV+p zCHED;tFC%X>Gv;Zd_mR?Z}0rFjy+myF=al-Q0$7ISf#);2sM)6dpIa;s}mvQC&!UD z<^os+XC#RH8Gw5xgUEk`_CQ-vegwk_g#Xn$Ko2*9@h$@0niE()uuY(_al08 zuGdtAS~wh^NG;IQ?5G8tO%C#ev>2VRDOo3Ijl?R1@Yc@DkpUM8k>_~If?`;$Ua?j_ zFgS$=zDBjuGOe6YNya-~WesVZ^==OA>QQmRKfc{E0&Dj*{obv*z*lNvQZ z+;NS{5JDRDWW-I}(HPny%7#4<)8bl)Hf|kglqL#n2LqmZ52NM>E(?5&a1z#Fi$F~|ByTlg5(EaoBuGZdY7$-sT{2Jc<@iJ4BPIK$^zs70j;)d9J5v|S*Pw;z*+kHXpjDZ z$43W@%LFz3KBJocfM{)5_N4ZrtFDQAAd;*EKTS$`Vo}e!Qb;t!gLWw+`GD3Mc6-^ezlxLjW z2F>YA7Efsemy6&nSSh^-`Zjij{3G01mjx19Iu8jIeuz1O5#me;_L4W?Az+~_h5qta z;=vwaS|tJgM2xS=Q5gWs8F|Bv`Yo;^Lqc=p^?&YSq(3#t;gu$N;z`q*RtmH#bT zXv3R7KiV23^;fHUBHUneqC5=w{SbXeSYsK>ul0mZz1^+M_b^7KCsNRAg0 zzo-9ivTo;20FNRnati4w88FAJq@J&imFcZHAAsa3{vPx&`@=-!4d})sK41fPQHli}H;+4N1EM%;iToxy* zN_7O^Lc!_OWOa>0f4C>A3c|=l^-}=xOiomvjayORl&3Z7lM^b@ch=gM+#3YQxjn&{mw{b#%Z}ZN z;$R#e{w#B#K~c>9yz z1#X)SruduH|(Vib{>{0Y6>j=X1?kK;OMGS{bITFD_At_+mU|E%IJs zh8XF40ISZn@!a93E)Us!n}!aQi)Jk2C%vac0ao30ht*E z;EONX4&z@2ZTpeL8DAnP!uU3h;uzmi z?)YRbk(3Wp6b4bSdr20B{siwX)hHs)`Kq?V`e-wAqT{qBa`>4tqluq>)#0 ze+mxcynx7^VO}tfq~?m%cqfrV%JoB8h9{;TAHYiKc|tR0=4_P6?eIB3r^MGW;s1PU z_}kE%9%xc&(|;o}$E$SEIm9{tnp{q-z#s``m~$4>E%QwwgNx~!`KDUuCVu%{YJ8(2 zPp}MY zWZA_n0K~JAmq2A-_!dXUg&0SdiWCw9*a7Nxgf6KjU%CxT+P|@$ztSR=GJWmaNnX z%Wy^4aCw5ZvkSeVzmhUby5(6w!gK;FBGh;=)%CL093$}Vy9S;_|54z3Om6B3u0jY? zsV+i8AP3}Hbn>s>DP#l{Y{tr!Tdq@!2vXEmoffmN^xj-3)4zam7Jr)Ld#)F5@6ysO zP}Qex1-&tS`2dyGz+Q-~=Kxy02awqxCcv-F5Adrq101gr#o%xW#YMjkY+@l6buXDH zh$2fSR|68-UNRA9d7_Y@PJ9Hc0b^ZSFWJj!1U`fREYG7a#G~K07R1p+JB8w5rxW4L z6H9mz<Yn0{fllaD?JZTSR8 zqp9KleiQ0tKl$imP>aRjky`BJBW;-I6H)x2caAkNU&BFyCb(DNcJ~H9gL1se$MKQ8 zGHp(~k-4QTPao6tVd6Sk**Do>XCA?1S6W74Qkk{OrsBS7M0a}kOe?)7qsFvLW|EPv`^0u?cR2v zU9R&b!@TM5E#U>|8(L2Bw+a75e)y{df9fQh+x$KGl5luWMiP!M!;|DK^!Jw|>4t$3 zual$fm0T7*MkU?BnFw@;l5T=ipfk<8K$F6EgD8k19%BJ2&6vlC5D1Tv4V^s36A%k& zGHfn?8f?a!!X0-7x|e#S0#{Z~HgVbN3RKJ&T?n^9w>CA)a6%sBl8(Shd95+nM?7AF zo2rMK1Kk(nVTT9l-ukUVQf9VMDQ>|-II5oD!+db5U4yw%`9z3+l7txR3RjHO;iB$l zYjCJqAKpLx>S=MNclhq}&O5IF_b!ziEimESAQo@wEA?$H+|oA$zguqYFZ3ORhtu$( zG%(b+p|EXRVM}+$ng?0E)3Vls9tVb@F63M7h6M~k>i_=%F4>86+-HD3w!s5U&*(I5 zT#&<+Q}AiVg@Ur+G(LiF;KJgLbebyHWM>we3H^OIq7@9wUffbte)G z`|1e%l1CihKmplp#2YD8&6uR~TY||uhY?9SzoMf4B%NcxjY7neGKLeQXaG!&J8|## zz&6xPl*EIXi2IYEsd(JuR}1%tyN009@BEAg-)bqD0w)k;@k2uf;%QQ8D6oM$gGdGO zNJn?ICL1-pakN%%!6NS@Khxe$`Vg)p50k{WmV2yG#zUV-m@8@c!0b+;z^@iz)+LNe z(I}}TkjrjAnOv7=C6~8Jk)iPO6k^C1v`}Lv#7)HcQ{P|``*p|G%g3~LVanZIFSUpf zPj%#3zPk7ltdyYOwP?<1NWOj!Fge?)fR#YEk+BV4Eylo36g3WmKVFTh6S+SU02(rz&BdTu-*D@rXV}($s!z0-T>wqjPSgHUCukoFL zB`CCcWN7o$)aJoKJd=KK5KdXy3QjcSR^tR5V(OwCqYrEd+%-=ZfMT!?Mjo!>ph;9K z3iD4Gt!Gs5k`xf9WF%ZGdgpvJQ5xP~+E)gy5d0%cF!;b96(uabS)lRFe4n(3i<|Yy z#xTq;`_Xrv7p@$hY&3v>2KoEl;d1e&T7h}!?r;Bb8$r%6p{ zvWLAXSIhKf5HEumq;rqq1~2H5SHL@&>BaH}yZovOM|M=Fcg+vG$4b@KApdhwco!C`G>!2lB&AD}R{ zHUcDH)+im2e*%jhhEfHbQ`-lOSgnj#TGLmo?h98=lqUuODP@qwVaAF0W(d}s2T?e} z!dR;{(cHRu^ML~gK#jG=>a~G-W8dbH^3-N1+1xxG9*H#w5U4TODvtx1T0oYi@P5-t zr=AXYUD+5Nwz|PLs+(g)H?4Xd#Jo~&jZ!ybt??>!(bXyqfeekb#-?{I4SRtj#|Ncw zO7LMjG4jWq;p!&k+6|6X_Kj8H|G>Qqs}O#h4wpB_;YyIfn2LPuAVlv< z9I?H_V-OgHs9u9f8{n7_2(|Z5PCyqcF_u(m0rr^|xRauQ6}T=&sf9JDC?N0OEVsHm zK2#n7Nj(I8jg`wSXzj@1YQ4075W=sO>LA=wizjvwd<)98scCRJ!lg_>fJ6dwRp1&8 zVE5J_OKKrjI1D-hW@&+*1V#W)zd3y?s4(Mg4R$inYiMm${;?Q^Vuao=!I$j07z}{e z2B)A29vdrTyT_iln_AmVE$yaOc2f(xsWt?Dj=y!f$huz+-ESJZZEQdFJ@&$}w?NQU z2pKs#N*-PQ)eEgZlpL_7< zTln)h{`7aj&ldbSh(EXC&!hPB75q7_8-7m2pZ)lA6aIVxe;&b~gk6I_MA)10>9zRtI>40h|12a^fmC=N&WUHn_eq#$r8uqw1f8KfcrOm% z1Nc)v41QYp^H2Em5dOS<4g9bgwpYVLQ7>D+1(Ft$i9Sqfo z2T)%t8sRCtfO%MeP@RatAl!i&_yS>OsC_U3V_EmJsHaCl{&<>q24zIv>Lac%@cmks*#bXGZ z5<#duEvjH179i9jBJd1e!p<|I8eYQ$JUlBNLEkx%f-9{e32$H$Hl7z1Fbi|=`-1ob zHBr$3DHw#0@EIy%A^9AFWZMNaC z0@K!vI{dS4YXPjLu)6{lkP8kz5_D06?|%jQockBaXfj=vTd!KNRThgY&rz+Z0CQUi zC0;+bs>^M0`>E_#eS0a|mB^OB)^+`&#%yn2-VuG?x7vr+<{e-8vb%>sTfX>MnRiOk zrHV{3{r{oLcsT86Lj~2L`VETBE1NRyL#jMe!_6xDwYoq-LPh5_r8V~pv&kv1*`IB; d3fCXM97`nI6j-`C$T_8L-0{rhAa?@X@eg+}A!Psn literal 321231 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 diff --git a/docs/doctrees/pymatgen.doctree b/docs/doctrees/pymatgen.doctree index efbc8b0fcc105d6615192f9b3dc9c0b43e2db042..f3aef70692901f9350c94aae0570fdd3863a67dd 100644 GIT binary patch delta 544 zcmZvZ%SyvQ6o#4fegSL2Y_ye9rPkiGJ2zDjL?{Ma)Rm>A>5!9}CN;?{y3qOn*_0W< zS8(MbkKjXe<-#Y>M{r_Mo8scYF#P{H-+zuLzKh|9$m7*4JWsoc-oRAI2pbNYz1?QE zAOt!0u+g!xWjE|GmC-)RQx~;cP1uA3_!dZzmq=fR?K`#yg)W04uU%dxUga($P=Pfr zuPx+Ig*@F5TH^nDstL#Fl0FNNtH3Gbe0e*@?I*z*v>p;Q delta 527 zcmZvZ%}T>S6or}eCtAgVNE~+GbknUwk*b*=^bIww@u$8q<-UJ$01&X(`!%W*9x2D&t|wpS=Yhl zHSQBCMt@vS+vk)1Op1cQEl*Rlb91~^Cm3SCPprCyhlC0=`Ni^aW}}q?WoAH9I@@fJ zFi&mf2^eVNl<{fy6QQU0Ab*6A#!Y#Lzshg?L004Eg%;9WuwVc^7A__({J;_6l8 i7#IvH$=ebsdQgj33OZUZToKduus^V^$Vfb~?*13^$+H9i diff --git a/docs/genindex.html b/docs/genindex.html index 0bd0086..7be9b75 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -5,10 +5,10 @@ - Index — pymatgen-db 2021.5.13 documentation - - - + Index — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +37,7 @@

    Navigation

    - +
  • modules |
  • @@ -461,7 +461,7 @@

    B

      +
    • is_empty (Sampler property) +
    • is_empty() (Report method) - -
    • IS_LIST (Schema attribute)
    • IS_SCALAR (Schema attribute) @@ -859,7 +857,7 @@

      J

      • JsonWalker (class in pymatgen.db.vv.util)
      • -
      • jstype() (Scalar property) +
      • jstype (Scalar property)
      • JSTYPES (Scalar attribute)
      • @@ -1078,7 +1076,7 @@

        M

        N

          -
        • ncol() (Table property) +
        • ncol (Table property)
        • NEW (Differ attribute)
        • @@ -1092,7 +1090,7 @@

          N

        • NoTrackingCollection
        • -
        • nrow() (Table property) +
        • nrow (Table property)
        • NullConstraintViolation (class in pymatgen.db.vv.validate)
        • @@ -1104,7 +1102,7 @@

          N

          O

          @@ -51,14 +52,14 @@

          Navigation

          -
          +

          Pymatgen-db

          Pymatgen-db is a database add-on for the Python Materials Genomics (pymatgen) materials analysis library. It enables the creation of Materials Project-style MongoDB databases for management of materials data. A query engine is also provided to enable the easy translation of MongoDB docs to useful pymatgen objects for analysis purposes.

          -
          +

          Other pages

          -
          -
          -
          + + +

          Change Log

          Change log

          -
          -
          + +

          Getting pymatgen-db

          -
          +

          Stable version

          The version at the Python Package Index (PyPI) is always the latest stable release that will be hopefully, be relatively bug-free. The easiest way to @@ -88,8 +89,8 @@

          Stable version
          pip install pymatgen-db
           

          -
          -
          + +

          Developmental version

          The bleeding edge developmental version is at the pymatgen-db’s Github repo. The developmental version is likely to be more buggy, but may contain new @@ -102,9 +103,9 @@

          Developmental version
          python setup.py develop
           

          -
          -
          -
          + + +

          Requirements

          All required python dependencies should be automatically taken care of if you install pymatgen-db using easy_install or pip. Otherwise, these packages should @@ -118,8 +119,8 @@

          RequirementsMongoDB website.

          -

          -
          + +

          Usage

          A powerful command-line script (mgdb) provides most of the access to many of the features in pymatgen-db, including db initialization, insertion of data, @@ -129,7 +130,7 @@

          Usage

          Validation and derived-database creation each use their own scripts, which are called mgvv and mgbuild, respectively.

          -
          +

          Initial setup

          The first step is to install and setup MongoDB on a server of your choice. The MongoDB manual is an excellent place to start. For the purposes of @@ -162,8 +163,8 @@

          Initial setupsample.

          -

          -
          + +

          Inserting calculations

          To insert an entire directory of runs (where the topmost directory is “dir_name”) into the database, use the following command:

          @@ -175,8 +176,8 @@

          Inserting calculations

          A sample run has been provided for download for testing purposes. Unzip the file and run the above command in the directory.

          -

          -
          + +

          Querying a database

          Sometimes, more fine-grained querying is needed (e.g., for subsequent postprocessing and analysis).

          @@ -213,8 +214,8 @@

          Querying a database +

          +

          Extending pymatgen-db

          Currently, pymatgen-db is written with standard VASP runs in mind. However, it is perfectly extensible to any kind of data, e.g., other kinds of VASP runs @@ -224,16 +225,16 @@

          Extending pymatgen-dbpymatgen.db.query_engine.QueryEngine can generally be applied to any Mongo collection, with suitable specification of aliases if desired.

          -

          - -
          + + +

          API/Reference Docs

          The API docs are generated using Sphinx auto-doc and outlines the purpose of all modules and classes, and the expected argument and returned objects for most methods. They are available at the link below.

          pymatgen-db API docs

          -
          -
          + +

          How to cite pymatgen-db

          If you use pymatgen and pymatgen-db in your research, please consider citing the following work:

          @@ -244,8 +245,8 @@

          How to cite pymatgen-db Computational Materials Science, 2013, 68, 314-319. doi:10.1016/j.commatsci.2012.10.028

          - -
          + +

          License

          Pymatgen-db is released under the MIT License. The terms of the license are as follows:

          @@ -271,15 +272,15 @@

          LicenseDEALINGS IN THE SOFTWARE.

          - - +
          diff --git a/docs/mgvv.html b/docs/mgvv.html index 82979f1..761407d 100644 --- a/docs/mgvv.html +++ b/docs/mgvv.html @@ -4,11 +4,12 @@ - - Materials Project Database Validation: mgvv — pymatgen-db 2021.5.13 documentation - - - + + + Materials Project Database Validation: mgvv — pymatgen-db 2021.5.28 documentation + + + @@ -45,7 +46,7 @@

          Navigation

        • previous |
        • - + @@ -55,19 +56,19 @@

          Navigation

          -
          +

          Materials Project Database Validation: mgvv

          The command-line program, mgvv, is used to validate MongoDB databases. This command has two sub-commands:

          1. mgvv validate - Filter records on a set of criteria (conjunction) and apply a set of constraints.

          2. mgvv diff - Look at the “diff” of any two collections, for identifiers that are missing from one or the other, or for mis-matching values for identifiers that are the same.

          -
          +

          mgvv validate subcommand

          Database connections are configured from a file, exactly as for mgdb/ The patterns to validate against can come from a file or the command-line.

          -
          -
          +
          +

          Arguments

          Constraints can be provided on the command line. The syntax of each constraint is given in Constraint syntax. @@ -81,32 +82,32 @@

          Arguments +

          +

          Options

          -
          ---help, -h
          +
          +--help, -h

          show help message and exit

          -
          ---alias, -a
          +
          +--alias, -a

          Value is an alias for a field used in a constraint or condition, in form alias=name_in_db. This option is repeatable to allow multiple aliases.

          -
          ---collection, -C <name>
          +
          +--collection, -C <name>

          Name of collection on which to operate.

          -
          ---email, -e <file or spec>
          +
          +--email, -e <file or spec>

          Email a report. @@ -123,22 +124,22 @@

          Optionsemail-config for an example of the configuration file syntax, which unlike the command-line syntax allows for multiple recipients.

          -
          --f <file>, --file <file>
          +
          +-f <file>, --file <file>

          Main configuration file. Has constraints, and optionally email configuration (see –email option).

          -
          ---limit <num>, -m <num>
          +
          +--limit <num>, -m <num>

          In output, limit number of displayed validation errors, per collection, to num. The default is 50. To show as many errors as you can find, use 0.

          -
          ---format <type>, -F <type>
          +
          +--format <type>, -F <type>

          Use the specified report type to format and send the validation output. @@ -154,29 +155,29 @@

          Options -
          --c <file>, --config <file>
          +
          +-c <file>, --config <file>

          Configuration file for database connection. Generate one using mgdb init –config filename.json, if necessary. Otherwise, the code searches for a db.json. If none is found, a no-authentication localhost:27017/vasp database is assumed.

          -
          --v, --verbose
          +
          +-v, --verbose

          Increase log message verbosity. Repeatable. Messages are logged to standard error.

          -

          -
          + +

          Configuration files

          You can use up to two configuration files: one for constraints (and aliases), one for the database, and one for the constraints and email.

          -
          +

          Database configuration

          The database connection uses the same format as the mgdb command for its configuration file. The readonly_user is preferred over the administrative user, if both are present.

          -
          -
          +
          +

          Email configuration

          Reports can be sent by email. This can be configured on the command-line, or within the main configuration file.

          @@ -202,8 +203,8 @@

          Options +

          +

          Constraint configuration

          The constraints are configured from a YAML file.

          At the top level are keys, which are the names of the collection @@ -265,13 +266,13 @@

          Options +

          + +

          Constraint syntax

          The constraint syntax is taken from the smoqe package.

          -
          -
          + +

          mgvv diff subcommand

          The diff sub-command takes options and two DB configurations:

          mgvv diff [options..] old.json new.json
          @@ -282,8 +283,8 @@ 

          Optionsexamples at the end of this section for full usage examples.

          -

          -
          +
          +

          Arguments

          Two positional arguments are required, to set the two collections. These are called the old and new collections, respectively. Both @@ -307,46 +308,46 @@

          Arguments}

          -
          -
          + +

          Options

          usage: mgvv diff [-h] [–verbose] [-D CONFIG] [-E ADDR] [-f FILE] [-F FORMAT] [-s HOST] [-i INFO] [-k KEY] [-m] [-n EXPR] [-p PROPERTIES] [-P] [-q EXPR] [-u URL] [-V] old new

          -
          ---help, -h
          +
          +--help, -h

          show help message and exit

          -
          --v, --verbose
          +
          +-v, --verbose

          Increase log message verbosity. Repeatable. Messages are logged to standard error.

          -
          --D CONFIG, --db CONFIG
          +
          +-D CONFIG, --db CONFIG

          Insert a JSON record of the report in the MongoDB collection pointed to by CONFIG, which is a standard pymatgen-db JSON configuration file. Note that the target database and collection must be writable.

          -
          --E ADDR, --email ADDR
          +
          +-E ADDR, --email ADDR

          Email report to one or more email addresses. ADDR is a list of the form: ‘sender/receiver,[receiver2...][/subject]’.

          -
          --s HOST, --email-server HOST
          +
          +-s HOST, --email-server HOST

          Server HOST for an email report, in form hostname[:port]. Default is localhost

          -
          --f FILE, --file FILE
          +
          +-f FILE, --file FILE

          Read options from FILE instead of command line. File format is YAML (or JSON, @@ -366,32 +367,32 @@

          Options

          -
          --F FORMAT, --format FORMAT
          +
          +-F FORMAT, --format FORMAT

          Default report format: ‘text’, ‘html’, or ‘json’. If not given, the format will be determined by the output: text for console, html for email.

          -
          --i INFO, --info INFO
          +
          +-i INFO, --info INFO

          Extra fields for records, as comma-separated list, e.g ‘extra,fields,to_include’.

          -
          --k KEY, --key KEY
          +
          +-k KEY, --key KEY

          Key for matching records.

          -
          --m, --missing
          +
          +-m, --missing

          Only report keys that are in the ‘old’ collection, but not in the ‘new’ collection.

          -
          --n, --numeric
          +
          +-n, --numeric

          Fields with numeric values that must match, with a tolerance, as a comma-separated list, e.g., @@ -456,20 +457,20 @@

          Options

          This option may be combined with any of the other options.

          -
          --p PROPS, --properties PROPS
          +
          +-p PROPS, --properties PROPS

          Fields with properties that must match, as comma-separated list , e.g ‘these_must,match’.

          -
          --P, --print
          +
          +-P, --print

          Print report to the console.

          -
          --q EXPR, --query EXPR
          +
          +-q EXPR, --query EXPR

          Query to filter records before key and value tests. @@ -478,8 +479,8 @@

          Options
          -
          --u URL, --url URL
          +
          +-u URL, --url URL

          In HTML reports, make the key into a hyperlink by prefixing with URL. @@ -492,8 +493,8 @@

          Options Only report changes in values, not missing or added keys. - -
          + +

          Examples

          Let’s say you want to compare the ‘materials’ collection in a development and production database. You could have two JSON configuration files, prod.json and dev.json that specified the servers, @@ -550,8 +551,8 @@

          Options - pretty_formula

          - - + +
          diff --git a/docs/modules.html b/docs/modules.html index 5a425d3..147063f 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -4,11 +4,12 @@ - - pymatgen — pymatgen-db 2021.5.13 documentation - - - + + + pymatgen — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +38,7 @@

          Navigation

        • modules |
        • - + @@ -47,7 +48,7 @@

          Navigation

          -
          +

          pymatgen

            @@ -99,7 +100,7 @@

            pymatgen

          diff --git a/docs/objects.inv b/docs/objects.inv index 46c344b515be9f059cafd2868516290ad58c2345..82278c7d5e2ec347480fe6cd456e8845a760e21a 100644 GIT binary patch delta 3622 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 diff --git a/docs/py-modindex.html b/docs/py-modindex.html index 5299b3a..28b7d21 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -5,10 +5,10 @@ - Python Module Index — pymatgen-db 2021.5.13 documentation - - - + Python Module Index — pymatgen-db 2021.5.28 documentation + + + @@ -40,7 +40,7 @@

          Navigation

        • modules |
        • - +
          diff --git a/docs/pymatgen.db.alchemy.html b/docs/pymatgen.db.alchemy.html index 1be8ccf..03e8ffc 100644 --- a/docs/pymatgen.db.alchemy.html +++ b/docs/pymatgen.db.alchemy.html @@ -4,11 +4,12 @@ - - pymatgen.db.alchemy package — pymatgen-db 2021.5.13 documentation - - - + + + pymatgen.db.alchemy package — pymatgen-db 2021.5.28 documentation + + + @@ -45,7 +46,7 @@

          Navigation

        • previous |
        • - + @@ -56,24 +57,24 @@

          Navigation

          -
          +

          pymatgen.db.alchemy package

          -
          +

          Subpackages

          -
          -
          +
          +

          Submodules

          -
          -
          + +

          pymatgen.db.alchemy.transmuters module

          This module implements a version of pymatgen’s Transmuter to generate TransformedStructures from DB data sources. They enable the high-throughput generation of new structures and input files.

          -
          -class QeTransmuter(queryengine, criteria, transformations, extend_collection=0, ncores=None)[source]
          +
          +class QeTransmuter(queryengine, criteria, transformations, extend_collection=0, ncores=None)[source]

          Bases: pymatgen.alchemy.transmuters.StandardTransmuter

          The QeTransmuter uses a QueryEngine to retrieve and generate new structures from a database.

          @@ -95,14 +96,14 @@

          Submodules +

          +

          Module contents

          This package provides a version of pymatgen’s alchemy transmuter for performing transformations on structures queried from a Materials Project style database.

          -
          -
          + +
          diff --git a/docs/pymatgen.db.builders.examples.html b/docs/pymatgen.db.builders.examples.html index f1a2291..0927a5b 100644 --- a/docs/pymatgen.db.builders.examples.html +++ b/docs/pymatgen.db.builders.examples.html @@ -4,11 +4,12 @@ - - pymatgen.db.builders.examples package — pymatgen-db 2021.5.13 documentation - - - + + + pymatgen.db.builders.examples package — pymatgen-db 2021.5.28 documentation + + + @@ -45,7 +46,7 @@

          Navigation

        • previous |
        • - + @@ -57,12 +58,12 @@

          Navigation

          -
          +

          pymatgen.db.builders.examples package

          -
          +

          Submodules

          -
          -
          +
          +

          pymatgen.db.builders.examples.copy_builder module

          Simple “copy” builder.

          Copies from one collection to another. @@ -71,8 +72,8 @@

          Submodules -
          -class CopyBuilder(*args, **kwargs)[source]
          +
          +class CopyBuilder(*args, **kwargs)[source]

          Bases: pymatgen.db.builders.core.Builder

          Copy from one MongoDB collection to another.

          Create new builder for threaded or multiprocess execution.

          @@ -85,8 +86,8 @@

          Submodules -
          -get_items(source=None, target=None, crit=None)[source]
          +
          +get_items(source=None, target=None, crit=None)[source]

          Copy records from source to target collection.

          Parameters
          @@ -100,8 +101,8 @@

          Submodules -
          -process_item(item)[source]
          +
          +process_item(item)[source]

          Implement the analysis for each item of work here.

          Parameters
          @@ -119,13 +120,13 @@

          Submodules +

          +

          pymatgen.db.builders.examples.file_builders module

          Example builders that read or write files.

          -
          -class FileCounter(**kwargs)[source]
          +
          +class FileCounter(**kwargs)[source]

          Bases: pymatgen.db.builders.core.Builder

          Count lines and characters in a file.

          Create new builder for threaded or multiprocess execution.

          @@ -138,8 +139,8 @@

          Submodules -
          -finalize(errors)[source]
          +
          +finalize(errors)[source]

          Perform any cleanup actions after all items have been processed. Subclasses may choose not to implement this, in which case it is a no-op.

          @@ -153,8 +154,8 @@

          Submodules -
          -get_items(input_file=None)[source]
          +
          +get_items(input_file=None)[source]

          Perform one-time setup at the top of a run, returning an iterator on items to use as input.

          If get_parameters() doesn’t return None, this method is used to @@ -181,8 +182,8 @@

          Submodules -
          -get_parameters()[source]
          +
          +get_parameters()[source]

          Return key/value pairs that will be passed to get_items().

          This is an alternative to the use of special docstrings as described in get_items().

          @@ -205,8 +206,8 @@

          Submodules -
          -process_item(item)[source]
          +
          +process_item(item)[source]

          Implement the analysis for each item of work here.

          Parameters
          @@ -224,15 +225,15 @@

          Submodules +

          +

          pymatgen.db.builders.examples.maxvalue_builder module

          Build a derived collection with the maximum value from each ‘group’ defined in the source collection.

          -
          -class MaxValueBuilder(ncores=1)[source]
          +
          +class MaxValueBuilder(ncores=1)[source]

          Bases: pymatgen.db.builders.core.Builder

          Example of incremental builder that requires some custom logic for incremental case.

          @@ -246,14 +247,14 @@

          Submodules -
          -finalize(errs)[source]
          +
          +finalize(errs)[source]

          Update target collection with calculated maximum values.

          -
          -get_items(source=None, target=None)[source]
          +
          +get_items(source=None, target=None)[source]

          Get all records from source collection to add to target.

          Parameters
          @@ -266,20 +267,20 @@

          Submodules -
          -process_item(item)[source]
          +
          +process_item(item)[source]

          Calculate new maximum value for each group, for “new” items only.

          -
          -
          + +

          Module contents

          Description.

          -
          -
          + +
          diff --git a/docs/pymatgen.db.builders.html b/docs/pymatgen.db.builders.html index 43524a2..5cfc1c6 100644 --- a/docs/pymatgen.db.builders.html +++ b/docs/pymatgen.db.builders.html @@ -4,11 +4,12 @@ - - pymatgen.db.builders package — pymatgen-db 2021.5.13 documentation - - - + + + pymatgen.db.builders package — pymatgen-db 2021.5.28 documentation + + + @@ -45,7 +46,7 @@

          Navigation

        • previous |
        • - + @@ -56,9 +57,9 @@

          Navigation

          -
          +

          pymatgen.db.builders package

          -
          +

          Subpackages

            @@ -72,24 +73,24 @@

            Subpackages +

          +

          Submodules

          -
          -
          +
          +

          pymatgen.db.builders.core module

          Shared code for builders.

          For developers implementing a new builder, you should inherit from Builder.

          -
          -exception BuildError(who, why)[source]
          +
          +exception BuildError(who, why)[source]

          Bases: Exception

          -
          -class Builder(ncores=1)[source]
          +
          +class Builder(ncores=1)[source]

          Bases: object

          Abstract base class for all builders

          To implement a new builder, inherit from this class and @@ -105,15 +106,15 @@

          Submodules -
          -connect(config)[source]
          +
          +connect(config)[source]

          Connect to database with given configuration, which may be a dict or a path to a pymatgen-db configuration.

          -
          -finalize(had_errors)[source]
          +
          +finalize(had_errors)[source]

          Perform any cleanup actions after all items have been processed. Subclasses may choose not to implement this, in which case it is a no-op.

          @@ -127,8 +128,8 @@

          Submodules -
          -abstract get_items()[source]
          +
          +abstract get_items()[source]

          Perform one-time setup at the top of a run, returning an iterator on items to use as input.

          If get_parameters() doesn’t return None, this method is used to @@ -155,8 +156,8 @@

          Submodules -
          -get_parameters()[source]
          +
          +get_parameters()[source]

          Return key/value pairs that will be passed to get_items().

          This is an alternative to the use of special docstrings as described in get_items().

          @@ -179,8 +180,8 @@

          Submodules -
          -abstract process_item(item)[source]
          +
          +abstract process_item(item)[source]

          Implement the analysis for each item of work here.

          Parameters
          @@ -197,8 +198,8 @@

          Submodules -
          -run(user_kw=None, build_kw=None)[source]
          +
          +run(user_kw=None, build_kw=None)[source]

          Run the builder.

          Parameters
          @@ -217,47 +218,47 @@

          Submodules -
          -shared_dict()[source]
          +
          +shared_dict()[source]

          Get dict that can be shared between parallel processes.

          -
          -shared_list()[source]
          +
          +shared_list()[source]

          Get list that can be shared between parallel processes.

          -
          -class BuilderStatus(num, builder)[source]
          +
          +class BuilderStatus(num, builder)[source]

          Bases: object

          Status of a Builder object run.

          -
          -FAILURE = -1
          +
          +FAILURE = -1
          -
          -RUNNING = 1
          +
          +RUNNING = 1
          -
          -SUCCESS = 2
          +
          +SUCCESS = 2
          -
          -WAIT = 0
          +
          +WAIT = 0
          -
          -fail(i)[source]
          +
          +fail(i)[source]

          Set state of a single process or thread to ‘failure’.

          Parameters
          @@ -270,14 +271,14 @@

          Submodules -
          -has_failures()[source]
          +
          +has_failures()[source]

          Whether there are any failures in the states.

          -
          -running(i)[source]
          +
          +running(i)[source]

          Set state of a single process or thread to ‘running’.

          Parameters
          @@ -290,8 +291,8 @@

          Submodules -
          -success(i)[source]
          +
          +success(i)[source]

          Set state of a single process or thread to ‘success’.

          Parameters
          @@ -306,8 +307,8 @@

          Submodules -
          -class Collections(db, version=1, prefix=None, task_suffix=None)[source]
          +
          +class Collections(db, version=1, prefix=None, task_suffix=None)[source]

          Bases: object

          Interface to normalized names for collections.

          After initialization with a MongoDB database and optional parameters, @@ -328,18 +329,18 @@

          Submodules -
          -MAX_VER = 1
          +
          +MAX_VER = 1

          -
          -MIN_VER = 1
          +
          +MIN_VER = 1
          -
          -
          -property database
          +
          +
          +property database

          Return the current database object.

          Returns
          @@ -349,13 +350,13 @@

          Submodules -
          -get_collection_name(alias)[source]
          +
          +get_collection_name(alias)[source]

          -
          -known_collections = ['tasks', 'materials', 'diffraction_patterns', 'electrodes', 'conversion_electrodes', 'bandstructures', 'icsd', 'phase_diagrams', 'brototypes', 'electronic_structure']
          +
          +known_collections = ['tasks', 'materials', 'diffraction_patterns', 'electrodes', 'conversion_electrodes', 'bandstructures', 'icsd', 'phase_diagrams', 'brototypes', 'electronic_structure']

          Collection names that are accessible as attributes of an instance of this class

          @@ -363,8 +364,8 @@

          Submodules -
          -class HasExamples[source]
          +
          +class HasExamples[source]

          Bases: object

          Mix-in class for checking the output of a builder.

          This is a way to get some static checking of the schema of inserted documents, @@ -376,8 +377,8 @@

          Submodules -
          -examples()[source]
          +
          +examples()[source]

          Return example document(s) for collection(s).

          This must be implemented in subclasses.

          @@ -391,8 +392,8 @@

          Submodules -
          -validate_examples(fail_fn)[source]
          +
          +validate_examples(fail_fn)[source]

          Check the examples against the schema.

          Parameters
          @@ -404,35 +405,35 @@

          Submodules -
          -class ProcRunner[source]
          +
          +class ProcRunner[source]

          Bases: object

          This is a work-around to the limitation of multiprocessing that the function executed in the new module cannot be a method of a class. We simply set the instance (self) into the class before forking each process, and the class’ method calls the instance method for us.

          -
          -instance = None
          +
          +instance = None
          -
          -classmethod run(index)[source]
          +
          +classmethod run(index)[source]

          -
          -alphadump(d, indent=2, depth=0)[source]
          +
          +alphadump(d, indent=2, depth=0)[source]

          Dump a dict to a str, with keys in alphabetical order.

          -
          -merge_tasks(core_collections, sandbox_collections, id_prefix, new_tasks, batch_size=100, wipe=False)[source]
          +
          +merge_tasks(core_collections, sandbox_collections, id_prefix, new_tasks, batch_size=100, wipe=False)[source]

          Merge core and sandbox collections into a temporary collection in the sandbox.

          Parameters
          @@ -445,8 +446,8 @@

          Submodules -
          -parse_fn_docstring(fn)[source]
          +
          +parse_fn_docstring(fn)[source]

          Get parameter and return types from function’s docstring.

          Docstrings must use this format:

          :param foo: What is foo
          @@ -465,8 +466,8 @@ 

          Submodules +

          +

          pymatgen.db.builders.incr module

          Incremental builders.

          ## High-level API ##

          @@ -499,8 +500,8 @@

          Submodules -
          -class CollectionTracker(coll, create=True)[source]
          +
          +class CollectionTracker(coll, create=True)[source]

          Bases: object

          Track which records are ‘new’ in a MongoDB collection with respect to a given operation.

          @@ -517,22 +518,22 @@

          Submodules -
          -TRACKING_NAME = 'tracker'
          +
          +TRACKING_NAME = 'tracker'

          Sub-collection name, added as “.<TRACKING_NAME>” to the name of the target collection to create the tracking collection.

          -
          -create()[source]
          +
          +create()[source]

          Create tracking collection. Does nothing if tracking collection already exists.

          -
          -retrieve(operation, field=None)[source]
          +
          +retrieve(operation, field=None)[source]

          Retrieve a position in this collection.

          Parameters
          @@ -554,8 +555,8 @@

          Submodules -
          -save(mark)[source]
          +
          +save(mark)[source]

          Save a position in this collection.

          Parameters
          @@ -567,29 +568,29 @@

          Submodules -
          -property tracking_collection
          +
          +
          +property tracking_collection

          Return current tracking collection, or None if it does not exist.

          -
          -
          -property tracking_collection_name
          +
          +
          +property tracking_collection_name

          -
          -exception DBError[source]
          +
          +exception DBError[source]

          Bases: Exception

          Generic database error.

          -
          -class Mark(collection=None, operation=None, field=None, pos=None)[source]
          +
          +class Mark(collection=None, operation=None, field=None, pos=None)[source]

          Bases: object

          The position in a collection for the last record that was processed by a given operation.

          @@ -605,29 +606,29 @@

          Submodules -
          -FLD_FLD = 'field'
          +
          +FLD_FLD = 'field'

          -
          -FLD_MARK = 'mark'
          +
          +FLD_MARK = 'mark'
          -
          -FLD_OP = 'operation'
          +
          +FLD_OP = 'operation'
          -
          -as_dict()[source]
          +
          +as_dict()[source]

          Representation as a dict for JSON serialization.

          -
          -classmethod from_dict(coll, d)[source]
          +
          +classmethod from_dict(coll, d)[source]

          Construct from dict

          Parameters
          @@ -645,14 +646,14 @@

          Submodules -
          -property pos
          +
          +
          +property pos
          -
          -
          -property query
          +
          +
          +property query

          A mongdb query expression to find all records with higher values for this mark’s fields in the collection.

          @@ -663,14 +664,14 @@

          Submodules -
          -to_dict()
          +
          +to_dict()

          Representation as a dict for JSON serialization.

          -
          -update()[source]
          +
          +update()[source]

          Update the position of the mark in the collection.

          Returns
          @@ -685,55 +686,55 @@

          Submodules -
          -exception NoTrackingCollection[source]
          +
          +exception NoTrackingCollection[source]

          Bases: Exception

          Raised if no tracking collection is present, but some operation is requested on that collection.

          -
          -class Operation(value)[source]
          +
          +class Operation(value)[source]

          Bases: enum.Enum

          Enumeration of collection operations.

          -
          -build = 2
          +
          +build = 2
          -
          -copy = 1
          +
          +copy = 1
          -
          -other = 99
          +
          +other = 99
          -
          -class TrackedCollection(coll, operation=None, field=None)[source]
          +
          +class TrackedCollection(coll, operation=None, field=None)[source]

          Bases: object

          Wrapper on a pymongo collection to make `find’ operations start after the “tracking” mark.

          -
          -findall(*args, **kwargs)[source]
          +
          +findall(*args, **kwargs)[source]

          Call non-tracked find() operation with same args.

          -
          -set_mark()[source]
          +
          +set_mark()[source]
          -
          -set_tracking(is_tracked)[source]
          +
          +set_tracking(is_tracked)[source]

          Set whether find() transparently starts from after the mark (True), or whether it ignores the tracking info and acts like a normal find() operation (False).

          @@ -748,16 +749,16 @@

          Submodules -
          -tracked_find(*args, **kwargs)[source]
          +
          +tracked_find(*args, **kwargs)[source]

          Replacement for regular find().

          -
          -class TrackedQueryEngine(track_operation=None, track_field=None, **kwargs)[source]
          +
          +class TrackedQueryEngine(track_operation=None, track_field=None, **kwargs)[source]

          Bases: pymatgen.db.query_engine.QueryEngine, pymatgen.db.builders.incr.TrackingInterface

          A QueryEngine subclass that only examines records past the last ‘mark’ that was set for the @@ -767,34 +768,34 @@

          Submodulest.findall instead.

          Constructor.

          -
          -
          -property collection_name
          +
          +
          +property collection_name

          Override base class to make this a tracked collection. See @collection_name.setter()

          -
          -set_mark()[source]
          +
          +set_mark()[source]

          See TrackingInterface.set_mark()

          -
          -
          -property tracking
          +
          +
          +property tracking

          Whether tracking is really enabled.

          -
          -class TrackingInterface[source]
          +
          +class TrackingInterface[source]

          Bases: object

          -
          -abstract set_mark()[source]
          +
          +abstract set_mark()[source]

          Set the mark to the current end of the collection. This is saved in the database so it is available for later operations.

          @@ -802,8 +803,8 @@

          Submodules -
          -class UnTrackedQueryEngine(host='127.0.0.1', port=27017, database='vasp', user=None, password=None, collection='tasks', aliases_config=None, default_properties=None, query_post=None, result_post=None, connection=None, replicaset=None, **ignore)[source]
          +
          +class UnTrackedQueryEngine(host='127.0.0.1', port=27017, database='vasp', user=None, password=None, collection='tasks', aliases_config=None, default_properties=None, query_post=None, result_post=None, connection=None, replicaset=None, **ignore)[source]

          Bases: pymatgen.db.query_engine.QueryEngine, pymatgen.db.builders.incr.TrackingInterface

          A QE that has the interface for tracking, but does nothing for it. Allows for callers to do same operations regardless of whether tracking is @@ -862,20 +863,20 @@

          Submodules -
          -set_mark()[source]
          +
          +set_mark()[source]

          Does nothing and returns None.

          -

          -
          + +

          pymatgen.db.builders.schema module

          Utility module for schema validation, for builder testing

          -
          -class HasMeta(meta)[source]
          +
          +class HasMeta(meta)[source]

          Bases: object

          Mix-in class to handle metadata. Adds the ‘meta’ class attribute.

          @@ -889,25 +890,25 @@

          Submodules -
          -FIELD_SEP = ','
          +
          +FIELD_SEP = ','

          -
          -KV_SEP = ':'
          +
          +KV_SEP = ':'
          -
          -add_meta(key, value)[source]
          +
          +add_meta(key, value)[source]
          -
          -class Scalar(typecode, optional=False, meta='')[source]
          +
          +class Scalar(typecode, optional=False, meta='')[source]

          Bases: pymatgen.db.builders.schema.HasMeta

          Create with new metadata (which may be empty). The metadata should be dict-like (i.e. __getitem__ and __setitem__) or @@ -919,26 +920,26 @@

          Submodules -
          -JSTYPES = {'bool': 'boolean', 'date': 'string', 'datetime': 'string', 'float': 'number', 'int': 'integer', 'null': 'null', 'string': 'string'}
          +
          +JSTYPES = {'bool': 'boolean', 'date': 'string', 'datetime': 'string', 'float': 'number', 'int': 'integer', 'null': 'null', 'string': 'string'}

          -
          -TYPES = {'array': <function Scalar.<lambda>>, 'bool': <function Scalar.<lambda>>, 'date': <function _is_datetime>, 'datetime': <function _is_datetime>, 'float': <function Scalar.<lambda>>, 'int': <function Scalar.<lambda>>, 'null': <function Scalar.<lambda>>, 'object': <function Scalar.<lambda>>, 'string': <function Scalar.<lambda>>}
          +
          +TYPES = {'array': <function Scalar.<lambda>>, 'bool': <function Scalar.<lambda>>, 'date': <function _is_datetime>, 'datetime': <function _is_datetime>, 'float': <function Scalar.<lambda>>, 'int': <function Scalar.<lambda>>, 'null': <function Scalar.<lambda>>, 'object': <function Scalar.<lambda>>, 'string': <function Scalar.<lambda>>}
          -
          -
          -property jstype
          +
          +
          +property jstype

          Return JavaScript type.

          -
          -class Schema(schema, optional=False, meta='')[source]
          +
          +class Schema(schema, optional=False, meta='')[source]

          Bases: pymatgen.db.builders.schema.HasMeta

          Create with new metadata (which may be empty). The metadata should be dict-like (i.e. __getitem__ and __setitem__) or @@ -950,23 +951,23 @@

          Submodules -
          -IS_DICT = 1
          +
          +IS_DICT = 1

          -
          -IS_LIST = 0
          +
          +IS_LIST = 0
          -
          -IS_SCALAR = 2
          +
          +IS_SCALAR = 2
          -
          -json_schema(**add_keys)[source]
          +
          +json_schema(**add_keys)[source]

          Convert our compact schema representation to the standard, but more verbose, JSON Schema standard.

          Example JSON schema: http://json-schema.org/examples.html @@ -980,40 +981,40 @@

          Submodules -
          -validate(doc, path='(root)')[source]
          +
          +validate(doc, path='(root)')[source]

          -
          -exception SchemaError[source]
          +
          +exception SchemaError[source]

          Bases: Exception

          Base class of all errors raised by schema creation or validation.

          -
          -exception SchemaParseError[source]
          +
          +exception SchemaParseError[source]

          Bases: pymatgen.db.builders.schema.SchemaError

          -
          -exception SchemaPathError[source]
          +
          +exception SchemaPathError[source]

          Bases: pymatgen.db.builders.schema.SchemaError

          -
          -exception SchemaTypeError(typename)[source]
          +
          +exception SchemaTypeError(typename)[source]

          Bases: pymatgen.db.builders.schema.SchemaError

          -
          -add_schemas(path, ext='json')[source]
          +
          +add_schemas(path, ext='json')[source]

          Add schemas from files in ‘path’.

          Parameters
          @@ -1035,8 +1036,8 @@

          Submodules -
          -get_schema(name)[source]
          +
          +get_schema(name)[source]

          Get schema by name

          Parameters
          @@ -1055,8 +1056,8 @@

          Submodules -
          -load_schema(file_or_fp)[source]
          +
          +load_schema(file_or_fp)[source]

          Load schema from file.

          Parameters
          @@ -1069,13 +1070,13 @@

          Submodules +

          +

          pymatgen.db.builders.util module

          Common utility functions for the database functions

          -
          -get_builder_log(name)[source]
          +
          +get_builder_log(name)[source]

          Get a logging object, in the right place in the hierarchy, for a given builder.

          @@ -1092,8 +1093,8 @@

          Submodules -
          -get_schema_dir(db_version=1)[source]
          +
          +get_schema_dir(db_version=1)[source]

          Get path to directory with schemata.

          Parameters
          @@ -1109,8 +1110,8 @@

          Submodules -
          -get_schema_file(db_version=1, db='mg_core', collection='materials')[source]
          +
          +get_schema_file(db_version=1, db='mg_core', collection='materials')[source]

          Get file with appropriate schema.

          Parameters
          @@ -1133,8 +1134,8 @@

          Submodules -
          -get_test_dir(name=None)[source]
          +
          +get_test_dir(name=None)[source]

          Get path to subdirectory with test files related to a given class.

          @@ -1150,11 +1151,11 @@

          Submodules +

          +

          Module contents

          -
          -
          + +
          diff --git a/docs/pymatgen.db.html b/docs/pymatgen.db.html index 9ad6226..a948540 100644 --- a/docs/pymatgen.db.html +++ b/docs/pymatgen.db.html @@ -4,11 +4,12 @@ - - pymatgen.db package — pymatgen-db 2021.5.13 documentation - - - + + + pymatgen.db package — pymatgen-db 2021.5.28 documentation + + + @@ -45,7 +46,7 @@

          Navigation

        • previous |
        • - +
          @@ -55,9 +56,9 @@

          Navigation

          -
          +

          pymatgen.db package

          -
          +

          Subpackages

            @@ -104,17 +105,17 @@

            Subpackages +

          +

          Submodules

          -
          -
          +
          +

          pymatgen.db.creator module

          This module defines a Drone to assimilate vasp data and insert it into a Mongo database.

          -
          -class VaspToDbTaskDrone(host='127.0.0.1', port=27017, database='vasp', user=None, password=None, collection='tasks', parse_dos=False, compress_dos=False, parse_projected_eigen=False, simulate_mode=False, additional_fields=None, update_duplicates=True, mapi_key=None, use_full_uri=True, runs=None)[source]
          +
          +class VaspToDbTaskDrone(host='127.0.0.1', port=27017, database='vasp', user=None, password=None, collection='tasks', parse_dos=False, compress_dos=False, parse_projected_eigen=False, simulate_mode=False, additional_fields=None, update_duplicates=True, mapi_key=None, use_full_uri=True, runs=None)[source]

          Bases: pymatgen.apps.borg.hive.AbstractDrone

          VaspToDbTaskDrone assimilates directories containing vasp input to inserted db tasks. This drone is meant ot be used with pymatgen’s @@ -185,14 +186,14 @@

          Submodules -
          -as_dict()[source]
          +
          +as_dict()[source]

          A JSON serializable dict representation of an object.

          -
          -assimilate(path)[source]
          +
          +assimilate(path)[source]

          Parses vasp runs. Then insert the result into the db. and return the task_id or doc of the insertion.

          @@ -204,18 +205,18 @@

          Submodules -
          -calculate_stability(d)[source]
          +
          +calculate_stability(d)[source]

          -
          -convert(d)[source]
          +
          +convert(d)[source]
          -
          -classmethod from_dict(d)[source]
          +
          +classmethod from_dict(d)[source]
          Parameters

          d – Dict representation.

          @@ -227,21 +228,21 @@

          Submodules -
          -generate_doc(dir_name, vasprun_files)[source]
          +
          +generate_doc(dir_name, vasprun_files)[source]

          Process aflow style runs, where each run is actually a combination of two vasp runs.

          -
          -get_task_doc(path)[source]
          +
          +get_task_doc(path)[source]

          Get the entire task doc for a path, including any post-processing.

          -
          -get_valid_paths(path)[source]
          +
          +get_valid_paths(path)[source]

          There are some restrictions on the valid directory structures:

          1. There can be only one vasp run in each directory. Nested directories @@ -254,8 +255,8 @@

            Submodules -
            -post_process(dir_name, d)[source]
            +
            +post_process(dir_name, d)[source]

            Simple post-processing for various files other than the vasprun.xml. Called by generate_task_doc. Modify this if your runs have other kinds of processing requirements.

            @@ -270,22 +271,22 @@

            Submodules -
            -process_killed_run(dir_name)[source]
            +
            +process_killed_run(dir_name)[source]

            Process a killed vasp run.

          -
          -process_vasprun(dir_name, taskname, filename)[source]
          +
          +process_vasprun(dir_name, taskname, filename)[source]

          Process a vasprun.xml file.

          -
          -contains_vasp_input(dir_name)[source]
          +
          +contains_vasp_input(dir_name)[source]

          Checks if a directory contains valid VASP input.

          Parameters
          @@ -299,13 +300,13 @@

          Submodules -
          -get_basic_analysis_and_error_checks(d, max_force_threshold=0.5, volume_change_threshold=0.2)[source]
          +
          +get_basic_analysis_and_error_checks(d, max_force_threshold=0.5, volume_change_threshold=0.2)[source]

          -
          -get_coordination_numbers(d)[source]
          +
          +get_coordination_numbers(d)[source]

          Helper method to get the coordination number of all sites in the final structure from a run.

          @@ -323,8 +324,8 @@

          Submodules -
          -get_uri(dir_name)[source]
          +
          +get_uri(dir_name)[source]

          Returns the URI path for a directory. This allows files hosted on different file servers to have distinct locations.

          @@ -340,8 +341,8 @@

          Submodules +

          +

          pymatgen.db.dbconfig module

          Database configuration functions.

          Main class is DBConfig, which encapsulates a database configuration @@ -355,14 +356,14 @@

          Submodules -
          -exception ConfigurationFileError(filename, err)[source]
          +
          +exception ConfigurationFileError(filename, err)[source]

          Bases: Exception

          -
          -class DBConfig(config_file=None, config_dict=None)[source]
          +
          +class DBConfig(config_file=None, config_dict=None)[source]

          Bases: object

          Database configuration.

          Constructor.

          @@ -382,78 +383,78 @@

          Submodules -
          -ALL_SETTINGS = ['host', 'port', 'database', 'collection', 'aliases']
          +
          +ALL_SETTINGS = ['host', 'port', 'database', 'collection', 'aliases']

          -
          -DEFAULT_FILE = 'db.json'
          +
          +DEFAULT_FILE = 'db.json'
          -
          -DEFAULT_PORT = 27017
          +
          +DEFAULT_PORT = 27017
          -
          -DEFAULT_SETTINGS = [('host', 'localhost'), ('port', 27017), ('database', 'vasp'), ('aliases', {})]
          +
          +DEFAULT_SETTINGS = [('host', 'localhost'), ('port', 27017), ('database', 'vasp'), ('aliases', {})]
          -
          -
          -property collection
          +
          +
          +property collection
          -
          -copy()[source]
          +
          +copy()[source]

          Return a copy of self (internal settings are copied).

          -
          -
          -property dbname
          +
          +
          +property dbname

          Name of the database.

          -
          -
          -property host
          +
          +
          +property host
          -
          -
          -property password
          +
          +
          +property password
          -
          -
          -property port
          +
          +
          +property port
          -
          -
          -property settings
          +
          +
          +property settings
          -
          -
          -property user
          +
          +
          +property user
          -
          -auth_aliases(d)[source]
          +
          +auth_aliases(d)[source]

          Interpret user/password aliases.

          -
          -get_settings(infile)[source]
          +
          +get_settings(infile)[source]

          Read settings from input file.

          Parameters
          @@ -469,8 +470,8 @@

          Submodules -
          -normalize_auth(settings, admin=True, readonly=True, readonly_first=False)[source]
          +
          +normalize_auth(settings, admin=True, readonly=True, readonly_first=False)[source]

          Transform the readonly/admin user and password to simple user/password, as expected by QueryEngine. If return value is true, then admin or readonly password will be in keys “user” and “password”.

          @@ -492,27 +493,27 @@

          Submodules +

          +

          pymatgen.db.dbgroup module

          Create and access groups of databases, each configured from different settings.

          -
          -class ConfigGroup(qe_class=<class 'pymatgen.db.query_engine.QueryEngine'>)[source]
          +
          +class ConfigGroup(qe_class=<class 'pymatgen.db.query_engine.QueryEngine'>)[source]

          Bases: object

          Convenient storage and access to a group of database configurations.

          Will automatically instantiate these configurations, as query engines, on-demand.

          -
          -SEP = '.'
          +
          +SEP = '.'
          -
          -add(name, cfg, expand=False)[source]
          +
          +add(name, cfg, expand=False)[source]

          Add a configuration object.

          Parameters
          @@ -533,8 +534,8 @@

          Submodules -
          -add_path(path, pattern='*.json')[source]
          +
          +add_path(path, pattern='*.json')[source]

          Add configuration file(s) in path. The path can be a single file or a directory. If path is a directory, then pattern @@ -553,8 +554,8 @@

          Submodules -
          -expand(name)[source]
          +
          +expand(name)[source]

          Expand config for name by adding a sub-configuration for every dot-separated collection “below” the given one (or all, if none given).

          @@ -579,13 +580,13 @@

          Submodules -
          -keys()[source]
          +
          +keys()[source]

          -
          -set_prefix(prefix=None)[source]
          +
          +set_prefix(prefix=None)[source]

          Set prefix to use as a namespace for item lookup. A dot (.) will be automatically added to the given string.

          @@ -599,8 +600,8 @@

          Submodules -
          -uncache(name)[source]
          +
          +uncache(name)[source]

          Remove all created query engines that match name from the cache (this disconnects from MongoDB, which is the point).

          @@ -616,14 +617,14 @@

          Submodules -
          -exception CreateQueryEngineError(cls, settings, err)[source]
          +
          +exception CreateQueryEngineError(cls, settings, err)[source]

          Bases: Exception

          -
          -class RegexDict[source]
          +
          +class RegexDict[source]

          Bases: dict

          Extend standard dict to include a function that finds values based on a @@ -632,8 +633,8 @@

          Submodules -
          -re_get(pattern)[source]
          +
          +re_get(pattern)[source]

          Return values whose key matches pattern

          Parameters
          @@ -646,8 +647,8 @@

          Submodules -
          -re_keys(pattern)[source]
          +
          +re_keys(pattern)[source]

          Find keys matching pattern.

          Parameters
          @@ -665,8 +666,8 @@

          Submodules -
          -create_query_engine(config, clazz)[source]
          +
          +create_query_engine(config, clazz)[source]

          Create and return new query engine object from the given DBConfig object.

          @@ -683,14 +684,14 @@

          Submodules +

          +

          pymatgen.db.query_engine module

          This module provides a QueryEngine that simplifies queries for Mongo databases generated using hive.

          -
          -class QueryEngine(host='127.0.0.1', port=27017, database='vasp', user=None, password=None, collection='tasks', aliases_config=None, default_properties=None, query_post=None, result_post=None, connection=None, replicaset=None, **ignore)[source]
          +
          +class QueryEngine(host='127.0.0.1', port=27017, database='vasp', user=None, password=None, collection='tasks', aliases_config=None, default_properties=None, query_post=None, result_post=None, connection=None, replicaset=None, **ignore)[source]

          Bases: object

          This class defines a QueryEngine interface to a Mongo Collection based on a set of aliases. This query engine also provides convenient translation @@ -761,78 +762,78 @@

          Submodules -
          -ALIASES_CONFIG_KEY = 'aliases_config'
          +
          +ALIASES_CONFIG_KEY = 'aliases_config'

          -
          -COLLECTION_KEY = 'collection'
          +
          +COLLECTION_KEY = 'collection'
          -
          -DB_KEY = 'database'
          +
          +DB_KEY = 'database'
          -
          -HOST_KEY = 'host'
          +
          +HOST_KEY = 'host'
          -
          -PASSWORD_KEY = 'password'
          +
          +PASSWORD_KEY = 'password'
          -
          -PORT_KEY = 'port'
          +
          +PORT_KEY = 'port'
          -
          -USER_KEY = 'user'
          +
          +USER_KEY = 'user'
          -
          -aliases = None
          +
          +aliases = None

          See aliases arg to constructor

          -
          -close()[source]
          +
          +close()[source]

          Disconnects the connection.

          -
          -
          -property collection_name
          +
          +
          +property collection_name
          -
          -default_criteria = None
          +
          +default_criteria = None

          See default_criteria arg to constructor

          -
          -default_properties = None
          +
          +default_properties = None

          See default_properties arg to constructor

          -
          -ensure_index(key, unique=False)[source]
          +
          +ensure_index(key, unique=False)[source]

          Wrapper for pymongo.Collection.ensure_index

          -
          -static from_config(config_file, use_admin=False)[source]
          +
          +static from_config(config_file, use_admin=False)[source]

          Initialize a QueryEngine from a JSON config file generated using mgdb init.

          @@ -851,14 +852,14 @@

          Submodules -
          -get_dos_from_id(task_id)[source]
          +
          +get_dos_from_id(task_id)[source]

          Overrides the get_dos_from_id for the MIT gridfs format.

          -
          -get_entries(criteria, inc_structure=False, optional_data=None)[source]
          +
          +get_entries(criteria, inc_structure=False, optional_data=None)[source]

          Get ComputedEntries satisfying a particular criteria.

          Note

          @@ -887,8 +888,8 @@

          Submodules -
          -get_entries_in_system(elements, inc_structure=False, optional_data=None, additional_criteria=None)[source]
          +
          +get_entries_in_system(elements, inc_structure=False, optional_data=None, additional_criteria=None)[source]

          Gets all entries in a chemical system, e.g. Li-Fe-O will return all Li-O, Fe-O, Li-Fe, Li-Fe-O compounds.

          @@ -920,8 +921,8 @@

          Submodules -
          -get_structure_from_id(task_id, final_structure=True)[source]
          +
          +get_structure_from_id(task_id, final_structure=True)[source]

          Returns a structure from the database given the task id.

          Parameters
          @@ -935,8 +936,8 @@

          Submodules -
          -query(properties=None, criteria=None, distinct_key=None, **kwargs)[source]
          +
          +query(properties=None, criteria=None, distinct_key=None, **kwargs)[source]

          Convenience method for database access. All properties and criteria can be specified using simplified names defined in Aliases. You can use the supported_properties property to get the list of supported @@ -973,26 +974,26 @@

          Submodules -
          -query_one(*args, **kwargs)[source]
          +
          +query_one(*args, **kwargs)[source]

          Return first document from query(), with same parameters.

          -
          -query_post = None
          +
          +query_post = None

          See query_post arg to constructor

          -
          -result_post = None
          +
          +result_post = None

          See result_post arg to constructor

          -
          -set_aliases_and_defaults(aliases_config=None, default_properties=None)[source]
          +
          +set_aliases_and_defaults(aliases_config=None, default_properties=None)[source]

          Set the alias config and defaults to use. Typically used when switching to a collection with a different schema.

          @@ -1010,8 +1011,8 @@

          Submodules -
          -set_collection(collection)[source]
          +
          +set_collection(collection)[source]

          To Be Deprecated: this should be replaced with the @property collection_name

          Switch to another collection. Note that you may have to set the aliases and default properties via set_aliases_and_defaults if the @@ -1026,15 +1027,15 @@

          Submodules -
          -exception QueryError[source]
          +
          +exception QueryError[source]

          Bases: Exception

          Exception class for errors occuring during queries.

          -
          -class QueryListResults(prop_dict, result_cursor, postprocess=None)[source]
          +
          +class QueryListResults(prop_dict, result_cursor, postprocess=None)[source]

          Bases: pymatgen.db.query_engine.QueryResults

          Set of QueryResults on a list instead of a MongoDB cursor.

          Constructor.

          @@ -1049,15 +1050,15 @@

          Submodules -
          -clone()[source]
          +
          +clone()[source]

          -
          -class QueryResults(prop_dict, result_cursor, postprocess=None)[source]
          +
          +class QueryResults(prop_dict, result_cursor, postprocess=None)[source]

          Bases: collections.abc.Iterable

          Iterable wrapper for results from QueryEngine. Like pymongo’s cursor, this object should generally not be instantiated, @@ -1077,25 +1078,25 @@

          Submodules -
          -clone()[source]
          +
          +clone()[source]

          -
          -from_cursor(cursor)[source]
          +
          +from_cursor(cursor)[source]

          Create a QueryResults object from a cursor object

          -
          -
          + +

          pymatgen.db.util module

          Utility functions used across scripts.

          -
          -class MongoJSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]
          +
          +class MongoJSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]

          Bases: json.encoder.JSONEncoder

          Constructor for JSONEncoder, with sensible defaults.

          If skipkeys is false, then it is a TypeError to attempt @@ -1120,15 +1121,15 @@

          SubmodulesNone and +tuple. The default is (’, ‘, ‘: ‘) if indent is None and (‘,’, ‘: ‘) otherwise. To get the most compact JSON representation, you should specify (‘,’, ‘:’) to eliminate whitespace.

          If specified, default is a function that gets called for objects that can’t otherwise be serialized. It should return a JSON encodable version of the object or raise a TypeError.

          -
          -default(o)[source]
          +
          +default(o)[source]

          Implement this method in a subclass such that it returns a serializable object for o, or calls the base implementation (to raise a TypeError).

          @@ -1150,8 +1151,8 @@

          Submodules -
          -collection_keys(coll, sep='.')[source]
          +
          +collection_keys(coll, sep='.')[source]

          Get a list of all (including nested) keys in a collection. Examines the first document in the collection.

          @@ -1165,45 +1166,45 @@

          Submodules -
          -csv_dict(d)[source]
          +
          +csv_dict(d)[source]

          Format dict to a string with comma-separated values.

          -
          -csv_list(l)[source]
          +
          +csv_list(l)[source]

          Format list to a string with comma-separated values.

          -
          -get_collection(config_file, admin=False, settings=None)[source]
          +
          +get_collection(config_file, admin=False, settings=None)[source]
          -
          -get_database(config_file=None, settings=None, admin=False, **kwargs)[source]
          +
          +get_database(config_file=None, settings=None, admin=False, **kwargs)[source]
          -
          -get_settings(config_file)[source]
          +
          +get_settings(config_file)[source]
          -
          -kvp_dict(d)[source]
          +
          +kvp_dict(d)[source]

          Format dict to key=value pairs.

          -
          -quotable(v)[source]
          +
          +quotable(v)[source]
          -

          -
          + +

          Module contents

          Pymatgen-db is a database add-on for the Python Materials Genomics (pymatgen) materials analysis library. It enables the creation of Materials @@ -1211,8 +1212,8 @@

          Submodules

          diff --git a/docs/pymatgen.db.vv.html b/docs/pymatgen.db.vv.html index 8c200b7..99eb858 100644 --- a/docs/pymatgen.db.vv.html +++ b/docs/pymatgen.db.vv.html @@ -4,11 +4,12 @@ - - pymatgen.db.vv package — pymatgen-db 2021.5.13 documentation - - - + + + pymatgen.db.vv package — pymatgen-db 2021.5.28 documentation + + + @@ -41,7 +42,7 @@

          Navigation

        • previous |
        • - + @@ -52,22 +53,22 @@

          Navigation

          -
          +

          pymatgen.db.vv package

          -
          +

          Subpackages

          -
          -
          +
          +

          Submodules

          -
          -
          + +

          pymatgen.db.vv.diff module

          Diff collections, as sets

          -
          -class Delta(s)[source]
          +
          +class Delta(s)[source]

          Bases: object

          Delta between two properties.

          @@ -78,7 +79,7 @@

          Submodules -
          -as_json()[source]
          +
          +as_json()[source]

          -
          -cmp(old, new)[source]
          +
          +cmp(old, new)[source]

          Compare numeric values with delta expression.

          Returns True if delta matches (is as large or larger than) this class’ expression.

          Delta is computed as (new - old).

          @@ -121,8 +122,8 @@

          Submodules -
          -class Differ(key='_id', props=None, info=None, fltr=None, deltas=None)[source]
          +
          +class Differ(key='_id', props=None, info=None, fltr=None, deltas=None)[source]

          Bases: object

          Calculate difference between two collections, based solely on a selected key.

          @@ -145,63 +146,63 @@

          Submodules -
          -CHANGED = 'different'
          +
          +CHANGED = 'different'

          Keys in result dictionary.

          -
          -CHANGED_DELTA = 'delta'
          +
          +CHANGED_DELTA = 'delta'
          -
          -CHANGED_MATCH_DELTA = 'delta'
          +
          +CHANGED_MATCH_DELTA = 'delta'
          -
          -CHANGED_MATCH_EXACT = 'exact'
          +
          +CHANGED_MATCH_EXACT = 'exact'
          -
          -CHANGED_MATCH_KEY = 'match type'
          +
          +CHANGED_MATCH_KEY = 'match type'

          CHANGED result fields

          -
          -CHANGED_NEW = 'new'
          +
          +CHANGED_NEW = 'new'
          -
          -CHANGED_OLD = 'old'
          +
          +CHANGED_OLD = 'old'
          -
          -MISSING = 'missing'
          +
          +MISSING = 'missing'

          Keys in result dictionary.

          -
          -NEW = 'additional'
          +
          +NEW = 'additional'

          Keys in result dictionary.

          -
          -NO_PROPERTY = '__MISSING__'
          +
          +NO_PROPERTY = '__MISSING__'

          for missing property

          -
          -diff(c1, c2, only_missing=False, only_values=False, allow_dup=False)[source]
          +
          +diff(c1, c2, only_missing=False, only_values=False, allow_dup=False)[source]

          Perform a difference between the 2 collections. The first collection is treated as the previous one, and the second is treated as the new one.

          @@ -230,23 +231,23 @@

          Submodules -
          -class IID[source]
          +
          +class IID[source]

          Bases: object

          -
          -classmethod next()[source]
          +
          +classmethod next()[source]

          -
          -
          + +

          pymatgen.db.vv.report module

          Description.

          -
          -class DiffFormatter(meta, key=None)[source]
          +
          +class DiffFormatter(meta, key=None)[source]

          Bases: object

          Base class for formatting a ‘diff’ report.

          Constructor.

          @@ -262,13 +263,13 @@

          Submodules -
          -TITLE = 'Materials Project Database Diff Report'
          +
          +TITLE = 'Materials Project Database Diff Report'

          -
          -format(result)[source]
          +
          +format(result)[source]

          Format a report from a result object.

          Returns
          @@ -281,14 +282,14 @@

          Submodules -
          -ordered_cols(columns, section)[source]
          +
          +ordered_cols(columns, section)[source]

          Return ordered list of columns, from given columns and the name of the section

          -
          -result_subsets(rs)[source]
          +
          +result_subsets(rs)[source]

          Break a result set into subsets with the same keys.

          Parameters
          @@ -301,8 +302,8 @@

          Submodules -
          -sort_rows(rows, section)[source]
          +
          +sort_rows(rows, section)[source]

          Sort the rows, as appropriate for the section.

          Parameters
          @@ -320,8 +321,8 @@

          Submodules -
          -class DiffHtmlFormatter(meta, url=None, email_mode=False, **kwargs)[source]
          +
          +class DiffHtmlFormatter(meta, url=None, email_mode=False, **kwargs)[source]

          Bases: pymatgen.db.vv.report.DiffFormatter

          Format an HTML diff report.

          Constructor.

          @@ -334,18 +335,18 @@

          Submodules -
          -DIFF_CSS = ['.header {padding: 5px; margin: 0 5px;}', '.header h1 {color: #165F4B; font-size: 20; text-align: left; margin-left: 20px;}', '.header p {color: #666666; margin-left: 20px; height: 12px;}', '.header p em {color: #4169E1; font-style: normal;}', '.content {padding: 15px; padding-top: 0px; margin: 0; background-color: #F3F3F3;}', '.content h2 {color: #2C3E50; font-size: 16px;}', '.empty { font-size: 14px; font-style: italic;}', '.section {padding: 5px; margin: 10px; background-color: #E2E2E2; border-radius: 5px;}', '.section div {margin-left: 10px;}', '.section table {margin-left: 5px;}', 'tr:nth-child(even) { background-color: white; }', 'tr:nth-child(odd) { background-color: #F5F5F5; }', 'tr:nth-child(1) { background-color: #778899; font-weight: 500;}', 'th, td {padding: 0.2em 0.5em;}', 'th { text-align: left;  color: white; margin: 0;}', '.fixed { font-family: Consolas, monaco, monospace; }']
          +
          +DIFF_CSS = ['.header {padding: 5px; margin: 0 5px;}', '.header h1 {color: #165F4B; font-size: 20; text-align: left; margin-left: 20px;}', '.header p {color: #666666; margin-left: 20px; height: 12px;}', '.header p em {color: #4169E1; font-style: normal;}', '.content {padding: 15px; padding-top: 0px; margin: 0; background-color: #F3F3F3;}', '.content h2 {color: #2C3E50; font-size: 16px;}', '.empty { font-size: 14px; font-style: italic;}', '.section {padding: 5px; margin: 10px; background-color: #E2E2E2; border-radius: 5px;}', '.section div {margin-left: 10px;}', '.section table {margin-left: 5px;}', 'tr:nth-child(even) { background-color: white; }', 'tr:nth-child(odd) { background-color: #F5F5F5; }', 'tr:nth-child(1) { background-color: #778899; font-weight: 500;}', 'th, td {padding: 0.2em 0.5em;}', 'th { text-align: left;  color: white; margin: 0;}', '.fixed { font-family: Consolas, monaco, monospace; }']

          -
          -css = ["html { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; }", 'body { margin: 2em;}', 'table { margin-top: 1em; clear: both; border: 0;}', 'dl, dt, dd { float: left; }', 'dl, dt { clear: both; }', 'dt { width: 8em; font-weight: 700; }', 'dd { width: 32em; }', 'tr:nth-child(even) { background-color: #E9E9E9; }', 'tr:nth-child(odd) { background-color: #E9E9E9; }', 'th, td {padding: 0.2em 0.5em;}', 'th { text-align: left;  color: black; margin: 0; font-weight: 300;}', 'h1, h2, h3 { clear: both; margin: 0; padding: 0; }', 'h1 { font-size: 18; color: rgb(44, 62, 80); }', 'h2 { font-size: 14; color: black; }', '.header {padding: 5px; margin: 0 5px;}', '.header h1 {color: #165F4B; font-size: 20; text-align: left; margin-left: 20px;}', '.header p {color: #666666; margin-left: 20px; height: 12px;}', '.header p em {color: #4169E1; font-style: normal;}', '.content {padding: 15px; padding-top: 0px; margin: 0; background-color: #F3F3F3;}', '.content h2 {color: #2C3E50; font-size: 16px;}', '.empty { font-size: 14px; font-style: italic;}', '.section {padding: 5px; margin: 10px; background-color: #E2E2E2; border-radius: 5px;}', '.section div {margin-left: 10px;}', '.section table {margin-left: 5px;}', 'tr:nth-child(even) { background-color: white; }', 'tr:nth-child(odd) { background-color: #F5F5F5; }', 'tr:nth-child(1) { background-color: #778899; font-weight: 500;}', 'th, td {padding: 0.2em 0.5em;}', 'th { text-align: left;  color: white; margin: 0;}', '.fixed { font-family: Consolas, monaco, monospace; }']
          +
          +css = ["html { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; }", 'body { margin: 2em;}', 'table { margin-top: 1em; clear: both; border: 0;}', 'dl, dt, dd { float: left; }', 'dl, dt { clear: both; }', 'dt { width: 8em; font-weight: 700; }', 'dd { width: 32em; }', 'tr:nth-child(even) { background-color: #E9E9E9; }', 'tr:nth-child(odd) { background-color: #E9E9E9; }', 'th, td {padding: 0.2em 0.5em;}', 'th { text-align: left;  color: black; margin: 0; font-weight: 300;}', 'h1, h2, h3 { clear: both; margin: 0; padding: 0; }', 'h1 { font-size: 18; color: rgb(44, 62, 80); }', 'h2 { font-size: 14; color: black; }', '.header {padding: 5px; margin: 0 5px;}', '.header h1 {color: #165F4B; font-size: 20; text-align: left; margin-left: 20px;}', '.header p {color: #666666; margin-left: 20px; height: 12px;}', '.header p em {color: #4169E1; font-style: normal;}', '.content {padding: 15px; padding-top: 0px; margin: 0; background-color: #F3F3F3;}', '.content h2 {color: #2C3E50; font-size: 16px;}', '.empty { font-size: 14px; font-style: italic;}', '.section {padding: 5px; margin: 10px; background-color: #E2E2E2; border-radius: 5px;}', '.section div {margin-left: 10px;}', '.section table {margin-left: 5px;}', 'tr:nth-child(even) { background-color: white; }', 'tr:nth-child(odd) { background-color: #F5F5F5; }', 'tr:nth-child(1) { background-color: #778899; font-weight: 500;}', 'th, td {padding: 0.2em 0.5em;}', 'th { text-align: left;  color: white; margin: 0;}', '.fixed { font-family: Consolas, monaco, monospace; }']
          -
          -format(result)[source]
          +
          +format(result)[source]

          Generate HTML report.

          Returns
          @@ -358,20 +359,20 @@

          Submodules -
          -style(css_class, elt)[source]
          +
          +style(css_class, elt)[source]

          -
          -styles = {'content': {'_': 'padding: 15px; padding-top: 0px; margin: 0; background-color: #F3F3F3', 'h2': 'color: #2C3E50; font-size: 16px', 'section': 'padding: 5px; margin: 10px; background-color: #E2E2E2; border-radius: 5px'}, 'header': {'em': 'color: #4169E1; font-style: normal', 'h1': 'color: #165F4B; font-size: 20; text-align: left; margin-left: 20px', 'p': 'color: #666666; margin-left: 20px; height: 12px'}, 'table': {'table': 'margin-top: 1em; clear: both; border: 0', 'td': 'padding: 0.2em 0.5em', 'th': 'text-align: left;  color: white; margin: 0; padding: 0.2em 0.5em', 'tr1': 'background-color: #778899; font-weight: 500', 'tr_even': 'background-color: white', 'tr_odd': 'background-color: #F5F5F5'}}
          +
          +styles = {'content': {'_': 'padding: 15px; padding-top: 0px; margin: 0; background-color: #F3F3F3', 'h2': 'color: #2C3E50; font-size: 16px', 'section': 'padding: 5px; margin: 10px; background-color: #E2E2E2; border-radius: 5px'}, 'header': {'em': 'color: #4169E1; font-style: normal', 'h1': 'color: #165F4B; font-size: 20; text-align: left; margin-left: 20px', 'p': 'color: #666666; margin-left: 20px; height: 12px'}, 'table': {'table': 'margin-top: 1em; clear: both; border: 0', 'td': 'padding: 0.2em 0.5em', 'th': 'text-align: left;  color: white; margin: 0; padding: 0.2em 0.5em', 'tr1': 'background-color: #778899; font-weight: 500', 'tr_even': 'background-color: white', 'tr_odd': 'background-color: #F5F5F5'}}
          -
          -class DiffJsonFormatter(meta, pretty=False, **kwargs)[source]
          +
          +class DiffJsonFormatter(meta, pretty=False, **kwargs)[source]

          Bases: pymatgen.db.vv.report.DiffFormatter

          Constructor.

          @@ -383,8 +384,8 @@

          Submodules -
          -class Encoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]
          +
          +class Encoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]

          Bases: json.encoder.JSONEncoder

          Constructor for JSONEncoder, with sensible defaults.

          If skipkeys is false, then it is a TypeError to attempt @@ -409,15 +410,15 @@

          SubmodulesNone and +tuple. The default is (’, ‘, ‘: ‘) if indent is None and (‘,’, ‘: ‘) otherwise. To get the most compact JSON representation, you should specify (‘,’, ‘:’) to eliminate whitespace.

          If specified, default is a function that gets called for objects that can’t otherwise be serialized. It should return a JSON encodable version of the object or raise a TypeError.

          -
          -default(o)[source]
          +
          +default(o)[source]

          Implement this method in a subclass such that it returns a serializable object for o, or calls the base implementation (to raise a TypeError).

          @@ -439,14 +440,14 @@

          Submodules -
          -document(result)[source]
          +
          +document(result)[source]

          Build dict for MongoDB, expanding result keys as we go.

          -
          -format(result)[source]
          +
          +format(result)[source]

          Format a report from a result object.

          Returns
          @@ -459,15 +460,15 @@

          Submodules -
          -will_copy()[source]
          +
          +will_copy()[source]

          -
          -class DiffTextFormatter(meta, key=None)[source]
          +
          +class DiffTextFormatter(meta, key=None)[source]

          Bases: pymatgen.db.vv.report.DiffFormatter

          Format a plain-text diff report.

          Constructor.

          @@ -483,8 +484,8 @@

          Submodules -
          -format(result)[source]
          +
          +format(result)[source]

          Generate plain text report.

          Returns
          @@ -499,8 +500,8 @@

          Submodules -
          -class Emailer(sender='me@localhost', recipients=('you@remote.host'), subject='Report', server='localhost', port=None, **kwargs)[source]
          +
          +class Emailer(sender='me@localhost', recipients=('you@remote.host'), subject='Report', server='localhost', port=None, **kwargs)[source]

          Bases: pymatgen.db.vv.util.DoesLogging

          Send a report to an email recipient.

          Send reports as email.

          @@ -522,8 +523,8 @@

          Submodules -
          -send(text, fmt)[source]
          +
          +send(text, fmt)[source]

          Send the email message.

          Parameters
          @@ -541,74 +542,74 @@

          Submodules -
          -property subject
          +
          +
          +property subject

          -
          -class HTMLFormatter(line_sep='\n', id_column=0, css=None)[source]
          +
          +class HTMLFormatter(line_sep='\n', id_column=0, css=None)[source]

          Bases: object

          Format a report as HTML.

          -
          -format(report)[source]
          +
          +format(report)[source]
          -
          -class Header(title='')[source]
          +
          +class Header(title='')[source]

          Bases: object

          Base header class.

          -
          -add(key, value)[source]
          +
          +add(key, value)[source]
          -
          -as_dict()[source]
          +
          +as_dict()[source]
          -
          -get(key)[source]
          +
          +get(key)[source]
          -
          -class JSONFormatter(id_column=0, indent=2)[source]
          +
          +class JSONFormatter(id_column=0, indent=2)[source]

          Bases: object

          Format a report as JSON.

          -
          -format(report)[source]
          +
          +format(report)[source]
          -
          -class MarkdownFormatter(id_column=0)[source]
          +
          +class MarkdownFormatter(id_column=0)[source]

          Bases: object

          Format a report as markdown

          -
          -format(report)[source]
          +
          +format(report)[source]
          -
          -class Report(header)[source]
          +
          +class Report(header)[source]

          Bases: object

          Create blank report, with a header.

          @@ -617,38 +618,38 @@

          Submodules -
          -add_section(section)[source]
          +
          +add_section(section)[source]

          -
          -
          -property header
          +
          +
          +property header
          -
          -is_empty()[source]
          +
          +is_empty()[source]
          -
          -exception ReportBackupError[source]
          +
          +exception ReportBackupError[source]

          Bases: Exception

          -
          -class ReportHeader(title='')[source]
          +
          +class ReportHeader(title='')[source]

          Bases: pymatgen.db.vv.report.Header

          Header for entire report.

          -
          -class ReportJSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]
          +
          +class ReportJSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]

          Bases: pymatgen.db.util.MongoJSONEncoder

          Constructor for JSONEncoder, with sensible defaults.

          If skipkeys is false, then it is a TypeError to attempt @@ -673,15 +674,15 @@

          SubmodulesNone and +tuple. The default is (’, ‘, ‘: ‘) if indent is None and (‘,’, ‘: ‘) otherwise. To get the most compact JSON representation, you should specify (‘,’, ‘:’) to eliminate whitespace.

          If specified, default is a function that gets called for objects that can’t otherwise be serialized. It should return a JSON encodable version of the object or raise a TypeError.

          -
          -default(o)[source]
          +
          +default(o)[source]

          Implement this method in a subclass such that it returns a serializable object for o, or calls the base implementation (to raise a TypeError).

          @@ -703,8 +704,8 @@

          Submodules -
          -class ReportSection(header, body=None)[source]
          +
          +class ReportSection(header, body=None)[source]

          Bases: pymatgen.db.vv.report.Report

          Section within a report, with data.

          Create new report section, initialized with header and body.

          @@ -716,88 +717,88 @@

          Submodules -
          -property body
          +
          +
          +property body

          -
          -class SectionHeader(title='')[source]
          +
          +class SectionHeader(title='')[source]

          Bases: pymatgen.db.vv.report.Header

          Header for one section of a report.

          -
          -class Table(colnames)[source]
          +
          +class Table(colnames)[source]

          Bases: object

          Table of values.

          -
          -add(values)[source]
          +
          +add(values)[source]
          -
          -
          -property column_names
          +
          +
          +property column_names
          -
          -
          -property column_widths
          +
          +
          +property column_widths
          -
          -
          -property ncol
          +
          +
          +property ncol
          -
          -
          -property nrow
          +
          +
          +property nrow
          -
          -sortby(name_or_index)[source]
          +
          +sortby(name_or_index)[source]
          -
          -
          -property values
          +
          +
          +property values
          -
          -css_minify(s)[source]
          +
          +css_minify(s)[source]
          -

          -
          + +

          pymatgen.db.vv.util module

          Utility functions and classes for validation.

          -
          -class DoesLogging(name=None)[source]
          +
          +class DoesLogging(name=None)[source]

          Bases: object

          Mix-in class that creates the attribute ‘log’, setting its qualified name to the name of the module and class.

          -
          -class ElapsedTime[source]
          +
          +class ElapsedTime[source]

          Bases: object

          -
          -class JsonWalker(value_transform=None, dict_transform=None)[source]
          +
          +class JsonWalker(value_transform=None, dict_transform=None)[source]

          Bases: object

          Walk a dict, transforming. Used for JSON formatting.

          @@ -811,31 +812,31 @@

          Submodules -
          -static dict_expand(o)[source]
          +
          +static dict_expand(o)[source]

          Expand keys in a dict with ‘.’ in them into sub-dictionaries, e.g.

          {‘a.b.c’: ‘foo’} ==> {‘a’: {‘b’: {‘c’: ‘foo’}}}

          -
          -static value_json(o)[source]
          +
          +static value_json(o)[source]

          Apply as_json() method on object to get value, otherwise return object itself as the value.

          -
          -walk(o)[source]
          +
          +walk(o)[source]

          Walk a dict & transform.

          -
          -class Timing(name='event', elapsed=None, log=None, level=10, **kwargs)[source]
          +
          +class Timing(name='event', elapsed=None, log=None, level=10, **kwargs)[source]

          Bases: object

          Perform and report timings using the ‘with’ keyword.

          @@ -849,8 +850,8 @@

          Submodules -
          -class YamlConfig(option_strings, dest, nargs=None, const=None, default=None, type=None, choices=None, required=False, help=None, metavar=None)[source]
          +
          +class YamlConfig(option_strings, dest, nargs=None, const=None, default=None, type=None, choices=None, required=False, help=None, metavar=None)[source]

          Bases: argparse.Action

          Populate arguments with YAML file contents.

          @@ -860,8 +861,8 @@

          Submodules -
          -args_kvp_nodup(s)[source]
          +
          +args_kvp_nodup(s)[source]

          Parse argument string as key=value pairs separated by commas.

          Parameters
          @@ -880,8 +881,8 @@

          Submodules -
          -args_list(s)[source]
          +
          +args_list(s)[source]

          Parse argument string as list of values separated by commas.

          Parameters
          @@ -897,13 +898,13 @@

          Submodules -
          -letter_num(x, letter='A')[source]
          +
          +letter_num(x, letter='A')[source]

          -
          -total_size(o, handlers={}, verbose=False, count=False)[source]
          +
          +total_size(o, handlers={}, verbose=False, count=False)[source]

          Returns the approximate memory footprint an object and all of its contents.

          Automatically finds the contents of the following builtin containers and their subclasses: tuple, list, deque, dict, set and frozenset. @@ -917,13 +918,13 @@

          Submoduleshttp://code.activestate.com/recipes/577504/ (r3)

          -

          -
          + +

          pymatgen.db.vv.validate module

          Collection validator

          -
          -class ConstraintSpec(spec)[source]
          +
          +class ConstraintSpec(spec)[source]

          Bases: pymatgen.db.vv.util.DoesLogging

          Specification of a set of constraints for a collection.

          Create specification from a configuration.

          @@ -936,51 +937,51 @@

          Submodules -
          -CONSTRAINT_SECT = 'constraints'
          +
          +CONSTRAINT_SECT = 'constraints'

          -
          -FILTER_SECT = 'filter'
          +
          +FILTER_SECT = 'filter'
          -
          -SAMPLE_SECT = 'sample'
          +
          +SAMPLE_SECT = 'sample'
          -
          -class ConstraintSpecSection(fltr, constraints, sample)[source]
          +
          +class ConstraintSpecSection(fltr, constraints, sample)[source]

          Bases: object

          -
          -
          -property constraints
          +
          +
          +property constraints
          -
          -
          -property filters
          +
          +
          +property filters
          -
          -get_key()[source]
          +
          +get_key()[source]
          -
          -
          -property sampler
          +
          +
          +property sampler
          -
          -class ConstraintViolation(constraint, value, expected)[source]
          +
          +class ConstraintViolation(constraint, value, expected)[source]

          Bases: object

          A single constraint violation, with no metadata.

          Create new constraint violation

          @@ -989,37 +990,37 @@

          Submodules

          constraint (Constraint) – The constraint that was violated

          -
          -
          -property expected_value
          +
          +
          +property expected_value
          -
          -
          -property field
          +
          +
          +property field
          -
          -
          -property got_value
          +
          +
          +property got_value
          -
          -
          -property op
          +
          +
          +property op
          -
          -class ConstraintViolationGroup[source]
          +
          +class ConstraintViolationGroup[source]

          Bases: object

          A group of constraint violations with metadata.

          Create an empty object.

          -
          -add_violations(violations, record=None)[source]
          +
          +add_violations(violations, record=None)[source]

          Add constraint violations and associated record.

          Parameters
          @@ -1037,14 +1038,14 @@

          Submodules -
          -exception DBError[source]
          +
          +exception DBError[source]

          Bases: Exception

          -
          -class NullConstraintViolation[source]
          +
          +class NullConstraintViolation[source]

          Bases: pymatgen.db.vv.validate.ConstraintViolation

          Empty constraint violation, for when there are no constraints.

          Create new constraint violation

          @@ -1056,35 +1057,35 @@

          Submodules -
          -class ProgressMeter(num, fmt)[source]
          +
          +class ProgressMeter(num, fmt)[source]

          Bases: object

          Simple progress tracker

          -
          -
          -property count
          +
          +
          +property count
          -
          -set_subject(subj)[source]
          +
          +set_subject(subj)[source]
          -
          -update(*args)[source]
          +
          +update(*args)[source]

          -
          -class Projection[source]
          +
          +class Projection[source]

          Bases: object

          Fields on which to project the query results.

          -
          -add(field, op=None, val=None)[source]
          +
          +add(field, op=None, val=None)[source]

          Update report fields to include new one, if it doesn’t already.

          Parameters
          @@ -1100,8 +1101,8 @@

          Submodules -
          -to_mongo()[source]
          +
          +to_mongo()[source]

          Translate projection to MongoDB query form.

          Returns
          @@ -1116,8 +1117,8 @@

          Submodules -
          -class PythonMethod(text)[source]
          +
          +class PythonMethod(text)[source]

          Bases: object

          Encapsulate an external Python method that will be run on our target MongoDB collection to perform arbitrary types of validation.

          @@ -1128,19 +1129,19 @@

          Submodules -
          -BAD_CONSTRAINT_ERR = 'Invalid constraint (must be: @<method> [<param> ..])'
          +
          +BAD_CONSTRAINT_ERR = 'Invalid constraint (must be: @<method> [<param> ..])'

          -
          -CANNOT_COMBINE_ERR = 'Call to a Python method cannot be combined '
          +
          +CANNOT_COMBINE_ERR = 'Call to a Python method cannot be combined '

          with any other constraints

          -
          -classmethod constraint_is_method(text)[source]
          +
          +classmethod constraint_is_method(text)[source]

          Check from the text of the constraint whether it is a Python method, as opposed to a ‘normal’ constraint.

          @@ -1153,8 +1154,8 @@

          Submodules -
          -class Sampler(min_items=0, max_items=1000000000.0, p=1.0, distrib=1, **kw)[source]
          +
          +class Sampler(min_items=0, max_items=1000000000.0, p=1.0, distrib=1, **kw)[source]

          Bases: pymatgen.db.vv.util.DoesLogging

          Randomly sample a proportion of the full collection.

          Create new parameterized sampler.

          @@ -1172,28 +1173,28 @@

          Submodules -
          -DEFAULT_DIST = 1
          +
          +DEFAULT_DIST = 1

          -
          -DIST_CODES = {'uniform': 1}
          +
          +DIST_CODES = {'uniform': 1}
          -
          -DIST_RUNIF = 1
          +
          +DIST_RUNIF = 1
          -
          -
          -property is_empty
          +
          +
          +property is_empty
          -
          -sample(cursor)[source]
          +
          +sample(cursor)[source]

          Extract records randomly from the database. Continue until the target proportion of the items have been extracted, or until min_items if this is larger. @@ -1219,13 +1220,13 @@

          Submodules -
          -class Validator(max_violations=50, max_dberrors=10, aliases=None, add_exists=False)[source]
          +
          +class Validator(max_violations=50, max_dberrors=10, aliases=None, add_exists=False)[source]

          Bases: pymatgen.db.vv.util.DoesLogging

          Validate a collection.

          -
          -class SectionParts(cond, body, sampler, report_fields)[source]
          +
          +class SectionParts(cond, body, sampler, report_fields)[source]

          Bases: object

          Encapsulate the tuple of information for each section of filters, constraints, etc. within a collection.

          @@ -1243,19 +1244,19 @@

          Submodules -
          -num_violations()[source]
          +
          +num_violations()[source]

          -
          -set_aliases(new_value)[source]
          +
          +set_aliases(new_value)[source]

          Set aliases and wrap errors in ValueError

          -
          -set_progress(num)[source]
          +
          +set_progress(num)[source]

          Report progress every num bad records.

          Parameters
          @@ -1268,8 +1269,8 @@

          Submodules -
          -validate(coll, constraint_spec, subject='collection')[source]
          +
          +validate(coll, constraint_spec, subject='collection')[source]

          Validation of a collection. This is a generator that yields ConstraintViolationGroups.

          @@ -1295,15 +1296,15 @@

          Submodules -
          -exception ValidatorSyntaxError(target, desc)[source]
          +
          +exception ValidatorSyntaxError(target, desc)[source]

          Bases: Exception

          Syntax error in configuration of Validator

          -
          -mongo_get(rec, key, default=None)[source]
          +
          +mongo_get(rec, key, default=None)[source]

          Get value from dict using MongoDB dot-separated path semantics. For example:

          >>> assert mongo_get({'a': {'b': 1}, 'x': 2}, 'a.b') == 1
          @@ -1328,11 +1329,11 @@ 

          Submodules +

          +

          Module contents

          -
          -
          + +
          diff --git a/docs/pymatgen.html b/docs/pymatgen.html index 24153c2..9b2d348 100644 --- a/docs/pymatgen.html +++ b/docs/pymatgen.html @@ -4,11 +4,12 @@ - - pymatgen namespace — pymatgen-db 2021.5.13 documentation - - - + + + pymatgen namespace — pymatgen-db 2021.5.28 documentation + + + @@ -37,7 +38,7 @@

          Navigation

        • modules |
        • - +
          @@ -47,9 +48,9 @@

          Navigation

          -
          +

          pymatgen namespace

          - @@ -54,6 +54,7 @@

          Navigation

          Search

          +

          @@ -61,19 +62,26 @@

          Search

          functionality.

          + +

          Searching for multiple words only shows matches that contain all words.

          + +
          + +
          +
          diff --git a/docs/searchindex.js b/docs/searchindex.js index 3b040ee..271ad18 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["_themes/README","builders","change_log","dbconfig","index","mgvv","modules","pymatgen","pymatgen.db","pymatgen.db.alchemy","pymatgen.db.builders","pymatgen.db.builders.examples","pymatgen.db.vv"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["_themes/README.rst","builders.rst","change_log.rst","dbconfig.rst","index.rst","mgvv.rst","modules.rst","pymatgen.rst","pymatgen.db.rst","pymatgen.db.alchemy.rst","pymatgen.db.builders.rst","pymatgen.db.builders.examples.rst","pymatgen.db.vv.rst"],objects:{"mgvv-diff":{"--db":[5,6,1,"cmdoption-mgvv-diff-D"],"--email":[5,6,1,"cmdoption-mgvv-diff-E"],"--email-server":[5,6,1,"cmdoption-mgvv-diff-s"],"--file":[5,6,1,"cmdoption-mgvv-diff-f"],"--format":[5,6,1,"cmdoption-mgvv-diff-F"],"--help":[5,6,1,"cmdoption-mgvv-diff-help"],"--info":[5,6,1,"cmdoption-mgvv-diff-i"],"--key":[5,6,1,"cmdoption-mgvv-diff-k"],"--missing":[5,6,1,"cmdoption-mgvv-diff-m"],"--numeric":[5,6,1,"cmdoption-mgvv-diff-n"],"--print":[5,6,1,"cmdoption-mgvv-diff-P"],"--properties":[5,6,1,"cmdoption-mgvv-diff-p"],"--query":[5,6,1,"cmdoption-mgvv-diff-q"],"--url":[5,6,1,"cmdoption-mgvv-diff-u"],"--verbose":[5,6,1,"cmdoption-mgvv-diff-v"],"-D":[5,6,1,"cmdoption-mgvv-diff-D"],"-E":[5,6,1,"cmdoption-mgvv-diff-E"],"-F":[5,6,1,"cmdoption-mgvv-diff-F"],"-P":[5,6,1,"cmdoption-mgvv-diff-P"],"-f":[5,6,1,"cmdoption-mgvv-diff-f"],"-h":[5,6,1,"cmdoption-mgvv-diff-help"],"-i":[5,6,1,"cmdoption-mgvv-diff-i"],"-k":[5,6,1,"cmdoption-mgvv-diff-k"],"-m":[5,6,1,"cmdoption-mgvv-diff-m"],"-n":[5,6,1,"cmdoption-mgvv-diff-n"],"-p":[5,6,1,"cmdoption-mgvv-diff-p"],"-q":[5,6,1,"cmdoption-mgvv-diff-q"],"-s":[5,6,1,"cmdoption-mgvv-diff-s"],"-u":[5,6,1,"cmdoption-mgvv-diff-u"],"-v":[5,6,1,"cmdoption-mgvv-diff-v"]},"pymatgen.db":{alchemy:[9,0,0,"-"],builders:[10,0,0,"-"],creator:[8,0,0,"-"],dbconfig:[8,0,0,"-"],dbgroup:[8,0,0,"-"],query_engine:[8,0,0,"-"],util:[8,0,0,"-"],vv:[12,0,0,"-"]},"pymatgen.db.alchemy":{transmuters:[9,0,0,"-"]},"pymatgen.db.alchemy.transmuters":{QeTransmuter:[9,1,1,""]},"pymatgen.db.builders":{core:[10,0,0,"-"],examples:[11,0,0,"-"],incr:[10,0,0,"-"],schema:[10,0,0,"-"],util:[10,0,0,"-"]},"pymatgen.db.builders.core":{BuildError:[10,2,1,""],Builder:[10,1,1,""],BuilderStatus:[10,1,1,""],Collections:[10,1,1,""],HasExamples:[10,1,1,""],ProcRunner:[10,1,1,""],alphadump:[10,5,1,""],merge_tasks:[10,5,1,""],parse_fn_docstring:[10,5,1,""]},"pymatgen.db.builders.core.Builder":{connect:[10,3,1,""],finalize:[10,3,1,""],get_items:[10,3,1,""],get_parameters:[10,3,1,""],process_item:[10,3,1,""],run:[10,3,1,""],shared_dict:[10,3,1,""],shared_list:[10,3,1,""]},"pymatgen.db.builders.core.BuilderStatus":{FAILURE:[10,4,1,""],RUNNING:[10,4,1,""],SUCCESS:[10,4,1,""],WAIT:[10,4,1,""],fail:[10,3,1,""],has_failures:[10,3,1,""],running:[10,3,1,""],success:[10,3,1,""]},"pymatgen.db.builders.core.Collections":{MAX_VER:[10,4,1,""],MIN_VER:[10,4,1,""],database:[10,3,1,""],get_collection_name:[10,3,1,""],known_collections:[10,4,1,""]},"pymatgen.db.builders.core.HasExamples":{examples:[10,3,1,""],validate_examples:[10,3,1,""]},"pymatgen.db.builders.core.ProcRunner":{instance:[10,4,1,""],run:[10,3,1,""]},"pymatgen.db.builders.examples":{copy_builder:[11,0,0,"-"],file_builders:[11,0,0,"-"],maxvalue_builder:[11,0,0,"-"]},"pymatgen.db.builders.examples.copy_builder":{CopyBuilder:[11,1,1,""]},"pymatgen.db.builders.examples.copy_builder.CopyBuilder":{get_items:[11,3,1,""],process_item:[11,3,1,""]},"pymatgen.db.builders.examples.file_builders":{FileCounter:[11,1,1,""]},"pymatgen.db.builders.examples.file_builders.FileCounter":{finalize:[11,3,1,""],get_items:[11,3,1,""],get_parameters:[11,3,1,""],process_item:[11,3,1,""]},"pymatgen.db.builders.examples.maxvalue_builder":{MaxValueBuilder:[11,1,1,""]},"pymatgen.db.builders.examples.maxvalue_builder.MaxValueBuilder":{finalize:[11,3,1,""],get_items:[11,3,1,""],process_item:[11,3,1,""]},"pymatgen.db.builders.incr":{CollectionTracker:[10,1,1,""],DBError:[10,2,1,""],Mark:[10,1,1,""],NoTrackingCollection:[10,2,1,""],Operation:[10,1,1,""],TrackedCollection:[10,1,1,""],TrackedQueryEngine:[10,1,1,""],TrackingInterface:[10,1,1,""],UnTrackedQueryEngine:[10,1,1,""]},"pymatgen.db.builders.incr.CollectionTracker":{TRACKING_NAME:[10,4,1,""],create:[10,3,1,""],retrieve:[10,3,1,""],save:[10,3,1,""],tracking_collection:[10,3,1,""],tracking_collection_name:[10,3,1,""]},"pymatgen.db.builders.incr.Mark":{FLD_FLD:[10,4,1,""],FLD_MARK:[10,4,1,""],FLD_OP:[10,4,1,""],as_dict:[10,3,1,""],from_dict:[10,3,1,""],pos:[10,3,1,""],query:[10,3,1,""],to_dict:[10,3,1,""],update:[10,3,1,""]},"pymatgen.db.builders.incr.Operation":{build:[10,4,1,""],copy:[10,4,1,""],other:[10,4,1,""]},"pymatgen.db.builders.incr.TrackedCollection":{findall:[10,3,1,""],set_mark:[10,3,1,""],set_tracking:[10,3,1,""],tracked_find:[10,3,1,""]},"pymatgen.db.builders.incr.TrackedQueryEngine":{collection_name:[10,3,1,""],set_mark:[10,3,1,""],tracking:[10,3,1,""]},"pymatgen.db.builders.incr.TrackingInterface":{set_mark:[10,3,1,""]},"pymatgen.db.builders.incr.UnTrackedQueryEngine":{set_mark:[10,3,1,""]},"pymatgen.db.builders.schema":{HasMeta:[10,1,1,""],Scalar:[10,1,1,""],Schema:[10,1,1,""],SchemaError:[10,2,1,""],SchemaParseError:[10,2,1,""],SchemaPathError:[10,2,1,""],SchemaTypeError:[10,2,1,""],add_schemas:[10,5,1,""],get_schema:[10,5,1,""],load_schema:[10,5,1,""]},"pymatgen.db.builders.schema.HasMeta":{FIELD_SEP:[10,4,1,""],KV_SEP:[10,4,1,""],add_meta:[10,3,1,""]},"pymatgen.db.builders.schema.Scalar":{JSTYPES:[10,4,1,""],TYPES:[10,4,1,""],jstype:[10,3,1,""]},"pymatgen.db.builders.schema.Schema":{IS_DICT:[10,4,1,""],IS_LIST:[10,4,1,""],IS_SCALAR:[10,4,1,""],json_schema:[10,3,1,""],validate:[10,3,1,""]},"pymatgen.db.builders.util":{get_builder_log:[10,5,1,""],get_schema_dir:[10,5,1,""],get_schema_file:[10,5,1,""],get_test_dir:[10,5,1,""]},"pymatgen.db.creator":{VaspToDbTaskDrone:[8,1,1,""],contains_vasp_input:[8,5,1,""],get_basic_analysis_and_error_checks:[8,5,1,""],get_coordination_numbers:[8,5,1,""],get_uri:[8,5,1,""]},"pymatgen.db.creator.VaspToDbTaskDrone":{as_dict:[8,3,1,""],assimilate:[8,3,1,""],calculate_stability:[8,3,1,""],convert:[8,3,1,""],from_dict:[8,3,1,""],generate_doc:[8,3,1,""],get_task_doc:[8,3,1,""],get_valid_paths:[8,3,1,""],post_process:[8,3,1,""],process_killed_run:[8,3,1,""],process_vasprun:[8,3,1,""]},"pymatgen.db.dbconfig":{ConfigurationFileError:[8,2,1,""],DBConfig:[8,1,1,""],auth_aliases:[8,5,1,""],get_settings:[8,5,1,""],normalize_auth:[8,5,1,""]},"pymatgen.db.dbconfig.DBConfig":{ALL_SETTINGS:[8,4,1,""],DEFAULT_FILE:[8,4,1,""],DEFAULT_PORT:[8,4,1,""],DEFAULT_SETTINGS:[8,4,1,""],collection:[8,3,1,""],copy:[8,3,1,""],dbname:[8,3,1,""],host:[8,3,1,""],password:[8,3,1,""],port:[8,3,1,""],settings:[8,3,1,""],user:[8,3,1,""]},"pymatgen.db.dbgroup":{ConfigGroup:[8,1,1,""],CreateQueryEngineError:[8,2,1,""],RegexDict:[8,1,1,""],create_query_engine:[8,5,1,""]},"pymatgen.db.dbgroup.ConfigGroup":{SEP:[8,4,1,""],add:[8,3,1,""],add_path:[8,3,1,""],expand:[8,3,1,""],keys:[8,3,1,""],set_prefix:[8,3,1,""],uncache:[8,3,1,""]},"pymatgen.db.dbgroup.RegexDict":{re_get:[8,3,1,""],re_keys:[8,3,1,""]},"pymatgen.db.query_engine":{QueryEngine:[8,1,1,""],QueryError:[8,2,1,""],QueryListResults:[8,1,1,""],QueryResults:[8,1,1,""]},"pymatgen.db.query_engine.QueryEngine":{ALIASES_CONFIG_KEY:[8,4,1,""],COLLECTION_KEY:[8,4,1,""],DB_KEY:[8,4,1,""],HOST_KEY:[8,4,1,""],PASSWORD_KEY:[8,4,1,""],PORT_KEY:[8,4,1,""],USER_KEY:[8,4,1,""],aliases:[8,4,1,""],close:[8,3,1,""],collection_name:[8,3,1,""],default_criteria:[8,4,1,""],default_properties:[8,4,1,""],ensure_index:[8,3,1,""],from_config:[8,3,1,""],get_dos_from_id:[8,3,1,""],get_entries:[8,3,1,""],get_entries_in_system:[8,3,1,""],get_structure_from_id:[8,3,1,""],query:[8,3,1,""],query_one:[8,3,1,""],query_post:[8,4,1,""],result_post:[8,4,1,""],set_aliases_and_defaults:[8,3,1,""],set_collection:[8,3,1,""]},"pymatgen.db.query_engine.QueryListResults":{clone:[8,3,1,""]},"pymatgen.db.query_engine.QueryResults":{clone:[8,3,1,""],from_cursor:[8,3,1,""]},"pymatgen.db.util":{MongoJSONEncoder:[8,1,1,""],collection_keys:[8,5,1,""],csv_dict:[8,5,1,""],csv_list:[8,5,1,""],get_collection:[8,5,1,""],get_database:[8,5,1,""],get_settings:[8,5,1,""],kvp_dict:[8,5,1,""],quotable:[8,5,1,""]},"pymatgen.db.util.MongoJSONEncoder":{"default":[8,3,1,""]},"pymatgen.db.vv":{diff:[12,0,0,"-"],report:[12,0,0,"-"],util:[12,0,0,"-"],validate:[12,0,0,"-"]},"pymatgen.db.vv.diff":{Delta:[12,1,1,""],Differ:[12,1,1,""],IID:[12,1,1,""]},"pymatgen.db.vv.diff.Delta":{as_json:[12,3,1,""],cmp:[12,3,1,""]},"pymatgen.db.vv.diff.Differ":{CHANGED:[12,4,1,""],CHANGED_DELTA:[12,4,1,""],CHANGED_MATCH_DELTA:[12,4,1,""],CHANGED_MATCH_EXACT:[12,4,1,""],CHANGED_MATCH_KEY:[12,4,1,""],CHANGED_NEW:[12,4,1,""],CHANGED_OLD:[12,4,1,""],MISSING:[12,4,1,""],NEW:[12,4,1,""],NO_PROPERTY:[12,4,1,""],diff:[12,3,1,""]},"pymatgen.db.vv.diff.IID":{next:[12,3,1,""]},"pymatgen.db.vv.report":{DiffFormatter:[12,1,1,""],DiffHtmlFormatter:[12,1,1,""],DiffJsonFormatter:[12,1,1,""],DiffTextFormatter:[12,1,1,""],Emailer:[12,1,1,""],HTMLFormatter:[12,1,1,""],Header:[12,1,1,""],JSONFormatter:[12,1,1,""],MarkdownFormatter:[12,1,1,""],Report:[12,1,1,""],ReportBackupError:[12,2,1,""],ReportHeader:[12,1,1,""],ReportJSONEncoder:[12,1,1,""],ReportSection:[12,1,1,""],SectionHeader:[12,1,1,""],Table:[12,1,1,""],css_minify:[12,5,1,""]},"pymatgen.db.vv.report.DiffFormatter":{TITLE:[12,4,1,""],format:[12,3,1,""],ordered_cols:[12,3,1,""],result_subsets:[12,3,1,""],sort_rows:[12,3,1,""]},"pymatgen.db.vv.report.DiffHtmlFormatter":{DIFF_CSS:[12,4,1,""],css:[12,4,1,""],format:[12,3,1,""],style:[12,3,1,""],styles:[12,4,1,""]},"pymatgen.db.vv.report.DiffJsonFormatter":{Encoder:[12,1,1,""],document:[12,3,1,""],format:[12,3,1,""],will_copy:[12,3,1,""]},"pymatgen.db.vv.report.DiffJsonFormatter.Encoder":{"default":[12,3,1,""]},"pymatgen.db.vv.report.DiffTextFormatter":{format:[12,3,1,""]},"pymatgen.db.vv.report.Emailer":{send:[12,3,1,""],subject:[12,3,1,""]},"pymatgen.db.vv.report.HTMLFormatter":{format:[12,3,1,""]},"pymatgen.db.vv.report.Header":{add:[12,3,1,""],as_dict:[12,3,1,""],get:[12,3,1,""]},"pymatgen.db.vv.report.JSONFormatter":{format:[12,3,1,""]},"pymatgen.db.vv.report.MarkdownFormatter":{format:[12,3,1,""]},"pymatgen.db.vv.report.Report":{add_section:[12,3,1,""],header:[12,3,1,""],is_empty:[12,3,1,""]},"pymatgen.db.vv.report.ReportJSONEncoder":{"default":[12,3,1,""]},"pymatgen.db.vv.report.ReportSection":{body:[12,3,1,""]},"pymatgen.db.vv.report.Table":{add:[12,3,1,""],column_names:[12,3,1,""],column_widths:[12,3,1,""],ncol:[12,3,1,""],nrow:[12,3,1,""],sortby:[12,3,1,""],values:[12,3,1,""]},"pymatgen.db.vv.util":{DoesLogging:[12,1,1,""],ElapsedTime:[12,1,1,""],JsonWalker:[12,1,1,""],Timing:[12,1,1,""],YamlConfig:[12,1,1,""],args_kvp_nodup:[12,5,1,""],args_list:[12,5,1,""],letter_num:[12,5,1,""],total_size:[12,5,1,""]},"pymatgen.db.vv.util.JsonWalker":{dict_expand:[12,3,1,""],value_json:[12,3,1,""],walk:[12,3,1,""]},"pymatgen.db.vv.validate":{ConstraintSpec:[12,1,1,""],ConstraintSpecSection:[12,1,1,""],ConstraintViolation:[12,1,1,""],ConstraintViolationGroup:[12,1,1,""],DBError:[12,2,1,""],NullConstraintViolation:[12,1,1,""],ProgressMeter:[12,1,1,""],Projection:[12,1,1,""],PythonMethod:[12,1,1,""],Sampler:[12,1,1,""],Validator:[12,1,1,""],ValidatorSyntaxError:[12,2,1,""],mongo_get:[12,5,1,""]},"pymatgen.db.vv.validate.ConstraintSpec":{CONSTRAINT_SECT:[12,4,1,""],FILTER_SECT:[12,4,1,""],SAMPLE_SECT:[12,4,1,""]},"pymatgen.db.vv.validate.ConstraintSpecSection":{constraints:[12,3,1,""],filters:[12,3,1,""],get_key:[12,3,1,""],sampler:[12,3,1,""]},"pymatgen.db.vv.validate.ConstraintViolation":{expected_value:[12,3,1,""],field:[12,3,1,""],got_value:[12,3,1,""],op:[12,3,1,""]},"pymatgen.db.vv.validate.ConstraintViolationGroup":{add_violations:[12,3,1,""]},"pymatgen.db.vv.validate.ProgressMeter":{count:[12,3,1,""],set_subject:[12,3,1,""],update:[12,3,1,""]},"pymatgen.db.vv.validate.Projection":{add:[12,3,1,""],to_mongo:[12,3,1,""]},"pymatgen.db.vv.validate.PythonMethod":{BAD_CONSTRAINT_ERR:[12,4,1,""],CANNOT_COMBINE_ERR:[12,4,1,""],constraint_is_method:[12,3,1,""]},"pymatgen.db.vv.validate.Sampler":{DEFAULT_DIST:[12,4,1,""],DIST_CODES:[12,4,1,""],DIST_RUNIF:[12,4,1,""],is_empty:[12,3,1,""],sample:[12,3,1,""]},"pymatgen.db.vv.validate.Validator":{SectionParts:[12,1,1,""],num_violations:[12,3,1,""],set_aliases:[12,3,1,""],set_progress:[12,3,1,""],validate:[12,3,1,""]},mgvv:{"--alias":[5,6,1,"cmdoption-mgvv-alias"],"--collection":[5,6,1,"cmdoption-mgvv-collection"],"--config":[5,6,1,"cmdoption-mgvv-0"],"--email":[5,6,1,"cmdoption-mgvv-email"],"--file":[5,6,1,"cmdoption-mgvv-f"],"--format":[5,6,1,"cmdoption-mgvv-format"],"--help":[5,6,1,"cmdoption-mgvv-help"],"--limit":[5,6,1,"cmdoption-mgvv-limit"],"--verbose":[5,6,1,"cmdoption-mgvv-v"],"-C":[5,6,1,"cmdoption-mgvv-collection"],"-F":[5,6,1,"cmdoption-mgvv-format"],"-a":[5,6,1,"cmdoption-mgvv-alias"],"-c":[5,6,1,"cmdoption-mgvv-0"],"-e":[5,6,1,"cmdoption-mgvv-email"],"-f":[5,6,1,"cmdoption-mgvv-f"],"-h":[5,6,1,"cmdoption-mgvv-help"],"-m":[5,6,1,"cmdoption-mgvv-limit"],"-v":[5,6,1,"cmdoption-mgvv-v"]},pymatgen:{db:[8,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","exception","Python exception"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"],"5":["py","function","Python function"],"6":["std","cmdoption","program option"]},objtypes:{"0":"py:module","1":"py:class","2":"py:exception","3":"py:method","4":"py:attribute","5":"py:function","6":"std:cmdoption"},terms:{"028":4,"0px":12,"100":[5,10,12],"1000000000":12,"1016":4,"10px":12,"127":[8,10],"12px":12,"14px":12,"15px":12,"165f4b":12,"16px":12,"1em":12,"2011":4,"2012":4,"2013":4,"20px":12,"27017":[1,3,5,8,10],"2c3e50":12,"2em":12,"300":12,"314":4,"319":4,"32em":12,"4169e1":12,"500":12,"577504":12,"577918":12,"5em":12,"5px":12,"666666":12,"700":12,"778899":12,"8em":12,"9101":5,"abstract":10,"boolean":10,"break":[1,12],"case":[1,5,10,11],"class":[1,4,8,9,10,11,12],"const":12,"default":[1,3,4,5,8,10,12],"enum":10,"export":2,"final":[1,8,10,11],"float":[8,10,11,12],"function":[1,8,10,11,12],"import":[1,4,10],"int":[8,10,11,12],"long":5,"new":[1,2,4,5,8,9,10,11,12],"null":10,"return":[1,2,4,8,10,11,12],"static":[8,10,12],"switch":8,"true":[1,5,8,10,11,12],"try":[8,12],"while":8,AND:4,Added:[2,8],BUT:4,But:1,DBs:1,DOS:8,FOR:4,For:[1,4,5,8,10,11,12],Has:5,NOT:4,Not:1,One:[10,11],Pls:2,THE:4,That:10,The:[0,1,3,4,5,8,9,10,11,12],Then:8,There:[1,8],These:[1,5],USE:4,Use:[5,8,10],Used:[10,12],Useful:8,Uses:[5,9],Using:8,WITH:4,Will:8,With:[1,11],XLS:2,__getitem__:10,__init__:1,__missing__:12,__setitem__:10,_alias:5,_email:5,_group:1,_id:[1,10,12],_is_datetim:10,_log:1,_recipi:12,_src:1,_subject:12,_target_col:1,_theme:0,abc:8,abil:[2,8],abl:1,about:1,abov:[4,5],abs:[5,8,12],absolut:1,abspath:0,abstractdron:8,accept:[2,4],access:[1,3,4,8,9,10],accommod:1,accord:[1,5],across:[5,8],act:[8,10],action:[1,4,10,11,12],activ:[1,10],activest:12,actual:[1,8],adapt:[4,12],add:[0,1,2,4,5,8,10,11,12],add_exist:12,add_kei:10,add_meta:10,add_path:8,add_schema:10,add_sect:12,add_viol:12,added:[1,2,5,8,10,12],adding:[1,5,8],addit:[1,8,12],additional_criteria:8,additional_field:8,addon:0,addr:5,address:5,adequ:8,admin:8,admin_password:[3,5],admin_us:[3,5],administr:5,advanc:4,advantag:5,affect:[8,10],aflow:8,after:[1,4,5,8,10,11],against:[5,10],alchemi:[6,7,8],algorithm:1,alia:[4,5,8,10],alias:[2,4,5,8,10,12],aliases_config:[8,10],aliases_config_kei:8,align:12,all:[1,3,4,5,8,9,10,11,12],all_set:8,allow:[1,2,4,5,8,10,12],allow_dup:12,allow_nan:[8,12],alphabet:10,alphadump:10,alreadi:[10,12],also:[0,1,2,4,5,8],altern:[0,1,2,10,11],although:1,alwai:[1,4,5,10],amaz:8,amount:1,analysi:[4,5,8,10,11],ani:[1,4,5,8,10,11,12],anoth:[1,8,11],anubhav:4,anyth:[4,10],api:[2,8,10],app:8,append:[0,8],appli:[4,5,8,9,10,12],appropri:[10,12],approxim:12,arbitrari:[2,8,12],arg:[1,8,10,11,12],argpars:12,args_kvp_nodup:12,args_list:12,arguabl:5,argument:[1,4,8,10,11,12],arial:12,aris:4,around:10,arrai:[5,8,10,12],arriv:5,as_dict:[8,10,12],as_json:12,ascii:[8,12],ask:1,assert:12,assess:8,assimil:8,associ:[2,4,5,12],assum:[1,3,5,8,12],atom:4,attempt:[8,12],attribut:[8,10,12],auth:[8,10],auth_alias:8,authent:[1,3,4,5,8,10],author:[1,4,8],auto:4,autodoc:1,autom:1,automat:[1,4,5,8,10,11,12],avail:[4,10],awesom:1,back:1,background:12,bad:[10,11,12],bad_constraint_err:12,bandstructur:[4,10],bandwidth:5,bar:[5,10,12],base:[8,9,10,11,12],basestr:8,basi:[8,12],basic:[10,11],batch_siz:10,becaus:[1,5],becom:5,been:[1,4,10,11,12],befor:[1,5,8,10],begin:[1,5],behavior:[1,8,12],behind:1,being:12,below:[1,4,5,8],benefit:1,better:[1,2,5],between:[1,8,10,12],big:12,bigbird:3,bigbuild:1,binari:4,bird:1,black:12,blank:12,bleed:4,block:5,bodi:12,bookkeep:1,bool:[8,10,11,12],border:12,borg:8,borgqueen:8,both:[1,5,8,10,12],branch:9,brief:2,brototyp:10,browser:5,bug:[2,4],buggi:4,build:[2,4,10,11,12],build_kw:10,builder:[2,6,7,8],builderror:10,builderstatu:10,builtin:12,burden:10,cach:8,calcul:[1,5,8,11,12],calculate_st:8,call:[1,4,5,8,10,12],caller:10,can:[0,1,2,4,5,8,9,10,12],cannot:[8,10,12],cannot_combine_err:12,care:[4,8],caus:[1,8,11,12],ceder:4,central:1,cfg1:8,cfg2:8,cfg3:8,cfg:8,chain:[8,10],chang:[5,10,12],changed_delta:12,changed_match_delta:12,changed_match_exact:12,changed_match_kei:12,changed_new:12,changed_old:12,charact:[1,8,11,12],charg:4,check:[0,8,10,12],check_circular:[8,12],chemic:8,chevrier:4,child:12,choic:[4,12],cholia:4,choos:[1,10,11],chosen:1,circular:[8,12],claim:4,clash:1,classmethod:[8,10,12],clazz:8,clean:[5,8],cleanup:[2,10,11],clear:12,client:1,clone:[4,8],close:[4,8],cls:8,cmp:12,code:[1,5,8,10,11,12],coincident:1,coll:[8,10,12],collect:[1,2,3,4,5,8,10,11,12],collection_kei:8,collection_nam:[5,8,10],collectiontrack:10,colnam:12,color:12,column:12,column_nam:12,column_width:12,com:[8,12],combin:[5,8,12],come:[1,5],comma:[5,8,12],command:[1,4,5,12],commandlin:5,commatsci:4,common:[1,10],commonli:4,compact:[8,10,12],compar:[5,8,12],compat:8,complet:4,complex:[1,5],compliant:[8,12],complic:5,compound:8,compress:8,compress_do:8,compris:1,comput:[4,8,12],computedentri:[4,8],concept:1,concern:8,conclus:1,concret:10,cond:12,condit:[4,5,12],conf:[0,1,5,8],config:[2,4,5,8,10,11,12],config_dict:8,config_fil:8,configgroup:8,configur:[1,2,4,8,10,12],configurationfileerror:8,conjunct:5,connect:[1,4,5,8,10],consid:[4,8],consist:[8,12],consol:5,consola:12,constraint:12,constraint_is_method:12,constraint_sect:12,constraint_spec:12,constraintoper:12,constraintspec:12,constraintspecsect:12,constraintviol:12,constraintviolationgroup:12,construct:10,constructor:[1,8,9,10,12],contain:[0,1,4,8,10,12],contains_vasp_input:8,content:[0,6,7],continu:12,contract:4,contriv:1,control:1,conveni:[1,5,8],conversion_electrod:10,convert:[5,8,10],coordin:8,copi:[1,4,8,10,11],copy_build:[1,7,8,10],copybuild:11,copyright:4,core:[1,6,7,8,9,11],core_collect:10,core_dev:5,core_prod:5,correspond:[4,8],could:[1,5,8,12],count:[1,8,11,12],counter:1,coupl:1,cpu:[1,8],crawl:8,creat:[1,2,4,8,10,11,12],create_query_engin:8,createqueryengineerror:8,creation:[4,8,10],creator:[4,6,7],crit:[1,4,11],criteria:[1,4,5,8,9,10,11],css:[5,12],css_class:12,css_minifi:12,csv:2,csv_dict:8,csv_list:8,ctrl:4,cur:1,cur_val:1,current:[1,4,8,10],cursor:[1,8,10,12],custom:[1,8,11,12],daemon:4,dahn:10,dai:[8,12],damag:4,dan:[2,4],data:[1,2,4,8,9,10,12],databas:[2,8,9,10,12],dataset:[8,12],datatyp:1,date:10,datetim:10,davidson:4,db1:12,db2:12,db_kei:8,db_version:10,dbconfig:[2,6,7],dberror:[10,12],dbgroup:[2,6,7],dbname:8,dbpath:4,deal:4,debug:8,declar:1,decod:[8,12],deep:8,deepli:8,def:[1,8,10,11,12],default_criteria:8,default_dist:12,default_fil:8,default_port:8,default_properti:[8,10],default_set:8,defin:[5,8,10,11],deleg:8,delet:4,delta:[2,12],demand:8,densiti:5,depend:[2,4],deprec:[2,8],depth:10,dequ:12,deriv:[1,4,11],desc:[1,10,11,12],descr2:[10,11],describ:[1,5,10,11],descript:[10,11,12],design:8,desir:[4,10,11],dest:12,destin:1,detail:[1,4,8,10,11],detect:8,determin:[1,5,9,10],dev:[5,8],develop:[4,5,10],dict:[1,8,10,11,12],dict_expand:12,dict_transform:12,dictionari:[1,8,12],did:1,diff:[2,6,7,8],diff_css:12,differ:[1,2,5,8,10,12],diffformatt:12,diffhtmlformatt:12,diffjsonformatt:12,diffraction_pattern:10,difftextformatt:12,dir_nam:[4,8],direct:[5,12],directli:[8,10],directori:[1,2,4,8,10],disconnect:8,discov:[10,11],discuss:8,displai:5,dist_:12,dist_cod:12,dist_runif:12,distinct:[1,8,12],distinct_kei:8,distrib:12,distribut:[1,4,12],div:12,dkgunter:[2,5],do_foo1:12,do_foo2:12,doc:[0,1,2,8,10],docstr:[1,10,11],document:[0,1,4,5,8,10,12],doe:[1,4,5,8,10,12],doeslog:12,doesn:[10,11,12],doi:4,domain:5,don:10,done:[4,10],dos:8,dos_f:8,dot:[8,12],doubl:10,down:8,download:4,driv:0,driver:[1,10,11],drone:[4,8],dump:10,duplic:[8,12],durat:5,dure:[2,8,12],e2e2e2:12,e9e9e9:12,e_above_hul:[5,8,10],each:[1,4,5,8,9,10,11,12],easi:[1,4,5,8],easier:[4,8,10],easiest:[4,5],easili:1,easy_instal:4,edg:4,effect:1,effici:[5,8],either:[1,5,10],elaps:12,elapsedtim:12,electrod:10,electronic_structur:10,element:[1,5,8,12],elimin:[8,12],els:[1,8,10,11,12],elt:12,email:12,email_mod:12,emb:5,embed:5,empti:[1,8,10,11,12],enabl:[4,8,9,10],encapsul:[1,8,12],encod:[8,12],end:[1,5,10],end_tim:12,energi:[4,5,8,10],energy_per_atom:4,engin:[4,8],enough:[1,5,12],ensur:[2,8,12],ensure_ascii:[8,12],ensure_index:8,enter:4,entir:[1,4,8,12],entri:[4,8],enumer:10,equival:[1,5],err:[1,8,11],error:[1,2,5,8,10,11,12],escap:[8,12],essenc:8,etc:[1,2,4,5,8,12],etl:1,evalu:5,even:12,event:[4,12],everi:[1,8,10,12],everyth:1,exact:12,exactli:5,examin:[1,8,10],examp:5,exampl:[1,3,4,7,8,10,12],excel:[4,5],except:[1,4,8,10,12],execut:[1,10,11],exist:[0,8,10],exit:[1,5],expand:[8,12],expect:[1,4,8,12],expected_valu:12,explain:8,explicit:1,explicitli:[1,4,8,10],explor:8,expr1:5,expr2:5,expr:5,express:[4,5,8,10,12],ext:10,extend:8,extend_collect:9,extens:[4,8,10],extern:12,extra:[1,5,12],extract:[1,12],f3f3f3:12,f5f5f5:12,fail:[10,12],fail_fn:10,failur:10,fals:[1,8,10,11,12],famili:[5,12],faster:1,featur:[2,4,8,11],fetch:[1,5],few:[1,4],field1:5,field2:5,field3:5,field4:5,field5:5,field:[1,2,4,5,8,10,12],field_sep:10,figur:1,file:[1,2,3,4,8,9,10,11,12],file_build:[7,8,10],file_or_fp:10,filecount:11,filenam:[1,4,5,8],fileserv:8,fill:12,filter:[1,5,11,12],filter_sect:12,final_energi:[8,10],final_structur:8,find:[1,5,8,10,12],findal:10,fine:[1,4,8],first:[1,2,4,8,12],fit:[4,12],fix:[2,5,12],flag:[1,8,11],flamyngo:2,flask:0,fld_fld:10,fld_mark:10,fld_op:10,flexibl:2,fltr:12,fmt:12,folder:[0,4],follow:[0,1,3,4,5,8,10,12],font:12,foo:[1,5,8,10,12],footprint:12,fork:10,form:[1,4,5,8,12],format:[1,4,5,8,10,12],formula:4,found:[1,5,8,10,12],four:8,framework:1,free:4,frequenc:5,from:[1,2,4,5,8,9,10,11,12],from_config:8,from_cursor:8,from_dict:[8,10],front:2,frozenset:12,full:[1,5,8,10,12],furnish:4,futur:[1,4],gen:12,gener:[1,4,5,8,9,10,12],generate_doc:8,generate_task_doc:8,genom:[2,4,8],geoffroi:4,gerbrand:4,get:[1,5,8,10,11,12],get_basic_analysis_and_error_check:8,get_builder_log:[1,10],get_collect:8,get_collection_nam:10,get_coordination_numb:8,get_databas:8,get_dos_from_id:8,get_el:12,get_entri:[4,8,9],get_entries_in_system:8,get_item:[1,10,11],get_items_paramet:[10,11],get_kei:12,get_paramet:[1,10,11],get_schema:10,get_schema_dir:10,get_schema_fil:10,get_set:8,get_structure_from_id:[4,8],get_task_doc:8,get_test_dir:10,get_uri:8,get_valid_path:8,gga:8,git:0,github:[2,4],give:[1,3],given:[1,3,4,5,8,10,11,12],glob:8,got_valu:12,gov:[2,5],grain:4,grant:4,gridf:8,grouchi:5,group:[1,8,11,12],guarante:[8,12],guid:0,gunter:[2,4],had:[10,11],had_error:[10,11],handl:[1,2,10],handler:12,happen:1,hardwar:1,has:[1,4,5,10],has_failur:10,hasexampl:10,hasmeta:10,hautier:4,have:[1,5,8,10,11,12],header:12,height:12,help:[1,4,5,12],helper:8,helvetica:12,here:[1,3,4,5,10,11],herebi:4,heterogen:8,hierarchi:10,high:[9,10],higher:10,highest:[1,10],highli:[1,8],himself:8,hint:8,his:0,hit:4,hive:8,holder:4,hopefulli:4,host:[1,2,3,5,8,10,12],host_kei:8,hostnam:[5,8,10],how:[1,10],howev:[4,8],html:[1,2,5,10,12],html_theme:0,html_theme_path:0,htmlformatt:12,http:[5,10,12],huge:[1,12],hundr:1,hyperlink:[2,5,12],icsd:10,icsd_id:5,id_column:12,id_prefix:10,idea:1,identifi:[1,5,10,12],ignor:[1,8,10,12],iid:12,illustr:1,implement:[1,2,8,9,10,11,12],impli:4,impos:10,improp:1,improv:2,inc_structur:8,incar:8,includ:[1,4,5,8,10,12],incom:[8,10,12],incr:[1,6,7,8],increas:[1,5],increment:[2,10,11,12],indent:[5,8,10,12],independ:1,index:[4,10],individu:1,infil:8,infin:[8,12],infinit:[8,12],info:[1,5,10,12],inform:[1,5,12],inherit:[1,10],init:[4,5,8,10],initi:[1,5,8,10,12],input:[1,8,9,10,11,12],input_fil:[1,11],insecur:4,insert:[1,2,5,8,10,12],insid:[1,10],instal:[1,4],instanc:[1,10,11,12],instanti:8,instead:[1,5,8,10,12],instruct:[1,4],integ:[8,10,12],intend:0,intens:1,interfac:[2,4,5,8,10],intern:[8,10],interpret:[5,8,10,11],interv:12,introduc:1,introduct:2,intuit:8,invalid:12,invoc:1,invok:1,involv:1,ioerror:10,is_dict:10,is_empti:12,is_list:10,is_scalar:10,is_track:10,isn:1,issu:[2,5],ital:12,item:[1,5,8,10,11,12],item_separ:[8,12],iter:[1,8,10,11,12],its:[1,5,12],itself:[1,10,11,12],jain:4,javascript:[8,10,12],json:[1,2,3,4,5,8,10,12],json_schema:10,jsonencod:[8,12],jsonformatt:12,jsonwalk:12,jstype:10,just:[1,4,5,8,10,12],kei:[1,2,5,8,10,11,12],kenneth:0,key_separ:[8,12],keyerror:[8,10],keyword:[1,3,5,10,12],kill:[1,8,10],kind:[4,8],know:[1,8],known:[8,10],known_collect:10,kocher:4,kpoint:8,kr_small:0,kristin:4,kv_sep:10,kvp_dict:8,kwarg:[1,8,10,11,12],lambda:10,languag:4,larg:[0,5,8,12],larger:12,last:[1,5,8,10],later:[1,8,10],latest:[4,10],lbl:[2,5],lbnl:4,leav:5,left:12,len:1,length:12,less:12,let:[5,8,12],letter:12,letter_num:12,level:[5,8,10,12],li2o:4,liabil:4,liabl:4,librari:[0,4,8],lightweight:1,like:[1,4,5,8,10,12],limit:[2,4,5,8,10],line:[1,4,5,11,12],line_sep:12,liner:1,link:4,linux:4,list:[1,5,8,10,11,12],lixfeyoz:8,load:[1,10],load_schema:10,localhost:[1,3,5,8,12],locat:8,log:[1,5,10,12],logger:[1,10],logic:[1,11],look:[1,4,5,8,12],lookup:8,lot:5,low:10,mac:4,machin:[1,8,10],magic:1,mai:[1,4,5,8,10,11],mail:5,main:[1,5,8,10,12],maintain:2,major:8,make:[1,2,4,5,8,10],manag:[4,8],mani:[4,5,8,9],manipul:1,manual:[4,10],map:[1,5,8,10],mapi_kei:[2,8],margin:12,mark:[1,10],markdown:[5,12],markdownformatt:12,match:[1,5,8,12],materi:[1,2,4,8,9,10,11,12],materialsproject:[5,8],matgendb:2,matter:1,max:[1,12],max_dberror:12,max_force_threshold:8,max_item:12,max_ver:10,max_viol:12,maximum:[1,9,11,12],maxvalue_build:[7,8,10],maxvaluebuild:11,mdev:5,mean:[1,5,8,10,12],meant:[1,8],member:[8,12],memori:[1,8,12],merchant:4,merg:[4,10],merge_task:10,messag:[1,5,10,12],meta:[10,12],metadata:[1,10,12],metavar:12,method:[1,4,8,9,10,11,12],mg_core:10,mgbuild:[1,2,4,11],mgdb:[2,4,5,8],mgvv:[2,4],michael:4,might:1,min_item:12,min_ver:10,mind:4,minim:[1,5],minimum:[1,12],minor:2,minu:5,mis:5,miss:[5,12],mit:[4,8],mitsuhiko:0,mix:[10,12],mkdir:4,mode:[1,3,4],modern:1,modif:[1,8],modifi:[4,8,10],modul:[1,2,4,6,7],moment:5,monaco:12,mongdb:10,mongo:[4,8,12],mongo_get:12,mongocli:[2,10],mongod:4,mongodb:[1,2,3,4,5,8,10,11,12],mongojsonencod:[8,12],mongoqueri:12,monospac:12,monoton:1,more:[1,2,4,5,9,10,11,12],most:[0,1,4,5,8,10,12],move:1,mprod:5,mps_id:5,mr_snuffleupagu:3,msonabl:8,much:[1,4],multicor:1,multipl:[1,2,5],multiprocess:[1,8,9,10,11],must:[1,5,8,10,11,12],my_build:10,mybuild:[10,11],mycollect:[5,10],mydatabas:5,mydb:[8,10],myfil:8,myhost:5,name1:[5,10],name2:[5,10],name:[1,3,4,5,8,10,11,12],name_in_db:5,name_or_index:12,namespac:[6,8],nan:[8,12],narg:12,ncol:12,ncore:[1,9,10,11],nearli:8,neb:4,necessari:[1,5],need:[1,4,5,8],neg:[5,8,12],negatori:5,nelement:5,nest:[8,12],neue:12,new_max:1,new_nam:10,new_task:10,new_valu:12,newer:1,newlin:[8,12],next:[1,12],no_properti:12,noath:3,non:[1,8,10,12],none:[1,5,8,9,10,11,12],noninfring:4,normal:[10,12],normalize_auth:8,note:[1,4,5,8,10,12],noth:[10,11],notic:[1,4,5],notrackingcollect:10,now:[1,2],nrow:12,nth:12,nullconstraintviol:12,num:[1,5,10,12],num_char:1,num_cor:1,num_lin:1,num_viol:12,number:[1,2,3,5,8,9,10,11,12],numer:[2,5,12],obei:8,object:[1,4,8,9,10,11,12],obtain:[2,4,8],occur:[1,8],odd:12,off:1,often:1,old:[1,5,12],omit:4,onc:[1,4],one:[0,1,5,8,9,10,11,12],ones:1,ong:4,onli:[1,3,5,8,10,11,12],onlin:10,only_miss:12,only_valu:12,open:[1,4,5,8,10],oper:[1,5,10,12],oppos:12,option:[1,2,4,8,10,11,12],option_str:12,optional_data:8,orbit:8,order:[1,8,10,12],ordered_col:12,org:[5,8,10],organ:[8,10],oscar:5,osx:5,other:[1,2,5,8,10,11,12],othercontainerclass:12,otherorg:5,othersuck:5,otherwis:[4,5,8,10,11,12],our:[10,12],out:[0,1,4,5],outlin:4,output:[1,2,5,8,9,10,11,12],over:[1,5,12],overflowerror:[8,12],overrid:[1,8,10],own:[1,4,8],oxid:2,packag:[1,2,4,5,6,7],pad:12,page:[0,1,2,5],pair:[5,8,10,11,12],parallel:10,param2_nam:[10,11],param2_typ:[10,11],param:[1,10,11,12],param_nam:[10,11],param_typ:[10,11],paramet:[1,3,4,8,9,10,11,12],parameter:12,parent:1,pars:[8,10,11,12],parse_do:8,parse_fn_docstr:10,parse_projected_eigen:8,part:[1,5,8,12],partial:5,particular:[4,8],pass:[1,5,8,9,10,11,12],password:[1,2,3,5,8,10],password_kei:8,past:10,path:[0,1,5,8,10,12],pattern:[5,8],pdf:[1,2],per:[1,4,5],percent:5,perfectli:[1,4],perform:[1,2,8,9,10,11,12],permiss:4,permit:4,person:4,persson:4,phase:8,phase_diagram:10,ping:4,pip:4,place:[1,4,8,10,12],plain:12,pleas:[4,5,8],plu:5,point:[5,8],pool:9,popul:12,porou:[10,11],port:[1,3,5,8,10,12],port_kei:8,portion:4,pos:10,poscar:8,posit:[1,5,10,12],possibl:[1,5],post:[8,10],post_process:8,postprocess:[4,8],potcar:8,potenti:[8,12],power:[2,4],pre:8,prefer:5,prefix:[1,2,5,8,10],present:[1,5,8,10],press:4,pretti:[1,8,12],pretty_formula:[4,5],prevent:[8,12],previou:[1,12],previous:1,print:[1,4,5,8,10,12],probabl:[1,12],process:[1,8,10,11],process_item:[1,10,11],process_killed_run:8,process_vasprun:8,procrunn:10,prod:5,produc:5,product:[4,5],profil:8,program:[1,5,10,11],progress:12,progressmet:12,project:[0,1,4,8,9,12],prompt:4,prop:[4,5,12],prop_dict:8,proper:2,properli:[1,2],properti:[1,4,5,8,10,12],proport:12,provid:[2,4,5,8,9],publish:4,pull:1,purpos:[1,4,5,8,10],put:[0,1,5,10,12],pymatgen:[1,2,3,5],pymatpro:10,pymmongo:8,pymongo:[4,8,10,12],pypi:4,python:[1,4,8,10,11,12],pythonmethod:12,qe_class:8,qetransmut:9,qualifi:12,quantiti:[5,8],queri:[1,2,5,8,9,10,12],query_engin:[1,4,6,7,10,11],query_on:8,query_post:[8,10],queryengin:[1,4,8,9,10,11,12],queryerror:8,querylistresult:8,queryresult:8,question:1,queue:[1,10,11],quiet:1,quot:5,quotabl:8,radiu:12,rais:[8,10,11,12],randomli:12,rather:5,raw:[1,12],re_get:8,re_kei:8,read:[1,3,5,8,10,11],readabl:1,readi:12,readlin:1,readonli:8,readonly_first:8,readonly_password:[2,3,5],readonly_us:[2,3,5,8],real:[1,5],realli:[1,10],rebuild:1,rec:[1,12],recalcul:1,receiv:5,receiver2:5,recip:12,recipi:[5,12],recogn:[3,5],recommend:[1,8],record:[1,5,8,10,11,12],recurs:[8,12],reduc:1,refactor:2,refer:[8,12],regardless:10,regexdict:8,regress:[8,12],regular:[8,10],reitz:0,rel:[1,4],relai:5,relat:[0,10],relax1:8,relax2:8,relax:8,releas:[2,4],reli:1,rememb:1,remot:12,remov:[2,8],repeat:[1,5],replac:[1,5,8,10],replicaset:[8,10],repo:4,report:[2,5,6,7,8],report_field:12,reportbackuperror:12,reporthead:12,reportjsonencod:12,reportsect:12,repositori:0,repr:12,represent:[8,10,12],request:10,requir:[1,2,3,5,8,11,12],research:4,resolv:[8,10],resort:8,respect:[4,5,10],rest:[2,5,8],restrict:[4,8],restructur:[10,11],result:[1,2,8,10,12],result_cursor:8,result_post:[8,10],result_subset:12,retriev:[1,5,8,9,10,12],rgb:12,richard:4,right:[4,10],robust:4,root:[4,8,10],row:12,rtype:10,run:[2,4,8,10,11,12],sai:[5,8],sake:1,same:[1,5,8,10,12],sampl:[4,12],sample_sect:12,sampler:12,san:12,sandbox:10,sandbox_collect:10,satisfi:8,save:[1,5,10],scalar:10,scan:1,scene:1,schema:[6,7,8],schemaerror:10,schemaparseerror:10,schemapatherror:10,schemata:10,schematypeerror:10,scheme:[5,10],scienc:4,script:[1,2,4,8],search:[4,5,9,12],sec:12,second:[1,5,11,12],section:[1,5,12],sectionhead:12,sectionpart:12,see:[1,4,5,8,10,12],seen:1,select:[1,5,12],self:[1,8,10,11,12],sell:4,semant:12,send:[5,12],sender:[5,12],sens:[1,10],sensibl:[8,12],sent:[5,12],sep:8,separ:[5,8,12],sequenc:8,sequenti:1,serial:[8,10,12],serializ:[8,12],serif:12,server1:5,server2:5,server:[3,4,5,8,12],set:[1,2,4,5,8,10,12],set_alias:12,set_aliases_and_default:8,set_collect:8,set_mark:10,set_prefix:8,set_progress:12,set_subject:12,set_track:10,setter:10,setup:[10,11],shall:4,share:[1,10],shared_dict:[1,10],shared_list:10,shell:5,should:[1,4,5,8,10,12],show:[1,5,12],shown:[1,5],shreya:4,shyue:4,sign:[5,12],signific:2,similar:4,simpl:[4,5,8,11,12],simpli:[1,4,5,8,10,12],simplif:2,simplifi:[1,5,8],simul:8,simulate_mod:8,sinc:1,singl:[1,5,8,10,12],site:8,site_dict:8,size:[5,12],skip:[1,8,12],skipkei:[8,12],slice:5,slow:8,small:[0,1],smoqe:5,smtp:[5,12],snippet:1,snl_id:5,softwar:4,sole:12,some:[1,2,4,5,8,10,11,12],somebodi:5,somecontainerclass:12,somekei:5,sometim:4,somewhat:8,sort:[1,2,8,10,12],sort_kei:[8,12],sort_row:12,sortbi:12,sourc:[1,4,8,9,10,11,12],space:10,spawn:1,spec:[5,12],special:[1,10,11],specif:[1,2,4,5,8,12],specifi:[4,5,8,10,12],spectacular:8,spend:5,sphinx:[1,2,4],spiderman2:8,spiderman:8,spot:1,stabil:[2,8],stage:1,standard:[0,1,4,5,8,10],standardtransmut:9,start:[1,4,10],start_tim:12,state:[1,8,10],statu:[10,11],step:[1,4],stone:1,stop:[1,4],storag:8,store:[1,8,12],str:[1,8,10,12],strang:1,streamlin:1,string:[4,5,8,10,12],strip:10,structur:[4,8,9],style:[1,4,5,8,9,10,11,12],sub:[1,5,8,10,12],subclass:[8,10,11,12],subcommand:2,subdirectori:10,subfold:8,subj:12,subject:[4,5,12],subkei:8,sublicens:4,submit:5,submodul:[0,6,7],subpackag:[1,6],subsequ:[1,4],subset:[5,12],substanti:4,subtl:1,succe:1,success:[1,8,10,11],suffici:[5,8],suffix:10,suitabl:4,superclass:12,suppi:[8,10],suppli:[8,10,11],support:[2,8,12],supported_properti:8,sure:[1,10],symbol:8,syntax:[3,4,8,12],sys:0,system:[4,8],tabl:[2,5,12],tag:8,take:[2,5,8,10,12],taken:[4,5],target:[1,5,10,11,12],task:[1,3,4,5,8,10],task_id:[4,5,8],task_suffix:10,tasknam:8,temporari:10,term:4,test1:[1,5],test2:[1,5],test:[4,5,8,10,12],test_db:4,test_porous_build:10,text:[5,10,11,12],than:[1,5,8,9,12],thei:[1,2,3,4,9],them:[1,2,8,12],theme:0,these_must:5,thi:[0,1,4,5,8,9,10,11,12],thing:[1,12],third:5,those:5,thread:[1,10,11],through:[1,2],throughput:9,thu:1,time:[1,5,10,11,12],titl:12,tmp:10,to_dict:10,to_includ:5,to_mongo:12,toler:5,ton:5,tool:4,top:[5,10,11,12],topmost:4,tort:4,total_s:12,tr1:12,tr_even:12,tr_odd:12,track:[1,10],track_field:10,track_oper:10,tracked_find:10,trackedcollect:10,trackedqueryengin:[1,10],tracker:[10,12],tracking_collect:10,tracking_collection_nam:10,tracking_nam:10,trackinginterfac:10,transform:[1,8,9,12],transformedstructur:9,translat:[4,8,10,12],transmut:[6,7,8],transpar:[1,10],treat:12,treatment:8,tri:8,trivial:1,tupl:[8,10,12],turn:1,tweedlede:8,tweedledum:8,twice:11,two:[1,2,5,8,10,12],type:[1,2,4,5,8,10,11,12],typecod:10,typeerror:[8,12],typenam:10,typic:8,ultim:1,unauthent:5,uncach:8,under:[4,5],underli:8,understand:1,understood:1,uniform:12,uniqu:8,unit:[4,10],unittest:4,unix:[5,8],unknown:12,unless:[1,12],unlik:[1,5],unset:8,unsuccess:[8,10],until:12,untrackedqueryengin:10,unzip:4,updat:[1,2,8,10,11,12],update_dupl:8,upsert:1,uri:8,url:[5,12],usabl:2,usag:[5,10],use:[0,1,2,3,4,5,8,9,10,11,12],use_admin:8,use_full_uri:8,used:[0,1,3,4,5,8,10,11],useful:[1,4,5,8,12],user:[1,2,3,5,8,10],user_kei:8,user_kw:10,uses:[0,5,9],using:[1,2,4,5,8,10,12],usual:[1,5,8],util:[1,6,7],val:12,valid:[4,6,7,8,10],validate_exampl:10,validatorsyntaxerror:12,valu:[1,2,5,8,10,11,12],value1:10,value2:10,value_json:12,value_transform:12,valueerror:[8,10,11,12],vand:2,variabl:[1,2],variou:8,vasp:[3,4,5,8,10],vasprun:8,vasprun_fil:8,vasptodbtaskdron:[4,8],verbos:[1,5,10,12],veri:[0,1,4,5,8],verif:4,version:[1,2,8,9,10,11,12],via:8,view:5,vincent:4,violat:[5,12],visual:5,vof:2,volume_change_threshold:8,wai:[1,4,8,10],wait:10,walk:[1,12],want:[1,5,8,10],warranti:4,web:8,webpag:5,websit:4,weight:12,well:[3,4],went:[10,11],were:8,what:[1,10],when:[1,4,8,10,12],where:[1,4,5,8,10],whether:[1,4,8,9,10,12],which:[1,4,5,8,9,10,11,12],white:[10,12],whitespac:[8,12],who:10,whole:[1,8],whom:4,whose:8,why:10,width:[5,12],will_copi:12,william:4,wipe:10,wise:5,within:[5,12],without:[1,4,8,10],work:[1,4,10,11,12],wors:[1,5],would:[1,5,8,10,12],wrap:12,wrapper:[8,10],writabl:5,write:[3,4,8,11],written:[1,4],wrong:[1,10,11,12],www:8,xml:8,xxxx:5,yaml:[2,5,12],yamlconfig:12,yet:1,yield:[1,12],you:[0,1,4,5,8,10,12],your:[0,1,4,5,8],yyyi:5,zero:[1,5],zlib:8},titles:["krTheme Sphinx Style","Database \u201cBuilders\u201d","v0.7.0","Database configuration","Pymatgen-db","Materials Project Database Validation: mgvv","pymatgen","pymatgen namespace","pymatgen.db package","pymatgen.db.alchemy package","pymatgen.db.builders package","pymatgen.db.builders.examples package","pymatgen.db.vv package"],titleterms:{alchemi:9,api:4,argument:5,basic:1,build:1,builder:[1,10,11],calcul:4,chang:4,cite:4,configur:[3,5],constraint:5,content:[1,8,9,10,11,12],copy_build:11,copybuild:1,core:10,creator:8,databas:[1,3,4,5],dbconfig:8,dbgroup:8,development:4,diff:[5,12],displai:1,doc:4,email:5,exampl:[5,11],extend:4,featur:1,file:5,file_build:11,filecount:1,get:4,how:4,incr:10,increment:1,indic:4,initi:4,insert:4,krtheme:0,licens:4,log:4,materi:5,maxvalue_build:11,maxvaluebuild:1,mgvv:5,modul:[8,9,10,11,12],namespac:7,option:5,other:4,packag:[8,9,10,11,12],page:4,parallel:1,project:5,pymatgen:[4,6,7,8,9,10,11,12],queri:4,query_engin:8,refer:4,report:12,requir:4,run:1,schema:10,setup:4,simpl:1,sphinx:0,stabl:4,style:0,subcommand:5,submodul:[8,9,10,11,12],subpackag:[7,8,9,10,12],syntax:5,tabl:4,transmut:9,usag:[1,4],util:[8,10,12],valid:[5,12],version:4,write:1}}) \ No newline at end of file +Search.setIndex({docnames:["_themes/README","builders","change_log","dbconfig","index","mgvv","modules","pymatgen","pymatgen.db","pymatgen.db.alchemy","pymatgen.db.builders","pymatgen.db.builders.examples","pymatgen.db.vv"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["_themes/README.rst","builders.rst","change_log.rst","dbconfig.rst","index.rst","mgvv.rst","modules.rst","pymatgen.rst","pymatgen.db.rst","pymatgen.db.alchemy.rst","pymatgen.db.builders.rst","pymatgen.db.builders.examples.rst","pymatgen.db.vv.rst"],objects:{"mgvv-diff":{"--db":[5,7,1,"cmdoption-mgvv-diff-D"],"--email":[5,7,1,"cmdoption-mgvv-diff-E"],"--email-server":[5,7,1,"cmdoption-mgvv-diff-s"],"--file":[5,7,1,"cmdoption-mgvv-diff-f"],"--format":[5,7,1,"cmdoption-mgvv-diff-F"],"--help":[5,7,1,"cmdoption-mgvv-diff-help"],"--info":[5,7,1,"cmdoption-mgvv-diff-i"],"--key":[5,7,1,"cmdoption-mgvv-diff-k"],"--missing":[5,7,1,"cmdoption-mgvv-diff-m"],"--numeric":[5,7,1,"cmdoption-mgvv-diff-n"],"--print":[5,7,1,"cmdoption-mgvv-diff-P"],"--properties":[5,7,1,"cmdoption-mgvv-diff-p"],"--query":[5,7,1,"cmdoption-mgvv-diff-q"],"--url":[5,7,1,"cmdoption-mgvv-diff-u"],"--verbose":[5,7,1,"cmdoption-mgvv-diff-v"],"-D":[5,7,1,"cmdoption-mgvv-diff-D"],"-E":[5,7,1,"cmdoption-mgvv-diff-E"],"-F":[5,7,1,"cmdoption-mgvv-diff-F"],"-P":[5,7,1,"cmdoption-mgvv-diff-P"],"-f":[5,7,1,"cmdoption-mgvv-diff-f"],"-h":[5,7,1,"cmdoption-mgvv-diff-help"],"-i":[5,7,1,"cmdoption-mgvv-diff-i"],"-k":[5,7,1,"cmdoption-mgvv-diff-k"],"-m":[5,7,1,"cmdoption-mgvv-diff-m"],"-n":[5,7,1,"cmdoption-mgvv-diff-n"],"-p":[5,7,1,"cmdoption-mgvv-diff-p"],"-q":[5,7,1,"cmdoption-mgvv-diff-q"],"-s":[5,7,1,"cmdoption-mgvv-diff-s"],"-u":[5,7,1,"cmdoption-mgvv-diff-u"],"-v":[5,7,1,"cmdoption-mgvv-diff-v"]},"pymatgen.db":{alchemy:[9,0,0,"-"],builders:[10,0,0,"-"],creator:[8,0,0,"-"],dbconfig:[8,0,0,"-"],dbgroup:[8,0,0,"-"],query_engine:[8,0,0,"-"],util:[8,0,0,"-"],vv:[12,0,0,"-"]},"pymatgen.db.alchemy":{transmuters:[9,0,0,"-"]},"pymatgen.db.alchemy.transmuters":{QeTransmuter:[9,1,1,""]},"pymatgen.db.builders":{core:[10,0,0,"-"],examples:[11,0,0,"-"],incr:[10,0,0,"-"],schema:[10,0,0,"-"],util:[10,0,0,"-"]},"pymatgen.db.builders.core":{BuildError:[10,2,1,""],Builder:[10,1,1,""],BuilderStatus:[10,1,1,""],Collections:[10,1,1,""],HasExamples:[10,1,1,""],ProcRunner:[10,1,1,""],alphadump:[10,6,1,""],merge_tasks:[10,6,1,""],parse_fn_docstring:[10,6,1,""]},"pymatgen.db.builders.core.Builder":{connect:[10,3,1,""],finalize:[10,3,1,""],get_items:[10,3,1,""],get_parameters:[10,3,1,""],process_item:[10,3,1,""],run:[10,3,1,""],shared_dict:[10,3,1,""],shared_list:[10,3,1,""]},"pymatgen.db.builders.core.BuilderStatus":{FAILURE:[10,4,1,""],RUNNING:[10,4,1,""],SUCCESS:[10,4,1,""],WAIT:[10,4,1,""],fail:[10,3,1,""],has_failures:[10,3,1,""],running:[10,3,1,""],success:[10,3,1,""]},"pymatgen.db.builders.core.Collections":{MAX_VER:[10,4,1,""],MIN_VER:[10,4,1,""],database:[10,5,1,""],get_collection_name:[10,3,1,""],known_collections:[10,4,1,""]},"pymatgen.db.builders.core.HasExamples":{examples:[10,3,1,""],validate_examples:[10,3,1,""]},"pymatgen.db.builders.core.ProcRunner":{instance:[10,4,1,""],run:[10,3,1,""]},"pymatgen.db.builders.examples":{copy_builder:[11,0,0,"-"],file_builders:[11,0,0,"-"],maxvalue_builder:[11,0,0,"-"]},"pymatgen.db.builders.examples.copy_builder":{CopyBuilder:[11,1,1,""]},"pymatgen.db.builders.examples.copy_builder.CopyBuilder":{get_items:[11,3,1,""],process_item:[11,3,1,""]},"pymatgen.db.builders.examples.file_builders":{FileCounter:[11,1,1,""]},"pymatgen.db.builders.examples.file_builders.FileCounter":{finalize:[11,3,1,""],get_items:[11,3,1,""],get_parameters:[11,3,1,""],process_item:[11,3,1,""]},"pymatgen.db.builders.examples.maxvalue_builder":{MaxValueBuilder:[11,1,1,""]},"pymatgen.db.builders.examples.maxvalue_builder.MaxValueBuilder":{finalize:[11,3,1,""],get_items:[11,3,1,""],process_item:[11,3,1,""]},"pymatgen.db.builders.incr":{CollectionTracker:[10,1,1,""],DBError:[10,2,1,""],Mark:[10,1,1,""],NoTrackingCollection:[10,2,1,""],Operation:[10,1,1,""],TrackedCollection:[10,1,1,""],TrackedQueryEngine:[10,1,1,""],TrackingInterface:[10,1,1,""],UnTrackedQueryEngine:[10,1,1,""]},"pymatgen.db.builders.incr.CollectionTracker":{TRACKING_NAME:[10,4,1,""],create:[10,3,1,""],retrieve:[10,3,1,""],save:[10,3,1,""],tracking_collection:[10,5,1,""],tracking_collection_name:[10,5,1,""]},"pymatgen.db.builders.incr.Mark":{FLD_FLD:[10,4,1,""],FLD_MARK:[10,4,1,""],FLD_OP:[10,4,1,""],as_dict:[10,3,1,""],from_dict:[10,3,1,""],pos:[10,5,1,""],query:[10,5,1,""],to_dict:[10,3,1,""],update:[10,3,1,""]},"pymatgen.db.builders.incr.Operation":{build:[10,4,1,""],copy:[10,4,1,""],other:[10,4,1,""]},"pymatgen.db.builders.incr.TrackedCollection":{findall:[10,3,1,""],set_mark:[10,3,1,""],set_tracking:[10,3,1,""],tracked_find:[10,3,1,""]},"pymatgen.db.builders.incr.TrackedQueryEngine":{collection_name:[10,5,1,""],set_mark:[10,3,1,""],tracking:[10,5,1,""]},"pymatgen.db.builders.incr.TrackingInterface":{set_mark:[10,3,1,""]},"pymatgen.db.builders.incr.UnTrackedQueryEngine":{set_mark:[10,3,1,""]},"pymatgen.db.builders.schema":{HasMeta:[10,1,1,""],Scalar:[10,1,1,""],Schema:[10,1,1,""],SchemaError:[10,2,1,""],SchemaParseError:[10,2,1,""],SchemaPathError:[10,2,1,""],SchemaTypeError:[10,2,1,""],add_schemas:[10,6,1,""],get_schema:[10,6,1,""],load_schema:[10,6,1,""]},"pymatgen.db.builders.schema.HasMeta":{FIELD_SEP:[10,4,1,""],KV_SEP:[10,4,1,""],add_meta:[10,3,1,""]},"pymatgen.db.builders.schema.Scalar":{JSTYPES:[10,4,1,""],TYPES:[10,4,1,""],jstype:[10,5,1,""]},"pymatgen.db.builders.schema.Schema":{IS_DICT:[10,4,1,""],IS_LIST:[10,4,1,""],IS_SCALAR:[10,4,1,""],json_schema:[10,3,1,""],validate:[10,3,1,""]},"pymatgen.db.builders.util":{get_builder_log:[10,6,1,""],get_schema_dir:[10,6,1,""],get_schema_file:[10,6,1,""],get_test_dir:[10,6,1,""]},"pymatgen.db.creator":{VaspToDbTaskDrone:[8,1,1,""],contains_vasp_input:[8,6,1,""],get_basic_analysis_and_error_checks:[8,6,1,""],get_coordination_numbers:[8,6,1,""],get_uri:[8,6,1,""]},"pymatgen.db.creator.VaspToDbTaskDrone":{as_dict:[8,3,1,""],assimilate:[8,3,1,""],calculate_stability:[8,3,1,""],convert:[8,3,1,""],from_dict:[8,3,1,""],generate_doc:[8,3,1,""],get_task_doc:[8,3,1,""],get_valid_paths:[8,3,1,""],post_process:[8,3,1,""],process_killed_run:[8,3,1,""],process_vasprun:[8,3,1,""]},"pymatgen.db.dbconfig":{ConfigurationFileError:[8,2,1,""],DBConfig:[8,1,1,""],auth_aliases:[8,6,1,""],get_settings:[8,6,1,""],normalize_auth:[8,6,1,""]},"pymatgen.db.dbconfig.DBConfig":{ALL_SETTINGS:[8,4,1,""],DEFAULT_FILE:[8,4,1,""],DEFAULT_PORT:[8,4,1,""],DEFAULT_SETTINGS:[8,4,1,""],collection:[8,5,1,""],copy:[8,3,1,""],dbname:[8,5,1,""],host:[8,5,1,""],password:[8,5,1,""],port:[8,5,1,""],settings:[8,5,1,""],user:[8,5,1,""]},"pymatgen.db.dbgroup":{ConfigGroup:[8,1,1,""],CreateQueryEngineError:[8,2,1,""],RegexDict:[8,1,1,""],create_query_engine:[8,6,1,""]},"pymatgen.db.dbgroup.ConfigGroup":{SEP:[8,4,1,""],add:[8,3,1,""],add_path:[8,3,1,""],expand:[8,3,1,""],keys:[8,3,1,""],set_prefix:[8,3,1,""],uncache:[8,3,1,""]},"pymatgen.db.dbgroup.RegexDict":{re_get:[8,3,1,""],re_keys:[8,3,1,""]},"pymatgen.db.query_engine":{QueryEngine:[8,1,1,""],QueryError:[8,2,1,""],QueryListResults:[8,1,1,""],QueryResults:[8,1,1,""]},"pymatgen.db.query_engine.QueryEngine":{ALIASES_CONFIG_KEY:[8,4,1,""],COLLECTION_KEY:[8,4,1,""],DB_KEY:[8,4,1,""],HOST_KEY:[8,4,1,""],PASSWORD_KEY:[8,4,1,""],PORT_KEY:[8,4,1,""],USER_KEY:[8,4,1,""],aliases:[8,4,1,""],close:[8,3,1,""],collection_name:[8,5,1,""],default_criteria:[8,4,1,""],default_properties:[8,4,1,""],ensure_index:[8,3,1,""],from_config:[8,3,1,""],get_dos_from_id:[8,3,1,""],get_entries:[8,3,1,""],get_entries_in_system:[8,3,1,""],get_structure_from_id:[8,3,1,""],query:[8,3,1,""],query_one:[8,3,1,""],query_post:[8,4,1,""],result_post:[8,4,1,""],set_aliases_and_defaults:[8,3,1,""],set_collection:[8,3,1,""]},"pymatgen.db.query_engine.QueryListResults":{clone:[8,3,1,""]},"pymatgen.db.query_engine.QueryResults":{clone:[8,3,1,""],from_cursor:[8,3,1,""]},"pymatgen.db.util":{MongoJSONEncoder:[8,1,1,""],collection_keys:[8,6,1,""],csv_dict:[8,6,1,""],csv_list:[8,6,1,""],get_collection:[8,6,1,""],get_database:[8,6,1,""],get_settings:[8,6,1,""],kvp_dict:[8,6,1,""],quotable:[8,6,1,""]},"pymatgen.db.util.MongoJSONEncoder":{"default":[8,3,1,""]},"pymatgen.db.vv":{diff:[12,0,0,"-"],report:[12,0,0,"-"],util:[12,0,0,"-"],validate:[12,0,0,"-"]},"pymatgen.db.vv.diff":{Delta:[12,1,1,""],Differ:[12,1,1,""],IID:[12,1,1,""]},"pymatgen.db.vv.diff.Delta":{as_json:[12,3,1,""],cmp:[12,3,1,""]},"pymatgen.db.vv.diff.Differ":{CHANGED:[12,4,1,""],CHANGED_DELTA:[12,4,1,""],CHANGED_MATCH_DELTA:[12,4,1,""],CHANGED_MATCH_EXACT:[12,4,1,""],CHANGED_MATCH_KEY:[12,4,1,""],CHANGED_NEW:[12,4,1,""],CHANGED_OLD:[12,4,1,""],MISSING:[12,4,1,""],NEW:[12,4,1,""],NO_PROPERTY:[12,4,1,""],diff:[12,3,1,""]},"pymatgen.db.vv.diff.IID":{next:[12,3,1,""]},"pymatgen.db.vv.report":{DiffFormatter:[12,1,1,""],DiffHtmlFormatter:[12,1,1,""],DiffJsonFormatter:[12,1,1,""],DiffTextFormatter:[12,1,1,""],Emailer:[12,1,1,""],HTMLFormatter:[12,1,1,""],Header:[12,1,1,""],JSONFormatter:[12,1,1,""],MarkdownFormatter:[12,1,1,""],Report:[12,1,1,""],ReportBackupError:[12,2,1,""],ReportHeader:[12,1,1,""],ReportJSONEncoder:[12,1,1,""],ReportSection:[12,1,1,""],SectionHeader:[12,1,1,""],Table:[12,1,1,""],css_minify:[12,6,1,""]},"pymatgen.db.vv.report.DiffFormatter":{TITLE:[12,4,1,""],format:[12,3,1,""],ordered_cols:[12,3,1,""],result_subsets:[12,3,1,""],sort_rows:[12,3,1,""]},"pymatgen.db.vv.report.DiffHtmlFormatter":{DIFF_CSS:[12,4,1,""],css:[12,4,1,""],format:[12,3,1,""],style:[12,3,1,""],styles:[12,4,1,""]},"pymatgen.db.vv.report.DiffJsonFormatter":{Encoder:[12,1,1,""],document:[12,3,1,""],format:[12,3,1,""],will_copy:[12,3,1,""]},"pymatgen.db.vv.report.DiffJsonFormatter.Encoder":{"default":[12,3,1,""]},"pymatgen.db.vv.report.DiffTextFormatter":{format:[12,3,1,""]},"pymatgen.db.vv.report.Emailer":{send:[12,3,1,""],subject:[12,5,1,""]},"pymatgen.db.vv.report.HTMLFormatter":{format:[12,3,1,""]},"pymatgen.db.vv.report.Header":{add:[12,3,1,""],as_dict:[12,3,1,""],get:[12,3,1,""]},"pymatgen.db.vv.report.JSONFormatter":{format:[12,3,1,""]},"pymatgen.db.vv.report.MarkdownFormatter":{format:[12,3,1,""]},"pymatgen.db.vv.report.Report":{add_section:[12,3,1,""],header:[12,5,1,""],is_empty:[12,3,1,""]},"pymatgen.db.vv.report.ReportJSONEncoder":{"default":[12,3,1,""]},"pymatgen.db.vv.report.ReportSection":{body:[12,5,1,""]},"pymatgen.db.vv.report.Table":{add:[12,3,1,""],column_names:[12,5,1,""],column_widths:[12,5,1,""],ncol:[12,5,1,""],nrow:[12,5,1,""],sortby:[12,3,1,""],values:[12,5,1,""]},"pymatgen.db.vv.util":{DoesLogging:[12,1,1,""],ElapsedTime:[12,1,1,""],JsonWalker:[12,1,1,""],Timing:[12,1,1,""],YamlConfig:[12,1,1,""],args_kvp_nodup:[12,6,1,""],args_list:[12,6,1,""],letter_num:[12,6,1,""],total_size:[12,6,1,""]},"pymatgen.db.vv.util.JsonWalker":{dict_expand:[12,3,1,""],value_json:[12,3,1,""],walk:[12,3,1,""]},"pymatgen.db.vv.validate":{ConstraintSpec:[12,1,1,""],ConstraintSpecSection:[12,1,1,""],ConstraintViolation:[12,1,1,""],ConstraintViolationGroup:[12,1,1,""],DBError:[12,2,1,""],NullConstraintViolation:[12,1,1,""],ProgressMeter:[12,1,1,""],Projection:[12,1,1,""],PythonMethod:[12,1,1,""],Sampler:[12,1,1,""],Validator:[12,1,1,""],ValidatorSyntaxError:[12,2,1,""],mongo_get:[12,6,1,""]},"pymatgen.db.vv.validate.ConstraintSpec":{CONSTRAINT_SECT:[12,4,1,""],FILTER_SECT:[12,4,1,""],SAMPLE_SECT:[12,4,1,""]},"pymatgen.db.vv.validate.ConstraintSpecSection":{constraints:[12,5,1,""],filters:[12,5,1,""],get_key:[12,3,1,""],sampler:[12,5,1,""]},"pymatgen.db.vv.validate.ConstraintViolation":{expected_value:[12,5,1,""],field:[12,5,1,""],got_value:[12,5,1,""],op:[12,5,1,""]},"pymatgen.db.vv.validate.ConstraintViolationGroup":{add_violations:[12,3,1,""]},"pymatgen.db.vv.validate.ProgressMeter":{count:[12,5,1,""],set_subject:[12,3,1,""],update:[12,3,1,""]},"pymatgen.db.vv.validate.Projection":{add:[12,3,1,""],to_mongo:[12,3,1,""]},"pymatgen.db.vv.validate.PythonMethod":{BAD_CONSTRAINT_ERR:[12,4,1,""],CANNOT_COMBINE_ERR:[12,4,1,""],constraint_is_method:[12,3,1,""]},"pymatgen.db.vv.validate.Sampler":{DEFAULT_DIST:[12,4,1,""],DIST_CODES:[12,4,1,""],DIST_RUNIF:[12,4,1,""],is_empty:[12,5,1,""],sample:[12,3,1,""]},"pymatgen.db.vv.validate.Validator":{SectionParts:[12,1,1,""],num_violations:[12,3,1,""],set_aliases:[12,3,1,""],set_progress:[12,3,1,""],validate:[12,3,1,""]},mgvv:{"--alias":[5,7,1,"cmdoption-mgvv-alias"],"--collection":[5,7,1,"cmdoption-mgvv-collection"],"--config":[5,7,1,"cmdoption-mgvv-0"],"--email":[5,7,1,"cmdoption-mgvv-email"],"--file":[5,7,1,"cmdoption-mgvv-f"],"--format":[5,7,1,"cmdoption-mgvv-format"],"--help":[5,7,1,"cmdoption-mgvv-help"],"--limit":[5,7,1,"cmdoption-mgvv-limit"],"--verbose":[5,7,1,"cmdoption-mgvv-v"],"-C":[5,7,1,"cmdoption-mgvv-collection"],"-F":[5,7,1,"cmdoption-mgvv-format"],"-a":[5,7,1,"cmdoption-mgvv-alias"],"-c":[5,7,1,"cmdoption-mgvv-0"],"-e":[5,7,1,"cmdoption-mgvv-email"],"-f":[5,7,1,"cmdoption-mgvv-f"],"-h":[5,7,1,"cmdoption-mgvv-help"],"-m":[5,7,1,"cmdoption-mgvv-limit"],"-v":[5,7,1,"cmdoption-mgvv-v"]},pymatgen:{db:[8,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","exception","Python exception"],"3":["py","method","Python method"],"4":["py","attribute","Python attribute"],"5":["py","property","Python property"],"6":["py","function","Python function"],"7":["std","cmdoption","program option"]},objtypes:{"0":"py:module","1":"py:class","2":"py:exception","3":"py:method","4":"py:attribute","5":"py:property","6":"py:function","7":"std:cmdoption"},terms:{"0":[1,5,8,9,10,11,12],"028":4,"0px":12,"1":[1,5,8,10,11,12],"10":[4,5,12],"100":[5,10,12],"1000000000":12,"1016":4,"10px":12,"12":4,"127":[8,10],"12px":12,"13":2,"14":12,"14px":12,"15":5,"15px":12,"165f4b":12,"16px":12,"18":12,"1em":12,"2":[1,4,5,8,10,12],"20":[5,12],"2011":4,"2012":4,"2013":4,"20px":12,"27017":[1,3,5,8,10],"2c3e50":12,"2em":12,"3":5,"300":12,"314":4,"319":4,"32em":12,"4":4,"4169e1":12,"44":12,"5":[4,5,8],"50":[5,12],"500":12,"577504":12,"577918":12,"5em":12,"5px":12,"62":12,"666666":12,"68":4,"7":4,"700":12,"778899":12,"8":1,"80":12,"8em":12,"9":8,"9101":5,"99":10,"abstract":10,"boolean":10,"break":[1,12],"case":[1,5,10,11],"class":[1,4,8,9,10,11,12],"const":12,"default":[1,3,4,5,8,10,12],"do":[1,4,8,10,11,12],"enum":10,"export":2,"final":[1,8,10,11],"float":[8,10,11,12],"function":[1,8,10,11,12],"import":[1,4,10],"int":[8,10,11,12],"long":5,"new":[1,2,4,5,8,9,10,11,12],"null":10,"return":[1,2,4,8,10,11,12],"static":[8,10,12],"switch":8,"true":[1,5,8,10,11,12],"try":[8,12],"while":8,A:[1,4,5,8,9,10,12],AND:4,AS:4,As:[1,5,12],At:5,BE:4,BUT:4,Be:8,But:1,By:[1,5],FOR:4,For:[1,4,5,8,10,11,12],IN:4,IS:4,If:[1,3,4,5,8,10,11,12],In:[1,5,8],It:[0,4,5,8,12],NO:4,NOT:4,Not:1,OF:4,OR:4,One:[10,11],THE:4,TO:4,That:10,The:[0,1,3,4,5,8,9,10,11,12],Then:8,There:[1,8],These:[1,5],To:[0,1,4,5,8,10,11,12],WITH:4,Will:8,With:[1,11],_:12,__getitem__:10,__init__:1,__missing__:12,__setitem__:10,_alias:5,_email:5,_group:1,_id:[1,10,12],_is_datetim:10,_log:1,_recipi:12,_src:1,_subject:12,_target_col:1,_theme:0,ab:[5,8,12],abc:8,abil:[2,8],abl:1,about:1,abov:[4,5],absolut:1,abspath:0,abstractdron:8,accept:[2,4],access:[1,3,4,8,9,10],accommod:1,accord:[1,5],across:[5,8],act:[8,10],action:[1,4,10,11,12],activ:[1,10],activest:12,actual:[1,8],ad:[1,2,5,8,10,12],adapt:[4,12],add:[0,1,2,4,5,8,10,11,12],add_exist:12,add_kei:10,add_meta:10,add_path:8,add_schema:10,add_sect:12,add_viol:12,addit:[1,8,12],additional_criteria:8,additional_field:8,addon:0,addr:5,address:5,adequ:8,admin:8,admin_password:[3,5],admin_us:[3,5],administr:5,advanc:4,advantag:5,affect:[8,10],aflow:8,after:[1,4,5,8,10,11],against:[5,10],alchemi:[6,7,8],algorithm:1,alia:[4,5,8,10],alias:[2,4,5,8,10,12],aliases_config:[8,10],aliases_config_kei:8,align:12,all:[1,3,4,5,8,9,10,11,12],all_set:8,allow:[1,2,4,5,8,10,12],allow_dup:12,allow_nan:[8,12],alphabet:10,alphadump:10,alreadi:[10,12],also:[0,1,2,4,5,8],altern:[0,1,2,10,11],although:1,alwai:[1,4,5,10],amaz:8,amount:1,an:[1,2,3,4,5,8,10,11,12],analysi:[4,5,8,10,11],ani:[1,4,5,8,10,11,12],anoth:[1,8,11],anubhav:4,anyth:[4,10],api:[2,8,10],app:8,append:[0,8],appli:[4,5,8,9,10,12],appropri:[10,12],approxim:12,ar:[1,2,3,4,5,8,10,11,12],arbitrari:[2,8,12],arg:[1,8,10,11,12],argpars:12,args_kvp_nodup:12,args_list:12,arguabl:5,argument:[1,4,8,10,11,12],arial:12,aris:4,around:10,arrai:[5,8,10,12],arriv:5,as_dict:[8,10,12],as_json:12,ascii:[8,12],ask:1,assert:12,assess:8,assimil:8,associ:[2,4,5,12],assum:[1,3,5,8,12],atom:4,attempt:[8,12],attribut:[8,10,12],auth:[8,10],auth_alias:8,authent:[1,3,4,5,8,10],author:[1,4,8],auto:4,autodoc:1,autom:1,automat:[1,4,5,8,10,11,12],avail:[4,10],awesom:1,b:[1,8,12],back:1,background:12,bad:[10,11,12],bad_constraint_err:12,bandstructur:[4,10],bandwidth:5,bar:[5,10,12],base:[8,9,10,11,12],basestr:8,basi:[8,12],basic:[10,11],batch_siz:10,becaus:[1,5],becom:5,been:[1,4,10,11,12],befor:[1,5,8,10],begin:[1,5],behavior:[1,8,12],behind:1,being:12,below:[1,4,5,8],benefit:1,better:[1,2,5],between:[1,8,10,12],big:12,bigbird:3,bigbuild:1,binari:4,bird:1,black:12,blank:12,bleed:4,block:5,bodi:12,bookkeep:1,bool:[8,10,11,12],border:12,borg:8,borgqueen:8,both:[1,5,8,10,12],branch:9,brief:2,brototyp:10,browser:5,bug:[2,4],buggi:4,build:[2,4,10,11,12],build_kw:10,builder:[2,6,7,8],builderror:10,builderstatu:10,builtin:12,burden:10,c1:12,c2:12,c:[4,5,12],cach:8,calcul:[1,5,8,11,12],calculate_st:8,call:[1,4,5,8,10,12],caller:10,can:[0,1,2,4,5,8,9,10,12],cannot:[8,10,12],cannot_combine_err:12,care:[4,8],caus:[1,8,11,12],ceder:4,central:1,cfg1:8,cfg2:8,cfg3:8,cfg:8,chain:[8,10],chang:[5,10,12],changed_delta:12,changed_match_delta:12,changed_match_exact:12,changed_match_kei:12,changed_new:12,changed_old:12,charact:[1,8,11,12],charg:4,check:[0,8,10,12],check_circular:[8,12],chemic:8,chevrier:4,child:12,choic:[4,12],cholia:4,choos:[1,10,11],chosen:1,circular:[8,12],cl:8,claim:4,clash:1,classmethod:[8,10,12],clazz:8,clean:[5,8],cleanup:[2,10,11],clear:12,client:1,clone:[4,8],close:[4,8],cmp:12,code:[1,5,8,10,11,12],coincident:1,coll:[8,10,12],collect:[1,2,3,4,5,8,10,11,12],collection_kei:8,collection_nam:[5,8,10],collectiontrack:10,colnam:12,color:12,column:12,column_nam:12,column_width:12,com:[8,12],combin:[5,8,12],come:[1,5],comma:[5,8,12],command:[1,4,5,12],commandlin:5,commatsci:4,common:[1,10],commonli:4,compact:[8,10,12],compar:[5,8,12],compat:8,complet:4,complex:[1,5],compliant:[8,12],complic:5,compound:8,compress:8,compress_do:8,compris:1,comput:[4,8,12],computedentri:[4,8],concept:1,concern:8,conclus:1,concret:10,cond:12,condit:[4,5,12],conf:[0,1,5,8],config:[2,4,5,8,10,11,12],config_dict:8,config_fil:8,configgroup:8,configur:[1,2,4,8,10,12],configurationfileerror:8,conjunct:5,connect:[1,4,5,8,10],consid:[4,8],consist:[8,12],consol:5,consola:12,constraint:12,constraint_is_method:12,constraint_sect:12,constraint_spec:12,constraintoper:12,constraintspec:12,constraintspecsect:12,constraintviol:12,constraintviolationgroup:12,construct:10,constructor:[1,8,9,10,12],contain:[0,1,4,8,10,12],contains_vasp_input:8,content:[0,6,7],continu:12,contract:4,contriv:1,control:1,conveni:[1,5,8],conversion_electrod:10,convert:[5,8,10],coordin:8,copi:[1,4,8,10,11],copy_build:[1,7,8,10],copybuild:11,copyright:4,core:[1,6,7,8,9,11],core_collect:10,core_dev:5,core_prod:5,correspond:[4,8],could:[1,5,8,12],count:[1,8,11,12],counter:1,coupl:1,cpu:[1,8],crawl:8,creat:[1,2,4,8,10,11,12],create_query_engin:8,createqueryengineerror:8,creation:[4,8,10],creator:[4,6,7],crit:[1,4,11],criteria:[1,4,5,8,9,10,11],css:[5,12],css_class:12,css_minifi:12,csv:2,csv_dict:8,csv_list:8,ctrl:4,cur:1,cur_val:1,current:[1,4,8,10],cursor:[1,8,10,12],custom:[1,8,11,12],d:[1,5,8,10],daemon:4,dahn:10,dai:[8,12],damag:4,dan:[2,4],data:[1,2,4,8,9,10,12],databas:[2,8,9,10,12],dataset:[8,12],datatyp:1,date:10,datetim:10,davidson:4,db1:12,db2:12,db:[1,2,3,5,6,7],db_kei:8,db_version:10,dbconfig:[2,6,7],dberror:[10,12],dbgroup:[2,6,7],dbname:8,dbpath:4,dd:12,deal:4,debug:8,declar:1,decod:[8,12],deep:8,deepli:8,def:[1,8,10,11,12],default_criteria:8,default_dist:12,default_fil:8,default_port:8,default_properti:[8,10],default_set:8,defin:[5,8,10,11],deleg:8,delet:4,delta:[2,12],demand:8,densiti:5,depend:[2,4],deprec:[2,8],depth:10,dequ:12,deriv:[1,4,11],desc:[1,10,11,12],descr2:[10,11],describ:[1,5,10,11],descript:[10,11,12],design:8,desir:[4,10,11],dest:12,destin:1,detail:[1,4,8,10,11],detect:8,determin:[1,5,9,10],dev:[5,8],develop:[4,5,10],dict:[1,8,10,11,12],dict_expand:12,dict_transform:12,dictionari:[1,8,12],did:1,diff:[2,6,7,8],diff_css:12,differ:[1,2,5,8,10,12],diffformatt:12,diffhtmlformatt:12,diffjsonformatt:12,diffraction_pattern:10,difftextformatt:12,dir_nam:[4,8],direct:[5,12],directli:[8,10],directori:[1,2,4,8,10],disconnect:8,discov:[10,11],discuss:8,displai:5,dist_:12,dist_cod:12,dist_runif:12,distinct:[1,8,12],distinct_kei:8,distrib:12,distribut:[1,4,12],div:12,dkgunter:[2,5],dl:12,do_foo1:12,do_foo2:12,doc:[0,1,2,8,10],docstr:[1,10,11],document:[0,1,4,5,8,10,12],doe:[1,4,5,8,10,12],doeslog:12,doesn:[10,11,12],doi:4,domain:5,don:10,done:[4,10],dos_f:8,dot:[8,12],doubl:10,down:8,download:4,driv:0,driver:[1,10,11],drone:[4,8],dt:12,dump:10,duplic:[8,12],durat:5,dure:[2,8,12],e2e2e2:12,e9e9e9:12,e:[1,4,5,8,10,11,12],e_above_hul:[5,8,10],each:[1,4,5,8,9,10,11,12],easi:[1,4,5,8],easier:[4,8,10],easiest:[4,5],easili:1,easy_instal:4,edg:4,effect:1,effici:[5,8],either:[1,5,10],elaps:12,elapsedtim:12,electrod:10,electronic_structur:10,element:[1,5,8,12],elimin:[8,12],els:[1,8,10,11,12],elt:12,em:12,email:12,email_mod:12,emb:5,embed:5,empti:[1,8,10,11,12],enabl:[4,8,9,10],encapsul:[1,8,12],encod:[8,12],end:[1,5,10],end_tim:12,energi:[4,5,8,10],energy_per_atom:4,engin:[4,8],enough:[1,5,12],ensur:[2,8,12],ensure_ascii:[8,12],ensure_index:8,enter:4,entir:[1,4,8,12],entri:[4,8],enumer:10,equival:[1,5],err:[1,8,11],error:[1,2,5,8,10,11,12],escap:[8,12],essenc:8,etc:[1,2,4,5,8,12],etl:1,evalu:5,even:12,event:[4,12],everi:[1,8,10,12],everyth:1,exact:12,exactli:5,examin:[1,8,10],examp:5,exampl:[1,3,4,7,8,10,12],excel:[4,5],except:[1,4,8,10,12],execut:[1,10,11],exist:[0,8,10],exit:[1,5],expand:[8,12],expect:[1,4,8,12],expected_valu:12,explain:8,explicit:1,explicitli:[1,4,8,10],explor:8,expr1:5,expr2:5,expr:5,express:[4,5,8,10,12],ext:10,extend:8,extend_collect:9,extens:[4,8,10],extern:12,extra:[1,5,12],extract:[1,12],f3f3f3:12,f5f5f5:12,f:[1,5,8],fail:[10,12],fail_fn:10,failur:10,fals:[1,8,10,11,12],famili:[5,12],faster:1,fe:8,featur:[2,4,8,11],fetch:[1,5],few:[1,4],field1:5,field2:5,field3:5,field4:5,field5:5,field:[1,2,4,5,8,10,12],field_sep:10,figur:1,file:[1,2,3,4,8,9,10,11,12],file_build:[7,8,10],file_or_fp:10,filecount:11,filenam:[1,4,5,8],fileserv:8,fill:12,filter:[1,5,11,12],filter_sect:12,final_energi:[8,10],final_structur:8,find:[1,5,8,10,12],findal:10,fine:[1,4,8],first:[1,2,4,8,12],fit:[4,12],fix:[2,5,12],flag:[1,8,11],flamyngo:2,flask:0,fld_fld:10,fld_mark:10,fld_op:10,flexibl:2,fltr:12,fmt:12,fn:10,folder:[0,4],follow:[0,1,3,4,5,8,10,12],font:12,foo:[1,5,8,10,12],footprint:12,fork:10,form:[1,4,5,8,12],format:[1,4,5,8,10,12],formula:4,found:[1,5,8,10,12],four:8,framework:1,free:4,frequenc:5,from:[1,2,4,5,8,9,10,11,12],from_config:8,from_cursor:8,from_dict:[8,10],front:2,frozenset:12,full:[1,5,8,10,12],furnish:4,futur:[1,4],g:[1,4,5,8,10,11,12],gen:12,gener:[1,4,5,8,9,10,12],generate_doc:8,generate_task_doc:8,genom:[2,4,8],geoffroi:4,gerbrand:4,get:[1,5,8,10,11,12],get_basic_analysis_and_error_check:8,get_builder_log:[1,10],get_collect:8,get_collection_nam:10,get_coordination_numb:8,get_databas:8,get_dos_from_id:8,get_el:12,get_entri:[4,8,9],get_entries_in_system:8,get_item:[1,10,11],get_items_paramet:[10,11],get_kei:12,get_paramet:[1,10,11],get_schema:10,get_schema_dir:10,get_schema_fil:10,get_set:8,get_structure_from_id:[4,8],get_task_doc:8,get_test_dir:10,get_uri:8,get_valid_path:8,gga:8,git:0,github:[2,4],give:[1,3],given:[1,3,4,5,8,10,11,12],glob:8,go:[8,10,12],got_valu:12,gov:[2,5],grain:4,grant:4,gridf:8,grouchi:5,group:[1,8,11,12],guarante:[8,12],guid:0,gunter:[2,4],h1:12,h2:12,h3:12,h:[1,5],ha:[1,4,5,10],had:[10,11],had_error:[10,11],handl:[1,2,10],handler:12,happen:1,hardwar:1,has_failur:10,hasexampl:10,hasmeta:10,hautier:4,have:[1,5,8,10,11,12],header:12,height:12,help:[1,4,5,12],helper:8,helvetica:12,here:[1,3,4,5,10,11],herebi:4,heterogen:8,hi:0,hierarchi:10,high:[9,10],higher:10,highest:[1,10],highli:[1,8],himself:8,hint:8,hit:4,hive:8,holder:4,hopefulli:4,host:[1,2,3,5,8,10,12],host_kei:8,hostnam:[5,8,10],how:[1,10],howev:[4,8],html:[1,2,5,10,12],html_theme:0,html_theme_path:0,htmlformatt:12,http:[5,10,12],huge:[1,12],hundr:1,hyperlink:[2,5,12],i:[1,5,8,10,11],icsd:10,icsd_id:5,id:[4,8],id_column:12,id_prefix:10,idea:1,identifi:[1,5,10,12],ignor:[1,8,10,12],iid:12,illustr:1,implement:[1,2,8,9,10,11,12],impli:4,impos:10,improp:1,improv:2,inc_structur:8,incar:8,includ:[1,4,5,8,10,12],incom:[8,10,12],incr:[1,6,7,8],increas:[1,5],increment:[2,10,11,12],indent:[5,8,10,12],independ:1,index:[4,10],individu:1,infil:8,infin:[8,12],infinit:[8,12],info:[1,5,10,12],inform:[1,5,12],inherit:[1,10],init:[4,5,8,10],initi:[1,5,8,10,12],input:[1,8,9,10,11,12],input_fil:[1,11],insecur:4,insert:[1,2,5,8,10,12],insid:[1,10],instal:[1,4],instanc:[1,10,11,12],instanti:8,instead:[1,5,8,10,12],instruct:[1,4],integ:[8,10,12],intend:0,intens:1,interfac:[2,4,5,8,10],intern:[8,10],interpret:[5,8,10,11],interv:12,introduc:1,introduct:2,intuit:8,invalid:12,invoc:1,invok:1,involv:1,ioerror:10,ip:3,is_dict:10,is_empti:12,is_list:10,is_scalar:10,is_track:10,isn:1,issu:[2,5],ital:12,item:[1,5,8,10,11,12],item_separ:[8,12],iter:[1,8,10,11,12],its:[1,5,12],itself:[1,10,11,12],j:4,jain:4,javascript:[8,10,12],json:[1,2,3,4,5,8,10,12],json_schema:10,jsonencod:[8,12],jsonformatt:12,jsonwalk:12,jstype:10,just:[1,4,5,8,10,12],k:5,kei:[1,2,5,8,10,11,12],kenneth:0,key_separ:[8,12],keyerror:[8,10],keyword:[1,3,5,10,12],kill:[1,8,10],kind:[4,8],know:[1,8],known:[8,10],known_collect:10,kocher:4,kpoint:8,kr:0,kr_small:0,kristin:4,kv_sep:10,kvp_dict:8,kw:[10,12],kwarg:[1,8,10,11,12],l:8,lambda:10,languag:4,larg:[0,5,8,12],larger:12,last:[1,5,8,10],later:[1,8,10],latest:[4,10],lbl:[2,5],lbnl:4,leav:5,left:12,len:1,length:12,less:12,let:[5,8,12],letter:12,letter_num:12,level:[5,8,10,12],li2o:4,li:8,liabil:4,liabl:4,librari:[0,4,8],lightweight:1,like:[1,4,5,8,10,12],limit:[2,4,5,8,10],line:[1,4,5,11,12],line_sep:12,liner:1,link:4,linux:4,list:[1,5,8,10,11,12],lixfeyoz:8,ll:1,load:[1,10],load_schema:10,localhost:[1,3,5,8,12],locat:8,log:[1,5,10,12],logger:[1,10],logic:[1,11],look:[1,4,5,8,12],lookup:8,lot:5,low:10,m:5,mac:4,machin:[1,8,10],magic:1,mai:[1,4,5,8,10,11],mail:5,main:[1,5,8,10,12],maintain:2,major:8,make:[1,2,4,5,8,10],manag:[4,8],mani:[4,5,8,9],manipul:1,manual:[4,10],map:[1,5,8,10],mapi_kei:[2,8],margin:12,mark:[1,10],markdown:[5,12],markdownformatt:12,match:[1,5,8,12],materi:[1,2,4,8,9,10,11,12],materialsproject:[5,8],matgendb:2,matter:1,max:[1,12],max_dberror:12,max_force_threshold:8,max_item:12,max_ver:10,max_viol:12,maximum:[1,9,11,12],maxvalue_build:[7,8,10],maxvaluebuild:11,md:5,mdev:5,me:[5,12],mean:[1,5,8,10,12],meant:[1,8],member:[8,12],memori:[1,8,12],merchant:4,merg:[4,10],merge_task:10,messag:[1,5,10,12],meta:[10,12],metadata:[1,10,12],metavar:12,method:[1,4,8,9,10,11,12],mg_core:10,mgbuild:[1,2,4,11],mgdb:[2,4,5,8],mgvv:[2,4],mi:5,michael:4,might:1,min_item:12,min_ver:10,mind:4,minim:[1,5],minimum:[1,12],minor:2,minu:5,miss:[5,12],mit:[4,8],mitsuhiko:0,mix:[10,12],mkdir:4,mode:[1,3,4],modern:1,modif:[1,8],modifi:[4,8,10],modul:[1,2,4,6,7],moment:5,monaco:12,mongdb:10,mongo:[4,8,12],mongo_get:12,mongocli:[2,10],mongod:4,mongodb:[1,2,3,4,5,8,10,11,12],mongojsonencod:[8,12],mongoqueri:12,monospac:12,monoton:1,more:[1,2,4,5,9,10,11,12],most:[0,1,4,5,8,10,12],move:1,mprod:5,mps_id:5,mr_snuffleupagu:3,msonabl:8,much:[1,4],multicor:1,multipl:[1,2,5],multiprocess:[1,8,9,10,11],must:[1,5,8,10,11,12],my:[1,5],my_build:10,mybuild:[10,11],mycollect:[5,10],mydatabas:5,mydb:[8,10],myfil:8,myhost:5,n:[1,5,12],name1:[5,10],name2:[5,10],name:[1,3,4,5,8,10,11,12],name_in_db:5,name_or_index:12,namespac:[6,8],nan:[8,12],narg:12,ncol:12,ncore:[1,9,10,11],nearli:8,neb:4,necessari:[1,5],need:[1,4,5,8],neg:[5,8,12],negatori:5,nelement:5,nest:[8,12],neue:12,new_max:1,new_nam:10,new_task:10,new_valu:12,newer:1,newlin:[8,12],next:[1,12],no_properti:12,noath:3,non:[1,8,10,12],none:[1,5,8,9,10,11,12],noninfring:4,normal:[10,12],normalize_auth:8,note:[1,4,5,8,10,12],noth:[10,11],notic:[1,4,5],notrackingcollect:10,now:[1,2],nrow:12,nth:12,nullconstraintviol:12,num:[1,5,10,12],num_char:1,num_cor:1,num_lin:1,num_viol:12,number:[1,2,3,5,8,9,10,11,12],numer:[2,5,12],o:[8,12],obei:8,object:[1,4,8,9,10,11,12],obtain:[2,4,8],occur:[1,8],odd:12,off:1,often:1,ok:[10,11],old:[1,5,12],omit:4,onc:[1,4],one:[0,1,5,8,9,10,11,12],ones:1,ong:4,onli:[1,3,5,8,10,11,12],onlin:10,only_miss:12,only_valu:12,op:[10,11,12],open:[1,4,5,8,10],oper:[1,5,10,12],oppos:12,option:[1,2,4,8,10,11,12],option_str:12,optional_data:8,orbit:8,order:[1,8,10,12],ordered_col:12,org:[5,8,10],organ:[8,10],os:[0,4],oscar:5,osx:5,ot:8,other:[1,2,5,8,10,11,12],othercontainerclass:12,otherorg:5,othersuck:5,otherwis:[4,5,8,10,11,12],our:[10,12],out:[0,1,4,5],outlin:4,output:[1,2,5,8,9,10,11,12],over:[1,5,12],overflowerror:[8,12],overrid:[1,8,10],own:[1,4,8],oxid:2,p:[5,12],packag:[1,2,4,5,6,7],pad:12,page:[0,1,2,5],pair:[5,8,10,11,12],parallel:10,param2_nam:[10,11],param2_typ:[10,11],param:[1,10,11,12],param_nam:[10,11],param_typ:[10,11],paramet:[1,3,4,8,9,10,11,12],parameter:12,parent:1,pars:[8,10,11,12],parse_do:8,parse_fn_docstr:10,parse_projected_eigen:8,part:[1,5,8,12],partial:5,particular:[4,8],pass:[1,5,8,9,10,11,12],password:[1,2,3,5,8,10],password_kei:8,past:10,path:[0,1,5,8,10,12],pattern:[5,8],pdf:[1,2],per:[1,4,5],percent:5,perfectli:[1,4],perform:[1,2,8,9,10,11,12],permiss:4,permit:4,person:4,persson:4,phase:8,phase_diagram:10,ping:4,pip:4,pl:2,place:[1,4,8,10,12],plain:12,pleas:[4,5,8],plu:5,po:10,point:[5,8],pool:9,popul:12,porou:[10,11],port:[1,3,5,8,10,12],port_kei:8,portion:4,poscar:8,posit:[1,5,10,12],possibl:[1,5],post:[8,10],post_process:8,postprocess:[4,8],potcar:8,potenti:[8,12],power:[2,4],pre:8,prefer:5,prefix:[1,2,5,8,10],present:[1,5,8,10],press:4,pretti:[1,8,12],pretty_formula:[4,5],prevent:[8,12],previou:[1,12],previous:1,print:[1,4,5,8,10,12],probabl:[1,12],process:[1,8,10,11],process_item:[1,10,11],process_killed_run:8,process_vasprun:8,procrunn:10,prod:5,produc:5,product:[4,5],profil:8,program:[1,5,10,11],progress:12,progressmet:12,project:[0,1,4,8,9,12],prompt:4,prop:[4,5,12],prop_dict:8,proper:2,properli:[1,2],properti:[1,4,5,8,10,12],proport:12,provid:[2,4,5,8,9],publish:4,pull:1,purpos:[1,4,5,8,10],put:[0,1,5,10,12],py:[0,4],pymatgen:[1,2,3,5],pymatpro:10,pymmongo:8,pymongo:[4,8,10,12],pypi:4,python:[1,4,8,10,11,12],pythonmethod:12,q:[1,5],qe:[4,10],qe_class:8,qetransmut:9,qualifi:12,quantiti:[5,8],queri:[1,2,5,8,9,10,12],query_engin:[1,4,6,7,10,11],query_on:8,query_post:[8,10],queryengin:[1,4,8,9,10,11,12],queryerror:8,querylistresult:8,queryresult:8,question:1,queue:[1,10,11],quiet:1,quot:5,quotabl:8,r3:12,r:[1,4,8],radiu:12,rais:[8,10,11,12],randomli:12,rather:5,raw:[1,12],re:1,re_get:8,re_kei:8,read:[1,3,5,8,10,11],readabl:1,readi:12,readlin:1,readonli:8,readonly_first:8,readonly_password:[2,3,5],readonly_us:[2,3,5,8],real:[1,5],realli:[1,10],rebuild:1,rec:[1,12],recalcul:1,receiv:5,receiver2:5,recip:12,recipi:[5,12],recogn:[3,5],recommend:[1,8],record:[1,5,8,10,11,12],recurs:[8,12],reduc:1,refactor:2,refer:[8,12],regardless:10,regexdict:8,regress:[8,12],regular:[8,10],reitz:0,rel:[1,4],relai:5,relat:[0,10],relax1:8,relax2:8,relax:8,releas:[2,4],reli:1,rememb:1,remot:12,remov:[2,8],repeat:[1,5],replac:[1,5,8,10],replicaset:[8,10],repo:4,report:[2,5,6,7,8],report_field:12,reportbackuperror:12,reporthead:12,reportjsonencod:12,reportsect:12,repositori:0,repr:12,represent:[8,10,12],request:10,requir:[1,2,3,5,8,11,12],research:4,resolv:[8,10],resort:8,respect:[4,5,10],rest:[2,5,8],restrict:[4,8],restructur:[10,11],result:[1,2,8,10,12],result_cursor:8,result_post:[8,10],result_subset:12,retriev:[1,5,8,9,10,12],rgb:12,richard:4,right:[4,10],robust:4,root:[4,8,10],row:12,rs:12,rtype:10,run:[2,4,8,10,11,12],s:[0,1,4,5,8,9,10,11,12],sai:[5,8],sake:1,same:[1,5,8,10,12],sampl:[4,12],sample_sect:12,sampler:12,san:12,sandbox:10,sandbox_collect:10,satisfi:8,save:[1,5,10],scalar:10,scan:1,scene:1,schema:[6,7,8],schemaerror:10,schemaparseerror:10,schemapatherror:10,schemata:10,schematypeerror:10,scheme:[5,10],scienc:4,script:[1,2,4,8],search:[4,5,9,12],sec:12,second:[1,5,11,12],section:[1,5,12],sectionhead:12,sectionpart:12,see:[1,4,5,8,10,12],seen:1,select:[1,5,12],self:[1,8,10,11,12],sell:4,semant:12,send:[5,12],sender:[5,12],sens:[1,10],sensibl:[8,12],sent:[5,12],sep:8,separ:[5,8,12],sequenc:8,sequenti:1,serial:[8,10,12],serializ:[8,12],serif:12,server1:5,server2:5,server:[3,4,5,8,12],set:[1,2,4,5,8,10,12],set_alias:12,set_aliases_and_default:8,set_collect:8,set_mark:10,set_prefix:8,set_progress:12,set_subject:12,set_track:10,setter:10,setup:[10,11],shall:4,share:[1,10],shared_dict:[1,10],shared_list:10,shell:5,should:[1,4,5,8,10,12],show:[1,5,12],shown:[1,5],shreya:4,shyue:4,sign:[5,12],signific:2,similar:4,simpl:[4,5,8,11,12],simpli:[1,4,5,8,10,12],simplif:2,simplifi:[1,5,8],simul:8,simulate_mod:8,sinc:1,singl:[1,5,8,10,12],site:8,site_dict:8,size:[5,12],skip:[1,8,12],skipkei:[8,12],slice:5,slow:8,small:[0,1],smoqe:5,smtp:[5,12],snippet:1,snl_id:5,so:[1,4,5,10],softwar:4,sole:12,some:[1,2,4,5,8,10,11,12],somebodi:5,somecontainerclass:12,somekei:5,sometim:4,somewhat:8,sort:[1,2,8,10,12],sort_kei:[8,12],sort_row:12,sortbi:12,sourc:[1,4,8,9,10,11,12],space:10,spawn:1,spec:[5,12],special:[1,10,11],specif:[1,2,4,5,8,12],specifi:[4,5,8,10,12],spectacular:8,spend:5,sphinx:[1,2,4],spiderman2:8,spiderman:8,spot:1,stabil:[2,8],stage:1,standard:[0,1,4,5,8,10],standardtransmut:9,start:[1,4,10],start_tim:12,state:[1,8,10],statu:[10,11],step:[1,4],stone:1,stop:[1,4],storag:8,store:[1,8,12],str:[1,8,10,12],strang:1,streamlin:1,string:[4,5,8,10,12],strip:10,structur:[4,8,9],style:[1,4,5,8,9,10,11,12],sub:[1,5,8,10,12],subclass:[8,10,11,12],subcommand:2,subdirectori:10,subfold:8,subj:12,subject:[4,5,12],subkei:8,sublicens:4,submit:5,submodul:[0,6,7],subpackag:[1,6],subsequ:[1,4],subset:[5,12],substanti:4,subtl:1,succe:1,success:[1,8,10,11],suffici:[5,8],suffix:10,suitabl:4,superclass:12,suppi:[8,10],suppli:[8,10,11],support:[2,8,12],supported_properti:8,sure:[1,10],sy:0,symbol:8,syntax:[3,4,8,12],system:[4,8],t:[1,8,10,11,12],tabl:[2,5,12],tag:8,take:[2,5,8,10,12],taken:[4,5],target:[1,5,10,11,12],task:[1,3,4,5,8,10],task_id:[4,5,8],task_suffix:10,tasknam:8,td:12,temporari:10,term:4,test1:[1,5],test2:[1,5],test:[4,5,8,10,12],test_db:4,test_porous_build:10,text:[5,10,11,12],th:12,than:[1,5,8,9,12],thei:[1,2,3,4,9],them:[1,2,8,12],theme:0,these_must:5,thi:[0,1,4,5,8,9,10,11,12],thing:[1,12],third:5,those:5,thread:[1,10,11],through:[1,2],throughput:9,thu:1,time:[1,5,10,11,12],titl:12,tmp:10,to_dict:10,to_includ:5,to_mongo:12,toler:5,ton:5,tool:4,top:[5,10,11,12],topmost:4,tort:4,total_s:12,tr1:12,tr:12,tr_even:12,tr_odd:12,track:[1,10],track_field:10,track_oper:10,tracked_find:10,trackedcollect:10,trackedqueryengin:[1,10],tracker:[10,12],tracking_collect:10,tracking_collection_nam:10,tracking_nam:10,trackinginterfac:10,transform:[1,8,9,12],transformedstructur:9,translat:[4,8,10,12],transmut:[6,7,8],transpar:[1,10],treat:12,treatment:8,tri:8,trivial:1,tupl:[8,10,12],turn:1,tweedlede:8,tweedledum:8,twice:11,two:[1,2,5,8,10,12],type:[1,2,4,5,8,10,11,12],typecod:10,typeerror:[8,12],typenam:10,typic:8,u:[1,5,8],ui:[2,4,8],ultim:1,unauthent:5,uncach:8,under:[4,5],underli:8,understand:1,understood:1,uniform:12,uniqu:8,unit:[4,10],unittest:4,unix:[5,8],unknown:12,unless:[1,12],unlik:[1,5],unset:8,unsuccess:[8,10],until:12,untrackedqueryengin:10,unzip:4,up:[1,4,5],updat:[1,2,8,10,11,12],update_dupl:8,upsert:1,uri:8,url:[5,12],us:[0,1,2,3,4,5,8,9,10,11,12],usabl:2,usag:[5,10],use_admin:8,use_full_uri:8,user:[1,2,3,5,8,10],user_kei:8,user_kw:10,usual:[1,5,8],util:[1,6,7],v1:12,v2:12,v:[1,5,8],val:12,valid:[4,6,7,8,10],validate_exampl:10,validatorsyntaxerror:12,valu:[1,2,5,8,10,11,12],value1:10,value2:10,value_json:12,value_transform:12,valueerror:[8,10,11,12],vand:2,variabl:[1,2],variou:8,vasp:[3,4,5,8,10],vasprun:8,vasprun_fil:8,vasptodbtaskdron:[4,8],verbos:[1,5,10,12],veri:[0,1,4,5,8],verif:4,version:[1,2,8,9,10,11,12],via:8,view:5,vincent:4,violat:[5,12],visual:5,vof:2,volume_change_threshold:8,vv:[2,6,7,8],wa:[1,5,10,11,12],wai:[1,4,8,10],wait:10,walk:[1,12],want:[1,5,8,10],warranti:4,we:[1,5,8,10,12],web:8,webpag:5,websit:4,weight:12,well:[3,4],went:[10,11],were:8,what:[1,10],when:[1,4,8,10,12],where:[1,4,5,8,10],whether:[1,4,8,9,10,12],which:[1,4,5,8,9,10,11,12],white:[10,12],whitespac:[8,12],who:10,whole:[1,8],whom:4,whose:8,why:10,width:[5,12],will_copi:12,william:4,wipe:10,wise:5,within:[5,12],without:[1,4,8,10],work:[1,4,10,11,12],wors:[1,5],would:[1,5,8,10,12],wrap:12,wrapper:[8,10],writabl:5,write:[3,4,8,11],written:[1,4],wrong:[1,10,11,12],www:8,x:[5,12],xl:2,xml:8,xxxx:5,y:[1,5,12],yaml:[2,5,12],yamlconfig:12,yet:1,yield:[1,12],you:[0,1,4,5,8,10,12],your:[0,1,4,5,8],yyyi:5,zero:[1,5],zlib:8},titles:["krTheme Sphinx Style","Database \u201cBuilders\u201d","v0.7.0","Database configuration","Pymatgen-db","Materials Project Database Validation: mgvv","pymatgen","pymatgen namespace","pymatgen.db package","pymatgen.db.alchemy package","pymatgen.db.builders package","pymatgen.db.builders.examples package","pymatgen.db.vv package"],titleterms:{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,alchemi:9,api:4,argument:5,basic:1,build:1,builder:[1,10,11],calcul:4,chang:4,cite:4,configur:[3,5],constraint:5,content:[1,8,9,10,11,12],copy_build:11,copybuild:1,core:10,creator:8,databas:[1,3,4,5],db:[4,8,9,10,11,12],dbconfig:8,dbgroup:8,development:4,diff:[5,12],displai:1,doc:4,email:5,exampl:[5,11],extend:4,featur:1,file:5,file_build:11,filecount:1,get:4,how:4,incr:10,increment:1,indic:4,initi:4,insert:4,krtheme:0,licens:4,log:4,materi:5,maxvalue_build:11,maxvaluebuild:1,mgvv:5,modul:[8,9,10,11,12],namespac:7,option:5,other:4,packag:[8,9,10,11,12],page:4,parallel:1,project:5,pymatgen:[4,6,7,8,9,10,11,12],queri:4,query_engin:8,refer:4,report:12,requir:4,run:1,schema:10,setup:4,simpl:1,sphinx:0,stabl:4,style:0,subcommand:5,submodul:[8,9,10,11,12],subpackag:[7,8,9,10,12],syntax:5,tabl:4,transmut:9,usag:[1,4],util:[8,10,12],v0:2,valid:[5,12],version:4,vv:12,write:1}}) \ No newline at end of file diff --git a/pymatgen/db/__init__.py b/pymatgen/db/__init__.py index cd19acf..caa7459 100644 --- a/pymatgen/db/__init__.py +++ b/pymatgen/db/__init__.py @@ -11,7 +11,7 @@ __author__ = "Shyue Ping Ong, Dan Gunter" __date__ = "Jul 22 2017" -__version__ = "2021.5.13" +__version__ = "2021.5.28" from .query_engine import QueryEngine diff --git a/setup.py b/setup.py index 201150d..b7db749 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ setup( name="pymatgen-db", packages=find_namespace_packages(include=["pymatgen.*"]), - version="2021.5.13", + version="2021.5.28", setup_requires=["numpy"], install_requires=["pymatgen>=2022.0.3", "monty>=0.9.6", "pymongo>=2.8", "smoqe"], extras_require={ @@ -48,4 +48,4 @@ ], scripts=[os.path.join("scripts", f) for f in os.listdir("scripts") if not os.path.isdir(os.path.join("scripts", f))] -) +) \ No newline at end of file