pax_global_header00006660000000000000000000000064137632104260014516gustar00rootroot0000000000000052 comment=aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7 nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/000077500000000000000000000000001376321042600203075ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/.github/000077500000000000000000000000001376321042600216475ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/.github/CONTRIBUTING.md000066400000000000000000000053231376321042600241030ustar00rootroot00000000000000Hi! Thanks for your interest in contributing to nearley. nearley has always been a community-driven project, and we have a history of almost always merging good-quality PRs. Unfortunately, we're a small team with limited time to work on nearley. If you follow these guidelines, we'll be able to get to your issue much faster! --- Before submitting any **issue**, have you done the following? * Read [the README](https://github.com/Hardmath123/nearley/blob/master/README.md). * Included the version of node (`node -v`), npm (`npm -v`), and nearley (`nearleyc -v`) that you are using. Ideally, these should all be up-to-date. If you think you have found a **bug**, have you done the following? * Included a _minimal_ example demonstrating that bug, along with expected and actual output. * Extra credit: suggested a solution. * For **TypeScript**, please clarify if possible whether your bug is in the `@types/nearley` package (which isn't maintained by us), or in `generate.js`. If you are asking for **help**, have you done the following? * Looked through our [frequently asked questions](https://github.com/Hardmath123/nearley/issues?utf8=✓&q=label%3Aquestion), on the off chance that someone has already asked that question. * Included the _full_ source to your grammar, including supporting files for postprocessors. If you are suggesting a **feature**, have you done the following? * Looked through past issues, open and closed, to see whether it has been suggested before. * Offered a _compelling_ use-case that _cannot_ be accomplished with nearley as it stands. --- Before submitting a **pull request**, have you done the following? * Read [the README](https://github.com/Hardmath123/nearley/blob/master/README.md). * Checked in with a maintainer before you start hacking, to make sure it is something we would merge (this is more important for bigger changes). * Run the benchmark (`npm run benchmark`) and test suite (`npm test`) with and without your change to detect possible bugs, and included the output in your pull request as a separate comment. Parsing is tricky, and innocent changes can sometimes kill performance. :-( * _Not_ introduced any new dependencies. Check in with a maintainer if you think you need a dependency. * Please don't introduce style changes either--these introduce noise which makes your contribution harder to review! Check with a maintainer: we might be happy to accept them in a separate PR :-) * Documented your changes: new features should be mentioned in the docs, which are located in `/docs`. Edit the relevant `/docs/md/*.md` file in Markdown, and then (in a separate commit) run `npm install && npm run make` from the `/docs` directory to compile the documentation pages. nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/.gitignore000066400000000000000000000002461376321042600223010ustar00rootroot00000000000000out.js node_modules/ docs/node_modules/ .DS_Store test/profile.log test/grammars/parens.js test/grammars/whitespace.js *.swp *.ps1 *.cmd *.bat npm-debug.log sandbox/ nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/.nojekyll000066400000000000000000000000001376321042600221250ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/.travis.yml000066400000000000000000000006731376321042600224260ustar00rootroot00000000000000language: node_js node_js: - "6" - "8" install: - npm install - cd docs; npm install; cd .. script: - npm test - npm run benchmark -- -g dont-actually-run-benchmarks - cd docs; npm run make; cd .. - git status - git diff - git diff-index --quiet HEAD -- docs || (echo "$(tput bold)$(tput setaf 4)Did you forget to rebuild the docs? $ cd docs; npm run make$(tput sgr0)"; exit 1) cache: directories: - "node_modules" nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/CNAME000066400000000000000000000000171376321042600210530ustar00rootroot00000000000000nearley.js.org nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/LICENSE.txt000066400000000000000000000021431376321042600221320ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2014, 2015, 2016, 2017, 2018, 2019 Kartik Chandra, Tim Radvan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/README.md000066400000000000000000000065441376321042600215770ustar00rootroot00000000000000# [nearley](http://nearley.js.org) ↗� [![JS.ORG](https://img.shields.io/badge/js.org-nearley-ffb400.svg?style=flat-square)](http://js.org) [![npm version](https://badge.fury.io/js/nearley.svg)](https://badge.fury.io/js/nearley) nearley is a simple, fast and powerful parsing toolkit. It consists of: 1. [A powerful, modular DSL for describing languages](https://nearley.js.org/docs/grammar) 2. [An efficient, lightweight Earley parser](https://nearley.js.org/docs/parser) 3. [Loads of tools, editor plug-ins, and other goodies!](https://nearley.js.org/docs/tooling) nearley is a **streaming** parser with support for catching **errors** gracefully and providing _all_ parsings for **ambiguous** grammars. It is compatible with a variety of **lexers** (we recommend [moo](http://github.com/tjvr/moo)). It comes with tools for creating **tests**, **railroad diagrams** and **fuzzers** from your grammars, and has support for a variety of editors and platforms. It works in both node and the browser. Unlike most other parser generators, nearley can handle *any* grammar you can define in BNF (and more!). In particular, while most existing JS parsers such as PEGjs and Jison choke on certain grammars (e.g. [left recursive ones](http://en.wikipedia.org/wiki/Left_recursion)), nearley handles them easily and efficiently by using the [Earley parsing algorithm](https://en.wikipedia.org/wiki/Earley_parser). nearley is used by a wide variety of projects: - [artificial intelligence](https://github.com/ChalmersGU-AI-course/shrdlite-course-project) and - [computational linguistics](https://wiki.eecs.yorku.ca/course_archive/2014-15/W/6339/useful_handouts) classes at universities; - [file format parsers](https://github.com/raymond-h/node-dmi); - [data-driven markup languages](https://github.com/idyll-lang/idyll-compiler); - [compilers for real-world programming languages](https://github.com/sizigi/lp5562); - and nearley itself! The nearley compiler is bootstrapped. nearley is an npm [staff pick](https://www.npmjs.com/package/npm-collection-staff-picks). ## Documentation Please visit our website https://nearley.js.org to get started! You will find a tutorial, detailed reference documents, and links to several real-world examples to get inspired. ## Contributing Please read [this document](.github/CONTRIBUTING.md) *before* working on nearley. If you are interested in contributing but unsure where to start, take a look at the issues labeled "up for grabs" on the issue tracker, or message a maintainer (@kach or @tjvr on Github). nearley is MIT licensed. A big thanks to Nathan Dinsmore for teaching me how to Earley, Aria Stewart for helping structure nearley into a mature module, and Robin Windels for bootstrapping the grammar. Additionally, Jacob Edelman wrote an experimental JavaScript parser with nearley and contributed ideas for EBNF support. Joshua T. Corbin refactored the compiler to be much, much prettier. Bojidar Marinov implemented postprocessors-in-other-languages. Shachar Itzhaky fixed a subtle bug with nullables. ## Citing nearley If you are citing nearley in academic work, please use the following BibTeX entry. ```bibtex @misc{nearley, author = "Kartik Chandra and Tim Radvan", title = "{nearley}: a parsing toolkit for {JavaScript}", year = {2014}, doi = {10.5281/zenodo.3897993}, url = {https://github.com/kach/nearley} } ``` nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/bin/000077500000000000000000000000001376321042600210575ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/bin/nearley-railroad.js000077500000000000000000000076571376321042600246710ustar00rootroot00000000000000#!/usr/bin/env node try { var rr = require('railroad-diagrams'); } catch(e) { // optional dependency not fullfilled console.log('Error: When you installed nearley, the dependency "railroad-diagrams" failed to install. Try running "npm install -g nearley" to re-install nearley. If that doesn\'t fix the problem, please file an issue on the nearley GitHub repository.') process.exit(1) } var fs = require('fs'); var path = require('path'); var opts = require('commander'); var version = require('../package.json').version; opts.version(version, '-v, --version') .arguments('') .option('-o, --out [filename.svg]', 'File to output to (default stdout).', false) .parse(process.argv); var input = opts.args[0] ? fs.createReadStream(opts.args[0]) : process.stdin; var output = opts.out ? fs.createWriteStream(opts.out) : process.stdout; function railroad(grm) { var rules = {}; grm.forEach(function(instr) { if (instr.rules) { if (!rules[instr.name]) { rules[instr.name] = []; } rules[instr.name] = rules[instr.name].concat(instr.rules); } }); var style = fs.readFileSync( path.join( path.dirname(require.resolve('railroad-diagrams')), 'railroad-diagrams.css' ) ); var diagrams = Object.keys(rules).map(function(r) { return [ '

' + r + '

', '
', diagram(r).toString(), '
' ].join('\n'); }); function diagram(name) { var selectedrules = rules[name]; var outer = {subexpression: selectedrules}; function renderTok(tok) { // ctx translated to correct position already if (tok.subexpression) { return new rr.Choice(0, tok.subexpression.map(renderTok)); } else if (tok.ebnf) { switch (tok.modifier) { case ":+": return new rr.OneOrMore(renderTok(tok.ebnf)); break; case ":*": return new rr.ZeroOrMore(renderTok(tok.ebnf)); break; case ":?": return new rr.Optional(renderTok(tok.ebnf)); break; } } else if (tok.literal) { return new rr.Terminal(JSON.stringify(tok.literal)); } else if (tok.mixin) { return new rr.Comment("Pas implementé."); } else if (tok.macrocall) { return new rr.Comment("Pas implementé."); } else if (tok.tokens) { return new rr.Sequence(tok.tokens.map(renderTok)); } else if (typeof(tok) === 'string') { return new rr.NonTerminal(tok); } else if (tok.constructor === RegExp) { return new rr.Terminal(tok.toString()); } else if (tok.token) { return new rr.Terminal(tok.token); } else { return new rr.Comment("[Unimplemented]"); } } return new rr.Diagram([renderTok(outer)]); } return [ '', '', '', '', '', '', '', diagrams.join('\n'), '', '' ].join('\n'); } var nearley = require('../lib/nearley.js'); var StreamWrapper = require('../lib/stream.js'); var parserGrammar = nearley.Grammar.fromCompiled(require('../lib/nearley-language-bootstrapped.js')); var parser = new nearley.Parser(parserGrammar); input .pipe(new StreamWrapper(parser)) .on('finish', function() { if (parser.results[0]) { output.write(railroad(parser.results[0])); } else { process.stderr.write('SyntaxError: unexpected EOF\n'); } }); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/bin/nearley-test.js000077500000000000000000000045501376321042600240400ustar00rootroot00000000000000#!/usr/bin/env node /* eg. node bin/nearleythere.js examples/js/left.js --input "....." or, node bin/nearleythere.js examples/js/AycockHorspool.js --input "aa" */ var fs = require('fs'); var nearley = require('../lib/nearley.js'); var opts = require('commander'); var StreamWrapper = require('../lib/stream.js'); var version = require('../package.json').version; opts.version(version, '-v, --version') .arguments('') .option('-i, --input [string]', 'An input string to parse (if not provided then read from stdin)') .option('-s, --start [symbol]', 'An optional start symbol (if not provided then use the parser start symbol)', false) .option('-o, --out [filename]', 'File to output to (defaults to stdout)', false) .option('-q, --quiet', 'Output parse results only (hide Earley table)', false) .parse(process.argv); var output = opts.out ? fs.createWriteStream(opts.out) : process.stdout; if (!opts.args[0]) { throw new Error('Please supply a grammer.js file path as a command-line argument'); } var filename = require('path').resolve(opts.args[0]); var grammar = nearley.Grammar.fromCompiled(require(filename)); if (opts.start) grammar.start = opts.start var parser = new nearley.Parser(grammar, { keepHistory: true, }); var writeTable = function (writeStream, parser) { writeStream.write("Table length: " + parser.table.length + "\n"); writeStream.write("Number of parses: " + parser.results.length + "\n"); writeStream.write("Parse Charts"); parser.table.forEach(function (column, index) { writeStream.write("\nChart: " + index++ + "\n"); var stateNumber = 0; column.states.forEach(function (state, stateIndex) { writeStream.write(stateIndex + ": " + state.toString() + "\n"); }) }) writeStream.write("\n\nParse results: \n"); } var writeResults = function (writeStream, parser) { writeStream.write(require('util').inspect(parser.results, {colors: !opts.quiet, depth: null})); writeStream.write("\n"); } if (typeof(opts.input) === "undefined") { process.stdin .pipe(new StreamWrapper(parser)) .on('finish', function() { if (!opts.quiet) writeTable(output, parser); writeResults(output, parser); }); } else { parser.feed(opts.input); if (!opts.quiet) writeTable(output, parser); writeResults(output, parser); } nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/bin/nearley-unparse.js000077500000000000000000000023411376321042600245320ustar00rootroot00000000000000#!/usr/bin/env node var fs = require('fs'); var nearley = require('../lib/nearley.js'); var opts = require('commander'); var randexp = require('randexp'); var Unparse = require('../lib/unparse.js'); var version = require('../package.json').version; opts.version(version, '-v, --version') .arguments('') .option('-s, --start [name]', 'An optional start symbol (if not provided then use the parser start symbol)', false) .option('-n, --count [n]', 'The number of samples to generate (separated by \\n).', 1) .option('-d, --depth [n]', 'The depth bound of each sample. Defaults to -1, which means "unbounded".', -1) .option('-o, --out [filename]', 'File to output to (defaults to stdout)') .parse(process.argv); var output = opts.out ? fs.createWriteStream(opts.out) : process.stdout; if (!opts.args[0]) { throw new Error('Please supply a grammer.js file path as a command-line argument'); } var grammar = new require(require('path').resolve(opts.args[0])); // the main loop for (var i=0; i 1) output.write("\n"); } nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/bin/nearleyc.js000077500000000000000000000025301376321042600232220ustar00rootroot00000000000000#!/usr/bin/env node var fs = require('fs'); var nearley = require('../lib/nearley.js'); var opts = require('commander'); var Compile = require('../lib/compile.js'); var StreamWrapper = require('../lib/stream.js'); var version = require('../package.json').version; opts.version(version, '-v, --version') .arguments('') .option('-o, --out [filename.js]', 'File to output to (defaults to stdout)', false) .option('-e, --export [name]', 'Variable to set parser to', 'grammar') .option('-q, --quiet', 'Suppress linter') .option('--nojs', 'Do not compile postprocessors') .parse(process.argv); var input = opts.args[0] ? fs.createReadStream(opts.args[0]) : process.stdin; var output = opts.out ? fs.createWriteStream(opts.out) : process.stdout; var parserGrammar = nearley.Grammar.fromCompiled(require('../lib/nearley-language-bootstrapped.js')); var parser = new nearley.Parser(parserGrammar); var generate = require('../lib/generate.js'); var lint = require('../lib/lint.js'); input .pipe(new StreamWrapper(parser)) .on('finish', function() { parser.feed('\n'); var c = Compile( parser.results[0], Object.assign({version: version}, opts) ); if (!opts.quiet) lint(c, {'out': process.stderr, 'version': version}); output.write(generate(c, opts.export)); }); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/builtin/000077500000000000000000000000001376321042600217555ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/builtin/cow.ne000066400000000000000000000000451376321042600230700ustar00rootroot00000000000000# Match a loud moo cow -> "MO" "O":+ nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/builtin/number.ne000066400000000000000000000020751376321042600235750ustar00rootroot00000000000000unsigned_int -> [0-9]:+ {% function(d) { return parseInt(d[0].join("")); } %} int -> ("-"|"+"):? [0-9]:+ {% function(d) { if (d[0]) { return parseInt(d[0][0]+d[1].join("")); } else { return parseInt(d[1].join("")); } } %} unsigned_decimal -> [0-9]:+ ("." [0-9]:+):? {% function(d) { return parseFloat( d[0].join("") + (d[1] ? "."+d[1][1].join("") : "") ); } %} decimal -> "-":? [0-9]:+ ("." [0-9]:+):? {% function(d) { return parseFloat( (d[0] || "") + d[1].join("") + (d[2] ? "."+d[2][1].join("") : "") ); } %} percentage -> decimal "%" {% function(d) { return d[0]/100; } %} jsonfloat -> "-":? [0-9]:+ ("." [0-9]:+):? ([eE] [+-]:? [0-9]:+):? {% function(d) { return parseFloat( (d[0] || "") + d[1].join("") + (d[2] ? "."+d[2][1].join("") : "") + (d[3] ? "e" + (d[3][1] || "+") + d[3][2].join("") : "") ); } %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/builtin/postprocessors.ne000066400000000000000000000014021376321042600254060ustar00rootroot00000000000000# Simple postprocessors # Postprocessor generator that lets you select the nth element of the list. # `id` is equivalent to nth(0). @{% // Bypasses TS6133. Allow declared but unused functions. // @ts-ignore function nth(n) { return function(d) { return d[n]; }; } %} # Postprocessor generator that lets you generate an object dynamically. @{% // Bypasses TS6133. Allow declared but unused functions. // @ts-ignore function $(o) { return function(d) { var ret = {}; Object.keys(o).forEach(function(k) { ret[k] = d[o[k]]; }); return ret; }; } %} # A separated list of elements. delimited[el, delim] -> $el ($delim $el {% nth(1) %}):* {% function(d) { return [d[0]].concat(d[1]); } %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/builtin/string.ne000066400000000000000000000013571376321042600236150ustar00rootroot00000000000000# Matches various kinds of string literals # Double-quoted string dqstring -> "\"" dstrchar:* "\"" {% function(d) {return d[1].join(""); } %} sqstring -> "'" sstrchar:* "'" {% function(d) {return d[1].join(""); } %} btstring -> "`" [^`]:* "`" {% function(d) {return d[1].join(""); } %} dstrchar -> [^\\"\n] {% id %} | "\\" strescape {% function(d) { return JSON.parse("\""+d.join("")+"\""); } %} sstrchar -> [^\\'\n] {% id %} | "\\" strescape {% function(d) { return JSON.parse("\""+d.join("")+"\""); } %} | "\\'" {% function(d) {return "'"; } %} strescape -> ["\\/bfnrt] {% id %} | "u" [a-fA-F0-9] [a-fA-F0-9] [a-fA-F0-9] [a-fA-F0-9] {% function(d) { return d.join(""); } %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/builtin/whitespace.ne000066400000000000000000000002621376321042600244350ustar00rootroot00000000000000# Whitespace: `_` is optional, `__` is mandatory. _ -> wschar:* {% function(d) {return null;} %} __ -> wschar:+ {% function(d) {return null;} %} wschar -> [ \t\n\v\f] {% id %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/000077500000000000000000000000001376321042600212375ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/getting-started.html000066400000000000000000000321411376321042600252330ustar00rootroot00000000000000 Getting started - nearley.js - JS Parsing Toolkit

Getting started

nearley consists of two components: a compiler and a parser.

The nearley compiler converts grammar definitions from a simple BNF-based syntax to a small JS module. You can then use that module to construct a nearley parser, which parses input strings.

Installation

Both components are published as a single NPM package compatible with Node.js and most browsers.

To use the nearley parser, you need to install nearley locally.

$ npm install --save nearley

To use the nearley compiler, you need to additionally install nearley globally.

$ npm install -g nearley

This actually adds several new commands to your $PATH:

  • nearleyc compiles grammar files to JavaScript.
  • nearley-test lets you quickly test a grammar against some input and see the results. It also lets you explore the internal state of nearley’s Earley table, in case you find that interesting.
  • nearley-unparse inverts a parser into a generator, allowing you to create random strings that match your grammar.
  • nearley-railroad generates pretty railroad diagrams from your parser. This is mainly helpful for creating documentation, as (for example) on json.org.

These are documented on the tooling page.

Note: If you’re not ready to install nearley yet, you can follow along in your browser using the nearley playground, an online interface for exploring nearley grammars interactively.

nearley in 3 steps

nearley was written with users in mind: getting started with nearley is as simple as:

Step 1: Describe your grammar using the nearley syntax. In a file called grammar.ne, write:

main -> (statement "\n"):+
statement -> "foo" | "bar"

Step 2: Compile the grammar to a JavaScript module. On the command line, run:

$ nearleyc grammar.ne -o grammar.js

Step 3: Parse some data! In a new JavaScript file, instantiate a Parser object and feed it a string:

const nearley = require("nearley");
const grammar = require("./grammar.js");

// Create a Parser object from our grammar.
const parser = new nearley.Parser(nearley.Grammar.fromCompiled(grammar));

// Parse something!
parser.feed("foo\n");

// parser.results is an array of possible parsings.
console.log(parser.results); // [[[[ "foo" ],"\n" ]]]

What’s next?

Now that you have nearley installed, you can learn how to write a grammar!

Further reading

nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/glossary.html000066400000000000000000000315661376321042600240030ustar00rootroot00000000000000 Glossary - nearley.js - JS Parsing Toolkit

Glossary

Parsing terminology gets very confusing very quickly. Here is a glossary that can help us all communicate more effectively.

token: the smallest meaningful unit (the “words�) of your language

lexer: a function that converts a sequence of characters to a sequence of tokens (converts a sequence of letters and spaces to a sequence of words)

string: a sequence of tokens

concatenation: joining two strings by appending one to the other

language: a set of strings

production rule: a set of strings specified as a sequence of symbols, such that the rule matches a string if it is a concatenation of strings matched by the respective symbols

symbol: a generic term for a member of a production rule, either a nonterminal or a terminal

nonterminal: a symbol that specifies a set of other production rules that match

terminal: a symbol that directly specifies a set of tokens that match

context-free grammar: a set of production rules that together specify a language

context-free language: a language that can be specified by a context-free grammar

Backus-Naur Form: a set of conventions for describing and typesetting context-free grammars

recognizer: a function that takes a grammar and a string and sees if the grammar matches the string (it just says “yes� or “no�)

parser: a function that takes a grammar and a string and returns a derivation of that string from that grammar

derivation: a way to apply the production rules of a grammar recursively to obtain a string

parse tree: a representation of a derivation as a tree

abstract syntax tree (AST): a version of a parse tree that has undergone some postprocessors to simplify it (for example, an AST is likely to omit whitespace)

preprocessor: the dialect of JavaScript targeted by nearleyc; for example, you can emit TypeScript code instead of plain JavaScript (not to be confused with postprocessor)

postprocessor: a function associated with a production rule, whose purpose is to transform a parse tree into an AST, making simplifications along the way — for example, by omitting whitespace (not to be confused with preprocessor)

ambiguity: a situation where there exist more than one derivations for a single string — unlike most parser libraries, nearley returns all possible derivations

Earley algorithm: a parsing algorithm developed by Jay Earley in 1968, which can efficiently parse all context-free grammars

Earley table: the intermediate data structure created by the Earley algorithm, where each new token creates a new column

Leo optimization: a trick we can use to optimize right-recursion, making it just as efficient to parse as left-recursion

left-recursion: a situation where a nonterminal refers to a production rule whose first symbol matches the same nonterminal

epsilon: the empty production rule, matching only the empty string

nullable rule: a production rule that matches the empty string, even though it is not necessarily equal to the epsilon rule (for example, the concatenation of epsilon with epsilon)

nearley: a parser that parses context-free languages, along with several additional utilities for building languages

nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/grammar.html000066400000000000000000000503711376321042600235610ustar00rootroot00000000000000 Writing a parser - nearley.js - JS Parsing Toolkit

Writing a parser

This section describes the nearley grammar language, in which you can describe grammars for nearley to parse. Grammars are conventionally kept in .ne files. You can then use nearleyc to compile your .ne grammars to JavaScript modules.

You can find many examples of nearley grammars online, as well as some in the examples/ directory of the Github repository.

Vocabulary

  • A terminal is a single, constant string or a token. For example, the keyword "if" is a terminal.
  • A nonterminal describes a set of possible strings. For example, all “ifâ€� statements can be described by a single nonterminal whose value depends on the condition and body of the if statement.
  • A rule (or production rule) is a definition of a nonterminal. For example,
    ifStatement -> "if" condition "then" statement "endif"
    is the rule according to which the if statement nonterminal, ifStatement, is parsed. It depends on the nonterminals condition and statement. A nonterminal can be described by multiple rules. For example, we can add a second rule
    ifStatement -> "if" condition "then" statement "else" statement "endif"
    to support “else� clauses.

By default, nearley attempts to parse the first nonterminal defined in the grammar. In the following grammar, nearley will try to parse input text as an expression.

expression -> number "+" number
expression -> number "-" number
expression -> number "*" number
expression -> number "/" number
number -> [0-9]:+

You can use the pipe character | to separate alternative rules for a nonterminal. In the example below, expression has four different rules.

expression ->
    number "+" number
  | number "-" number
  | number "*" number
  | number "/" number

The keyword null stands for the epsilon rule, which matches nothing. The following nonterminal matches zero or more cows in a row, such as cowcowcow:

a -> null | a "cow"

Postprocessors

By default, nearley wraps everything matched by a rule into an array. For example, when rule -> "tick" "tock" matches the string "ticktock", it creates the “parse tree� ["tick", "tock"]. Most of the time, however, you need to process that data in some way: for example, you may want to filter out whitespace, or transform the results into a custom JavaScript object.

For this purpose, each rule can have a postprocessor: a JavaScript function that transforms the array and returns a “processed� version of the result. Postprocessors are wrapped in {% %}s:

expression -> number "+" number {%
    function(data) {
        return {
            operator: "sum",
            leftOperand:  data[0],
            rightOperand: data[2] // data[1] is "+"
        };
    }
%}

The rule above will parse the string 5+10 into { operator: "sum", leftOperand: 5, rightOperand: 10 }.

The postprocessor can be any function with signature function(data, location, reject). Here,

  • data: Array is an array that contains the results of parsing each part of the rule. Note that it is still an array, even if the rule only has one part! You can use the built-in {% id %} postprocessor to convert a one-item array into the item itself.

    For arrow function users, a convenient pattern is to decompose the data array within the argument of the arrow function:

    expression ->
        number "+" number {% ([fst, _, snd]) => fst + snd %}
      | number "-" number {% ([fst, _, snd]) => fst - snd %}
      | number "*" number {% ([fst, _, snd]) => fst * snd %}
      | number "/" number {% ([fst, _, snd]) => fst / snd %}
  • location: number is the index (zero-based) at which the rule match starts. You might use this to show the location of an expression in an error message.

    Note: Many tokenizers provide line, column, and offset information in the Token object. If you are using a tokenizer, then it is better to use that information than the nearley-provided variable, which would only tell you that it saw the nth token rather than the nth character in the string.

  • reject: Object is a unique object that you can return to signal that this rule doesn’t actually match its input.

    Reject is used in some edge cases. For example, suppose you want sequences of letters to match variables, except for the keyword if. In this case, your rule may be

    variable -> [a-z]:+ {%
        function(d,l, reject) {
            if (d[0] == 'if') {
                return reject;
            } else {
                return {'name': d[0]};
            }
        }
    %}

    Warning: Grammars using reject are not context-free, and are often much slower to parse. So, we encourage you not to use reject unless absolutely necessary. You can usually use a tokenizer instead.

nearley provides one built-in postprocessor:

  • id returns the first element of the data array. This is useful to extract the content of a single-element array: foo -> bar {% id %}

More syntax: tips and tricks

Comments

Comments are marked with ‘#’. Everything from # to the end of a line is ignored:

expression -> number "+" number # sum of two numbers

Charsets

You can use valid RegExp charsets in a rule (unless you’re using a tokenizer):

not_a_letter -> [^a-zA-Z]

The . character can be used to represent any character.

Case-insensitive string literals

You can create case-insensitive string literals by adding an i after the string literal:

cow -> "cow"i # matches CoW, COW, and so on.

Note that if you are using a lexer, your lexer should use the i flag in its regexes instead. That is, if you are using a lexer, you should not use the i suffix in nearley.

EBNF

nearley supports the *, ?, and + operators from EBNF as shown:

batman -> "na":* "batman" # nananana...nanabatman

You can also use capture groups with parentheses. Its contents can be anything that a rule can have:

banana -> "ba" ("na" {% id %} | "NA" {% id %}):+

Macros

Macros allow you to create polymorphic rules:

# Matches "'Hello?' 'Hello?' 'Hello?'"
matchThree[X] -> $X " " $X " " $X
inQuotes[X] -> "'" $X "'"

main -> matchThree[inQuotes["Hello?"]]

Macros are dynamically scoped, which means they see arguments passed to parent macros:

# Matches "Cows oink." and "Cows moo!"
sentence[ANIMAL, PUNCTUATION] -> animalGoes[("moo" | "oink" | "baa")] $PUNCTUATION
animalGoes[SOUND] -> $ANIMAL " " $SOUND # uses $ANIMAL from its caller

main -> sentence["Cows", ("." | "!")]

Macros are expanded at compile time and inserted in places they are used. They are not “real� rules. Therefore, macros cannot be recursive (nearleyc will go into an infinite loop trying to expand the macro-loop). They must also be defined before they are used.

Additional JS

For more intricate postprocessors, or any other functionality you may need, you can include chunks of JavaScript code between production rules by surrounding it with @{% ... %}:

@{%
const cowSays = require("./cow.js");
%}

cow -> "moo" {% ([moo]) => cowSays(moo) %}

Note that it doesn’t matter where you add these; they all get hoisted to the top of the generated code.

Importing other grammars

You can include the content of other grammar files:

@include "../misc/primitives.ne" # path relative to file being compiled
sum -> number "+" number # uses "number" from the included file

There are some common nonterminals like “integer� and “double-quoted string� that ship with nearley to help you prototype grammars efficiently. You can include them using the @builtin directive:

@builtin "number.ne"
main -> int:+

(Note that we mean “efficient� in the sense that you can get them set up very quickly. The builtins are inefficient in the sense that they make your parser slower. For a “real� project, you would want to switch to a lexer and implement these primitives yourself!)

See the builtin/ directory on Github for more details. Contributions are welcome!

Note that including a file imports all of the nonterminals defined in it, as well as any JS, macros, and configuration options defined there.

What’s next?

Now that you have a grammar, you’re ready to learn how to use it to build a parser!

nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/how-to-grammar-good.html000066400000000000000000000417751376321042600257320ustar00rootroot00000000000000 How to grammar good - nearley.js - JS Parsing Toolkit

How to grammar good

A lot of people have pointed out to me that writing grammars for nearley is hard. The thing is, writing grammars is, in general, very hard. It doesn’t help that certain grammar-related problems are provably undecidable.

As with all of programming, grammar-writing is guided by instinct and pattern recognition (on the part of the human, in this case!). This guide is meant to walk through some common idioms, ideas, anti-patterns and pitfalls, and hopefully make you a confident grammarian. Treat it more as a styleguide than a tutorial.

It might be worth reading Better Earley than Never first, to understand the algorithm and some basic concepts. From here on out, I’m assuming you know what regular expression, Backus Naur Form, context free grammar, terminal, nonterminal, and ambiguous grammar mean. You should know nearley syntax well enough to understand what something like

int -> [0-9]        {% id %}
    | int [0-9]     {% function(d) {return d[0] + d[1]} %}

means (though I like to pride myself on the readability of nearley grammar…).

Structure

Your grammar should be structured from the top down. The first few rules in a file should describe a general outline, and tiny details (terminals for whitespace, literals etc.) should be at the bottom. For example, if you’re writing a parser for Scheme, you would start with

Sourcefile -> (S-expression | Comment):*

and then fill out what s-expression and comment mean. Most of the time, rules defined higher in the file reference rules defined lower down, and rules defined near the bottom rarely ever reference rules near the top.

Nonterminal names

Give your nonterminals useful names–mostly nouns that describe the string it will match. By convention, we use _ for optional whitespace and __ for mandatory whitespace: it makes it easy to write rules like

"(" _ expression _ ")"

You can explicitly mark a nonterminal as optional or repetitive by postfixing its name with ? and + (respectively)–as in statementlist+ or comment?. Note that this has no semantic value: use nearley’s EBNF modifiers (:*, :+, :?) for that.

Don’t roll your own unroller

If you want to match one or more of a nonterminal, use an EBNF modifier. It’s semantically legible, contextually appropriate and (most importantly) easy. It’s very easy to mess up and create an exponentially ambiguous monstrosity such as

lotsofletters -> "a" | lotsofletters lotsofletters

Postprocess or dispose

nearley saves a nested array structure by default, but most of the time that’s not what you want. For things like whitespace, you want to throw away all that useless information for memory efficiency, so use a postprocessor that just returns null. For syntactic sugar and stuff, construct object literals so that the code that processes your AST is relatively independent of your grammar. Constructing object literals also lets you discard junk (parens, etc.).

Remember, charclasses aren’t regexes

The [a-z] syntax only allows you to use regex-style character classes, not actual regular expressions. Nearley fundamentally does not support regexes as terminals. Use EBNF modifiers instead–they do what you want.

Debug with nearley-test

Use the nearley-test script (installs alongside nearleyc) to debug your grammars. It lets you inspect the parse tables, and see all the parsings, or the point of failure. This is invaluable when you have a subtle ambiguity issue.

Don’t shy away from left recursion

You were a good little student and you paid attention to your professors when they told you never to write grammars like:

a -> a "something"

because a naïve recursive-descent parser would bork in an infinite loop. Nearley, of course, is much better, so you don’t have to worry about that. If you’re paranoid about efficiency, you should actually prefer left recursion over right recursion (a -> "something" a) because it’s very slightly faster. In any case, that’s how you deal with left or right associativity for binary operators.

Do shy away from left recursion

…if you’re using it where the EBNF :* or :+ makes more sense!

Operator precedence is not black magic

Here’s how you do it: you start with your lowest-precedence operator and work your way up to your highest precedence ones. Each operator gets its own nonterminal:

math -> sum
sum -> sum ("+"|"-") product | product
product -> product ("*"|"/") exp | exp
exp -> number "^" exp | number # this is right associative!

It should be pretty clear how this works, and how to extend it to different types of operators. The main thing is to be careful with your associativity direction. Be careful not to write op -> op "$" op, because that’s ambiguous.

Introducing non-conflicting unary negation ("5 * -5") is left as a trivial exercise for the enterprising reader.

Comment your grammars

It’s very easy to come back to a grammar a week later and have no idea what it’s doing. Leave comments that explain precisely what each nonterminal matches, since a clear description will help you debug things in the future.

Use whitespace prettily

Align your ->s and your |s and your {% ... %}s. Future retinas will thank you.

Parsing an established language? Cheat!

Almost all standards publish syntax guides with an accompanying diagram in (E)BNF. It’s worth it to Google around for this. With just a bit of common sense, you should be able to transliterate it to a .ne file.


Again, grammar-writing is largely about instinct and experience. The more you write, the more you’ll understand how it goes, and the faster you’ll be able to prototype and design.

nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/index.html000066400000000000000000000551761376321042600232520ustar00rootroot00000000000000 Home - nearley.js - JS Parsing Toolkit

Home

Parsers turn strings of characters into meaningful data structures (like a JSON object!). nearley is a fast, feature-rich, and modern parser toolkit for JavaScript. nearley is an npm Staff Pick.

nearley 101

  1. Install: $ npm install -g nearley (or try nearley live in your browser here!)
  2. Write your grammar:
    # Match a CSS color
    # http://www.w3.org/TR/css3-color/#colorunits
    @builtin "whitespace.ne" # `_` means arbitrary amount of whitespace
    @builtin "number.ne"     # `int`, `decimal`, and `percentage` number primitives
    csscolor -> "#" hexdigit hexdigit hexdigit hexdigit hexdigit hexdigit
              | "#" hexdigit hexdigit hexdigit
              | "rgb"  _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")"
              | "hsl"  _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")"
              | "rgba" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")"
              | "hsla" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")"
    hexdigit -> [a-fA-F0-9]
    colnum   -> int | percentage
  3. Compile your grammar:
    $ nearleyc csscolor.ne -o csscolor.js
  4. Test your grammar:
    $ nearley-test -i "#00ff00" csscolor.js
    Parse results:
    [ [ '#', [ '0' ], [ '0' ], [ 'f' ], [ 'f' ], [ '0' ], [ '0' ] ] ]
  5. Turn your grammar into a generator:
    $ nearley-unparse -n 3 csscolor.js
    #Ab21F2
    rgb  ( -29.889%,7,8172)
    #a40
  6. You try it! Type a CSS color here:
    …and the parsed output will appear here!
  7. Create beautiful railroad diagrams to document your grammar formally.
    $ nearley-railroad csscolor.ne -o csscolor.html
    See a demo here.

Features

  • nearley is the first JS parser to use the Earley algorithm (insert your own ‘early bird’ pun here). It also implements Joop Leo’s optimizations for right-recursion, making it effectively linear-time for LL(k) grammars.
  • nearley lives happily in node, but doesn’t mind the browser.
  • nearley outputs small files. And its expressive DSL comes with plenty of syntactic sugar to keep your source files short. And sweet.
  • nearley’s grammar language is powerful and expressive: you can use macros, import from a large builtin library of pre-defined parser-pieces, use a tokenizer for extra performance, and more!
  • nearley is built on an idiomatic streaming API. You even have access to partial parses to build predictive user interfaces.
  • nearley processes left recursion without choking. In fact, nearley will parse anything you throw at it without complaining or going into a sulk infinite loop.
  • nearley handles ambiguous grammars gracefully. Ambiguous grammars can be parsed in multiple ways: instead of getting confused, nearley gives you all the parsings (in a deterministic order!).
  • nearley allows for debugging with generous error detection. When it catches a parse-time error, nearley tells you exactly what went wrong and where.
  • nearley is powerful enough to be bootstrapped. That means nearley uses nearley to compile parts of nearley. nearleyception!
  • nearley parsers can be inverted to form generators which output random strings that match a grammar. Useful for writing test cases, fuzzers, and Mad-Libs.
  • You can export nearley parsers as railroad diagrams, which provide easy-to-understand documentation of your grammar.
  • nearley comes with fantastic tooling. You can find editor plug-ins for vim, Sublime Text, Atom, and VS Code; there are also plug-ins for Webpack and gulp.

Projects using nearley

Artificial Intelligence, NLP, Linguistics: Shrdlite is a programming project in Artificial Intelligence, a course given at the University of Gothenburg and Chalmers University of Technology. It uses nearley for reading instructions in natural language (i.e. English). lexicon-grammars was used to parse lexicons for a project at Australian National University.

Standard formats: node-dmi is a module that reads iconstate metadata from BYOND DMI files, edtf.js is a parser for Extended Date Time Format, node-krl-parser is a KRL parser for node, bibliography is a BibTeX-to-HTML converter, biblatex-csl-converter converts between bibtex/CSL/JSON, scalpel parses CSS selectors (powering enzyme, Airbnb’s React testing tool), rfc5545-rrule helps parse iCalendar data, mangudai parses RMS scripts for Age of Empires II, tf-hcl parses and generates HCL config files, css-selector-inspector parses and tokenizes CSS3 selectors, css-property-parser validates and expands CSS shorthands, node-scad-parser parses OpenSCAD 3D models, js-sql-parse parses SQL statements, pg-mem is an in-memory Postgres database emulator, resp-parser is a parser for the RESP protocol, celio parses Celestia star catalogs.

Templating and files: uPresent is a markdown-based presentation authoring system, saison is a minimal templating language, Packdown is a tool to generate human-readable archives of multiple files.

Programming languages: Carbon is a C subset that compiles to JavaScript, optimized for game development, ezlang is a simple language, tlnccuwagnf is a fun general-purpose language, nanalang is a silly esoteric language, english is a less esoteric programming language, ecmaless is an easily-extensible language, hm-parser parses Haskell-like Hindley-Milner type signatures, kozily implements the Oz language, abstract-machine inspects execution models, fbp-types provides typechecking primitives for flow-based systems, lp5562 is an assembler for the TI LP5562 LED driver, VSL is a Versatile Scripting Language, while-typescript is an implementation of the WHILE language, lo is a language for secure distributed systems, jaco is an implementation of CMU’s C0 teaching language, walt is a subset of JavaScript that targets WebAssembly.

Mathematics: Solvent is a powerful desktop calculator, Truth-table is a tool to visualize propositional logic in truth tables, Emunotes is a personal Wiki with inline graphing and computation, react-equation parses and renders equations in React, the mLab generates category theory papers.

Domain-specific languages: Hexant is a cellular automata simulator with a DSL for custom automata, Dicetower is an advanced dice plugin for hubot, deck.zone is a language to create board games, in-seconds is a time calculator for music applications, website-spec is a tool for functional web testing, pianola allows declarative function composition, idyll is a markup language for data-driven documents, virtsecgroup provides virtual AWS security groups, deadfad is a hex editor that lets you specify structs, bishbosh helps you create command-line interfaces, syso codifies aspects of French legal contracts, siteswap parses Siteswap notation for juggling patterns, jsgrep provides syntactic grep for JavaScript, electro-grammar parses descriptions of electronic components like resistors and capacitors, cicero helps create smart legal contracts, Eventbot is a calendar plugin for Slack used by thousands of teams, Obyte is a cryptocurrency platform, OptiCSS is a CSS optimizer built by LinkedIn, NESTUP is a language for specifying nested rhythmic tuplets.

Other: ProceduralPsychEpisode generates “random episodes of the hilarious but formulaic show�

Parsing libraries: nearley is a parser toolkit for JavaScript. It has a nearley-based DSL to specify parsers.

Give to nearley

nearley has been maintained by volunteers since 2014. If you want to help support us, contact @kach or @tjvr on GitHub. We’ll send over our PayPal information – and maybe something nice. :-).

nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/layouts/000077500000000000000000000000001376321042600227375ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/layouts/template.html000066400000000000000000000123751376321042600254500ustar00rootroot00000000000000 {{#if title}}{{title}} - {{/if}}nearley.js - JS Parsing Toolkit

{{title}}

{{{contents}}} {{#if isDemoPage}} {{/if}} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/make.js000066400000000000000000000024531376321042600225160ustar00rootroot00000000000000 const fs = require('fs') const Metalsmith = require('metalsmith') const markdown = require('metalsmith-markdown') const headings = require('metalsmith-headings') const layouts = require('metalsmith-layouts') const paths = require('metalsmith-paths') const Handlebars = require('handlebars') Handlebars.registerHelper('eq', (a, b) => a === b) /* const debug = (files, metalsmith, done) => { setImmediate(done) } */ const docs = articles => (files, metalsmith, done) => { setImmediate(done) Object.assign(metalsmith.metadata(), { docs: articles.map(name => { const f = files[name + '.md'] f.isDoc = true return f }), }) } Metalsmith(__dirname) .metadata({ version: require('../package.json').version, css: fs.readFileSync('../www/main.css', 'utf-8'), }) .source('md/') .destination('.') .clean(false) .use(paths({ property: 'paths' })) .use(docs([ 'index', 'getting-started', 'grammar', 'parser', 'tokenizers', 'tooling', 'how-to-grammar-good', 'using-in-frontend', 'glossary', ])) //.use(debug) .use(markdown({ smartypants: true, gfm: true, })) .use(headings('h3')) .use(layouts({ engine: 'handlebars', default: 'template.html', })) .build(function(err) { if (err) throw err; }) nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/md/000077500000000000000000000000001376321042600216375ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/md/getting-started.md000066400000000000000000000062431376321042600252730ustar00rootroot00000000000000--- title: Getting started --- nearley consists of two components: a *compiler* and a *parser*. The nearley *compiler* converts grammar definitions from a simple [BNF](https://en.wikipedia.org/wiki/Backus–Naur_form)-based syntax to a small JS module. You can then use that module to construct a nearley *parser*, which parses input strings. ### Installation Both components are published as a single [NPM](https://docs.npmjs.com/getting-started/what-is-npm) package compatible with [Node.js](https://nodejs.org/en/) and most browsers. To use the nearley *parser*, you need to install nearley **locally**. ```bash $ npm install --save nearley ``` To use the nearley *compiler*, you need to *additionally* install nearley **globally**. ```bash $ npm install -g nearley ``` This actually adds several new commands to your `$PATH`: - `nearleyc` compiles grammar files to JavaScript. - `nearley-test` lets you quickly test a grammar against some input and see the results. It also lets you explore the internal state of nearley's Earley table, in case you find that interesting. - `nearley-unparse` inverts a parser into a generator, allowing you to create random strings that match your grammar. - `nearley-railroad` generates pretty railroad diagrams from your parser. This is mainly helpful for creating documentation, as (for example) on json.org. These are documented on the [tooling page](tooling). > Note: If you're not ready to install nearley yet, you can follow along in > your browser using the [nearley > playground](https://omrelli.ug/nearley-playground/), an online interface for > exploring nearley grammars interactively. ### nearley in 3 steps nearley was written with users in mind: getting started with nearley is as simple as: **Step 1: Describe your grammar** using the [nearley syntax](grammar). In a file called `grammar.ne`, write: ```ne main -> (statement "\n"):+ statement -> "foo" | "bar" ``` **Step 2: Compile** the grammar to a JavaScript module. On the command line, run: ```bash $ nearleyc grammar.ne -o grammar.js ``` **Step 3: Parse** some data! In a new JavaScript file, instantiate a [Parser object](parser) and feed it a string: ```js const nearley = require("nearley"); const grammar = require("./grammar.js"); // Create a Parser object from our grammar. const parser = new nearley.Parser(nearley.Grammar.fromCompiled(grammar)); // Parse something! parser.feed("foo\n"); // parser.results is an array of possible parsings. console.log(parser.results); // [[[[ "foo" ],"\n" ]]] ``` ### What's next? Now that you have nearley installed, you can [learn how to write a grammar](grammar)! ### Further reading - Take a look at a [nearley tutorial](https://medium.com/@gajus/parsing-absolutely-anything-in-javascript-using-earley-algorithm-886edcc31e5e) written by @gajus, or a [blog post about using nearley-unparse to generate murder mystery plots](http://humans-who-read-grammars.blogspot.com/2018/04/having-fun-with-phrase-structure.html). - Read my [blog post](http://hardmath123.github.io/earley.html) to learn more about the algorithm. - Read about [Marpa](http://savage.net.au/Marpa.html) to learn more than you ever thought you wanted to know about parsing. nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/md/glossary.md000066400000000000000000000064311376321042600240300ustar00rootroot00000000000000--- title: Glossary --- Parsing terminology gets very confusing very quickly. Here is a glossary that can help us all communicate more effectively. **token**: the smallest meaningful unit (the "words") of your language **lexer**: a function that converts a sequence of *characters* to a sequence of *tokens* (converts a sequence of letters and spaces to a sequence of words) **string**: a sequence of *tokens* **concatenation**: joining two strings by appending one to the other **language**: a set of *strings* **production rule**: a set of *strings* specified as a sequence of *symbols*, such that the rule matches a string if it is a *concatenation* of strings matched by the respective symbols **symbol**: a generic term for a member of a *production rule*, either a *nonterminal* or a *terminal* **nonterminal**: a *symbol* that specifies a set of other *production rules* that match **terminal**: a *symbol* that directly specifies a set of *tokens* that match **context-free grammar**: a set of *production rules* that together specify a *language* **context-free language**: a *language* that can be specified by a *context-free grammar* **Backus-Naur Form**: a set of conventions for describing and typesetting context-free grammars **recognizer**: a function that takes a *grammar* and a *string* and sees if the grammar matches the string (it just says "yes" or "no") **parser**: a function that takes a *grammar* and a *string* and returns a *derivation* of that string from that grammar **derivation**: a way to apply the production rules of a *grammar* recursively to obtain a *string* **parse tree**: a representation of a *derivation* as a tree **abstract syntax tree (AST)**: a version of a *parse tree* that has undergone some *postprocessors* to simplify it (for example, an AST is likely to omit whitespace) **preprocessor**: the dialect of JavaScript targeted by `nearleyc`; for example, you can emit TypeScript code instead of plain JavaScript (not to be confused with *postprocessor*) **postprocessor**: a function associated with a production rule, whose purpose is to transform a *parse tree* into an AST, making simplifications along the way --- for example, by omitting whitespace (not to be confused with *preprocessor*) **ambiguity**: a situation where there exist more than one *derivations* for a single *string* --- unlike most *parser* libraries, *nearley* returns all possible derivations **Earley algorithm**: a *parsing* algorithm developed by Jay Earley in 1968, which can efficiently parse all *context-free grammars* **Earley table**: the intermediate data structure created by the Earley algorithm, where each new token creates a new column **Leo optimization**: a trick we can use to optimize right-recursion, making it just as efficient to parse as *left-recursion* **left-recursion**: a situation where a nonterminal refers to a production rule whose first symbol matches the same nonterminal **epsilon**: the empty *production rule*, matching only the empty string **nullable rule**: a *production rule* that matches the empty string, even though it is not necessarily equal to the *epsilon* rule (for example, the *concatenation* of epsilon with epsilon) **nearley**: a *parser* that parses *context-free languages*, along with several additional utilities for building languages nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/md/grammar.md000066400000000000000000000206231376321042600236120ustar00rootroot00000000000000--- title: Writing a parser --- This section describes the nearley grammar language, in which you can describe grammars for nearley to parse. Grammars are conventionally kept in `.ne` files. You can then use `nearleyc` to compile your `.ne` grammars to JavaScript modules. You can find many examples of nearley grammars online, as well as some in the `examples/` directory of the [Github repository](http://github.com/Hardmath123/nearley). ### Vocabulary - A *terminal* is a single, constant string or a token. For example, the keyword `"if"` is a terminal. - A *nonterminal* describes a set of possible strings. For example, all "if" statements can be described by a single nonterminal whose value depends on the condition and body of the if statement. - A *rule* (or production rule) is a definition of a nonterminal. For example, ```ne ifStatement -> "if" condition "then" statement "endif" ``` is the rule according to which the if statement nonterminal, `ifStatement`, is parsed. It depends on the nonterminals `condition` and `statement`. A nonterminal can be described by multiple rules. For example, we can add a second rule ```ne ifStatement -> "if" condition "then" statement "else" statement "endif" ``` to support "else" clauses. By default, nearley attempts to parse the first nonterminal defined in the grammar. In the following grammar, nearley will try to parse input text as an `expression`. ```ne expression -> number "+" number expression -> number "-" number expression -> number "*" number expression -> number "/" number number -> [0-9]:+ ``` You can use the pipe character `|` to separate alternative rules for a nonterminal. In the example below, `expression` has four different rules. ```ne expression -> number "+" number | number "-" number | number "*" number | number "/" number ``` The keyword `null` stands for the **epsilon rule**, which matches nothing. The following nonterminal matches zero or more `cow`s in a row, such as `cowcowcow`: ```ne a -> null | a "cow" ``` ### Postprocessors By default, nearley wraps everything matched by a rule into an array. For example, when `rule -> "tick" "tock"` matches the string `"ticktock"`, it creates the "parse tree" `["tick", "tock"]`. Most of the time, however, you need to process that data in some way: for example, you may want to filter out whitespace, or transform the results into a custom JavaScript object. For this purpose, each rule can have a *postprocessor*: a JavaScript function that transforms the array and returns a "processed" version of the result. Postprocessors are wrapped in `{% %}`s: ```ne expression -> number "+" number {% function(data) { return { operator: "sum", leftOperand: data[0], rightOperand: data[2] // data[1] is "+" }; } %} ``` The rule above will parse the string `5+10` into `{ operator: "sum", leftOperand: 5, rightOperand: 10 }`. The postprocessor can be any function with signature `function(data, location, reject)`. Here, - `data: Array` is an array that contains the results of parsing each part of the rule. Note that it is still an array, even if the rule only has one part! You can use the built-in `{% id %}` postprocessor to convert a one-item array into the item itself. For **arrow function** users, a convenient pattern is to decompose the `data` array within the argument of the arrow function: ```ne expression -> number "+" number {% ([fst, _, snd]) => fst + snd %} | number "-" number {% ([fst, _, snd]) => fst - snd %} | number "*" number {% ([fst, _, snd]) => fst * snd %} | number "/" number {% ([fst, _, snd]) => fst / snd %} ``` - `location: number` is the index (zero-based) at which the rule match starts. You might use this to show the location of an expression in an error message. > Note: Many [tokenizers](tokenizers) provide line, column, and offset > information in the Token object. If you are using a tokenizer, then it is > better to use that information than the nearley-provided variable, which > would only tell you that it saw the nth _token_ rather than the nth > _character_ in the string. - `reject: Object` is a unique object that you can return to signal that this rule doesn't *actually* match its input. Reject is used in some edge cases. For example, suppose you want sequences of letters to match variables, except for the keyword `if`. In this case, your rule may be ```ne variable -> [a-z]:+ {% function(d,l, reject) { if (d[0] == 'if') { return reject; } else { return {'name': d[0]}; } } %} ``` > Warning: Grammars using `reject` are not context-free, and are often much > slower to parse. So, we encourage you not to use `reject` unless absolutely > necessary. You can usually use a tokenizer instead. nearley provides one built-in postprocessor: - `id` returns the first element of the `data` array. This is useful to extract the content of a single-element array: `foo -> bar {% id %}` ### More syntax: tips and tricks #### Comments Comments are marked with '#'. Everything from `#` to the end of a line is ignored: ```ne expression -> number "+" number # sum of two numbers ``` #### Charsets You can use valid RegExp charsets in a rule (unless you're using a [tokenizer](tokenizers)): not_a_letter -> [^a-zA-Z] The `.` character can be used to represent any character. #### Case-insensitive string literals You can create case-insensitive string literals by adding an `i` after the string literal: cow -> "cow"i # matches CoW, COW, and so on. Note that if you are using a lexer, your lexer should use the `i` flag in its regexes instead. That is, if you are using a lexer, you should *not* use the `i` suffix in nearley. #### EBNF nearley supports the `*`, `?`, and `+` operators from [EBNF](https://en.wikipedia.org/wiki/Extended_Backus–Naur_form) as shown: ```ne batman -> "na":* "batman" # nananana...nanabatman ``` You can also use capture groups with parentheses. Its contents can be anything that a rule can have: ```ne banana -> "ba" ("na" {% id %} | "NA" {% id %}):+ ``` ### Macros Macros allow you to create polymorphic rules: ```ne # Matches "'Hello?' 'Hello?' 'Hello?'" matchThree[X] -> $X " " $X " " $X inQuotes[X] -> "'" $X "'" main -> matchThree[inQuotes["Hello?"]] ``` Macros are dynamically scoped, which means they see arguments passed to parent macros: ```ne # Matches "Cows oink." and "Cows moo!" sentence[ANIMAL, PUNCTUATION] -> animalGoes[("moo" | "oink" | "baa")] $PUNCTUATION animalGoes[SOUND] -> $ANIMAL " " $SOUND # uses $ANIMAL from its caller main -> sentence["Cows", ("." | "!")] ``` Macros are expanded at compile time and inserted in places they are used. They are not "real" rules. Therefore, macros *cannot* be recursive (`nearleyc` will go into an infinite loop trying to expand the macro-loop). They must also be defined *before* they are used. ### Additional JS For more intricate postprocessors, or any other functionality you may need, you can include chunks of JavaScript code between production rules by surrounding it with `@{% ... %}`: ```ne @{% const cowSays = require("./cow.js"); %} cow -> "moo" {% ([moo]) => cowSays(moo) %} ``` Note that it doesn't matter where you add these; they all get hoisted to the top of the generated code. ### Importing other grammars You can include the content of other grammar files: ```ne @include "../misc/primitives.ne" # path relative to file being compiled sum -> number "+" number # uses "number" from the included file ``` There are some common nonterminals like "integer" and "double-quoted string" that ship with nearley to help you prototype grammars efficiently. You can include them using the `@builtin` directive: ```ne @builtin "number.ne" main -> int:+ ``` (Note that we mean "efficient" in the sense that you can get them set up very quickly. The builtins are _inefficient_ in the sense that they make your parser slower. For a "real" project, you would want to switch to a lexer and implement these primitives yourself!) See the [`builtin/`](https://github.com/kach/nearley/tree/master/builtin) directory on Github for more details. Contributions are welcome! Note that including a file imports *all* of the nonterminals defined in it, as well as any JS, macros, and configuration options defined there. ### What's next? Now that you have a grammar, you're ready to [learn how to use it to build a parser!](parser) nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/md/how-to-grammar-good.md000066400000000000000000000133301376321042600257500ustar00rootroot00000000000000--- title: How to grammar good --- A lot of people have pointed out to me that writing grammars for [nearley](http://hardmath123.github.io/nearley/) is *hard*. The thing is, writing grammars is, in general, very hard. It doesn't help that certain grammar-related problems are provably undecidable. As with all of programming, grammar-writing is guided by instinct and pattern recognition (on the part of the human, in this case!). This guide is meant to walk through some common idioms, ideas, anti-patterns and pitfalls, and hopefully make you a confident grammarian. Treat it more as a styleguide than a tutorial. It might be worth reading [Better Earley than Never](http://hardmath123.github.io/earley.html) first, to understand the algorithm and some basic concepts. From here on out, I'm assuming you know what *regular expression*, *Backus Naur Form*, *context free grammar*, *terminal*, *nonterminal*, and *ambiguous grammar* mean. You should know nearley syntax well enough to understand what something like ```ne int -> [0-9] {% id %} | int [0-9] {% function(d) {return d[0] + d[1]} %} ``` means (though I like to pride myself on the readability of nearley grammar...). ### Structure Your grammar should be structured from the top down. The first few rules in a file should describe a general outline, and tiny details (terminals for whitespace, literals etc.) should be at the bottom. For example, if you're writing a parser for Scheme, you would start with Sourcefile -> (S-expression | Comment):* and then fill out what `s-expression` and `comment` mean. Most of the time, rules defined higher in the file reference rules defined lower down, and rules defined near the bottom rarely ever reference rules near the top. ### Nonterminal names Give your nonterminals useful names--mostly nouns that describe the string it will match. By convention, we use `_` for optional whitespace and `__` for mandatory whitespace: it makes it easy to write rules like "(" _ expression _ ")" You can explicitly mark a nonterminal as optional or repetitive by postfixing its name with `?` and `+` (respectively)--as in `statementlist+` or `comment?`. Note that this has no semantic value: use nearley's EBNF modifiers (`:*`, `:+`, `:?`) for that. ### Don't roll your own unroller If you want to match one or more of a nonterminal, use an EBNF modifier. It's semantically legible, contextually appropriate and (most importantly) easy. It's very easy to mess up and create an exponentially ambiguous monstrosity such as lotsofletters -> "a" | lotsofletters lotsofletters ### Postprocess or dispose nearley saves a nested array structure by default, but most of the time that's not what you want. For things like whitespace, you want to throw away all that useless information for memory efficiency, so use a postprocessor that just returns `null`. For syntactic sugar and stuff, construct object literals so that the code that processes your AST is relatively independent of your grammar. Constructing object literals also lets you discard junk (parens, etc.). ### Remember, charclasses aren't regexes The `[a-z]` syntax only allows you to use regex-style character classes, not actual regular expressions. Nearley fundamentally does not support regexes as terminals. Use EBNF modifiers instead--they do what you want. ### Debug with nearley-test Use the `nearley-test` script (installs alongside `nearleyc`) to debug your grammars. It lets you inspect the parse tables, and see all the parsings, or the point of failure. This is invaluable when you have a subtle ambiguity issue. ### Don't shy away from left recursion You were a good little student and you paid attention to your professors when they told you never to write grammars like: a -> a "something" because a naïve recursive-descent parser would bork in an infinite loop. Nearley, of course, is much better, so you don't have to worry about that. If you're paranoid about efficiency, you should actually prefer left recursion over right recursion (`a -> "something" a`) because it's very slightly faster. In any case, that's how you deal with left or right associativity for binary operators. ### Do shy away from left recursion ...if you're using it where the EBNF `:*` or `:+` makes more sense! ### Operator precedence is not black magic Here's how you do it: you start with your lowest-precedence operator and work your way up to your highest precedence ones. Each operator gets its own nonterminal: math -> sum sum -> sum ("+"|"-") product | product product -> product ("*"|"/") exp | exp exp -> number "^" exp | number # this is right associative! It should be pretty clear how this works, and how to extend it to different types of operators. The main thing is to be careful with your associativity direction. Be careful not to write `op -> op "$" op`, because that's ambiguous. Introducing non-conflicting unary negation (`"5 * -5"`) is left as a trivial exercise for the enterprising reader. ### Comment your grammars It's very easy to come back to a grammar a week later and have no idea what it's doing. Leave comments that explain precisely what each nonterminal matches, since a clear description will help you debug things in the future. ### Use whitespace prettily Align your `->`s and your `|`s and your `{% ... %}`s. Future retinas will thank you. ### Parsing an established language? Cheat! Almost all standards publish syntax guides with an accompanying diagram in (E)BNF. It's worth it to Google around for this. With just a bit of common sense, you should be able to transliterate it to a `.ne` file. --- Again, grammar-writing is largely about instinct and experience. The more you write, the more you'll understand how it goes, and the faster you'll be able to prototype and design. nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/md/index.md000066400000000000000000000254301376321042600232740ustar00rootroot00000000000000--- title: Home isDemoPage: true --- **Parsers** turn strings of characters into meaningful data structures (like a JSON object!). **nearley** is a **fast**, **feature-rich**, and **modern** parser toolkit for JavaScript. nearley is an [npm Staff Pick](https://github.com/npm/npm-collection-staff-picks). ### nearley 101 1. Install: `$ npm install -g nearley` (or try nearley live in your browser [here](https://omrelli.ug/nearley-playground/)!) 2. Write your grammar: ```ne # Match a CSS color # http://www.w3.org/TR/css3-color/#colorunits @builtin "whitespace.ne" # `_` means arbitrary amount of whitespace @builtin "number.ne" # `int`, `decimal`, and `percentage` number primitives csscolor -> "#" hexdigit hexdigit hexdigit hexdigit hexdigit hexdigit | "#" hexdigit hexdigit hexdigit | "rgb" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")" | "hsl" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")" | "rgba" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")" | "hsla" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")" hexdigit -> [a-fA-F0-9] colnum -> int | percentage ``` 3. Compile your grammar: ```bash $ nearleyc csscolor.ne -o csscolor.js ``` 4. Test your grammar: ```bash $ nearley-test -i "#00ff00" csscolor.js Parse results: [ [ '#', [ '0' ], [ '0' ], [ 'f' ], [ 'f' ], [ '0' ], [ '0' ] ] ] ``` 5. Turn your grammar into a generator: ```bash $ nearley-unparse -n 3 csscolor.js ``` ``` #Ab21F2 rgb ( -29.889%,7,8172) #a40 ``` 6. You try it! Type a CSS color here:
…and the parsed output will appear here!
7. Create beautiful railroad diagrams to document your grammar formally. ```bash $ nearley-railroad csscolor.ne -o csscolor.html ``` See a demo [here](/www/railroad-demo). ### Features * nearley is the first JS parser to use the **Earley** algorithm (insert your own ‘early bird’ pun here). It also implements Joop Leo's optimizations for right-recursion, making it effectively **linear-time** for LL(k) grammars. * nearley lives happily in **node**, but doesn't mind the **browser**. * nearley outputs **small** files. And its **expressive** DSL comes with plenty of **syntactic sugar** to keep your source files short. And sweet. * nearley's grammar language is powerful and expressive: you can use **macros**, import from a large **builtin library** of pre-defined parser-pieces, use a **tokenizer** for extra performance, and more! * nearley is built on an idiomatic **streaming API**. You even have access to partial parses to build **predictive** user interfaces. * nearley processes **left recursion** without choking. In fact, nearley will parse anything you throw at it without complaining or going into a ~~sulk~~ infinite loop. * nearley handles **ambiguous grammars** gracefully. Ambiguous grammars can be parsed in multiple ways: instead of getting confused, nearley gives you all the parsings (in a deterministic order!). * nearley allows for debugging with generous **error detection**. When it catches a parse-time error, nearley tells you exactly what went wrong and where. * nearley is powerful enough to be **bootstrapped**. That means nearley uses nearley to compile parts of nearley. _nearleyception!_ * nearley parsers can be inverted to form **generators** which output random strings that match a grammar. Useful for writing **test cases**, **fuzzers**, and **Mad-Libs**. * You can export nearley parsers as **railroad diagrams**, which provide easy-to-understand documentation of your grammar. * nearley comes with fantastic tooling. You can find editor plug-ins for **vim**, **Sublime Text**, **Atom**, and **VS Code**; there are also plug-ins for **Webpack** and **gulp**. ### Projects using nearley **Artificial Intelligence, NLP, Linguistics**: [Shrdlite](https://github.com/ChalmersGU-AI-course/shrdlite-course-project) is a programming project in Artificial Intelligence, a course given at the University of Gothenburg and Chalmers University of Technology. It uses nearley for reading instructions in natural language (i.e. English). [lexicon-grammars](https://github.com/fauxneticien/lexicon-grammars) was used to parse lexicons for a project at Australian National University. **Standard formats**: [node-dmi](https://github.com/raymond-h/node-dmi) is a module that reads iconstate metadata from BYOND DMI files, [edtf.js](https://github.com/inukshuk/edtf.js) is a parser for Extended Date Time Format, [node-krl-parser](https://github.com/farskipper/node-krl-parser) is a KRL parser for node, [bibliography](https://github.com/digitalheir/bibliography-js) is a BibTeX-to-HTML converter, [biblatex-csl-converter](https://github.com/fiduswriter/biblatex-csl-converter) converts between bibtex/CSL/JSON, [scalpel](https://github.com/gajus/scalpel) parses CSS selectors (powering [enzyme](https://github.com/airbnb/enzyme), Airbnb's React testing tool), [rfc5545-rrule](https://github.com/waratuman/rfc5545-rrule) helps parse iCalendar data, [mangudai](https://github.com/mangudai/mangudai) parses RMS scripts for Age of Empires II, [tf-hcl](https://github.com/r24y/tf-hcl) parses and generates HCL config files, [css-selector-inspector](https://github.com/balbuf/css-selector-inspector) parses and tokenizes CSS3 selectors, [css-property-parser](https://github.com/mahirshah/css-property-parser) validates and expands CSS shorthands, [node-scad-parser](https://github.com/hhornbacher/node-scad-parser) parses OpenSCAD 3D models, [js-sql-parse](https://github.com/justinkenel/js-sql-parse) parses SQL statements, [pg-mem](https://github.com/oguimbal/pg-mem) is an in-memory Postgres database emulator, [resp-parser](https://github.com/appology/resp-parser) is a parser for the RESP protocol, [celio](https://github.com/AntonShan/Celio) parses Celestia star catalogs. **Templating and files**: [uPresent](https://github.com/bobbybee/uPresent) is a markdown-based presentation authoring system, [saison](https://github.com/rtsao/saison) is a minimal templating language, [Packdown](https://github.com/imsky/packdown) is a tool to generate human-readable archives of multiple files. **Programming languages**: [Carbon](https://github.com/bobbybee/carbon) is a C subset that compiles to JavaScript, optimized for game development, [ezlang](https://github.com/tleb/ezlang) is a simple language, [tlnccuwagnf](https://github.com/liam4/tlnccuwagnf) is a fun general-purpose language, [nanalang](https://github.com/nanalan/g) is a silly esoteric language, [english](https://github.com/nanalan/english) is a less esoteric programming language, [ecmaless](https://github.com/farskipper/ecmaless) is an easily-extensible language, [hm-parser](https://github.com/xodio/hm-parser) parses Haskell-like Hindley-Milner type signatures, [kozily](https://github.com/kozily/web) implements the Oz language, [abstract-machine](https://stefan1niculae.github.io/abstract-machine/) inspects execution models, [fbp-types](https://github.com/Malpaux/fbp-types) provides typechecking primitives for flow-based systems, [lp5562](https://github.com/sizigi/lp5562) is an assembler for the TI LP5562 LED driver, [VSL](https://github.com/vsl-lang/VSL) is a Versatile Scripting Language, [while-typescript](https://github.com/juanlaube/while-typescript) is an implementation of the WHILE language, [lo](https://github.com/lo-language/velo) is a language for secure distributed systems, [jaco](https://github.com/calculemuscode/jaco) is an implementation of CMU's C0 teaching language, [walt](https://github.com/ballercat/walt) is a subset of JavaScript that targets WebAssembly. **Mathematics**: [Solvent](https://github.com/andrejewski/solvent) is a powerful desktop calculator, [Truth-table](https://github.com/andrejewski/truth-table) is a tool to visualize propositional logic in truth tables, [Emunotes](http://emunotes.com) is a personal Wiki with inline graphing and computation, [react-equation](https://kgram.github.io/react-equation/) parses and renders equations in React, [the mLab](https://github.com/cemulate/the-mlab) generates category theory papers. **Domain-specific languages**: [Hexant](https://github.com/jcorbin/hexant) is a cellular automata simulator with a DSL for custom automata, [Dicetower](https://github.com/justjake/dicetower) is an advanced dice plugin for hubot, [deck.zone](https://github.com/seiyria/deck.zone) is a language to create board games, [in-seconds](https://github.com/danigb/in-seconds) is a time calculator for music applications, [website-spec](https://github.com/bumbu/website-spec) is a tool for functional web testing, [pianola](https://github.com/gajus/pianola) allows declarative function composition, [idyll](https://idyll-lang.github.io/idyll/) is a markup language for data-driven documents, [virtsecgroup](https://github.com/affinipay/virtsecgroup) provides virtual AWS security groups, [deadfad](https://github.com/Pwootage/deadfad) is a hex editor that lets you specify structs, [bishbosh](https://github.com/juliankrispel/bishbosh) helps you create command-line interfaces, [syso](https://github.com/sgmap/syso) codifies aspects of French legal contracts, [siteswap](https://github.com/independentgeorge/siteswap.js) parses Siteswap notation for juggling patterns, [jsgrep](https://github.com/amireh/jsgrep) provides syntactic grep for JavaScript, [electro-grammar](https://github.com/monostable/electro-grammar) parses descriptions of electronic components like resistors and capacitors, [cicero](https://github.com/accordproject) helps create smart legal contracts, [Eventbot](https://geteventbot.com) is a calendar plugin for Slack used by thousands of teams, [Obyte](https://github.com/byteball/ocore) is a cryptocurrency platform, [OptiCSS](https://github.com/linkedin/opticss) is a CSS optimizer built by LinkedIn, [NESTUP](https://github.com/cutelabnyc/nested-tuplets) is a language for specifying nested rhythmic tuplets. **Other**: [ProceduralPsychEpisode](https://github.com/PatrickMurphy/ProceduralPsychEpisode) generates "random episodes of the hilarious but formulaic show" **Parsing libraries**: [nearley](http://nearley.js.org) is a parser toolkit for JavaScript. It has a nearley-based DSL to specify parsers. ### Give to nearley nearley has been maintained by volunteers since 2014. If you want to help support us, contact **@kach** or **@tjvr** on GitHub. We'll send over our PayPal information -- and maybe something nice. :-). nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/md/parser.md000066400000000000000000000116501376321042600234600ustar00rootroot00000000000000--- title: Using a parser --- This section describes nearley's parser API. Once you have compiled a `grammar.ne` file to a `grammar.js` module, you can then use nearley to instantiate a `Parser` object. First, import nearley and your grammar. ```js const nearley = require("nearley"); const grammar = require("./grammar.js"); ``` Note that if you are parsing in the browser, you can simply include `nearley.js` and `grammar.js` in ` nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/tokenizers.html000066400000000000000000000340411376321042600243240ustar00rootroot00000000000000 Tokenizers - nearley.js - JS Parsing Toolkit

Tokenizers

By default, nearley splits the input into a stream of characters. This is called scannerless parsing.

A tokenizer splits the input into a stream of larger units called tokens. This happens in a separate stage before parsing. For example, a tokenizer might convert 512 + 10 into ["512", "+", "10"]: notice how it removed the whitespace, and combined multi-digit numbers into a single number.

Using a tokenizer has many benefits. It…

  • …often makes your parser faster by more than an order of magnitude.
  • …allows you to write cleaner, more maintainable grammars.
  • …helps avoid ambiguous grammars in some cases. For example, a tokenizer can easily tell you that superclass is a single keyword, not a sequence of super and class keywords.
  • …gives you lexical information such as line numbers for each token. This lets you make better error messages.

Lexing with Moo

The @lexer directive instructs Nearley to use a lexer you’ve defined inside a Javascript block in your grammar.

nearley supports and recommends Moo, a super-fast lexer. Construct a lexer using moo.compile.

When using a lexer, there are two ways to match tokens:

  • Use %token to match a token with type token.

    line -> words %newline
  • Use "foo" to match a token with text foo.

    This is convenient for matching keywords:

    ifStatement -> "if" condition "then" block

Here is an example of a simple grammar:

@{%
const moo = require("moo");

const lexer = moo.compile({
  ws:     /[ \t]+/,
  number: /[0-9]+/,
  word: /[a-z]+/,
  times:  /\*|x/
});
%}

# Pass your lexer object using the @lexer option:
@lexer lexer

# Use %token to match any token of that type instead of "token":
multiplication -> %number %ws %times %ws %number {% ([first, , , , second]) => first * second %}

# Literal strings now match tokens with that text:
trig -> "sin" %number

Have a look at the Moo documentation to learn more about writing a tokenizer.

You use the parser as usual: call parser.feed(data), and nearley will give you the parsed results in return.

Custom lexers

nearley recommends using a moo-based lexer. However, you can use any lexer that conforms to the following interface:

  • next() returns a token object, which could have fields for line number, etc. Importantly, a token object must have a value attribute.
  • save() returns an info object that describes the current state of the lexer. nearley places no restrictions on this object.
  • reset(chunk, info) sets the internal buffer of the lexer to chunk, and restores its state to a state returned by save().
  • formatError(token) returns a string with an error message describing a parse error at that token (for example, the string might contain the line and column where the error was found).
  • has(name) returns true if the lexer can emit tokens with that name. This is used to resolve %-specifiers in compiled nearley grammars.

Note: if you are searching for a lexer that allows indentation-aware grammars (like in Python), you can still use moo. See this example or the moo-indentation-lexer module.

Custom token matchers

Aside from the lexer infrastructure, nearley provides a lightweight way to parse arbitrary streams.

Custom matchers can be defined in two ways: literal tokens and testable tokens. A literal token matches a JS value exactly (with ===), while a testable token runs a predicate that tests whether or not the value matches.

Note that in this case, you would feed a Parser instance an array of objects rather than a string! Here is a simple example:

@{%
const tokenPrint = { literal: "print" };
const tokenNumber = { test: x => Number.isInteger(x) };
%}

main -> %tokenPrint %tokenNumber ";;"

# parser.feed(["print", 12, ";;"]);
nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/tooling.html000066400000000000000000000361241376321042600236060ustar00rootroot00000000000000 Tooling - nearley.js - JS Parsing Toolkit

Tooling

nearley ships with a host of tools to help you develop, test, and maintain your grammars easily.

nearley-test: Exploring a parser interactively

A global install of nearley provides nearley-test, a simple command-line tool you can use to inspect what a parser is doing. You input a generated grammar.js file, and then give it some input to test the parser against. nearley-test prints out the output if successful, and optionally pretty-prints the internal parse table used by the algorithm. This is helpful to test a new parser.

nearley-unparse: The Unparser

The Unparser takes a (compiled) parser and outputs a random string that would be accepted by the parser.

$ nearley-unparse -s number <(nearleyc builtin/prims.ne)
-6.22E94

You can use the Unparser to…

  • …test your parser specification by generating lots of random expressions and making sure all of them are “correctâ€�.
  • …generate random strings from a schema (for example, random email addresses or telephone numbers).
  • …create fuzzers and combinatorial stress-testers.
  • …play “Mad-Libsâ€� automatically! (Practical application: automatic grammatically valid loremtext.)

The Unparser outputs as a stream by continuously writing characters to its output pipe. So, if it “goes off the deep end� and generates a huge string, you will still see output scrolling by in real-time.

To limit the size of the output, you can specify a bound on the depth with the -d flag. This switches the Unparser to a different algorithm. A larger depth bound corresponds to larger generated strings.

As far as I know, nearley is the only parser generator with this feature. It is inspired by Roly Fentanes’ randexp, which does the same thing with regular expressions.

Chase Meadors wrote a standalone nearley-unparse module, nearley-generator, which powers mLab, and you can play with it in the browser here.

nearley-railroad: Automagical Railroad Diagrams

nearley lets you convert your grammars to pretty SVG railroad diagrams that you can include in webpages, documentation, and even papers.

$ nearley-railroad regex.ne -o grammar.html

Railroad demo

See a bigger example here.

This feature is powered by railroad-diagrams by tabatkins.

See also: better-nearley-railroad (a third-party alternative)

Other Tools

This section lists nearley tooling created by other developers. These tools are not distributed with nearley, so if you have problems, please contact the respective author for support instead of opening an issue with nearley.

Atom users can write nearley grammars with this plugin by Bojidar Marinov.

TextMate and Sublime Text users can use this language by yours truly.

Sublime Text users can write nearley grammars with this syntax by liam4.

Vim users can use this plugin by Tim (based on this older plugin by Andrés Arana).

Visual Studio Code users can use this extension by Pouya Kary.

Python users can convert nearley grammars to Python using lark by Erez.

Node users can programmatically access the unparser using nearley-there by Scott Tolksdorf.

Browser users can use nearley-playground by Guillermo Webster to explore nearley interactively in the browser. There is also a Mac app by Pouya Kary.

Webpack users can use nearley-loader by Andrés Arana to load grammars directly.

Gulp users can use gulp-nearley by Joseph Junker to compile grammars with a gulpfile.

Node users can quickly create the framework for a large nearley-based project using nearley-template.

Parcel users can use parcel-plugin-nearley by Adam Rich to load grammars directly.

Jest users can use jest-transform-nearley by Adam Rich to load grammars directly.

Nearley for Deno use your compiled parser in deno with this nearley deno port by Olivier Guimbal

nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/docs/using-in-frontend.html000066400000000000000000000251541376321042600255020ustar00rootroot00000000000000 Compiling in browsers - nearley.js - JS Parsing Toolkit

Compiling in browsers

Both the nearley parser and compiled grammars work in browsers; simply include nearley.js and your compiled grammar.js file in <script> tags and use nearley as usual. However, the nearley compiler is not designed for the browser – you should precompile your grammars and only serve the generated JS files to browsers.

If you absolutely have to compile a grammar in a browser (for example, to implement a nearley IDE) then you can use a tool like Webpack or Rollup to include the nearley NPM package in your browser code. Then, you can utilize the nearleyc internals to compile grammars dynamically.

const nearley = require("nearley");
const compile = require("nearley/lib/compile");
const generate = require("nearley/lib/generate");
const nearleyGrammar = require("nearley/lib/nearley-language-bootstrapped");

function compileGrammar(sourceCode) {
    // Parse the grammar source into an AST
    const grammarParser = new nearley.Parser(nearleyGrammar);
    grammarParser.feed(sourceCode);
    const grammarAst = grammarParser.results[0]; // TODO check for errors

    // Compile the AST into a set of rules
    const grammarInfoObject = compile(grammarAst, {});
    // Generate JavaScript code from the rules
    const grammarJs = generate(grammarInfoObject, "grammar");

    // Pretend this is a CommonJS environment to catch exports from the grammar.
    const module = { exports: {} };
    eval(grammarJs);

    return module.exports;
}

const grammar = compileGrammar("main -> foo | bar");

const parser = new nearley.Parser(nearley.Grammar.fromCompiled(grammar));
nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/000077500000000000000000000000001376321042600221255ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/AycockHorspool.ne000066400000000000000000000002371376321042600254120ustar00rootroot00000000000000# grammar used in Aycock, Horspool paper # http://webhome.cs.uvic.ca/~nigelh/Publications/PracticalEarleyParsing.pdf S -> A A A A A -> "a" | E E -> null nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/JoopLeo.ne000066400000000000000000000004211376321042600240150ustar00rootroot00000000000000# the grammar used in Joop Leo's paper # Joop Leo "A general context-free parsing algorithm running in linear time on every LR(k) grammar without using lookahead" # input (a^n)(b^m) where n >= m # eg. # a # ab # aa # aab # aabb . . . S -> "a" S | C C -> "a" C "b" | null nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/calculator/000077500000000000000000000000001376321042600242565ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/calculator/arithmetic.ne000066400000000000000000000042761376321042600267440ustar00rootroot00000000000000# This is a nice little grammar to familiarize yourself # with the nearley syntax. # It parses valid calculator input, obeying OOO and stuff. # ln (3 + 2*(8/e - sin(pi/5))) # is valid input. # This is (hopefully) pretty self-evident. # `main` is the nonterminal that nearley tries to parse, so # we define it first. # The _'s are defined as whitespace below. This is a mini- # -idiom. main -> _ AS _ {% function(d) {return d[1]; } %} # PEMDAS! # We define each level of precedence as a nonterminal. # Parentheses P -> "(" _ AS _ ")" {% function(d) {return d[2]; } %} | N {% id %} # Exponents E -> P _ "^" _ E {% function(d) {return Math.pow(d[0], d[4]); } %} | P {% id %} # Multiplication and division MD -> MD _ "*" _ E {% function(d) {return d[0]*d[4]; } %} | MD _ "/" _ E {% function(d) {return d[0]/d[4]; } %} | E {% id %} # Addition and subtraction AS -> AS _ "+" _ MD {% function(d) {return d[0]+d[4]; } %} | AS _ "-" _ MD {% function(d) {return d[0]-d[4]; } %} | MD {% id %} # A number or a function of a number N -> float {% id %} | "sin" _ P {% function(d) {return Math.sin(d[2]); } %} | "cos" _ P {% function(d) {return Math.cos(d[2]); } %} | "tan" _ P {% function(d) {return Math.tan(d[2]); } %} | "asin" _ P {% function(d) {return Math.asin(d[2]); } %} | "acos" _ P {% function(d) {return Math.acos(d[2]); } %} | "atan" _ P {% function(d) {return Math.atan(d[2]); } %} | "pi" {% function(d) {return Math.PI; } %} | "e" {% function(d) {return Math.E; } %} | "sqrt" _ P {% function(d) {return Math.sqrt(d[2]); } %} | "ln" _ P {% function(d) {return Math.log(d[2]); } %} # I use `float` to basically mean a number with a decimal point in it float -> int "." int {% function(d) {return parseFloat(d[0] + d[1] + d[2])} %} | int {% function(d) {return parseInt(d[0])} %} int -> [0-9]:+ {% function(d) {return d[0].join(""); } %} # Whitespace. The important thing here is that the postprocessor # is a null-returning function. This is a memory efficiency trick. _ -> [\s]:* {% function(d) {return null; } %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/calculator/build-and-test.sh000077500000000000000000000001231376321042600274250ustar00rootroot00000000000000../../bin/nearleyc.js arithmetic.ne -o grammar.js -e arithmetic node calculator.js nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/calculator/calculator.js000066400000000000000000000026121376321042600267460ustar00rootroot00000000000000// This is an example of how to use a nearley-made grammar. var PROMPT = "> "; var nearley = require("../../lib/nearley.js"); var grammar = require("./grammar.js"); // This is where the action is. function runmath(s) { var ans; try {// We want to catch parse errors and die appropriately // Make a parser and feed the input ans = new nearley.Parser(grammar.ParserRules, grammar.ParserStart) .feed(s); // Check if there are any results if (ans.results.length) { return ans.results[0].toString(); } else { // This means the input is incomplete. var out = "Error: incomplete input, parse failed. :("; return out; } } catch(e) { // Panic in style, by graphically pointing out the error location. var out = new Array(PROMPT.length + e.offset + 1).join("-") + "^ Error."; // -------- // ^ This comes from nearley! return out; } } // node readline gunk. Nothing too exciting. var readline = require('readline'), rl = readline.createInterface(process.stdin, process.stdout); rl.setPrompt(PROMPT); rl.prompt(); rl.on('line', function(line) { console.log(runmath(line)); rl.prompt(); }).on('close', function() { console.log('\nBye.'); process.exit(0); }); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/calculator/grammar.js000066400000000000000000000110741376321042600262450ustar00rootroot00000000000000// Generated automatically by nearley // http://github.com/Hardmath123/nearley (function () { function id(x) {return x[0]; } var grammar = { ParserRules: [ {"name": "main", "symbols": ["_", "AS", "_"], "postprocess": function(d) {return d[1]; }}, {"name": "P", "symbols": [{"literal":"("}, "_", "AS", "_", {"literal":")"}], "postprocess": function(d) {return d[2]; }}, {"name": "P", "symbols": ["N"], "postprocess": id}, {"name": "E", "symbols": ["P", "_", {"literal":"^"}, "_", "E"], "postprocess": function(d) {return Math.pow(d[0], d[4]); }}, {"name": "E", "symbols": ["P"], "postprocess": id}, {"name": "MD", "symbols": ["MD", "_", {"literal":"*"}, "_", "E"], "postprocess": function(d) {return d[0]*d[4]; }}, {"name": "MD", "symbols": ["MD", "_", {"literal":"/"}, "_", "E"], "postprocess": function(d) {return d[0]/d[4]; }}, {"name": "MD", "symbols": ["E"], "postprocess": id}, {"name": "AS", "symbols": ["AS", "_", {"literal":"+"}, "_", "MD"], "postprocess": function(d) {return d[0]+d[4]; }}, {"name": "AS", "symbols": ["AS", "_", {"literal":"-"}, "_", "MD"], "postprocess": function(d) {return d[0]-d[4]; }}, {"name": "AS", "symbols": ["MD"], "postprocess": id}, {"name": "N", "symbols": ["float"], "postprocess": id}, {"name": "N$string$1", "symbols": [{"literal":"s"}, {"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "N", "symbols": ["N$string$1", "_", "P"], "postprocess": function(d) {return Math.sin(d[2]); }}, {"name": "N$string$2", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "N", "symbols": ["N$string$2", "_", "P"], "postprocess": function(d) {return Math.cos(d[2]); }}, {"name": "N$string$3", "symbols": [{"literal":"t"}, {"literal":"a"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "N", "symbols": ["N$string$3", "_", "P"], "postprocess": function(d) {return Math.tan(d[2]); }}, {"name": "N$string$4", "symbols": [{"literal":"a"}, {"literal":"s"}, {"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "N", "symbols": ["N$string$4", "_", "P"], "postprocess": function(d) {return Math.asin(d[2]); }}, {"name": "N$string$5", "symbols": [{"literal":"a"}, {"literal":"c"}, {"literal":"o"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "N", "symbols": ["N$string$5", "_", "P"], "postprocess": function(d) {return Math.acos(d[2]); }}, {"name": "N$string$6", "symbols": [{"literal":"a"}, {"literal":"t"}, {"literal":"a"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "N", "symbols": ["N$string$6", "_", "P"], "postprocess": function(d) {return Math.atan(d[2]); }}, {"name": "N$string$7", "symbols": [{"literal":"p"}, {"literal":"i"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "N", "symbols": ["N$string$7"], "postprocess": function(d) {return Math.PI; }}, {"name": "N", "symbols": [{"literal":"e"}], "postprocess": function(d) {return Math.E; }}, {"name": "N$string$8", "symbols": [{"literal":"s"}, {"literal":"q"}, {"literal":"r"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "N", "symbols": ["N$string$8", "_", "P"], "postprocess": function(d) {return Math.sqrt(d[2]); }}, {"name": "N$string$9", "symbols": [{"literal":"l"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "N", "symbols": ["N$string$9", "_", "P"], "postprocess": function(d) {return Math.log(d[2]); }}, {"name": "float", "symbols": ["int", {"literal":"."}, "int"], "postprocess": function(d) {return parseFloat(d[0] + d[1] + d[2])}}, {"name": "float", "symbols": ["int"], "postprocess": function(d) {return parseInt(d[0])}}, {"name": "int$ebnf$1", "symbols": [/[0-9]/]}, {"name": "int$ebnf$1", "symbols": [/[0-9]/, "int$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "int", "symbols": ["int$ebnf$1"], "postprocess": function(d) {return d[0].join(""); }}, {"name": "_$ebnf$1", "symbols": []}, {"name": "_$ebnf$1", "symbols": [/[\s]/, "_$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "_", "symbols": ["_$ebnf$1"], "postprocess": function(d) {return null; }} ] , ParserStart: "main" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.arithmetic = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/calculator/index.html000066400000000000000000000057731376321042600262670ustar00rootroot00000000000000 Calculator!

Enter an expression and hit <enter>.
Made with nearley.
nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/classic_crontab.ne000066400000000000000000000223351376321042600256070ustar00rootroot00000000000000# Parser for classic crontab. For syntax, check: man 5 crontab # Note that Vixie crontab extensions are not included, as any other extension # Linux, FreeBSD, MacOS X (macos) all use Vixie extensions # Solaris as opposed, uses classic crontab syntax # Any valid classic crontab can be used on Linux, FreeBSD, MacOS X (macos) classicCrontab -> "\n":* anyLine ("\n":+ anyLine):* "\n":* {% classicCrontab %} anyLine -> envSet {% id %} | cronStat {% id %} | blankLine {% function(d) { return null; }%} | comment {% function(d) { return null; }%} envSet -> envIdent "=" shellString:? {% envSet %} cronStat -> [ \t]:* minutes _ hours _ daysOfMonth _ monthsOfYear _ daysOfWeek _ cronShellCmd {% cronStat %} comment -> "#" [^\n]:* {% function(d) { return null; }%} blankLine -> _ {% function(d) { return null; }%} minutes -> "*" {% minuteAll %} | "*/" ([23456] | "10" | "12" | "15" | "20" | "30") {% minuteJump %} | minute "-" minute {% minuteRange %} | minute ("," minute):* {% minuteList %} hours -> "*" {% hourAll %} | "*/" ([23468] | "12") {% hourJump %} | hour "-" hour {% hourRange %} | hour ("," hour):* {% hourList %} daysOfMonth -> "*" {% allDaysOfMonth %} | "*/" ([2356] | "10" | "15") {% dayOfMonthJump %} | dayOfMonth "-" dayOfMonth {% dayOfMonthRange %} | dayOfMonth ("," dayOfMonth):* {% dayOfMonthList %} monthsOfYear -> "*" {% allMonthsOfYear %} | "*/" [2346] {% monthOfYearJump %} | monthOfYearNum "-" monthOfYearNum {% monthOfYearRange %} | monthOfYearNum ("," monthOfYearNum):* {% monthOfYearList %} | monthOfYearLit "-" monthOfYearLit {% monthOfYearRange %} | monthOfYearLit ("," monthOfYearLit):* {% monthOfYearList %} daysOfWeek -> "*" {% allDaysOfWeek %} | dayOfWeekNum "-" dayOfWeekNum {% dayOfWeekRange %} | dayOfWeekNum ("," dayOfWeekNum):* {% dayOfWeekList %} | dayOfWeekLit "-" dayOfWeekLit {% dayOfWeekRange %} | dayOfWeekLit ("," dayOfWeekLit):* {% dayOfWeekList %} cronShellCmd -> shellCmd shellStdIn:? {% cronShellCmd %} envIdent -> [a-zA-Z_] [0-9a-zA-Z_]:* {% function(d) { return d[0] + d[1].join("") } %} shellString -> ("\\":? [^\r\n'"\\] | "\\" "\"" | "\\" "'" | "\\" "\\"):+ {% unQuotedString %} | "\"" doubleQuotedContent:* "\"" {% function(d) { return d[1].join(""); } %} | "'" singleQuotedContent:* "'" {% function(d) { return d[1].join(""); } %} doubleQuotedContent -> [^\r\n"\\] {% function(d) { return d[0]; } %} | "\\" [^\r\n"\\] {% function(d) { return d.join(""); } %} | "\\\\" {% function(d) { return "\\"; } %} | "\\\"" {% function(d) { return "\""; } %} singleQuotedContent -> [^\r\n'\\] {% function(d) { return d[0]; } %} | "\\" [^\r\n'\\] {% function(d) { return d.join(""); } %} | "\\\\" {% function(d) { return "\\"; } %} | "\\'" {% function(d) { return "'"; } %} minute -> [0-5]:? [0-9] {% minute %} hour -> ([01]:? [0-9] | "2" [0-3]) {% hour %} dayOfMonth -> ("0":? [1-9] | [12] [0-9] | "3" [01]) {% dayOfMonth %} monthOfYearNum -> ("0":? [1-9] | "1" [0-2]) {% monthOfYearNum %} monthOfYearLit -> [jJ] [aA] [nN] {% function(d) { return 1; } %} | [fF] [eE] [bB] {% function(d) { return 2; } %} | [mM] [aA] [rR] {% function(d) { return 3; } %} | [aA] [pP] [rR] {% function(d) { return 4; } %} | [mM] [aA] [yY] {% function(d) { return 5; } %} | [jJ] [uU] [nN] {% function(d) { return 6; } %} | [jJ] [uU] [lL] {% function(d) { return 7; } %} | [aA] [uU] [gG] {% function(d) { return 8; } %} | [sS] [eE] [pP] {% function(d) { return 9; } %} | [oO] [cC] [tT] {% function(d) { return 10; } %} | [nN] [oO] [vV] {% function(d) { return 11; } %} | [dD] [eE] [cC] {% function(d) { return 12; } %} dayOfWeekNum -> [0-6] {% function(d) { return parseInt(d[0]); } %} dayOfWeekLit -> [sS] [uU] [nN] {% function(d) { return 0; } %} | [mM] [oO] [nN] {% function(d) { return 1; } %} | [tT] [uU] [eE] {% function(d) { return 2; } %} | [wW] [eE] [dD] {% function(d) { return 3; } %} | [tT] [hH] [uU] {% function(d) { return 4; } %} | [fF] [rR] [iI] {% function(d) { return 5; } %} | [sS] [aA] [tT] {% function(d) { return 6; } %} shellCmd -> [^\n\s%\\] ([^\r\n%\\] | "\\\\" | "\\%"):* {% shellCmd %} shellStdIn -> "%" shellStdInChar:* {% shellStdIn %} shellStdInChar -> [^\r\n%] {% function(d) { return d[0]; } %} | "%" {% function(d) { return "\n"; } %} _ -> [ \t]:+ {% function(d) { return null; } %} @{% /***** COMMON FUNCTIONS *****/ function toInt(n) { return parseInt(n); } function jumpRange(maxNum, step) { let output = []; step = step || 1; step = (step < 1) ? 1 : step; for (let i = 0; i < maxNum; i += step) { output.push(i); } return output; } function numRange(minNum, maxNum) { let output = []; for (let i = minNum; i <= maxNum; ++i) { output.push(i); } return output; } function plusN(n) { return function(i) { return n + i; } } function upToN(n) { return function(i) { return i <= n; } } function joinListWithKey(key) { return function(d) { let dict = {}; dict[d[0]] = true; for (let i in d[1]) { dict[d[1][i][1]] = true; } let output = {}; output[key] = Object.keys(dict).map(toInt); return output; } } /***** FUNCTIONS FOR ENVIRONMENT VARS *****/ function envSet(d) { let output = {}; output[d[0]] = d[2]; return {env: output}; } function unQuotedString(d) { let output = []; for (let i in d[0]) { output.push(d[0][i][1]); } return output.join(""); } /***** FUNCTIONS FOR MINUTES *****/ function minute(d) { return parseInt((d[0] | "") + d[1]); } function minuteAll(d) { return {minutes: jumpRange(60)}; } function minuteJump(d) { let step = parseInt(d[1]); return {minutes: jumpRange(60, step)}; } function minuteRange(d, l, reject) { let minNum = d[0]; let maxNum = d[2]; if (maxNum <= minNum) { return reject; } return {minutes: numRange(minNum, maxNum)}; } function minuteList(d) { return joinListWithKey('minutes')(d); } /***** FUNCTIONS FOR HOURS *****/ function hour(d) { return parseInt((d[0][0] || "") + d[0][1]); } function hourAll(d) { return {hours: jumpRange(24)}; } function hourJump(d) { let step = parseInt(d[1]); return {hours: jumpRange(24, step)}; } function hourRange(d, l, reject) { let minNum = d[0]; let maxNum = d[2]; if (maxNum <= minNum) { return reject; } return {hours: numRange(minNum, maxNum)}; } function hourList(d) { return joinListWithKey('hours')(d); } /***** FUNCTIONS FOR THE DAYS OF THE MONTH *****/ function dayOfMonth(d) { return parseInt((d[0][0] || "") + d[0][1]); } function allDaysOfMonth(d) { return {daysOfMonth: jumpRange(31).map(plusN(1))}; } function dayOfMonthJump(d) { let step = parseInt(d[1]); return {daysOfMonth: jumpRange(31, step).map(plusN(step)).filter(upToN(31))}; } function dayOfMonthRange(d, l, reject) { let minNum = d[0]; let maxNum = d[2]; if (maxNum <= minNum) { return reject; } return {daysOfMonth: numRange(minNum, maxNum)}; } function dayOfMonthList(d) { return joinListWithKey('daysOfMonth')(d); } /***** FUNCTIONS FOR THE MONTHS OF THE YEAR *****/ function monthOfYearNum(d) { return parseInt((d[0][0] || "") + d[0][1]); } function allMonthsOfYear(d) { return {monthsOfYear: jumpRange(12).map(plusN(1))}; } function monthOfYearJump(d) { let step = parseInt(d[1]); return {monthsOfYear: jumpRange(12, step).map(plusN(step)).filter(upToN(12))}; } function monthOfYearRange(d, l, reject) { let minNum = d[0]; let maxNum = d[2]; if (maxNum <= minNum) { return reject; } return {monthsOfYear: numRange(minNum, maxNum)}; } function monthOfYearList(d) { return joinListWithKey('monthsOfYear')(d); } /***** FUNCTIONS FOR THE DAYS OF THE WEEK *****/ function allDaysOfWeek(d) { return {daysOfWeek: jumpRange(7)}; } function dayOfWeekRange(d, l, reject) { let minNum = d[0]; let maxNum = d[2]; if (maxNum <= minNum) { return reject; } return {daysOfWeek: numRange(minNum, maxNum)}; } function dayOfWeekList(d) { return joinListWithKey('daysOfWeek')(d); } /***** FUNCTIONS FOR SHELL COMMANDS *****/ function shellCmd(d) { return d[0] + d[1].join("").trim(); } function shellStdIn(d) { let output = d[1].join(""); return ((output === "") ? null : output); } function cronShellCmd(d) { return {cmd: d[0], stdin: d[1]}; } /***** FUNCTIONS FOR CRON STATEMENTS *****/ function cronStat(d) { return { cron: { minutes: d[1].minutes, hours: d[3].hours, daysOfMonth: d[5].daysOfMonth, monthsOfYear: d[7].monthsOfYear, daysOfWeek: d[9].daysOfWeek, shell: d[11] } } } function isValidStat(obj) { // Accept only cron & env statements return (obj && (obj.cron || obj.env)); } function classicCrontab(d) { let output = []; if (isValidStat(d[1])) { output.push(d[1]); } for (let i in d[2]) { if (isValidStat(d[2][i][1])) { output.push(d[2][i][1]); } } return output; } %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/csscolor.ne000066400000000000000000000022541376321042600243030ustar00rootroot00000000000000# http://www.w3.org/TR/css3-color/#colorunits @builtin "whitespace.ne" @builtin "number.ne" @builtin "postprocessors.ne" csscolor -> "#" hexdigit hexdigit hexdigit hexdigit hexdigit hexdigit {% function(d) { return { "r": parseInt(d[1]+d[2], 16), "g": parseInt(d[3]+d[4], 16), "b": parseInt(d[5]+d[6], 16), } } %} | "#" hexdigit hexdigit hexdigit {% function(d) { return { "r": parseInt(d[1]+d[1], 16), "g": parseInt(d[2]+d[2], 16), "b": parseInt(d[3]+d[3], 16), } } %} | "rgb" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")" {% $({"r": 4, "g": 8, "b": 12}) %} | "hsl" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")" {% $({"h": 4, "s": 8, "l": 12}) %} | "rgba" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")" {% $({"r": 4, "g": 8, "b": 12, "a": 16}) %} | "hsla" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")" {% $({"h": 4, "s": 8, "l": 12, "a": 16}) %} hexdigit -> [a-fA-F0-9] colnum -> unsigned_int {% id %} | percentage {% function(d) {return Math.floor(d[0]*255); } %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/csv.ne000066400000000000000000000030511376321042600232430ustar00rootroot00000000000000# csv.ne # from the Antlr grammar at: http://www.antlr3.org/grammar/list.html # see also: https://github.com/antlr/grammars-v4 @{% var appendItem = function (a, b) { return function (d) { return d[a].concat([d[b]]); } }; var appendItemChar = function (a, b) { return function (d) { return d[a].concat(d[b]); } }; var empty = function (d) { return []; }; var emptyStr = function (d) { return ""; }; %} file -> header newline rows {% function (d) { return { header: d[0], rows: d[2] }; } %} header -> row {% id %} rows -> row | rows newline row {% appendItem(0,2) %} row -> field | row "," field {% appendItem(0,2) %} field -> unquoted_field {% id %} | "\"" quoted_field "\"" {% function (d) { return d[1]; } %} quoted_field -> null {% emptyStr %} | quoted_field quoted_field_char {% appendItemChar(0,1) %} quoted_field_char -> [^"] {% id %} | "\"" "\"" {% function (d) { return "\""; } %} unquoted_field -> null {% emptyStr %} | unquoted_field char {% appendItemChar(0,1) %} char -> [^\n\r",] {% id %} newline -> "\r" "\n" {% empty %} | "\r" | "\n" {% empty %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/fun-lang.ne000066400000000000000000000272221376321042600241650ustar00rootroot00000000000000@{% const moo = require("moo"); const lexer = moo.compile({ ws: /[ \t]+/, nl: { match: "\n", lineBreaks: true }, lte: "<=", lt: "<", gte: ">=", gt: ">", eq: "==", lparan: "(", rparan: ")", comma: ",", lbracket: "[", rbracket: "]", lbrace: "{", rbrace: "}", assignment: "=", plus: "+", minus: "-", multiply: "*", divide: "/", modulo: "%", colon: ":", comment: { match: /#[^\n]*/, value: s => s.substring(1) }, string_literal: { match: /"(?:[^\n\\"]|\\["\\ntbfr])*"/, value: s => JSON.parse(s) }, number_literal: { match: /[0-9]+(?:\.[0-9]+)?/, value: s => Number(s) }, identifier: { match: /[a-z_][a-z_0-9]*/, type: moo.keywords({ fun: "fun", proc: "proc", while: "while", for: "for", else: "else", in: "in", if: "if", return: "return", and: "and", or: "or", true: "true", false: "false" }) } }); function tokenStart(token) { return { line: token.line, col: token.col - 1 }; } function tokenEnd(token) { const lastNewLine = token.text.lastIndexOf("\n"); if (lastNewLine !== -1) { throw new Error("Unsupported case: token with line breaks"); } return { line: token.line, col: token.col + token.text.length - 1 }; } function convertToken(token) { return { type: token.type, value: token.value, start: tokenStart(token), end: tokenEnd(token) }; } function convertTokenId(data) { return convertToken(data[0]); } %} @lexer lexer input -> top_level_statements {% id %} top_level_statements -> top_level_statement {% d => [d[0]] %} | top_level_statement _ "\n" _ top_level_statements {% d => [ d[0], ...d[4] ] %} # below 2 sub-rules handle blank lines | _ "\n" top_level_statements {% d => d[2] %} | _ {% d => [] %} top_level_statement -> fun_definition {% id %} | proc_definition {% id %} | line_comment {% id %} fun_definition -> "fun" __ identifier _ "(" _ parameter_list _ ")" _ code_block {% d => ({ type: "fun_definition", name: d[2], parameters: d[6], body: d[10], start: tokenStart(d[0]), end: d[10].end }) %} proc_definition -> "proc" __ identifier _ "(" _ parameter_list _ ")" _ code_block {% d => ({ type: "proc_definition", name: d[2], parameters: d[6], body: d[10], start: tokenStart(d[0]), end: d[10].end }) %} parameter_list -> null {% () => [] %} | identifier {% d => [d[0]] %} | identifier _ "," _ parameter_list {% d => [d[0], ...d[4]] %} code_block -> "[" executable_statements "]" {% (d) => ({ type: "code_block", statements: d[1], start: tokenStart(d[0]), end: tokenEnd(d[2]) }) %} executable_statements -> _ {% () => [] %} | _ "\n" executable_statements {% (d) => d[2] %} | _ executable_statement _ {% d => [d[1]] %} | _ executable_statement _ "\n" executable_statements {% d => [d[1], ...d[4]] %} executable_statement -> return_statement {% id %} | var_assignment {% id %} | call_statement {% id %} | line_comment {% id %} | indexed_assignment {% id %} | while_loop {% id %} | if_statement {% id %} | for_loop {% id %} return_statement -> "return" __ expression {% d => ({ type: "return_statement", value: d[2], start: tokenStart(d[0]), end: d[2].end }) %} var_assignment -> identifier _ "=" _ expression {% d => ({ type: "var_assignment", var_name: d[0], value: d[4], start: d[0].start, end: d[4].end }) %} call_statement -> call_expression {% id %} call_expression -> identifier _ "(" argument_list ")" {% d => ({ type: "call_expression", fun_name: d[0], arguments: d[3], start: d[0].start, end: tokenEnd(d[4]) }) %} indexed_access -> unary_expression _ "[" _ expression _ "]" {% d => ({ type: "indexed_access", subject: d[0], index: d[4], start: d[0].start, end: tokenEnd(d[6]) }) %} indexed_assignment -> unary_expression _ "[" _ expression _ "]" _ "=" _ expression {% d => ({ type: "indexed_assignment", subject: d[0], index: d[4], value: d[10], start: d[0].start, end: d[10].end }) %} while_loop -> "while" __ expression __ code_block {% d => ({ type: "while_loop", condition: d[2], body: d[4], start: tokenStart(d[0]), end: d[4].end }) %} if_statement -> "if" __ expression __ code_block {% d => ({ type: "if_statement", condition: d[2], consequent: d[4], start: tokenStart(d[0]), end: d[4].end }) %} | "if" __ expression _ code_block _ "else" __ code_block {% d => ({ type: "if_statement", condition: d[2], consequent: d[4], alternate: d[8], start: tokenStart(d[0]), end: d[8].end }) %} | "if" __ expression _ code_block _ "else" __ if_statement {% d => ({ type: "if_statement", condition: d[2], consequent: d[4], alternate: d[8], start: tokenStart(d[0]), end: d[8].end }) %} for_loop -> "for" __ identifier __ "in" __ expression _ code_block {% d => ({ type: "for_loop", loop_variable: d[2], iterable: d[6], body: d[8], start: tokenStart(d[0]), end: d[8].end }) %} argument_list -> null {% () => [] %} | _ expression _ {% d => [d[1]] %} | _ expression _ "," argument_list {% d => [d[1], ...d[4]] %} expression -> boolean_expression {% id %} boolean_expression -> comparison_expression {% id %} | comparison_expression _ boolean_operator _ boolean_expression {% d => ({ type: "binary_operation", operator: convertToken(d[2]), left: d[0], right: d[4], start: d[0].start, end: d[4].end }) %} boolean_operator -> "and" {% id %} | "or" {% id %} comparison_expression -> additive_expression {% id %} | additive_expression _ comparison_operator _ comparison_expression {% d => ({ type: "binary_operation", operator: d[2], left: d[0], right: d[4], start: d[0].start, end: d[4].end }) %} comparison_operator -> ">" {% convertTokenId %} | ">=" {% convertTokenId %} | "<" {% convertTokenId %} | "<=" {% convertTokenId %} | "==" {% convertTokenId %} additive_expression -> multiplicative_expression {% id %} | multiplicative_expression _ [+-] _ additive_expression {% d => ({ type: "binary_operation", operator: convertToken(d[2]), left: d[0], right: d[4], start: d[0].start, end: d[4].end }) %} multiplicative_expression -> unary_expression {% id %} | unary_expression _ [*/%] _ multiplicative_expression {% d => ({ type: "binary_operation", operator: convertToken(d[2]), left: d[0], right: d[4], start: d[0].start, end: d[4].end }) %} unary_expression -> number {% id %} | identifier {% d => ({ type: "var_reference", var_name: d[0], start: d[0].start, end: d[0].end }) %} | call_expression {% id %} | string_literal {% id %} | list_literal {% id %} | dictionary_literal {% id %} | boolean_literal {% id %} | indexed_access {% id %} | fun_expression {% id %} | "(" expression ")" {% data => data[1] %} list_literal -> "[" list_items "]" {% d => ({ type: "list_literal", items: d[1], start: tokenStart(d[0]), end: tokenEnd(d[2]) }) %} list_items -> null {% () => [] %} | _ml expression _ml {% d => [d[1]] %} | _ml expression _ml "," list_items {% d => [ d[1], ...d[4] ] %} dictionary_literal -> "{" dictionary_entries "}" {% d => ({ type: "dictionary_literal", entries: d[1], start: tokenStart(d[0]), end: tokenEnd(d[2]) }) %} dictionary_entries -> null {% () => [] %} | _ml dictionary_entry _ml {% d => [d[1]] %} | _ml dictionary_entry _ml "," dictionary_entries {% d => [d[1], ...d[4]] %} dictionary_entry -> identifier _ml ":" _ml expression {% d => [d[0], d[4]] %} boolean_literal -> "true" {% d => ({ type: "boolean_literal", value: true, start: tokenStart(d[0]), end: tokenEnd(d[0]) }) %} | "false" {% d => ({ type: "boolean_literal", value: false, start: tokenStart(d[0]), end: tokenEnd(d[0]) }) %} fun_expression -> "fun" _ "(" _ parameter_list _ ")" _ code_block {% d => ({ type: "fun_expression", parameters: d[4], body: d[8], start: tokenStart(d[0]), end: d[8].end }) %} line_comment -> %comment {% convertTokenId %} string_literal -> %string_literal {% convertTokenId %} number -> %number_literal {% convertTokenId %} identifier -> %identifier {% convertTokenId %} _ml -> multi_line_ws_char:* multi_line_ws_char -> %ws | "\n" __ -> %ws:+ _ -> %ws:* nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/js/000077500000000000000000000000001376321042600225415ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/js/AycockHorspool.js000066400000000000000000000007741376321042600260460ustar00rootroot00000000000000// Generated automatically by nearley // http://github.com/Hardmath123/nearley (function () { function id(x) {return x[0]; } var grammar = { ParserRules: [ {"name": "S", "symbols": ["A", "A", "A", "A"]}, {"name": "A", "symbols": [{"literal":"a"}]}, {"name": "A", "symbols": ["E"]}, {"name": "E", "symbols": []} ] , ParserStart: "S" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/js/JoopLeo.js000066400000000000000000000010241376321042600244430ustar00rootroot00000000000000// Generated automatically by nearley // http://github.com/Hardmath123/nearley (function () { function id(x) {return x[0]; } var grammar = { ParserRules: [ {"name": "S", "symbols": [{"literal":"a"}, "S"]}, {"name": "S", "symbols": ["C"]}, {"name": "C", "symbols": [{"literal":"a"}, "C", {"literal":"b"}]}, {"name": "C", "symbols": []} ] , ParserStart: "S" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/js/csscolor.js000066400000000000000000000230301376321042600247240ustar00rootroot00000000000000// Generated automatically by nearley // http://github.com/Hardmath123/nearley (function () { function id(x) {return x[0]; } function nth(n) { return function(d) { return d[n]; }; } function $(o) { return function(d) { var ret = {}; Object.keys(o).forEach(function(k) { ret[k] = d[o[k]]; }); return ret; }; } var grammar = { ParserRules: [ {"name": "_$ebnf$1", "symbols": []}, {"name": "_$ebnf$1", "symbols": ["wschar", "_$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "_", "symbols": ["_$ebnf$1"], "postprocess": function(d) {return null;}}, {"name": "__$ebnf$1", "symbols": ["wschar"]}, {"name": "__$ebnf$1", "symbols": ["wschar", "__$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "__", "symbols": ["__$ebnf$1"], "postprocess": function(d) {return null;}}, {"name": "wschar", "symbols": [/[ \t\n\v\f]/], "postprocess": id}, {"name": "unsigned_int$ebnf$1", "symbols": [/[0-9]/]}, {"name": "unsigned_int$ebnf$1", "symbols": [/[0-9]/, "unsigned_int$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "unsigned_int", "symbols": ["unsigned_int$ebnf$1"], "postprocess": function(d) { return parseInt(d[0].join("")); } }, {"name": "int$ebnf$1$subexpression$1", "symbols": [{"literal":"-"}]}, {"name": "int$ebnf$1$subexpression$1", "symbols": [{"literal":"+"}]}, {"name": "int$ebnf$1", "symbols": ["int$ebnf$1$subexpression$1"], "postprocess": id}, {"name": "int$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "int$ebnf$2", "symbols": [/[0-9]/]}, {"name": "int$ebnf$2", "symbols": [/[0-9]/, "int$ebnf$2"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "int", "symbols": ["int$ebnf$1", "int$ebnf$2"], "postprocess": function(d) { if (d[0]) { return parseInt(d[0][0]+d[1].join("")); } else { return parseInt(d[1].join("")); } } }, {"name": "unsigned_decimal$ebnf$1", "symbols": [/[0-9]/]}, {"name": "unsigned_decimal$ebnf$1", "symbols": [/[0-9]/, "unsigned_decimal$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1", "symbols": [/[0-9]/]}, {"name": "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1", "symbols": [/[0-9]/, "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "unsigned_decimal$ebnf$2$subexpression$1", "symbols": [{"literal":"."}, "unsigned_decimal$ebnf$2$subexpression$1$ebnf$1"]}, {"name": "unsigned_decimal$ebnf$2", "symbols": ["unsigned_decimal$ebnf$2$subexpression$1"], "postprocess": id}, {"name": "unsigned_decimal$ebnf$2", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "unsigned_decimal", "symbols": ["unsigned_decimal$ebnf$1", "unsigned_decimal$ebnf$2"], "postprocess": function(d) { return parseFloat( d[0].join("") + (d[1] ? "."+d[1][1].join("") : "") ); } }, {"name": "decimal$ebnf$1", "symbols": [{"literal":"-"}], "postprocess": id}, {"name": "decimal$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "decimal$ebnf$2", "symbols": [/[0-9]/]}, {"name": "decimal$ebnf$2", "symbols": [/[0-9]/, "decimal$ebnf$2"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "decimal$ebnf$3$subexpression$1$ebnf$1", "symbols": [/[0-9]/]}, {"name": "decimal$ebnf$3$subexpression$1$ebnf$1", "symbols": [/[0-9]/, "decimal$ebnf$3$subexpression$1$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "decimal$ebnf$3$subexpression$1", "symbols": [{"literal":"."}, "decimal$ebnf$3$subexpression$1$ebnf$1"]}, {"name": "decimal$ebnf$3", "symbols": ["decimal$ebnf$3$subexpression$1"], "postprocess": id}, {"name": "decimal$ebnf$3", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "decimal", "symbols": ["decimal$ebnf$1", "decimal$ebnf$2", "decimal$ebnf$3"], "postprocess": function(d) { return parseFloat( (d[0] || "") + d[1].join("") + (d[2] ? "."+d[2][1].join("") : "") ); } }, {"name": "percentage", "symbols": ["decimal", {"literal":"%"}], "postprocess": function(d) { return d[0]/100; } }, {"name": "jsonfloat$ebnf$1", "symbols": [{"literal":"-"}], "postprocess": id}, {"name": "jsonfloat$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "jsonfloat$ebnf$2", "symbols": [/[0-9]/]}, {"name": "jsonfloat$ebnf$2", "symbols": [/[0-9]/, "jsonfloat$ebnf$2"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "jsonfloat$ebnf$3$subexpression$1$ebnf$1", "symbols": [/[0-9]/]}, {"name": "jsonfloat$ebnf$3$subexpression$1$ebnf$1", "symbols": [/[0-9]/, "jsonfloat$ebnf$3$subexpression$1$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "jsonfloat$ebnf$3$subexpression$1", "symbols": [{"literal":"."}, "jsonfloat$ebnf$3$subexpression$1$ebnf$1"]}, {"name": "jsonfloat$ebnf$3", "symbols": ["jsonfloat$ebnf$3$subexpression$1"], "postprocess": id}, {"name": "jsonfloat$ebnf$3", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "jsonfloat$ebnf$4$subexpression$1$ebnf$1", "symbols": [/[+-]/], "postprocess": id}, {"name": "jsonfloat$ebnf$4$subexpression$1$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "jsonfloat$ebnf$4$subexpression$1$ebnf$2", "symbols": [/[0-9]/]}, {"name": "jsonfloat$ebnf$4$subexpression$1$ebnf$2", "symbols": [/[0-9]/, "jsonfloat$ebnf$4$subexpression$1$ebnf$2"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "jsonfloat$ebnf$4$subexpression$1", "symbols": [/[eE]/, "jsonfloat$ebnf$4$subexpression$1$ebnf$1", "jsonfloat$ebnf$4$subexpression$1$ebnf$2"]}, {"name": "jsonfloat$ebnf$4", "symbols": ["jsonfloat$ebnf$4$subexpression$1"], "postprocess": id}, {"name": "jsonfloat$ebnf$4", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "jsonfloat", "symbols": ["jsonfloat$ebnf$1", "jsonfloat$ebnf$2", "jsonfloat$ebnf$3", "jsonfloat$ebnf$4"], "postprocess": function(d) { return parseFloat( (d[0] || "") + d[1].join("") + (d[2] ? d[2][1].join("") : "") + (d[3] ? "e" + (d[3][1] || "+") + d[3][2].join("") : "") ); } }, {"name": "csscolor", "symbols": [{"literal":"#"}, "hexdigit", "hexdigit", "hexdigit", "hexdigit", "hexdigit", "hexdigit"], "postprocess": function(d) { return { "r": parseInt(d[1]+d[2], 16), "g": parseInt(d[3]+d[4], 16), "b": parseInt(d[5]+d[6], 16), } } }, {"name": "csscolor", "symbols": [{"literal":"#"}, "hexdigit", "hexdigit", "hexdigit"], "postprocess": function(d) { return { "r": parseInt(d[1]+d[1], 16), "g": parseInt(d[2]+d[2], 16), "b": parseInt(d[3]+d[3], 16), } } }, {"name": "csscolor$string$1", "symbols": [{"literal":"r"}, {"literal":"g"}, {"literal":"b"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "csscolor", "symbols": ["csscolor$string$1", "_", {"literal":"("}, "_", "colnum", "_", {"literal":","}, "_", "colnum", "_", {"literal":","}, "_", "colnum", "_", {"literal":")"}], "postprocess": $({"r": 4, "g": 8, "b": 12})}, {"name": "csscolor$string$2", "symbols": [{"literal":"h"}, {"literal":"s"}, {"literal":"l"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "csscolor", "symbols": ["csscolor$string$2", "_", {"literal":"("}, "_", "colnum", "_", {"literal":","}, "_", "colnum", "_", {"literal":","}, "_", "colnum", "_", {"literal":")"}], "postprocess": $({"h": 4, "s": 8, "l": 12})}, {"name": "csscolor$string$3", "symbols": [{"literal":"r"}, {"literal":"g"}, {"literal":"b"}, {"literal":"a"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "csscolor", "symbols": ["csscolor$string$3", "_", {"literal":"("}, "_", "colnum", "_", {"literal":","}, "_", "colnum", "_", {"literal":","}, "_", "colnum", "_", {"literal":","}, "_", "decimal", "_", {"literal":")"}], "postprocess": $({"r": 4, "g": 8, "b": 12, "a": 16})}, {"name": "csscolor$string$4", "symbols": [{"literal":"h"}, {"literal":"s"}, {"literal":"l"}, {"literal":"a"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "csscolor", "symbols": ["csscolor$string$4", "_", {"literal":"("}, "_", "colnum", "_", {"literal":","}, "_", "colnum", "_", {"literal":","}, "_", "colnum", "_", {"literal":","}, "_", "decimal", "_", {"literal":")"}], "postprocess": $({"h": 4, "s": 8, "l": 12, "a": 16})}, {"name": "hexdigit", "symbols": [/[a-fA-F0-9]/]}, {"name": "colnum", "symbols": ["unsigned_int"], "postprocess": id}, {"name": "colnum", "symbols": ["percentage"], "postprocess": function(d) {return Math.floor(d[0]*255); } } ] , ParserStart: "csscolor" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/js/csv.js000066400000000000000000000042141376321042600236730ustar00rootroot00000000000000// Generated automatically by nearley // http://github.com/Hardmath123/nearley (function () { function id(x) {return x[0]; } var appendItem = function (a, b) { return function (d) { return d[a].concat([d[b]]); } }; var appendItemChar = function (a, b) { return function (d) { return d[a].concat(d[b]); } }; var empty = function (d) { return []; }; var emptyStr = function (d) { return ""; }; var grammar = { ParserRules: [ {"name": "file", "symbols": ["header", "newline", "rows"], "postprocess": function (d) { return { header: d[0], rows: d[2] }; } }, {"name": "header", "symbols": ["row"], "postprocess": id }, {"name": "rows", "symbols": ["row"]}, {"name": "rows", "symbols": ["rows", "newline", "row"], "postprocess": appendItem(0,2) }, {"name": "row", "symbols": ["field"]}, {"name": "row", "symbols": ["row", {"literal":","}, "field"], "postprocess": appendItem(0,2) }, {"name": "field", "symbols": ["unquoted_field"], "postprocess": id }, {"name": "field", "symbols": [{"literal":"\""}, "quoted_field", {"literal":"\""}], "postprocess": function (d) { return d[1]; } }, {"name": "quoted_field", "symbols": [], "postprocess": emptyStr }, {"name": "quoted_field", "symbols": ["quoted_field", "quoted_field_char"], "postprocess": appendItemChar(0,1) }, {"name": "quoted_field_char", "symbols": [/[^"]/], "postprocess": id }, {"name": "quoted_field_char", "symbols": [{"literal":"\""}, {"literal":"\""}], "postprocess": function (d) { return "\""; } }, {"name": "unquoted_field", "symbols": [], "postprocess": emptyStr }, {"name": "unquoted_field", "symbols": ["unquoted_field", "char"], "postprocess": appendItemChar(0,1) }, {"name": "char", "symbols": [/[^\n\r",]/], "postprocess": empty }, {"name": "newline", "symbols": [{"literal":"\r"}, {"literal":"\n"}], "postprocess": empty }, {"name": "newline", "symbols": [{"literal":"\r"}]}, {"name": "newline", "symbols": [{"literal":"\n"}], "postprocess": empty } ] , ParserStart: "file" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/js/left.js000066400000000000000000000006501376321042600240320ustar00rootroot00000000000000// Generated automatically by nearley // http://github.com/Hardmath123/nearley (function () { function id(x) {return x[0]; } var grammar = { ParserRules: [ {"name": "c", "symbols": []}, {"name": "c", "symbols": ["c", {"literal":"."}]} ] , ParserStart: "c" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/js/lua.js000066400000000000000000000442221376321042600236640ustar00rootroot00000000000000// Generated automatically by nearley // http://github.com/Hardmath123/nearley (function () { function id(x) {return x[0]; } var grammar = { ParserRules: [ {"name": "Chunk", "symbols": ["_", "Block", "_"]}, {"name": "Block", "symbols": ["_Block"]}, {"name": "Block", "symbols": ["_Block", "__", "ReturnStat"]}, {"name": " string$1", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"t"}, {"literal":"u"}, {"literal":"r"}, {"literal":"n"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ReturnStat", "symbols": [" string$1", "__", "ExpList"]}, {"name": " string$2", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"t"}, {"literal":"u"}, {"literal":"r"}, {"literal":"n"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ReturnStat", "symbols": [" string$2", "__", "ExpList", "_", {"literal":";"}]}, {"name": "_Block", "symbols": ["Statement"]}, {"name": "_Block", "symbols": ["_Block", "_", {"literal":";"}, "_", "Statement"]}, {"name": "_Block", "symbols": ["_Block", "__", "Statement"]}, {"name": "Statement", "symbols": ["VarList", "_", {"literal":"="}, "_", "ExpList"]}, {"name": "Statement", "symbols": ["FunctionCall"]}, {"name": "Statement", "symbols": ["Label"]}, {"name": " string$3", "symbols": [{"literal":"b"}, {"literal":"r"}, {"literal":"e"}, {"literal":"a"}, {"literal":"k"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$3"]}, {"name": " string$4", "symbols": [{"literal":"g"}, {"literal":"o"}, {"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$4", "__", "Name"]}, {"name": " string$5", "symbols": [{"literal":"d"}, {"literal":"o"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$6", "symbols": [{"literal":"e"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$5", "__", "Block", "__", " string$6"]}, {"name": " string$7", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"i"}, {"literal":"l"}, {"literal":"e"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$8", "symbols": [{"literal":"d"}, {"literal":"o"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$9", "symbols": [{"literal":"e"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$7", "__", "Exp", "__", " string$8", "__", "Block", "__", " string$9"]}, {"name": " string$10", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"p"}, {"literal":"e"}, {"literal":"a"}, {"literal":"t"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$11", "symbols": [{"literal":"u"}, {"literal":"n"}, {"literal":"t"}, {"literal":"i"}, {"literal":"l"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$10", "__", "Block", "__", " string$11", "__", "Exp"]}, {"name": " string$12", "symbols": [{"literal":"i"}, {"literal":"f"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$13", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$12", "__", "Exp", "__", " string$13", "__", "Block", "__", "Else"]}, {"name": " string$14", "symbols": [{"literal":"f"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$15", "symbols": [{"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$16", "symbols": [{"literal":"d"}, {"literal":"o"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$17", "symbols": [{"literal":"e"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$14", "__", "NameList", "__", " string$15", "__", "ExpList", "__", " string$16", "__", "Block", "__", " string$17"]}, {"name": " string$18", "symbols": [{"literal":"f"}, {"literal":"u"}, {"literal":"n"}, {"literal":"c"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$18", "__", "FunctionName", "_", "FunctionBody"]}, {"name": " string$19", "symbols": [{"literal":"l"}, {"literal":"o"}, {"literal":"c"}, {"literal":"a"}, {"literal":"l"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$20", "symbols": [{"literal":"f"}, {"literal":"u"}, {"literal":"n"}, {"literal":"c"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$19", "__", " string$20", "__", "Name", "__", "FunctionBody"]}, {"name": " string$21", "symbols": [{"literal":"l"}, {"literal":"o"}, {"literal":"c"}, {"literal":"a"}, {"literal":"l"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$21", "__", "NameList"]}, {"name": " string$22", "symbols": [{"literal":"l"}, {"literal":"o"}, {"literal":"c"}, {"literal":"a"}, {"literal":"l"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Statement", "symbols": [" string$22", "__", "NameList", "_", {"literal":"="}, "_", "ExpList"]}, {"name": " string$23", "symbols": [{"literal":"e"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Else", "symbols": [" string$23"]}, {"name": " string$24", "symbols": [{"literal":"e"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Else", "symbols": ["_Else", "__", " string$24"]}, {"name": " string$25", "symbols": [{"literal":"e"}, {"literal":"l"}, {"literal":"s"}, {"literal":"e"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$26", "symbols": [{"literal":"e"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Else", "symbols": ["_Else", "__", " string$25", "__", "Block", "__", " string$26"]}, {"name": " string$27", "symbols": [{"literal":"e"}, {"literal":"l"}, {"literal":"s"}, {"literal":"e"}, {"literal":"i"}, {"literal":"f"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$28", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "_Else", "symbols": [" string$27", "__", "Exp", "__", " string$28", "__", "Block"]}, {"name": " string$29", "symbols": [{"literal":"e"}, {"literal":"l"}, {"literal":"s"}, {"literal":"e"}, {"literal":"i"}, {"literal":"f"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$30", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "_Else", "symbols": ["_Else", "__", " string$29", "__", "Exp", "__", " string$30", "__", "Block"]}, {"name": " string$31", "symbols": [{"literal":":"}, {"literal":":"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": " string$32", "symbols": [{"literal":":"}, {"literal":":"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Label", "symbols": [" string$31", "_", "Name", "_", " string$32"]}, {"name": "Name", "symbols": ["_name"], "postprocess": function(d) {return {'name': d[0]}; } }, {"name": "_name", "symbols": [/[a-zA-Z_]/], "postprocess": id }, {"name": "_name", "symbols": ["_name", /[\w_]/], "postprocess": function(d) {return d[0] + d[1]; } }, {"name": "NameList", "symbols": ["Name"]}, {"name": "NameList", "symbols": ["NameList", "_", {"literal":","}, "_", "Name"]}, {"name": "Var", "symbols": ["Name"]}, {"name": "Var", "symbols": ["PrefixExp", "_", {"literal":"["}, "_", "Exp", "_", {"literal":"]"}]}, {"name": "Var", "symbols": ["PrefixExp", "_", {"literal":"."}, "_", "Name"]}, {"name": "VarList", "symbols": ["Var"]}, {"name": "VarList", "symbols": ["VarList", "_", {"literal":","}, "_", "Var"]}, {"name": "ExpList", "symbols": ["Exp"]}, {"name": "ExpList", "symbols": ["ExpList", "_", {"literal":","}, "_", "Exp"]}, {"name": "PrefixExp", "symbols": ["Var"]}, {"name": "PrefixExp", "symbols": ["FunctionCall"]}, {"name": "PrefixExp", "symbols": ["Parenthesized"]}, {"name": "FunctionCall", "symbols": ["PrefixExp", "_", "Args"]}, {"name": "FunctionCall", "symbols": ["PrefixExp", "_", {"literal":":"}, "_", "Name", "_", "Args"]}, {"name": "Args", "symbols": [{"literal":"("}, "_", {"literal":")"}]}, {"name": "Args", "symbols": [{"literal":"("}, "_", "ExpList", "_", {"literal":")"}]}, {"name": "Args", "symbols": ["String"]}, {"name": "FunctionName", "symbols": ["_functionname"]}, {"name": "FunctionName", "symbols": ["_functionname", {"literal":":"}, "Name"]}, {"name": "_functionname", "symbols": ["Name"]}, {"name": "_functionname", "symbols": ["FunctionName", "_", {"literal":"."}, "_", "FunctionName"]}, {"name": " string$33", "symbols": [{"literal":"f"}, {"literal":"u"}, {"literal":"n"}, {"literal":"c"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "FunctionDef", "symbols": [" string$33", "__", "FunctionBody"]}, {"name": " string$34", "symbols": [{"literal":"e"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "FunctionBody", "symbols": [{"literal":"("}, "_", "ParamList", "_", {"literal":")"}, "__", "Block", "__", " string$34"]}, {"name": " string$35", "symbols": [{"literal":"e"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "FunctionBody", "symbols": [{"literal":"("}, "_", {"literal":")"}, "__", "Block", "__", " string$35"]}, {"name": "ParamList", "symbols": ["NameList"]}, {"name": " string$36", "symbols": [{"literal":"."}, {"literal":"."}, {"literal":"."}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ParamList", "symbols": ["NameList", "_", {"literal":","}, "_", " string$36"]}, {"name": " string$37", "symbols": [{"literal":"."}, {"literal":"."}, {"literal":"."}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ParamList", "symbols": [" string$37"]}, {"name": "TableConstructor", "symbols": [{"literal":"{"}, "_", "FieldList", "_", {"literal":"}"}]}, {"name": "TableConstructor", "symbols": [{"literal":"{"}, "_", {"literal":"}"}]}, {"name": "FieldList", "symbols": ["_FieldList"]}, {"name": "FieldList", "symbols": ["_FieldList", "_", "FieldSep"]}, {"name": "_FieldList", "symbols": ["Field"]}, {"name": "_FieldList", "symbols": ["_FieldList", "_", "FieldSep", "_", "Field"]}, {"name": "Field", "symbols": [{"literal":"["}, "_", "Exp", "_", {"literal":"]"}, "_", {"literal":"="}, "_", "Exp"]}, {"name": "Field", "symbols": ["Name", "_", {"literal":"="}, "_", "Exp"]}, {"name": "Field", "symbols": ["Exp"]}, {"name": "FieldSep", "symbols": [{"literal":","}]}, {"name": "FieldSep", "symbols": [{"literal":";"}]}, {"name": "Exp", "symbols": ["Binop"], "postprocess": id }, {"name": "Binop", "symbols": ["ExpOr"], "postprocess": id }, {"name": "Parenthesized", "symbols": [{"literal":"("}, "Exp", {"literal":")"}]}, {"name": " string$38", "symbols": [{"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ExpOr", "symbols": ["ExpOr", "__", " string$38", "__", "ExpAnd"]}, {"name": "ExpOr", "symbols": ["ExpAnd"], "postprocess": id }, {"name": " string$39", "symbols": [{"literal":"a"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ExpAnd", "symbols": ["ExpAnd", "__", " string$39", "__", "ExpComparison"]}, {"name": "ExpAnd", "symbols": ["ExpComparison"], "postprocess": id }, {"name": "ExpComparison", "symbols": ["ExpComparison", "_", {"literal":"<"}, "_", "ExpConcatenation"]}, {"name": "ExpComparison", "symbols": ["ExpComparison", "_", {"literal":">"}, "_", "ExpConcatenation"]}, {"name": " string$40", "symbols": [{"literal":"<"}, {"literal":"="}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ExpComparison", "symbols": ["ExpComparison", "_", " string$40", "_", "ExpConcatenation"]}, {"name": " string$41", "symbols": [{"literal":">"}, {"literal":"="}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ExpComparison", "symbols": ["ExpComparison", "_", " string$41", "_", "ExpConcatenation"]}, {"name": " string$42", "symbols": [{"literal":"~"}, {"literal":"="}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ExpComparison", "symbols": ["ExpComparison", "_", " string$42", "_", "ExpConcatenation"]}, {"name": " string$43", "symbols": [{"literal":"="}, {"literal":"="}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ExpComparison", "symbols": ["ExpComparison", "_", " string$43", "_", "ExpConcatenation"]}, {"name": "ExpComparison", "symbols": ["ExpConcatenation"]}, {"name": " string$44", "symbols": [{"literal":"."}, {"literal":"."}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ExpConcatenation", "symbols": ["ExpSum", "_", " string$44", "_", "ExpConcatenation"]}, {"name": "ExpConcatenation", "symbols": ["ExpSum"]}, {"name": "ExpSum", "symbols": ["ExpSum", "_", {"literal":"+"}, "_", "ExpProduct"]}, {"name": "ExpSum", "symbols": ["ExpSum", "_", {"literal":"-"}, "_", "ExpProduct"]}, {"name": "ExpSum", "symbols": ["ExpProduct"]}, {"name": "ExpProduct", "symbols": ["ExpProduct", "_", {"literal":"*"}, "_", "ExpUnary"]}, {"name": "ExpProduct", "symbols": ["ExpProduct", "_", {"literal":"/"}, "_", "ExpUnary"]}, {"name": "ExpProduct", "symbols": ["ExpProduct", "_", {"literal":"%"}, "_", "ExpUnary"]}, {"name": "ExpProduct", "symbols": ["ExpUnary"]}, {"name": " string$45", "symbols": [{"literal":"n"}, {"literal":"o"}, {"literal":"t"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "ExpUnary", "symbols": [" string$45", "__", "ExpPow"]}, {"name": "ExpUnary", "symbols": [{"literal":"#"}, "_", "ExpPow"]}, {"name": "ExpUnary", "symbols": [{"literal":"-"}, "_", "ExpPow"]}, {"name": "ExpUnary", "symbols": ["ExpPow"]}, {"name": "ExpPow", "symbols": ["Atom"]}, {"name": "ExpPow", "symbols": ["Atom", "_", {"literal":"^"}, "_", "ExpPow"]}, {"name": "Atom", "symbols": ["Number"]}, {"name": "Atom", "symbols": ["String"]}, {"name": "Atom", "symbols": ["PrefixExp"]}, {"name": " string$46", "symbols": [{"literal":"n"}, {"literal":"i"}, {"literal":"l"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Atom", "symbols": [" string$46"]}, {"name": " string$47", "symbols": [{"literal":"f"}, {"literal":"a"}, {"literal":"l"}, {"literal":"s"}, {"literal":"e"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Atom", "symbols": [" string$47"]}, {"name": " string$48", "symbols": [{"literal":"t"}, {"literal":"r"}, {"literal":"u"}, {"literal":"e"}], "postprocess": function joiner(d) { return d.join(''); }}, {"name": "Atom", "symbols": [" string$48"]}, {"name": "Atom", "symbols": ["Parenthesized"]}, {"name": "Atom", "symbols": ["FunctionDef"]}, {"name": "Atom", "symbols": ["TableConstructor"]}, {"name": "Number", "symbols": ["_number"], "postprocess": function(d) {return {'literal': parseFloat(d[0])}} }, {"name": "_posint", "symbols": [/[0-9]/], "postprocess": id }, {"name": "_posint", "symbols": ["_posint", /[0-9]/], "postprocess": function(d) {return d[0] + d[1]} }, {"name": "_int", "symbols": [{"literal":"-"}, "_posint"], "postprocess": function(d) {return d[0] + d[1]; }}, {"name": "_int", "symbols": ["_posint"], "postprocess": id }, {"name": "_float", "symbols": ["_int"], "postprocess": id }, {"name": "_float", "symbols": ["_int", {"literal":"."}, "_posint"], "postprocess": function(d) {return d[0] + d[1] + d[2]; }}, {"name": "_number", "symbols": ["_float"], "postprocess": id }, {"name": "_number", "symbols": ["_float", {"literal":"e"}, "_int"], "postprocess": function(d){return d[0] + d[1] + d[2]; } }, {"name": "String", "symbols": [{"literal":"\""}, "_string", {"literal":"\""}], "postprocess": function(d) {return {'literal':d[1]}; } }, {"name": "_string", "symbols": [], "postprocess": function() {return ""; } }, {"name": "_string", "symbols": ["_string", "_stringchar"], "postprocess": function(d) {return d[0] + d[1];} }, {"name": "_stringchar", "symbols": [/[^\\"]/], "postprocess": id }, {"name": "_stringchar", "symbols": [{"literal":"\\"}, /[^]/], "postprocess": function(d) {return JSON.parse("\"" + d[0] + d[1] + "\""); } }, {"name": "_", "symbols": []}, {"name": "_", "symbols": ["_", /[\s]/], "postprocess": function() {} }, {"name": "__", "symbols": [/[\s]/]}, {"name": "__", "symbols": ["__", /[\s]/], "postprocess": function() {} } ] , ParserStart: "Chunk" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/js/numberstring.js000066400000000000000000000340151376321042600256210ustar00rootroot00000000000000// Generated automatically by nearley // http://github.com/Hardmath123/nearley (function () { function id(x) {return x[0]; } var nameMap = { one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9, ten:10,eleven:11,twelve:12,thirteen:13,fourteen:14,fifteen:15,sixteen:16,seventeen:17,eighteen:18,nineteen:19, twenty:20,thirty:30,fourty:40,fifty:50,sixty:60,seventy:70,eighty:80,ninety:90, hundred:100,thousand:1000,million:1000000,billion:1000000000 }; var nameToVal = function(d) { return nameMap[d]; }; var nothing = function (d) { return null; }; var sumParts = function(d) { var retVal = 0; for(var i=0;i d[2]}, {"name": "r_value", "symbols": ["join"], "postprocess": id}, {"name": "r_value", "symbols": ["n4"], "postprocess": id}, {"name": "b_parens", "symbols": [{"literal":"<"}, "_", "b8", "_", {"literal":">"}], "postprocess": d => d[2]}, {"name": "predicate", "symbols": ["simple_predicate"], "postprocess": id}, {"name": "join$string$1", "symbols": [{"literal":"j"}, {"literal":"o"}, {"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "join", "symbols": ["join$string$1", "__", "jpart", "__", "jpart"], "postprocess": d => ["concatenate:with:", d[2], d[4]]}, {"name": "jpart", "symbols": ["s0"], "postprocess": id}, {"name": "jpart", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "jpart", "symbols": ["join"], "postprocess": id}, {"name": "jpart", "symbols": ["r_parens"], "postprocess": id}, {"name": "jpart", "symbols": ["b_parens"], "postprocess": id}, {"name": "predicate$string$1", "symbols": [{"literal":"t"}, {"literal":"o"}, {"literal":"u"}, {"literal":"c"}, {"literal":"h"}, {"literal":"i"}, {"literal":"n"}, {"literal":"g"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "predicate$string$2", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"l"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "predicate", "symbols": ["predicate$string$1", "__", "predicate$string$2", "__", "c", "_", {"literal":"?"}], "postprocess": d => ["touchingColor:", d[4]]}, {"name": "predicate$string$3", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"l"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "predicate$string$4", "symbols": [{"literal":"i"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "predicate$string$5", "symbols": [{"literal":"t"}, {"literal":"o"}, {"literal":"u"}, {"literal":"c"}, {"literal":"h"}, {"literal":"i"}, {"literal":"n"}, {"literal":"g"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "predicate", "symbols": ["predicate$string$3", "__", "c", "__", "predicate$string$4", "__", "predicate$string$5", "__", "c", "_", {"literal":"?"}], "postprocess": d => ["color:sees:", d[2], d[8]]}, {"name": "b8", "symbols": ["b_and"], "postprocess": id}, {"name": "b8", "symbols": ["b_or"], "postprocess": id}, {"name": "b8", "symbols": ["b7"], "postprocess": id}, {"name": "b_and$string$1", "symbols": [{"literal":"a"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "b_and", "symbols": ["b_and", "__", "b_and$string$1", "__", "b7"], "postprocess": d => ["&", d[0], d[4]]}, {"name": "b_and$string$2", "symbols": [{"literal":"a"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "b_and", "symbols": ["b7", "__", "b_and$string$2", "__", "b7"], "postprocess": d => ["&", d[0], d[4]]}, {"name": "b_or$string$1", "symbols": [{"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "b_or", "symbols": ["b_or", "__", "b_or$string$1", "__", "b7"], "postprocess": d => ["|", d[0], d[4]]}, {"name": "b_or$string$2", "symbols": [{"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "b_or", "symbols": ["b7", "__", "b_or$string$2", "__", "b7"], "postprocess": d => ["|", d[0], d[4]]}, {"name": "b7$string$1", "symbols": [{"literal":"n"}, {"literal":"o"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "b7", "symbols": ["b7$string$1", "__", "b7"], "postprocess": d => ["not", d[2]]}, {"name": "b7", "symbols": ["b6"], "postprocess": id}, {"name": "b6", "symbols": ["sb", "_", {"literal":"<"}, "_", "sb"], "postprocess": d => ["<", d[0], d[4]]}, {"name": "b6", "symbols": ["sb", "_", {"literal":">"}, "_", "sb"], "postprocess": d => [">", d[0], d[4]]}, {"name": "b6", "symbols": ["sb", "_", {"literal":"="}, "_", "sb"], "postprocess": d => ["=", d[0], d[4]]}, {"name": "b6$string$1", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"n"}, {"literal":"t"}, {"literal":"a"}, {"literal":"i"}, {"literal":"n"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "b6", "symbols": ["m_list", "__", "b6$string$1", "__", "sb", "_", {"literal":"?"}], "postprocess": d => ["list:contains:", d[0], d[4]]}, {"name": "b6", "symbols": ["predicate"], "postprocess": id}, {"name": "b6", "symbols": ["b2"], "postprocess": id}, {"name": "b2", "symbols": ["b_parens"], "postprocess": id}, {"name": "b2", "symbols": ["b0"], "postprocess": id}, {"name": "n4", "symbols": ["n4", "_", {"literal":"+"}, "_", "n3"], "postprocess": d => ["+", d[0], d[4]]}, {"name": "n4", "symbols": ["n4", "_", {"literal":"-"}, "_", "n3"], "postprocess": d => ["-", d[0], d[4]]}, {"name": "n4", "symbols": ["n3"], "postprocess": id}, {"name": "n3", "symbols": ["n3", "_", {"literal":"*"}, "_", "n2"], "postprocess": d => ["*", d[0], d[4]]}, {"name": "n3", "symbols": ["n3", "_", {"literal":"/"}, "_", "n2"], "postprocess": d => ["/", d[0], d[4]]}, {"name": "n3$string$1", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n3", "symbols": ["n3", "_", "n3$string$1", "_", "n2"], "postprocess": d => ["%", d[0], d[4]]}, {"name": "n3", "symbols": ["n2"], "postprocess": id}, {"name": "n2$string$1", "symbols": [{"literal":"r"}, {"literal":"o"}, {"literal":"u"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2", "symbols": ["n2$string$1", "__", "n2"], "postprocess": d => ["rounded", d[2]]}, {"name": "n2$string$2", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2", "symbols": ["m_mathOp", "__", "n2$string$2", "__", "n2"], "postprocess": d => ["computeFunction:of:", d[0], d[4]]}, {"name": "n2$string$3", "symbols": [{"literal":"p"}, {"literal":"i"}, {"literal":"c"}, {"literal":"k"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2$string$4", "symbols": [{"literal":"r"}, {"literal":"a"}, {"literal":"n"}, {"literal":"d"}, {"literal":"o"}, {"literal":"m"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2$string$5", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2", "symbols": ["n2$string$3", "__", "n2$string$4", "__", "n4", "__", "n2$string$5", "__", "n2"], "postprocess": d => ["randomFrom:to:", d[4], d[8]]}, {"name": "n2$string$6", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2", "symbols": ["m_attribute", "__", "n2$string$6", "__", "m_spriteOrStage"], "postprocess": d => ["getAttribute:of:", d[0], d[4]]}, {"name": "n2$string$7", "symbols": [{"literal":"d"}, {"literal":"i"}, {"literal":"s"}, {"literal":"t"}, {"literal":"a"}, {"literal":"n"}, {"literal":"c"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2$string$8", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2", "symbols": ["n2$string$7", "__", "n2$string$8", "__", "m_spriteOrMouse"], "postprocess": d => ["distanceTo:", d[4]]}, {"name": "n2$string$9", "symbols": [{"literal":"l"}, {"literal":"e"}, {"literal":"n"}, {"literal":"g"}, {"literal":"t"}, {"literal":"h"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2$string$10", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2", "symbols": ["n2$string$9", "__", "n2$string$10", "__", "s2"], "postprocess": d => ["stringLength:", d[4]]}, {"name": "n2$string$11", "symbols": [{"literal":"l"}, {"literal":"e"}, {"literal":"t"}, {"literal":"t"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2$string$12", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "n2", "symbols": ["n2$string$11", "__", "n", "__", "n2$string$12", "__", "s2"], "postprocess": d => ["letter:of:", d[2], d[6]]}, {"name": "n2", "symbols": ["n1"], "postprocess": id}, {"name": "n1", "symbols": ["simple_reporter"], "postprocess": id}, {"name": "n1", "symbols": ["r_parens"], "postprocess": id}, {"name": "n1", "symbols": ["b_parens"], "postprocess": id}, {"name": "n1", "symbols": ["n0"], "postprocess": id}, {"name": "s2", "symbols": ["s0"], "postprocess": id}, {"name": "s2", "symbols": ["n1"], "postprocess": id}, {"name": "n0", "symbols": [{"literal":"-"}, "_", "number"], "postprocess": d => -d[2]}, {"name": "n0", "symbols": ["number"], "postprocess": d => d[0]}, {"name": "n0", "symbols": [{"literal":"_"}], "postprocess": d => 0}, {"name": "s0", "symbols": ["string"], "postprocess": id}, {"name": "b0$string$1", "symbols": [{"literal":"<"}, {"literal":">"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "b0", "symbols": ["b0$string$1"], "postprocess": d => false}, {"name": "c0", "symbols": ["color"], "postprocess": id}, {"name": "_greenFlag$string$1", "symbols": [{"literal":"f"}, {"literal":"l"}, {"literal":"a"}, {"literal":"g"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "_greenFlag", "symbols": ["_greenFlag$string$1"]}, {"name": "_greenFlag$string$2", "symbols": [{"literal":"g"}, {"literal":"r"}, {"literal":"e"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "_greenFlag$string$3", "symbols": [{"literal":"f"}, {"literal":"l"}, {"literal":"a"}, {"literal":"g"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "_greenFlag", "symbols": ["_greenFlag$string$2", "__", "_greenFlag$string$3"]}, {"name": "_turnLeft$string$1", "symbols": [{"literal":"c"}, {"literal":"c"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "_turnLeft", "symbols": ["_turnLeft$string$1"]}, {"name": "_turnLeft$string$2", "symbols": [{"literal":"l"}, {"literal":"e"}, {"literal":"f"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "_turnLeft", "symbols": ["_turnLeft$string$2"]}, {"name": "_turnRight$string$1", "symbols": [{"literal":"c"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "_turnRight", "symbols": ["_turnRight$string$1"]}, {"name": "_turnRight$string$2", "symbols": [{"literal":"r"}, {"literal":"i"}, {"literal":"g"}, {"literal":"h"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "_turnRight", "symbols": ["_turnRight$string$2"]}, {"name": "c0$string$1", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$1"], "postprocess": id}, {"name": "c0$string$2", "symbols": [{"literal":"o"}, {"literal":"r"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$2"], "postprocess": id}, {"name": "c0$string$3", "symbols": [{"literal":"y"}, {"literal":"e"}, {"literal":"l"}, {"literal":"l"}, {"literal":"o"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$3"], "postprocess": id}, {"name": "c0$string$4", "symbols": [{"literal":"g"}, {"literal":"r"}, {"literal":"e"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$4"], "postprocess": id}, {"name": "c0$string$5", "symbols": [{"literal":"b"}, {"literal":"l"}, {"literal":"u"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$5"], "postprocess": id}, {"name": "c0$string$6", "symbols": [{"literal":"p"}, {"literal":"u"}, {"literal":"r"}, {"literal":"p"}, {"literal":"l"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$6"], "postprocess": id}, {"name": "c0$string$7", "symbols": [{"literal":"b"}, {"literal":"l"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$7"], "postprocess": id}, {"name": "c0$string$8", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"i"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$8"], "postprocess": id}, {"name": "c0$string$9", "symbols": [{"literal":"p"}, {"literal":"i"}, {"literal":"n"}, {"literal":"k"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$9"], "postprocess": id}, {"name": "c0$string$10", "symbols": [{"literal":"b"}, {"literal":"r"}, {"literal":"o"}, {"literal":"w"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "c0", "symbols": ["c0$string$10"], "postprocess": id}, {"name": "m_attribute$string$1", "symbols": [{"literal":"p"}, {"literal":"o"}, {"literal":"s"}, {"literal":"i"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute", "symbols": [{"literal":"x"}, "__", "m_attribute$string$1"], "postprocess": d => "x position"}, {"name": "m_attribute$string$2", "symbols": [{"literal":"p"}, {"literal":"o"}, {"literal":"s"}, {"literal":"i"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute", "symbols": [{"literal":"y"}, "__", "m_attribute$string$2"], "postprocess": d => "y position"}, {"name": "m_attribute$string$3", "symbols": [{"literal":"d"}, {"literal":"i"}, {"literal":"r"}, {"literal":"e"}, {"literal":"c"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute", "symbols": ["m_attribute$string$3"], "postprocess": id}, {"name": "m_attribute$string$4", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"s"}, {"literal":"t"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute", "symbols": ["m_attribute$string$4", "__", {"literal":"#"}], "postprocess": d => "costume #"}, {"name": "m_attribute$string$5", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"s"}, {"literal":"t"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute$string$6", "symbols": [{"literal":"n"}, {"literal":"a"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute", "symbols": ["m_attribute$string$5", "__", "m_attribute$string$6"], "postprocess": d => "costume name"}, {"name": "m_attribute$string$7", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}, {"literal":"d"}, {"literal":"r"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute", "symbols": ["m_attribute$string$7", "__", {"literal":"#"}], "postprocess": d => "backdrop #"}, {"name": "m_attribute$string$8", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}, {"literal":"d"}, {"literal":"r"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute$string$9", "symbols": [{"literal":"n"}, {"literal":"a"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute", "symbols": ["m_attribute$string$8", "__", "m_attribute$string$9"], "postprocess": d => "backdrop name"}, {"name": "m_attribute$string$10", "symbols": [{"literal":"s"}, {"literal":"i"}, {"literal":"z"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute", "symbols": ["m_attribute$string$10"], "postprocess": id}, {"name": "m_attribute$string$11", "symbols": [{"literal":"v"}, {"literal":"o"}, {"literal":"l"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_attribute", "symbols": ["m_attribute$string$11"], "postprocess": id}, {"name": "m_attribute", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_backdrop", "symbols": ["jpart"], "postprocess": id}, {"name": "m_backdrop", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_broadcast", "symbols": ["jpart"], "postprocess": id}, {"name": "m_broadcast", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_costume", "symbols": ["jpart"], "postprocess": id}, {"name": "m_costume", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_effect$string$1", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"l"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_effect", "symbols": ["m_effect$string$1"], "postprocess": id}, {"name": "m_effect$string$2", "symbols": [{"literal":"f"}, {"literal":"i"}, {"literal":"s"}, {"literal":"h"}, {"literal":"e"}, {"literal":"y"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_effect", "symbols": ["m_effect$string$2"], "postprocess": id}, {"name": "m_effect$string$3", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"i"}, {"literal":"r"}, {"literal":"l"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_effect", "symbols": ["m_effect$string$3"], "postprocess": id}, {"name": "m_effect$string$4", "symbols": [{"literal":"p"}, {"literal":"i"}, {"literal":"x"}, {"literal":"e"}, {"literal":"l"}, {"literal":"a"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_effect", "symbols": ["m_effect$string$4"], "postprocess": id}, {"name": "m_effect$string$5", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"s"}, {"literal":"a"}, {"literal":"i"}, {"literal":"c"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_effect", "symbols": ["m_effect$string$5"], "postprocess": id}, {"name": "m_effect$string$6", "symbols": [{"literal":"b"}, {"literal":"r"}, {"literal":"i"}, {"literal":"g"}, {"literal":"h"}, {"literal":"t"}, {"literal":"n"}, {"literal":"e"}, {"literal":"s"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_effect", "symbols": ["m_effect$string$6"], "postprocess": id}, {"name": "m_effect$string$7", "symbols": [{"literal":"g"}, {"literal":"h"}, {"literal":"o"}, {"literal":"s"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_effect", "symbols": ["m_effect$string$7"], "postprocess": id}, {"name": "m_effect", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_key$string$1", "symbols": [{"literal":"s"}, {"literal":"p"}, {"literal":"a"}, {"literal":"c"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key", "symbols": ["m_key$string$1"], "postprocess": id}, {"name": "m_key$string$2", "symbols": [{"literal":"u"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key$string$3", "symbols": [{"literal":"a"}, {"literal":"r"}, {"literal":"r"}, {"literal":"o"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key", "symbols": ["m_key$string$2", "__", "m_key$string$3"], "postprocess": d => "up arrow"}, {"name": "m_key$string$4", "symbols": [{"literal":"d"}, {"literal":"o"}, {"literal":"w"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key$string$5", "symbols": [{"literal":"a"}, {"literal":"r"}, {"literal":"r"}, {"literal":"o"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key", "symbols": ["m_key$string$4", "__", "m_key$string$5"], "postprocess": d => "down arrow"}, {"name": "m_key$string$6", "symbols": [{"literal":"r"}, {"literal":"i"}, {"literal":"g"}, {"literal":"h"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key$string$7", "symbols": [{"literal":"a"}, {"literal":"r"}, {"literal":"r"}, {"literal":"o"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key", "symbols": ["m_key$string$6", "__", "m_key$string$7"], "postprocess": d => "right arrow"}, {"name": "m_key$string$8", "symbols": [{"literal":"l"}, {"literal":"e"}, {"literal":"f"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key$string$9", "symbols": [{"literal":"a"}, {"literal":"r"}, {"literal":"r"}, {"literal":"o"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key", "symbols": ["m_key$string$8", "__", "m_key$string$9"], "postprocess": d => "left arrow"}, {"name": "m_key$string$10", "symbols": [{"literal":"a"}, {"literal":"n"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_key", "symbols": ["m_key$string$10"], "postprocess": id}, {"name": "m_key", "symbols": [/[a-z0-9]/], "postprocess": id}, {"name": "m_key", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_list", "symbols": ["ListName"], "postprocess": id}, {"name": "m_list", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_location", "symbols": ["jpart"], "postprocess": id}, {"name": "m_location$string$1", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"u"}, {"literal":"s"}, {"literal":"e"}, {"literal":"-"}, {"literal":"p"}, {"literal":"o"}, {"literal":"i"}, {"literal":"n"}, {"literal":"t"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_location", "symbols": ["m_location$string$1"], "postprocess": d => "_mouse_"}, {"name": "m_location$string$2", "symbols": [{"literal":"r"}, {"literal":"a"}, {"literal":"n"}, {"literal":"d"}, {"literal":"o"}, {"literal":"m"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_location$string$3", "symbols": [{"literal":"p"}, {"literal":"o"}, {"literal":"s"}, {"literal":"i"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_location", "symbols": ["m_location$string$2", "__", "m_location$string$3"], "postprocess": d => "_random_"}, {"name": "m_location", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_mathOp$string$1", "symbols": [{"literal":"a"}, {"literal":"b"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$1"], "postprocess": id}, {"name": "m_mathOp$string$2", "symbols": [{"literal":"f"}, {"literal":"l"}, {"literal":"o"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$2"], "postprocess": id}, {"name": "m_mathOp$string$3", "symbols": [{"literal":"c"}, {"literal":"e"}, {"literal":"i"}, {"literal":"l"}, {"literal":"i"}, {"literal":"n"}, {"literal":"g"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$3"], "postprocess": id}, {"name": "m_mathOp$string$4", "symbols": [{"literal":"s"}, {"literal":"q"}, {"literal":"r"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$4"], "postprocess": id}, {"name": "m_mathOp$string$5", "symbols": [{"literal":"s"}, {"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$5"], "postprocess": id}, {"name": "m_mathOp$string$6", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$6"], "postprocess": id}, {"name": "m_mathOp$string$7", "symbols": [{"literal":"t"}, {"literal":"a"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$7"], "postprocess": id}, {"name": "m_mathOp$string$8", "symbols": [{"literal":"a"}, {"literal":"s"}, {"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$8"], "postprocess": id}, {"name": "m_mathOp$string$9", "symbols": [{"literal":"a"}, {"literal":"c"}, {"literal":"o"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$9"], "postprocess": id}, {"name": "m_mathOp$string$10", "symbols": [{"literal":"a"}, {"literal":"t"}, {"literal":"a"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$10"], "postprocess": id}, {"name": "m_mathOp$string$11", "symbols": [{"literal":"l"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$11"], "postprocess": id}, {"name": "m_mathOp$string$12", "symbols": [{"literal":"l"}, {"literal":"o"}, {"literal":"g"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$12"], "postprocess": id}, {"name": "m_mathOp", "symbols": [{"literal":"e"}, "_", {"literal":"^"}], "postprocess": d => "e ^"}, {"name": "m_mathOp$string$13", "symbols": [{"literal":"1"}, {"literal":"0"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_mathOp", "symbols": ["m_mathOp$string$13", "_", {"literal":"^"}], "postprocess": d => "10 ^"}, {"name": "m_mathOp", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_rotationStyle$string$1", "symbols": [{"literal":"l"}, {"literal":"e"}, {"literal":"f"}, {"literal":"t"}, {"literal":"-"}, {"literal":"r"}, {"literal":"i"}, {"literal":"g"}, {"literal":"h"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_rotationStyle", "symbols": ["m_rotationStyle$string$1"], "postprocess": id}, {"name": "m_rotationStyle$string$2", "symbols": [{"literal":"d"}, {"literal":"o"}, {"literal":"n"}, {"literal":"'"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_rotationStyle$string$3", "symbols": [{"literal":"r"}, {"literal":"o"}, {"literal":"t"}, {"literal":"a"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_rotationStyle", "symbols": ["m_rotationStyle$string$2", "__", "m_rotationStyle$string$3"], "postprocess": d => "don't rotate"}, {"name": "m_rotationStyle$string$4", "symbols": [{"literal":"a"}, {"literal":"l"}, {"literal":"l"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_rotationStyle$string$5", "symbols": [{"literal":"a"}, {"literal":"r"}, {"literal":"o"}, {"literal":"u"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_rotationStyle", "symbols": ["m_rotationStyle$string$4", "__", "m_rotationStyle$string$5"], "postprocess": d => "all around"}, {"name": "m_rotationStyle", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_scene", "symbols": ["jpart"], "postprocess": id}, {"name": "m_scene", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_sound", "symbols": ["jpart"], "postprocess": id}, {"name": "m_sound", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_spriteOnly", "symbols": ["jpart"], "postprocess": id}, {"name": "m_spriteOnly$string$1", "symbols": [{"literal":"m"}, {"literal":"y"}, {"literal":"s"}, {"literal":"e"}, {"literal":"l"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_spriteOnly", "symbols": ["m_spriteOnly$string$1"], "postprocess": d => "_myself_"}, {"name": "m_spriteOnly", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_spriteOrMouse", "symbols": ["jpart"], "postprocess": id}, {"name": "m_spriteOrMouse$string$1", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"u"}, {"literal":"s"}, {"literal":"e"}, {"literal":"-"}, {"literal":"p"}, {"literal":"o"}, {"literal":"i"}, {"literal":"n"}, {"literal":"t"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_spriteOrMouse", "symbols": ["m_spriteOrMouse$string$1"], "postprocess": d => "_mouse_"}, {"name": "m_spriteOrMouse", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_spriteOrStage", "symbols": ["jpart"], "postprocess": id}, {"name": "m_spriteOrStage$string$1", "symbols": [{"literal":"S"}, {"literal":"t"}, {"literal":"a"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_spriteOrStage", "symbols": ["m_spriteOrStage$string$1"], "postprocess": d => "_stage_"}, {"name": "m_spriteOrStage", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_stageOrThis$string$1", "symbols": [{"literal":"S"}, {"literal":"t"}, {"literal":"a"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stageOrThis", "symbols": ["m_stageOrThis$string$1"], "postprocess": d => "_stage_"}, {"name": "m_stageOrThis$string$2", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"i"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stageOrThis$string$3", "symbols": [{"literal":"s"}, {"literal":"p"}, {"literal":"r"}, {"literal":"i"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stageOrThis", "symbols": ["m_stageOrThis$string$2", "__", "m_stageOrThis$string$3"], "postprocess": d => "this sprite"}, {"name": "m_stageOrThis", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_stop$string$1", "symbols": [{"literal":"a"}, {"literal":"l"}, {"literal":"l"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stop", "symbols": ["m_stop$string$1"], "postprocess": id}, {"name": "m_stop$string$2", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"i"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stop$string$3", "symbols": [{"literal":"s"}, {"literal":"c"}, {"literal":"r"}, {"literal":"i"}, {"literal":"p"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stop", "symbols": ["m_stop$string$2", "__", "m_stop$string$3"], "postprocess": d => "this script"}, {"name": "m_stop$string$4", "symbols": [{"literal":"o"}, {"literal":"t"}, {"literal":"h"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stop$string$5", "symbols": [{"literal":"s"}, {"literal":"c"}, {"literal":"r"}, {"literal":"i"}, {"literal":"p"}, {"literal":"t"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stop$string$6", "symbols": [{"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stop$string$7", "symbols": [{"literal":"s"}, {"literal":"p"}, {"literal":"r"}, {"literal":"i"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_stop", "symbols": ["m_stop$string$4", "__", "m_stop$string$5", "__", "m_stop$string$6", "__", "m_stop$string$7"], "postprocess": d => "other scripts in sprite"}, {"name": "m_stop", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_timeAndDate$string$1", "symbols": [{"literal":"y"}, {"literal":"e"}, {"literal":"a"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_timeAndDate", "symbols": ["m_timeAndDate$string$1"], "postprocess": id}, {"name": "m_timeAndDate$string$2", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"n"}, {"literal":"t"}, {"literal":"h"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_timeAndDate", "symbols": ["m_timeAndDate$string$2"], "postprocess": id}, {"name": "m_timeAndDate$string$3", "symbols": [{"literal":"d"}, {"literal":"a"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_timeAndDate", "symbols": ["m_timeAndDate$string$3"], "postprocess": id}, {"name": "m_timeAndDate$string$4", "symbols": [{"literal":"d"}, {"literal":"a"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_timeAndDate$string$5", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_timeAndDate$string$6", "symbols": [{"literal":"w"}, {"literal":"e"}, {"literal":"e"}, {"literal":"k"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_timeAndDate", "symbols": ["m_timeAndDate$string$4", "__", "m_timeAndDate$string$5", "__", "m_timeAndDate$string$6"], "postprocess": d => "day of week"}, {"name": "m_timeAndDate$string$7", "symbols": [{"literal":"h"}, {"literal":"o"}, {"literal":"u"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_timeAndDate", "symbols": ["m_timeAndDate$string$7"], "postprocess": id}, {"name": "m_timeAndDate$string$8", "symbols": [{"literal":"m"}, {"literal":"i"}, {"literal":"n"}, {"literal":"u"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_timeAndDate", "symbols": ["m_timeAndDate$string$8"], "postprocess": id}, {"name": "m_timeAndDate$string$9", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"c"}, {"literal":"o"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_timeAndDate", "symbols": ["m_timeAndDate$string$9"], "postprocess": id}, {"name": "m_timeAndDate", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_touching", "symbols": ["jpart"], "postprocess": id}, {"name": "m_touching$string$1", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"u"}, {"literal":"s"}, {"literal":"e"}, {"literal":"-"}, {"literal":"p"}, {"literal":"o"}, {"literal":"i"}, {"literal":"n"}, {"literal":"t"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_touching", "symbols": ["m_touching$string$1"], "postprocess": d => "_mouse_"}, {"name": "m_touching$string$2", "symbols": [{"literal":"e"}, {"literal":"d"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_touching", "symbols": ["m_touching$string$2"], "postprocess": d => "_edge_"}, {"name": "m_touching", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_triggerSensor$string$1", "symbols": [{"literal":"l"}, {"literal":"o"}, {"literal":"u"}, {"literal":"d"}, {"literal":"n"}, {"literal":"e"}, {"literal":"s"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_triggerSensor", "symbols": ["m_triggerSensor$string$1"], "postprocess": id}, {"name": "m_triggerSensor$string$2", "symbols": [{"literal":"t"}, {"literal":"i"}, {"literal":"m"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_triggerSensor", "symbols": ["m_triggerSensor$string$2"], "postprocess": id}, {"name": "m_triggerSensor$string$3", "symbols": [{"literal":"v"}, {"literal":"i"}, {"literal":"d"}, {"literal":"e"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_triggerSensor$string$4", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_triggerSensor", "symbols": ["m_triggerSensor$string$3", "__", "m_triggerSensor$string$4"], "postprocess": d => "video motion"}, {"name": "m_triggerSensor", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_var", "symbols": ["VariableName"], "postprocess": id}, {"name": "m_var", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_varName", "symbols": ["VariableName"], "postprocess": id}, {"name": "m_varName", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_videoMotionType$string$1", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_videoMotionType", "symbols": ["m_videoMotionType$string$1"], "postprocess": id}, {"name": "m_videoMotionType$string$2", "symbols": [{"literal":"d"}, {"literal":"i"}, {"literal":"r"}, {"literal":"e"}, {"literal":"c"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_videoMotionType", "symbols": ["m_videoMotionType$string$2"], "postprocess": id}, {"name": "m_videoMotionType", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "m_videoState$string$1", "symbols": [{"literal":"o"}, {"literal":"f"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_videoState", "symbols": ["m_videoState$string$1"], "postprocess": id}, {"name": "m_videoState$string$2", "symbols": [{"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_videoState", "symbols": ["m_videoState$string$2"], "postprocess": id}, {"name": "m_videoState$string$3", "symbols": [{"literal":"o"}, {"literal":"n"}, {"literal":"-"}, {"literal":"f"}, {"literal":"l"}, {"literal":"i"}, {"literal":"p"}, {"literal":"p"}, {"literal":"e"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "m_videoState", "symbols": ["m_videoState$string$3"], "postprocess": id}, {"name": "m_videoState", "symbols": [{"literal":"_"}], "postprocess": d => ""}, {"name": "d_direction", "symbols": ["n"], "postprocess": id}, {"name": "d_drum", "symbols": ["n"], "postprocess": id}, {"name": "d_instrument", "symbols": ["n"], "postprocess": id}, {"name": "d_listDeleteItem$string$1", "symbols": [{"literal":"l"}, {"literal":"a"}, {"literal":"s"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "d_listDeleteItem", "symbols": ["d_listDeleteItem$string$1"], "postprocess": id}, {"name": "d_listDeleteItem$string$2", "symbols": [{"literal":"a"}, {"literal":"l"}, {"literal":"l"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "d_listDeleteItem", "symbols": ["d_listDeleteItem$string$2"], "postprocess": id}, {"name": "d_listDeleteItem", "symbols": ["n"], "postprocess": id}, {"name": "d_listItem$string$1", "symbols": [{"literal":"l"}, {"literal":"a"}, {"literal":"s"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "d_listItem", "symbols": ["d_listItem$string$1"], "postprocess": id}, {"name": "d_listItem$string$2", "symbols": [{"literal":"r"}, {"literal":"a"}, {"literal":"n"}, {"literal":"d"}, {"literal":"o"}, {"literal":"m"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "d_listItem", "symbols": ["d_listItem$string$2"], "postprocess": id}, {"name": "d_listItem", "symbols": ["n"], "postprocess": id}, {"name": "d_note", "symbols": ["n"], "postprocess": id}, {"name": "m_attribute", "symbols": ["jpart"], "postprocess": id}, {"name": "block$string$1", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"v"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$2", "symbols": [{"literal":"s"}, {"literal":"t"}, {"literal":"e"}, {"literal":"p"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$1", "__", "n", "__", "block$string$2"], "postprocess": d => ["forward:", d[2]]}, {"name": "block$string$3", "symbols": [{"literal":"t"}, {"literal":"u"}, {"literal":"r"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$4", "symbols": [{"literal":"d"}, {"literal":"e"}, {"literal":"g"}, {"literal":"r"}, {"literal":"e"}, {"literal":"e"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$3", "__", "_turnRight", "__", "n", "__", "block$string$4"], "postprocess": d => ["turnRight:", d[2], d[4]]}, {"name": "block$string$5", "symbols": [{"literal":"t"}, {"literal":"u"}, {"literal":"r"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$6", "symbols": [{"literal":"d"}, {"literal":"e"}, {"literal":"g"}, {"literal":"r"}, {"literal":"e"}, {"literal":"e"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$5", "__", "_turnLeft", "__", "n", "__", "block$string$6"], "postprocess": d => ["turnLeft:", d[2], d[4]]}, {"name": "block$string$7", "symbols": [{"literal":"p"}, {"literal":"o"}, {"literal":"i"}, {"literal":"n"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$8", "symbols": [{"literal":"i"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$9", "symbols": [{"literal":"d"}, {"literal":"i"}, {"literal":"r"}, {"literal":"e"}, {"literal":"c"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$7", "__", "block$string$8", "__", "block$string$9", "__", "d_direction"], "postprocess": d => ["heading:", d[6]]}, {"name": "block$string$10", "symbols": [{"literal":"p"}, {"literal":"o"}, {"literal":"i"}, {"literal":"n"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$11", "symbols": [{"literal":"t"}, {"literal":"o"}, {"literal":"w"}, {"literal":"a"}, {"literal":"r"}, {"literal":"d"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$10", "__", "block$string$11", "__", "m_spriteOrMouse"], "postprocess": d => ["pointTowards:", d[4]]}, {"name": "block$string$12", "symbols": [{"literal":"g"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$13", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$14", "symbols": [{"literal":"x"}, {"literal":":"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$15", "symbols": [{"literal":"y"}, {"literal":":"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$12", "__", "block$string$13", "__", "block$string$14", "__", "n", "__", "block$string$15", "__", "n"], "postprocess": d => ["gotoX:y:", d[6], d[10]]}, {"name": "block$string$16", "symbols": [{"literal":"g"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$17", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$16", "__", "block$string$17", "__", "m_location"], "postprocess": d => ["gotoSpriteOrMouse:", d[4]]}, {"name": "block$string$18", "symbols": [{"literal":"g"}, {"literal":"l"}, {"literal":"i"}, {"literal":"d"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$19", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"c"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$20", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$21", "symbols": [{"literal":"x"}, {"literal":":"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$22", "symbols": [{"literal":"y"}, {"literal":":"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$18", "__", "n", "__", "block$string$19", "__", "block$string$20", "__", "block$string$21", "__", "n", "__", "block$string$22", "__", "n"], "postprocess": d => ["glideSecs:toX:y:elapsed:from:", d[2], d[10], d[14]]}, {"name": "block$string$23", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$24", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$23", "__", {"literal":"x"}, "__", "block$string$24", "__", "n"], "postprocess": d => ["changeXposBy:", d[6]]}, {"name": "block$string$25", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$26", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$25", "__", {"literal":"x"}, "__", "block$string$26", "__", "n"], "postprocess": d => ["xpos:", d[6]]}, {"name": "block$string$27", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$28", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$27", "__", {"literal":"y"}, "__", "block$string$28", "__", "n"], "postprocess": d => ["changeYposBy:", d[6]]}, {"name": "block$string$29", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$30", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$29", "__", {"literal":"y"}, "__", "block$string$30", "__", "n"], "postprocess": d => ["ypos:", d[6]]}, {"name": "block$string$31", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$32", "symbols": [{"literal":"r"}, {"literal":"o"}, {"literal":"t"}, {"literal":"a"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$33", "symbols": [{"literal":"s"}, {"literal":"t"}, {"literal":"y"}, {"literal":"l"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$31", "__", "block$string$32", "__", "block$string$33", "__", "m_rotationStyle"], "postprocess": d => ["setRotationStyle", d[6]]}, {"name": "block$string$34", "symbols": [{"literal":"s"}, {"literal":"a"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$35", "symbols": [{"literal":"f"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$36", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"c"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$34", "__", "sb", "__", "block$string$35", "__", "n", "__", "block$string$36"], "postprocess": d => ["say:duration:elapsed:from:", d[2], d[6]]}, {"name": "block$string$37", "symbols": [{"literal":"s"}, {"literal":"a"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$37", "__", "sb"], "postprocess": d => ["say:", d[2]]}, {"name": "block$string$38", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"i"}, {"literal":"n"}, {"literal":"k"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$39", "symbols": [{"literal":"f"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$40", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"c"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$38", "__", "sb", "__", "block$string$39", "__", "n", "__", "block$string$40"], "postprocess": d => ["think:duration:elapsed:from:", d[2], d[6]]}, {"name": "block$string$41", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"i"}, {"literal":"n"}, {"literal":"k"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$41", "__", "sb"], "postprocess": d => ["think:", d[2]]}, {"name": "block$string$42", "symbols": [{"literal":"s"}, {"literal":"h"}, {"literal":"o"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$42"], "postprocess": d => ["show"]}, {"name": "block$string$43", "symbols": [{"literal":"h"}, {"literal":"i"}, {"literal":"d"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$43"], "postprocess": d => ["hide"]}, {"name": "block$string$44", "symbols": [{"literal":"s"}, {"literal":"w"}, {"literal":"i"}, {"literal":"t"}, {"literal":"c"}, {"literal":"h"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$45", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"s"}, {"literal":"t"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$46", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$44", "__", "block$string$45", "__", "block$string$46", "__", "m_costume"], "postprocess": d => ["lookLike:", d[6]]}, {"name": "block$string$47", "symbols": [{"literal":"n"}, {"literal":"e"}, {"literal":"x"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$48", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"s"}, {"literal":"t"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$47", "__", "block$string$48"], "postprocess": d => ["nextCostume"]}, {"name": "block$string$49", "symbols": [{"literal":"n"}, {"literal":"e"}, {"literal":"x"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$50", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}, {"literal":"d"}, {"literal":"r"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$49", "__", "block$string$50"], "postprocess": d => ["nextScene"]}, {"name": "block$string$51", "symbols": [{"literal":"s"}, {"literal":"w"}, {"literal":"i"}, {"literal":"t"}, {"literal":"c"}, {"literal":"h"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$52", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}, {"literal":"d"}, {"literal":"r"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$53", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$51", "__", "block$string$52", "__", "block$string$53", "__", "m_backdrop"], "postprocess": d => ["startScene", d[6]]}, {"name": "block$string$54", "symbols": [{"literal":"s"}, {"literal":"w"}, {"literal":"i"}, {"literal":"t"}, {"literal":"c"}, {"literal":"h"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$55", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}, {"literal":"d"}, {"literal":"r"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$56", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$57", "symbols": [{"literal":"a"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$58", "symbols": [{"literal":"w"}, {"literal":"a"}, {"literal":"i"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$54", "__", "block$string$55", "__", "block$string$56", "__", "m_backdrop", "__", "block$string$57", "__", "block$string$58"], "postprocess": d => ["startSceneAndWait", d[6]]}, {"name": "block$string$59", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$60", "symbols": [{"literal":"e"}, {"literal":"f"}, {"literal":"f"}, {"literal":"e"}, {"literal":"c"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$61", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$59", "__", "m_effect", "__", "block$string$60", "__", "block$string$61", "__", "n"], "postprocess": d => ["changeGraphicEffect:by:", d[2], d[8]]}, {"name": "block$string$62", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$63", "symbols": [{"literal":"e"}, {"literal":"f"}, {"literal":"f"}, {"literal":"e"}, {"literal":"c"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$64", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$62", "__", "m_effect", "__", "block$string$63", "__", "block$string$64", "__", "n"], "postprocess": d => ["setGraphicEffect:to:", d[2], d[8]]}, {"name": "block$string$65", "symbols": [{"literal":"c"}, {"literal":"l"}, {"literal":"e"}, {"literal":"a"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$66", "symbols": [{"literal":"g"}, {"literal":"r"}, {"literal":"a"}, {"literal":"p"}, {"literal":"h"}, {"literal":"i"}, {"literal":"c"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$67", "symbols": [{"literal":"e"}, {"literal":"f"}, {"literal":"f"}, {"literal":"e"}, {"literal":"c"}, {"literal":"t"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$65", "__", "block$string$66", "__", "block$string$67"], "postprocess": d => ["filterReset"]}, {"name": "block$string$68", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$69", "symbols": [{"literal":"s"}, {"literal":"i"}, {"literal":"z"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$70", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$68", "__", "block$string$69", "__", "block$string$70", "__", "n"], "postprocess": d => ["changeSizeBy:", d[6]]}, {"name": "block$string$71", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$72", "symbols": [{"literal":"s"}, {"literal":"i"}, {"literal":"z"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$73", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$71", "__", "block$string$72", "__", "block$string$73", "__", "n", "__", {"literal":"%"}], "postprocess": d => ["setSizeTo:", d[6]]}, {"name": "block$string$74", "symbols": [{"literal":"g"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$75", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$76", "symbols": [{"literal":"f"}, {"literal":"r"}, {"literal":"o"}, {"literal":"n"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$74", "__", "block$string$75", "__", "block$string$76"], "postprocess": d => ["comeToFront"]}, {"name": "block$string$77", "symbols": [{"literal":"g"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$78", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$79", "symbols": [{"literal":"l"}, {"literal":"a"}, {"literal":"y"}, {"literal":"e"}, {"literal":"r"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$77", "__", "block$string$78", "__", "n", "__", "block$string$79"], "postprocess": d => ["goBackByLayers:", d[4]]}, {"name": "block$string$80", "symbols": [{"literal":"p"}, {"literal":"l"}, {"literal":"a"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$81", "symbols": [{"literal":"s"}, {"literal":"o"}, {"literal":"u"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$80", "__", "block$string$81", "__", "m_sound"], "postprocess": d => ["playSound:", d[4]]}, {"name": "block$string$82", "symbols": [{"literal":"p"}, {"literal":"l"}, {"literal":"a"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$83", "symbols": [{"literal":"s"}, {"literal":"o"}, {"literal":"u"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$84", "symbols": [{"literal":"u"}, {"literal":"n"}, {"literal":"t"}, {"literal":"i"}, {"literal":"l"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$85", "symbols": [{"literal":"d"}, {"literal":"o"}, {"literal":"n"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$82", "__", "block$string$83", "__", "m_sound", "__", "block$string$84", "__", "block$string$85"], "postprocess": d => ["doPlaySoundAndWait", d[4]]}, {"name": "block$string$86", "symbols": [{"literal":"s"}, {"literal":"t"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$87", "symbols": [{"literal":"a"}, {"literal":"l"}, {"literal":"l"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$88", "symbols": [{"literal":"s"}, {"literal":"o"}, {"literal":"u"}, {"literal":"n"}, {"literal":"d"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$86", "__", "block$string$87", "__", "block$string$88"], "postprocess": d => ["stopAllSounds"]}, {"name": "block$string$89", "symbols": [{"literal":"p"}, {"literal":"l"}, {"literal":"a"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$90", "symbols": [{"literal":"d"}, {"literal":"r"}, {"literal":"u"}, {"literal":"m"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$91", "symbols": [{"literal":"f"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$92", "symbols": [{"literal":"b"}, {"literal":"e"}, {"literal":"a"}, {"literal":"t"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$89", "__", "block$string$90", "__", "d_drum", "__", "block$string$91", "__", "n", "__", "block$string$92"], "postprocess": d => ["playDrum", d[4], d[8]]}, {"name": "block$string$93", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"s"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$94", "symbols": [{"literal":"f"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$95", "symbols": [{"literal":"b"}, {"literal":"e"}, {"literal":"a"}, {"literal":"t"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$93", "__", "block$string$94", "__", "n", "__", "block$string$95"], "postprocess": d => ["rest:elapsed:from:", d[4]]}, {"name": "block$string$96", "symbols": [{"literal":"p"}, {"literal":"l"}, {"literal":"a"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$97", "symbols": [{"literal":"n"}, {"literal":"o"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$98", "symbols": [{"literal":"f"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$99", "symbols": [{"literal":"b"}, {"literal":"e"}, {"literal":"a"}, {"literal":"t"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$96", "__", "block$string$97", "__", "d_note", "__", "block$string$98", "__", "n", "__", "block$string$99"], "postprocess": d => ["noteOn:duration:elapsed:from:", d[4], d[8]]}, {"name": "block$string$100", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$101", "symbols": [{"literal":"i"}, {"literal":"n"}, {"literal":"s"}, {"literal":"t"}, {"literal":"r"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}, {"literal":"n"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$102", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$100", "__", "block$string$101", "__", "block$string$102", "__", "d_instrument"], "postprocess": d => ["instrument:", d[6]]}, {"name": "block$string$103", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$104", "symbols": [{"literal":"v"}, {"literal":"o"}, {"literal":"l"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$105", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$103", "__", "block$string$104", "__", "block$string$105", "__", "n"], "postprocess": d => ["changeVolumeBy:", d[6]]}, {"name": "block$string$106", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$107", "symbols": [{"literal":"v"}, {"literal":"o"}, {"literal":"l"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$108", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$106", "__", "block$string$107", "__", "block$string$108", "__", "n", "__", {"literal":"%"}], "postprocess": d => ["setVolumeTo:", d[6]]}, {"name": "block$string$109", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$110", "symbols": [{"literal":"t"}, {"literal":"e"}, {"literal":"m"}, {"literal":"p"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$111", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$109", "__", "block$string$110", "__", "block$string$111", "__", "n"], "postprocess": d => ["changeTempoBy:", d[6]]}, {"name": "block$string$112", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$113", "symbols": [{"literal":"t"}, {"literal":"e"}, {"literal":"m"}, {"literal":"p"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$114", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$115", "symbols": [{"literal":"b"}, {"literal":"p"}, {"literal":"m"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$112", "__", "block$string$113", "__", "block$string$114", "__", "n", "__", "block$string$115"], "postprocess": d => ["setTempoTo:", d[6]]}, {"name": "block$string$116", "symbols": [{"literal":"c"}, {"literal":"l"}, {"literal":"e"}, {"literal":"a"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$116"], "postprocess": d => ["clearPenTrails"]}, {"name": "block$string$117", "symbols": [{"literal":"s"}, {"literal":"t"}, {"literal":"a"}, {"literal":"m"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$117"], "postprocess": d => ["stampCostume"]}, {"name": "block$string$118", "symbols": [{"literal":"p"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$119", "symbols": [{"literal":"d"}, {"literal":"o"}, {"literal":"w"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$118", "__", "block$string$119"], "postprocess": d => ["putPenDown"]}, {"name": "block$string$120", "symbols": [{"literal":"p"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$121", "symbols": [{"literal":"u"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$120", "__", "block$string$121"], "postprocess": d => ["putPenUp"]}, {"name": "block$string$122", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$123", "symbols": [{"literal":"p"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$124", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"l"}, {"literal":"o"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$125", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$122", "__", "block$string$123", "__", "block$string$124", "__", "block$string$125", "__", "c"], "postprocess": d => ["penColor:", d[8]]}, {"name": "block$string$126", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$127", "symbols": [{"literal":"p"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$128", "symbols": [{"literal":"h"}, {"literal":"u"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$129", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$126", "__", "block$string$127", "__", "block$string$128", "__", "block$string$129", "__", "n"], "postprocess": d => ["changePenHueBy:", d[8]]}, {"name": "block$string$130", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$131", "symbols": [{"literal":"p"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$132", "symbols": [{"literal":"h"}, {"literal":"u"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$133", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$130", "__", "block$string$131", "__", "block$string$132", "__", "block$string$133", "__", "n"], "postprocess": d => ["setPenHueTo:", d[8]]}, {"name": "block$string$134", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$135", "symbols": [{"literal":"p"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$136", "symbols": [{"literal":"s"}, {"literal":"h"}, {"literal":"a"}, {"literal":"d"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$137", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$134", "__", "block$string$135", "__", "block$string$136", "__", "block$string$137", "__", "n"], "postprocess": d => ["changePenShadeBy:", d[8]]}, {"name": "block$string$138", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$139", "symbols": [{"literal":"p"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$140", "symbols": [{"literal":"s"}, {"literal":"h"}, {"literal":"a"}, {"literal":"d"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$141", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$138", "__", "block$string$139", "__", "block$string$140", "__", "block$string$141", "__", "n"], "postprocess": d => ["setPenShadeTo:", d[8]]}, {"name": "block$string$142", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$143", "symbols": [{"literal":"p"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$144", "symbols": [{"literal":"s"}, {"literal":"i"}, {"literal":"z"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$145", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$142", "__", "block$string$143", "__", "block$string$144", "__", "block$string$145", "__", "n"], "postprocess": d => ["changePenSizeBy:", d[8]]}, {"name": "block$string$146", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$147", "symbols": [{"literal":"p"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$148", "symbols": [{"literal":"s"}, {"literal":"i"}, {"literal":"z"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$149", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$146", "__", "block$string$147", "__", "block$string$148", "__", "block$string$149", "__", "n"], "postprocess": d => ["penSize:", d[8]]}, {"name": "block$string$150", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$151", "symbols": [{"literal":"c"}, {"literal":"l"}, {"literal":"i"}, {"literal":"c"}, {"literal":"k"}, {"literal":"e"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$150", "__", "_greenFlag", "__", "block$string$151"], "postprocess": d => ["whenGreenFlag", d[2]]}, {"name": "block$string$152", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$153", "symbols": [{"literal":"k"}, {"literal":"e"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$154", "symbols": [{"literal":"p"}, {"literal":"r"}, {"literal":"e"}, {"literal":"s"}, {"literal":"s"}, {"literal":"e"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$152", "__", "m_key", "__", "block$string$153", "__", "block$string$154"], "postprocess": d => ["whenKeyPressed", d[2]]}, {"name": "block$string$155", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$156", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"i"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$157", "symbols": [{"literal":"s"}, {"literal":"p"}, {"literal":"r"}, {"literal":"i"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$158", "symbols": [{"literal":"c"}, {"literal":"l"}, {"literal":"i"}, {"literal":"c"}, {"literal":"k"}, {"literal":"e"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$155", "__", "block$string$156", "__", "block$string$157", "__", "block$string$158"], "postprocess": d => ["whenClicked"]}, {"name": "block$string$159", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$160", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}, {"literal":"d"}, {"literal":"r"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$161", "symbols": [{"literal":"s"}, {"literal":"w"}, {"literal":"i"}, {"literal":"t"}, {"literal":"c"}, {"literal":"h"}, {"literal":"e"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$162", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$159", "__", "block$string$160", "__", "block$string$161", "__", "block$string$162", "__", "m_backdrop"], "postprocess": d => ["whenSceneStarts", d[8]]}, {"name": "block$string$163", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$163", "__", "m_triggerSensor", "__", {"literal":">"}, "__", "n"], "postprocess": d => ["whenSensorGreaterThan", d[2], d[6]]}, {"name": "block$string$164", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$165", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"c"}, {"literal":"e"}, {"literal":"i"}, {"literal":"v"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$164", "__", {"literal":"I"}, "__", "block$string$165", "__", "m_broadcast"], "postprocess": d => ["whenIReceive", d[6]]}, {"name": "block$string$166", "symbols": [{"literal":"b"}, {"literal":"r"}, {"literal":"o"}, {"literal":"a"}, {"literal":"d"}, {"literal":"c"}, {"literal":"a"}, {"literal":"s"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$166", "__", "m_broadcast"], "postprocess": d => ["broadcast:", d[2]]}, {"name": "block$string$167", "symbols": [{"literal":"b"}, {"literal":"r"}, {"literal":"o"}, {"literal":"a"}, {"literal":"d"}, {"literal":"c"}, {"literal":"a"}, {"literal":"s"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$168", "symbols": [{"literal":"a"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$169", "symbols": [{"literal":"w"}, {"literal":"a"}, {"literal":"i"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$167", "__", "m_broadcast", "__", "block$string$168", "__", "block$string$169"], "postprocess": d => ["doBroadcastAndWait", d[2]]}, {"name": "block$string$170", "symbols": [{"literal":"w"}, {"literal":"a"}, {"literal":"i"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$171", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"c"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$170", "__", "n", "__", "block$string$171"], "postprocess": d => ["wait:elapsed:from:", d[2]]}, {"name": "block$string$172", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"p"}, {"literal":"e"}, {"literal":"a"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$172", "__", "n"], "postprocess": d => ["doRepeat", d[2]]}, {"name": "block$string$173", "symbols": [{"literal":"f"}, {"literal":"o"}, {"literal":"r"}, {"literal":"e"}, {"literal":"v"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$173"], "postprocess": d => ["doForever"]}, {"name": "block$string$174", "symbols": [{"literal":"i"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$175", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$174", "__", "b", "__", "block$string$175"], "postprocess": d => ["doIfElse", d[2]]}, {"name": "block$string$176", "symbols": [{"literal":"w"}, {"literal":"a"}, {"literal":"i"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$177", "symbols": [{"literal":"u"}, {"literal":"n"}, {"literal":"t"}, {"literal":"i"}, {"literal":"l"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$176", "__", "block$string$177", "__", "b"], "postprocess": d => ["doWaitUntil", d[4]]}, {"name": "block$string$178", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"p"}, {"literal":"e"}, {"literal":"a"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$179", "symbols": [{"literal":"u"}, {"literal":"n"}, {"literal":"t"}, {"literal":"i"}, {"literal":"l"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$178", "__", "block$string$179", "__", "b"], "postprocess": d => ["doUntil", d[4]]}, {"name": "block$string$180", "symbols": [{"literal":"s"}, {"literal":"t"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$180", "__", "m_stop"], "postprocess": d => ["stopScripts", d[2]]}, {"name": "block$string$181", "symbols": [{"literal":"w"}, {"literal":"h"}, {"literal":"e"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$182", "symbols": [{"literal":"s"}, {"literal":"t"}, {"literal":"a"}, {"literal":"r"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$183", "symbols": [{"literal":"a"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$184", "symbols": [{"literal":"c"}, {"literal":"l"}, {"literal":"o"}, {"literal":"n"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$181", "__", {"literal":"I"}, "__", "block$string$182", "__", "block$string$183", "__", {"literal":"a"}, "__", "block$string$184"], "postprocess": d => ["whenCloned"]}, {"name": "block$string$185", "symbols": [{"literal":"c"}, {"literal":"r"}, {"literal":"e"}, {"literal":"a"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$186", "symbols": [{"literal":"c"}, {"literal":"l"}, {"literal":"o"}, {"literal":"n"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$187", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$185", "__", "block$string$186", "__", "block$string$187", "__", "m_spriteOnly"], "postprocess": d => ["createCloneOf", d[6]]}, {"name": "block$string$188", "symbols": [{"literal":"d"}, {"literal":"e"}, {"literal":"l"}, {"literal":"e"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$189", "symbols": [{"literal":"t"}, {"literal":"h"}, {"literal":"i"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$190", "symbols": [{"literal":"c"}, {"literal":"l"}, {"literal":"o"}, {"literal":"n"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$188", "__", "block$string$189", "__", "block$string$190"], "postprocess": d => ["deleteClone"]}, {"name": "block$string$191", "symbols": [{"literal":"a"}, {"literal":"s"}, {"literal":"k"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$192", "symbols": [{"literal":"a"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$193", "symbols": [{"literal":"w"}, {"literal":"a"}, {"literal":"i"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$191", "__", "sb", "__", "block$string$192", "__", "block$string$193"], "postprocess": d => ["doAsk", d[2]]}, {"name": "block$string$194", "symbols": [{"literal":"t"}, {"literal":"u"}, {"literal":"r"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$195", "symbols": [{"literal":"v"}, {"literal":"i"}, {"literal":"d"}, {"literal":"e"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$194", "__", "block$string$195", "__", "m_videoState"], "postprocess": d => ["setVideoState", d[4]]}, {"name": "block$string$196", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$197", "symbols": [{"literal":"v"}, {"literal":"i"}, {"literal":"d"}, {"literal":"e"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$198", "symbols": [{"literal":"t"}, {"literal":"r"}, {"literal":"a"}, {"literal":"n"}, {"literal":"s"}, {"literal":"p"}, {"literal":"a"}, {"literal":"r"}, {"literal":"e"}, {"literal":"n"}, {"literal":"c"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$199", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$196", "__", "block$string$197", "__", "block$string$198", "__", "block$string$199", "__", "n", "__", {"literal":"%"}], "postprocess": d => ["setVideoTransparency", d[8]]}, {"name": "block$string$200", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$201", "symbols": [{"literal":"t"}, {"literal":"i"}, {"literal":"m"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$200", "__", "block$string$201"], "postprocess": d => ["timerReset"]}, {"name": "block$string$202", "symbols": [{"literal":"s"}, {"literal":"e"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$203", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$202", "__", "m_var", "__", "block$string$203", "__", "sb"], "postprocess": d => ["setVar:to:", d[2], d[6]]}, {"name": "block$string$204", "symbols": [{"literal":"c"}, {"literal":"h"}, {"literal":"a"}, {"literal":"n"}, {"literal":"g"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$205", "symbols": [{"literal":"b"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$204", "__", "m_var", "__", "block$string$205", "__", "n"], "postprocess": d => ["changeVar:by:", d[2], d[6]]}, {"name": "block$string$206", "symbols": [{"literal":"s"}, {"literal":"h"}, {"literal":"o"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$207", "symbols": [{"literal":"v"}, {"literal":"a"}, {"literal":"r"}, {"literal":"i"}, {"literal":"a"}, {"literal":"b"}, {"literal":"l"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$206", "__", "block$string$207", "__", "m_var"], "postprocess": d => ["showVariable:", d[4]]}, {"name": "block$string$208", "symbols": [{"literal":"h"}, {"literal":"i"}, {"literal":"d"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$209", "symbols": [{"literal":"v"}, {"literal":"a"}, {"literal":"r"}, {"literal":"i"}, {"literal":"a"}, {"literal":"b"}, {"literal":"l"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$208", "__", "block$string$209", "__", "m_var"], "postprocess": d => ["hideVariable:", d[4]]}, {"name": "block$string$210", "symbols": [{"literal":"a"}, {"literal":"d"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$211", "symbols": [{"literal":"t"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$210", "__", "sb", "__", "block$string$211", "__", "m_list"], "postprocess": d => ["append:toList:", d[2], d[6]]}, {"name": "block$string$212", "symbols": [{"literal":"d"}, {"literal":"e"}, {"literal":"l"}, {"literal":"e"}, {"literal":"t"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$213", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$212", "__", "d_listDeleteItem", "__", "block$string$213", "__", "m_list"], "postprocess": d => ["deleteLine:ofList:", d[2], d[6]]}, {"name": "block$string$214", "symbols": [{"literal":"i"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$215", "symbols": [{"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$216", "symbols": [{"literal":"e"}, {"literal":"d"}, {"literal":"g"}, {"literal":"e"}, {"literal":","}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$217", "symbols": [{"literal":"b"}, {"literal":"o"}, {"literal":"u"}, {"literal":"n"}, {"literal":"c"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$214", "__", "block$string$215", "__", "block$string$216", "__", "block$string$217"], "postprocess": d => ["bounceOffEdge"]}, {"name": "block$string$218", "symbols": [{"literal":"i"}, {"literal":"n"}, {"literal":"s"}, {"literal":"e"}, {"literal":"r"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$219", "symbols": [{"literal":"a"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$220", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$218", "__", "sb", "__", "block$string$219", "__", "d_listItem", "__", "block$string$220", "__", "m_list"], "postprocess": d => ["insert:at:ofList:", d[2], d[6], d[10]]}, {"name": "block$string$221", "symbols": [{"literal":"r"}, {"literal":"e"}, {"literal":"p"}, {"literal":"l"}, {"literal":"a"}, {"literal":"c"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$222", "symbols": [{"literal":"i"}, {"literal":"t"}, {"literal":"e"}, {"literal":"m"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$223", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$224", "symbols": [{"literal":"w"}, {"literal":"i"}, {"literal":"t"}, {"literal":"h"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$221", "__", "block$string$222", "__", "d_listItem", "__", "block$string$223", "__", "m_list", "__", "block$string$224", "__", "sb"], "postprocess": d => ["setLine:ofList:to:", d[4], d[8], d[12]]}, {"name": "block$string$225", "symbols": [{"literal":"s"}, {"literal":"h"}, {"literal":"o"}, {"literal":"w"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$226", "symbols": [{"literal":"l"}, {"literal":"i"}, {"literal":"s"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$225", "__", "block$string$226", "__", "m_list"], "postprocess": d => ["showList:", d[4]]}, {"name": "block$string$227", "symbols": [{"literal":"h"}, {"literal":"i"}, {"literal":"d"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block$string$228", "symbols": [{"literal":"l"}, {"literal":"i"}, {"literal":"s"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$227", "__", "block$string$228", "__", "m_list"], "postprocess": d => ["hideList:", d[4]]}, {"name": "simple_reporter$string$1", "symbols": [{"literal":"p"}, {"literal":"o"}, {"literal":"s"}, {"literal":"i"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": [{"literal":"x"}, "__", "simple_reporter$string$1"], "postprocess": d => ["xpos"]}, {"name": "simple_reporter$string$2", "symbols": [{"literal":"p"}, {"literal":"o"}, {"literal":"s"}, {"literal":"i"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": [{"literal":"y"}, "__", "simple_reporter$string$2"], "postprocess": d => ["ypos"]}, {"name": "simple_reporter$string$3", "symbols": [{"literal":"d"}, {"literal":"i"}, {"literal":"r"}, {"literal":"e"}, {"literal":"c"}, {"literal":"t"}, {"literal":"i"}, {"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$3"], "postprocess": d => ["heading"]}, {"name": "simple_reporter$string$4", "symbols": [{"literal":"c"}, {"literal":"o"}, {"literal":"s"}, {"literal":"t"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$4", "__", {"literal":"#"}], "postprocess": d => ["costumeIndex"]}, {"name": "simple_reporter$string$5", "symbols": [{"literal":"s"}, {"literal":"i"}, {"literal":"z"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$5"], "postprocess": d => ["scale"]}, {"name": "simple_reporter$string$6", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}, {"literal":"d"}, {"literal":"r"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter$string$7", "symbols": [{"literal":"n"}, {"literal":"a"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$6", "__", "simple_reporter$string$7"], "postprocess": d => ["sceneName"]}, {"name": "simple_reporter$string$8", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"c"}, {"literal":"k"}, {"literal":"d"}, {"literal":"r"}, {"literal":"o"}, {"literal":"p"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$8", "__", {"literal":"#"}], "postprocess": d => ["backgroundIndex"]}, {"name": "simple_reporter$string$9", "symbols": [{"literal":"v"}, {"literal":"o"}, {"literal":"l"}, {"literal":"u"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$9"], "postprocess": d => ["volume"]}, {"name": "simple_reporter$string$10", "symbols": [{"literal":"t"}, {"literal":"e"}, {"literal":"m"}, {"literal":"p"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$10"], "postprocess": d => ["tempo"]}, {"name": "simple_predicate$string$1", "symbols": [{"literal":"t"}, {"literal":"o"}, {"literal":"u"}, {"literal":"c"}, {"literal":"h"}, {"literal":"i"}, {"literal":"n"}, {"literal":"g"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_predicate", "symbols": ["simple_predicate$string$1", "__", "m_touching", "_", {"literal":"?"}], "postprocess": d => ["touching:", d[2]]}, {"name": "simple_reporter$string$11", "symbols": [{"literal":"a"}, {"literal":"n"}, {"literal":"s"}, {"literal":"w"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$11"], "postprocess": d => ["answer"]}, {"name": "simple_predicate$string$2", "symbols": [{"literal":"k"}, {"literal":"e"}, {"literal":"y"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_predicate$string$3", "symbols": [{"literal":"p"}, {"literal":"r"}, {"literal":"e"}, {"literal":"s"}, {"literal":"s"}, {"literal":"e"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_predicate", "symbols": ["simple_predicate$string$2", "__", "m_key", "__", "simple_predicate$string$3", "_", {"literal":"?"}], "postprocess": d => ["keyPressed:", d[2]]}, {"name": "simple_predicate$string$4", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"u"}, {"literal":"s"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_predicate$string$5", "symbols": [{"literal":"d"}, {"literal":"o"}, {"literal":"w"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_predicate", "symbols": ["simple_predicate$string$4", "__", "simple_predicate$string$5", "_", {"literal":"?"}], "postprocess": d => ["mousePressed"]}, {"name": "simple_reporter$string$12", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"u"}, {"literal":"s"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$12", "__", {"literal":"x"}], "postprocess": d => ["mouseX"]}, {"name": "simple_reporter$string$13", "symbols": [{"literal":"m"}, {"literal":"o"}, {"literal":"u"}, {"literal":"s"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$13", "__", {"literal":"y"}], "postprocess": d => ["mouseY"]}, {"name": "simple_reporter$string$14", "symbols": [{"literal":"l"}, {"literal":"o"}, {"literal":"u"}, {"literal":"d"}, {"literal":"n"}, {"literal":"e"}, {"literal":"s"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$14"], "postprocess": d => ["soundLevel"]}, {"name": "simple_reporter$string$15", "symbols": [{"literal":"v"}, {"literal":"i"}, {"literal":"d"}, {"literal":"e"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter$string$16", "symbols": [{"literal":"o"}, {"literal":"n"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$15", "__", "m_videoMotionType", "__", "simple_reporter$string$16", "__", "m_stageOrThis"], "postprocess": d => ["senseVideoMotion", d[2], d[6]]}, {"name": "simple_reporter$string$17", "symbols": [{"literal":"t"}, {"literal":"i"}, {"literal":"m"}, {"literal":"e"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$17"], "postprocess": d => ["timer"]}, {"name": "simple_reporter$string$18", "symbols": [{"literal":"c"}, {"literal":"u"}, {"literal":"r"}, {"literal":"r"}, {"literal":"e"}, {"literal":"n"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$18", "__", "m_timeAndDate"], "postprocess": d => ["timeAndDate", d[2]]}, {"name": "simple_reporter$string$19", "symbols": [{"literal":"d"}, {"literal":"a"}, {"literal":"y"}, {"literal":"s"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter$string$20", "symbols": [{"literal":"s"}, {"literal":"i"}, {"literal":"n"}, {"literal":"c"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$19", "__", "simple_reporter$string$20", "__", "number"], "postprocess": d => ["timestamp", d[4]]}, {"name": "simple_reporter$string$21", "symbols": [{"literal":"u"}, {"literal":"s"}, {"literal":"e"}, {"literal":"r"}, {"literal":"n"}, {"literal":"a"}, {"literal":"m"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$21"], "postprocess": d => ["getUserName"]}, {"name": "simple_reporter$string$22", "symbols": [{"literal":"i"}, {"literal":"t"}, {"literal":"e"}, {"literal":"m"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter$string$23", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$22", "__", "d_listItem", "__", "simple_reporter$string$23", "__", "m_list"], "postprocess": d => ["getLine:ofList:", d[2], d[6]]}, {"name": "simple_reporter$string$24", "symbols": [{"literal":"l"}, {"literal":"e"}, {"literal":"n"}, {"literal":"g"}, {"literal":"t"}, {"literal":"h"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter$string$25", "symbols": [{"literal":"o"}, {"literal":"f"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "simple_reporter", "symbols": ["simple_reporter$string$24", "__", "simple_reporter$string$25", "__", "m_list"], "postprocess": d => ["lineCountOfList:", d[4]]}, {"name": "simple_reporter", "symbols": ["VariableName"], "postprocess": d => ['readVariable', d[0]]}, {"name": "block$string$229", "symbols": [{"literal":"e"}, {"literal":"l"}, {"literal":"s"}, {"literal":"e"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$229"], "postprocess": d => ["else"]}, {"name": "block$string$230", "symbols": [{"literal":"e"}, {"literal":"n"}, {"literal":"d"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$230"], "postprocess": d => ["end"]}, {"name": "block$string$231", "symbols": [{"literal":"."}, {"literal":"."}, {"literal":"."}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "block", "symbols": ["block$string$231"], "postprocess": d => ["ellips"]}, {"name": "_$ebnf$1", "symbols": []}, {"name": "_$ebnf$1", "symbols": [/[ ]/, "_$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "_", "symbols": ["_$ebnf$1"], "postprocess": d => null}, {"name": "__$ebnf$1", "symbols": [/[ ]/]}, {"name": "__$ebnf$1", "symbols": [/[ ]/, "__$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "__", "symbols": ["__$ebnf$1"], "postprocess": d => null}, {"name": "string$string$1", "symbols": [{"literal":"'"}, {"literal":"h"}, {"literal":"e"}, {"literal":"l"}, {"literal":"l"}, {"literal":"o"}, {"literal":"'"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "string", "symbols": ["string$string$1"]}, {"name": "number", "symbols": ["digits"], "postprocess": d => parseInt(d[0])}, {"name": "number", "symbols": ["digits", /[.]/, "digits"], "postprocess": d => parseFloat(d.join(''))}, {"name": "digits$ebnf$1", "symbols": [/[0-9]/]}, {"name": "digits$ebnf$1", "symbols": [/[0-9]/, "digits$ebnf$1"], "postprocess": function arrconcat(d) {return [d[0]].concat(d[1]);}}, {"name": "digits", "symbols": ["digits$ebnf$1"], "postprocess": d => d[0].join('')}, {"name": "color", "symbols": [/[#]/, /[0-9a-z]/, /[0-9a-z]/, /[0-9a-z]/, /[0-9a-z]/, /[0-9a-z]/, /[0-9a-z]/]}, {"name": "color", "symbols": [/[#]/, /[0-9a-z]/, /[0-9a-z]/, /[0-9a-z]/]}, {"name": "VariableName$string$1", "symbols": [{"literal":"f"}, {"literal":"o"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "VariableName", "symbols": ["VariableName$string$1"], "postprocess": id}, {"name": "ListName$string$1", "symbols": [{"literal":"l"}, {"literal":"i"}, {"literal":"s"}, {"literal":"t"}], "postprocess": function joiner(d) {return d.join('');}}, {"name": "ListName", "symbols": ["ListName$string$1"], "postprocess": id} ] , ParserStart: "line" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/js/wikipedia.js000066400000000000000000000013711376321042600250470ustar00rootroot00000000000000// Generated automatically by nearley // http://github.com/Hardmath123/nearley (function () { function id(x) {return x[0]; } var grammar = { ParserRules: [ {"name": "P", "symbols": ["S"]}, {"name": "S", "symbols": ["S", {"literal":"+"}, "M"]}, {"name": "S", "symbols": ["M"]}, {"name": "M", "symbols": ["M", {"literal":"*"}, "T"]}, {"name": "M", "symbols": ["T"]}, {"name": "T", "symbols": [{"literal":"1"}]}, {"name": "T", "symbols": [{"literal":"2"}]}, {"name": "T", "symbols": [{"literal":"3"}]}, {"name": "T", "symbols": [{"literal":"4"}]} ] , ParserStart: "P" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/json.ne000066400000000000000000000032321376321042600234220ustar00rootroot00000000000000# http://www.json.org/ # http://www.asciitable.com/ @{% const moo = require('moo') let lexer = moo.compile({ space: {match: /\s+/, lineBreaks: true}, number: /-?(?:[0-9]|[1-9][0-9]+)(?:\.[0-9]+)?(?:[eE][-+]?[0-9]+)?\b/, string: /"(?:\\["bfnrt\/\\]|\\u[a-fA-F0-9]{4}|[^"\\])*"/, '{': '{', '}': '}', '[': '[', ']': ']', ',': ',', ':': ':', true: 'true', false: 'false', null: 'null', }) %} @lexer lexer json -> _ (object | array) _ {% function(d) { return d[1][0]; } %} object -> "{" _ "}" {% function(d) { return {}; } %} | "{" _ pair (_ "," _ pair):* _ "}" {% extractObject %} array -> "[" _ "]" {% function(d) { return []; } %} | "[" _ value (_ "," _ value):* _ "]" {% extractArray %} value -> object {% id %} | array {% id %} | number {% id %} | string {% id %} | "true" {% function(d) { return true; } %} | "false" {% function(d) { return false; } %} | "null" {% function(d) { return null; } %} number -> %number {% function(d) { return parseFloat(d[0].value) } %} string -> %string {% function(d) { return JSON.parse(d[0].value) } %} pair -> key _ ":" _ value {% function(d) { return [d[0], d[4]]; } %} key -> string {% id %} _ -> null | %space {% function(d) { return null; } %} @{% function extractPair(kv, output) { if(kv[0]) { output[kv[0]] = kv[1]; } } function extractObject(d) { let output = {}; extractPair(d[2], output); for (let i in d[3]) { extractPair(d[3][i][3], output); } return output; } function extractArray(d) { let output = [d[2]]; for (let i in d[3]) { output.push(d[3][i][3]); } return output; } %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/left.ne000066400000000000000000000002531376321042600234030ustar00rootroot00000000000000# right.ne # notice the analogy to tail recursive calls # as it only COMPLETEs a single state for the current CHART # eg. 500 "." takes < 1 millisecond c -> null | c "." nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/lua.ne000066400000000000000000000100441376321042600232310ustar00rootroot00000000000000# Adapted from http://www.lua.org/manual/5.2/manual.html # No comments implemented yet, because lua comments are hard. # Additionally, this was written using an older version of # nearley. Use at your own peril (or fix it and PR!) Chunk -> _ Block _ Block -> _Block | _Block __ ReturnStat ReturnStat -> "return" __ ExpList | "return" __ ExpList _ ";" _Block -> Statement | _Block _ ";" _ Statement | _Block __ Statement Statement -> VarList _ "=" _ ExpList | FunctionCall | Label | "break" | "goto" __ Name | "do" __ Block __ "end" | "while" __ Exp __ "do" __ Block __ "end" | "repeat" __ Block __ "until" __ Exp | "if" __ Exp __ "then" __ Block __ Else | "for" __ NameList __ "in" __ ExpList __ "do" __ Block __ "end" | "function" __ FunctionName _ FunctionBody | "local" __ "function" __ Name __ FunctionBody | "local" __ NameList | "local" __ NameList _ "=" _ ExpList Else -> "end" | _Else __ "end" | _Else __ "else" __ Block __ "end" _Else -> "elseif" __ Exp __ "then" __ Block | _Else __ "elseif" __ Exp __ "then" __ Block Label -> "::" _ Name _ "::" # Names # See Section 2.1 Name -> _name {% function(d) {return {'name': d[0]}; } %} _name -> [a-zA-Z_] {% id %} | _name [\w_] {% function(d) {return d[0] + d[1]; } %} NameList -> Name | NameList _ "," _ Name Var -> Name | PrefixExp _ "[" _ Exp _ "]" | PrefixExp _ "." _ Name VarList -> Var | VarList _ "," _ Var ExpList -> Exp | ExpList _ "," _ Exp PrefixExp -> Var | FunctionCall | Parenthesized FunctionCall -> PrefixExp _ Args | PrefixExp _ ":" _ Name _ Args Args -> "(" _ ")" | "(" _ ExpList _ ")" | String FunctionName -> _functionname | _functionname ":" Name _functionname -> Name | FunctionName _ "." _ FunctionName FunctionDef -> "function" __ FunctionBody FunctionBody -> "(" _ ParamList _ ")" __ Block __ "end" | "(" _ ")" __ Block __ "end" ParamList -> NameList | NameList _ "," _ "..." | "..." # Tables TableConstructor -> "{" _ FieldList _ "}" | "{" _ "}" FieldList -> _FieldList | _FieldList _ FieldSep _FieldList -> Field | _FieldList _ FieldSep _ Field Field -> "[" _ Exp _ "]" _ "=" _ Exp | Name _ "=" _ Exp | Exp FieldSep -> "," | ";" # Expressions Exp -> Binop {% id %} Binop -> ExpOr {% id %} Parenthesized -> "(" Exp ")" ExpOr -> ExpOr __ "or" __ ExpAnd | ExpAnd {% id %} ExpAnd -> ExpAnd __ "and" __ ExpComparison | ExpComparison {% id %} ExpComparison -> ExpComparison _ "<" _ ExpConcatenation | ExpComparison _ ">" _ ExpConcatenation | ExpComparison _ "<=" _ ExpConcatenation | ExpComparison _ ">=" _ ExpConcatenation | ExpComparison _ "~=" _ ExpConcatenation | ExpComparison _ "==" _ ExpConcatenation | ExpConcatenation ExpConcatenation -> ExpSum _ ".." _ ExpConcatenation | ExpSum ExpSum -> ExpSum _ "+" _ ExpProduct | ExpSum _ "-" _ ExpProduct | ExpProduct ExpProduct -> ExpProduct _ "*" _ ExpUnary | ExpProduct _ "/" _ ExpUnary | ExpProduct _ "%" _ ExpUnary | ExpUnary ExpUnary -> "not" __ ExpPow | "#" _ ExpPow | "-" _ ExpPow | ExpPow ExpPow -> Atom | Atom _ "^" _ ExpPow Atom -> Number | String | PrefixExp | "nil" | "false" | "true" | Parenthesized | FunctionDef | TableConstructor # Primitives # ========== # Numbers Number -> _number {% function(d) {return {'literal': parseFloat(d[0])}} %} _posint -> [0-9] {% id %} | _posint [0-9] {% function(d) {return d[0] + d[1]} %} _int -> "-" _posint {% function(d) {return d[0] + d[1]; }%} | _posint {% id %} _float -> _int {% id %} | _int "." _posint {% function(d) {return d[0] + d[1] + d[2]; }%} _number -> _float {% id %} | _float "e" _int {% function(d){return d[0] + d[1] + d[2]; } %} #Strings String -> "\"" _string "\"" {% function(d) {return {'literal':d[1]}; } %} _string -> null {% function() {return ""; } %} | _string _stringchar {% function(d) {return d[0] + d[1];} %} _stringchar -> [^\\"] {% id %} | "\\" [^] {% function(d) {return JSON.parse("\"" + d[0] + d[1] + "\""); } %} # Whitespace _ -> null | _ [\s] {% function() {} %} __ -> [\s] | __ [\s] {% function() {} %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/numberstring.ne000066400000000000000000000047451376321042600252020ustar00rootroot00000000000000@{% var nameMap = { one:1,two:2,three:3,four:4,five:5,six:6,seven:7,eight:8,nine:9, ten:10,eleven:11,twelve:12,thirteen:13,fourteen:14,fifteen:15,sixteen:16,seventeen:17,eighteen:18,nineteen:19, twenty:20,thirty:30,fourty:40,fifty:50,sixty:60,seventy:70,eighty:80,ninety:90, hundred:100,thousand:1000,million:1000000,billion:1000000000 }; var nameToVal = function(d) { return nameMap[d]; }; var nothing = function (d) { return null; }; var sumParts = function(d) { var retVal = 0; for(var i=0;i $X {% nameToVal %} main -> billionsNumber {% findFirstNestedValueFromArray %} billionsNumber -> billionsSimple|billionsCompound|millionsNumber millionsNumber -> millionsSimple|millionsCompound|thousandsNumber thousandsNumber -> thousandsSimple|thousandsCompound|hundredsNumber hundredsNumber -> hundredsSimple|hundredsCompound|tensNumber tensNumber -> teenSimple|tensSimple|tensCompound|singlesSimple billionsCompound -> billionsSimple space billionsNumber {% sumParts %} millionsCompound -> millionsSimple space millionsNumber {% sumParts %} thousandsCompound -> thousandsSimple space hundredsNumber {% sumParts %} hundredsCompound -> hundredsSimple space tensNumber {% sumParts %} tensCompound -> tensSimple space singlesSimple {% sumParts %} billionsSimple -> millionsNumber space matchString["billion"] {% multParts %} millionsSimple -> thousandsNumber space matchString["million"] {% multParts %} thousandsSimple -> hundredsNumber space matchString["thousand"] {% multParts %} hundredsSimple -> tensNumber space matchString["hundred"] {% multParts %} teenSimple -> ("ten"|"eleven"|"twelve"|"thirteen"|"fourteen"|"fifteen"|"sixteen"|"seventeen"|"eighteen"|"nineteen") {% nameToVal %} tensSimple -> ("twenty"|"thirty"|"fourty"|"fifty"|"sixty"|"seventy"|"eighty"|"ninety") {% nameToVal %} singlesSimple -> ("one"|"two"|"three"|"four"|"five"|"six"|"seven"|"eight"|"nine") {% nameToVal %} space -> [\s] {% nothing %}nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/old-language-specification.js000066400000000000000000000103131376321042600276360ustar00rootroot00000000000000// Since nearley is now bootstrapped, this file isn't used. // I'm going to keep it around, though, as a reference for // the raw JS nearley API. It's also going to help out in // case we ever break the compiler and need sources to un- // break it. // // --h var NullPP = function(argument) {return null;} function rule(name, symbols, proc) { return { name: name, symbols: symbols, postprocess: proc }; } function m(s) { return { literal: s }; } module.exports = { rules: [ // Literally a string of whitespace rule("whitraw", [/\s/], NullPP), rule("whitraw", ["whitraw", /\s/], NullPP), // A string of whitespace OR the empty string rule("whitraw?", [], NullPP), rule("whitraw?", ["whitraw"], NullPP), // Whitespace with a comment rule("whit", ["whitraw"], NullPP), rule("whit", ["whitraw?", "comment", "whit?"], NullPP), // Optional whitespace with a comment rule("whit?", [], NullPP), rule("whit?", ["whit"], NullPP), rule("comment", [m("#"), "commentchars", m("\n")], NullPP), rule("commentchars", [], NullPP), rule("commentchars", ["commentchars", /[^\n]/], NullPP), rule("js", [m("{"), m("%"), "jscode", m("%"), m("}")], function(d) { return d[2]; }), rule("jscode", [], function() {return "";}), rule("jscode", ["jscode", /[^%]/], function(d) {return d[0] + d[1];}), rule("string", [m("\""), "charset", m("\"")], function(d) { return { literal: d[1].join("") }; }), rule("charset", []), rule("charset", ["charset", "char"], function(d) { return d[0].concat([d[1]]); }), rule("char", [ new RegExp("[^ \\\\ \"]")], function(d) { return d[0]; }), rule("char", [ m("\\"), new RegExp(".") ], function(d) { return JSON.parse("\""+"\\"+d[1]+"\""); }), rule("charclass", [m(".")], function(d) { return new RegExp(d[0]); }), rule("charclass", [m("["), "charclassmembers", m("]")], function(d) { return new RegExp("[" + d[1].join('') + "]"); }), rule("charclassmembers", []), rule("charclassmembers", ["charclassmembers", "charclassmember"], function(d) { return d[0].concat([d[1]]); }), rule("charclassmember", [ /[^\\\]]/ ], function(d) { return d[0]; }), rule("charclassmember", [m("\\"), /./], function(d) { return d[0] + d[1]; }), rule("word", [/[\w\?\+]/], function(d){ return d[0]; }), rule("word", ["word", /[\w\?\+]/], function(d){ return d[0]+d[1]; }), rule("expr", ["word"]), rule("expr", ["string"]), rule("expr", ["expr", "whit", "word"], function(d){ return d[0].concat([d[2]]); }), rule("expr", ["expr", "whit", "string"], function(d){ return d[0].concat([d[2]]); }), rule("expr", ["charclass"]), rule("expr", ["expr", "whit", "charclass"], function(d) { return d[0].concat([d[2]]); }), rule("completeexpression", ["expr"], function(d) { return {tokens: d[0]}; }), rule("completeexpression", ["expr", "whit?", "js"], function(d) { return {tokens: d[0], postprocess: d[2]}; }), rule("expression+", ["completeexpression"]), rule("expression+", ["expression+", "whit?", m("|"), "whit?", "completeexpression"], function(d) { return d[0].concat([d[4]]); }), rule("prod", ["word", "whit?", m("-"), m(">"), "whit?", "expression+"], function(d) { return {name: d[0], rules: d[5]}; }), rule("prod", [m("@"), "whit?", "js"], function(d) { return {body: d[2]}; }), rule("prog", ["prod"], function(d) { return [d[0]]; }), rule("prog", ["prod", "whit", "prog"], function(d) { return [d[0]].concat(d[2]); }), rule("final", ["whit?", "prog", "whit?"], function(d) { return d[1]; }) ], start: "final" } nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/parentheses.ne000066400000000000000000000005071376321042600247740ustar00rootroot00000000000000# Test for balancing parentheses, brackets, square brackets and pairs of "<" ">" @{% function TRUE (d) { return true; } %} P -> "(" E ")" {% TRUE %} | "{" E "}" {% TRUE %} | "[" E "]" {% TRUE %} | "<" E ">" {% TRUE %} E -> null | "(" E ")" E | "{" E "}" E | "[" E "]" E | "<" E ">" E nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/railroad-experimental/000077500000000000000000000000001376321042600264155ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/railroad-experimental/custom-canvas.js000066400000000000000000000431301376321042600315370ustar00rootroot00000000000000var DIMENSIONS = { 'padding': 10, 'arcrad': 10, 'fontsize': 15 }; function railroad(grm) { function Point(x, y) { this.x = x; this.y = y; } var rules = {}; grm.forEach(function(instr) { if (instr.rules) { if (!rules[instr.name]) { rules[instr.name] = []; } rules[instr.name] = rules[instr.name].concat(instr.rules); } }); Object.keys(rules).forEach(function(r) { diagram(r); }); function diagram(name) { var selectedrules = rules[name]; var outer = {subexpression: selectedrules}; var can = document.createElement('canvas'); can.width = 600; can.height = 500; var ctx = can.getContext('2d'); ctx.font = DIMENSIONS.fontsize+"px monospace"; ctx.textBaseline = "bottom"; ctx.translate(0.5, 0.5); ctx.fillText(name, 0, DIMENSIONS.fontsize); ctx.translate(0, DIMENSIONS.fontsize + DIMENSIONS.padding); ctx.strokeRect(0, 0, 10, 10); ctx.translate(10, 5); function renderTok(tok) { // ctx translated to correct position already if (tok.subexpression) { var currentbound = new Point(0, 2*DIMENSIONS.arcrad); var rightPoint = 0; tok.subexpression.forEach(function(e) { ctx.beginPath(); ctx.arc(0, DIMENSIONS.arcrad, DIMENSIONS.arcrad, 0, Math.PI*3/2, true); ctx.moveTo(DIMENSIONS.arcrad, DIMENSIONS.arcrad); ctx.lineTo(DIMENSIONS.arcrad, currentbound.y-DIMENSIONS.arcrad); ctx.arc(DIMENSIONS.arcrad*2, currentbound.y-DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI, Math.PI/2, true); ctx.stroke(); ctx.save(); ctx.translate(DIMENSIONS.arcrad*2, currentbound.y); var bnds = renderTok(e); currentbound.x = Math.max(currentbound.x, bnds.x + 2*DIMENSIONS.arcrad); currentbound.y += DIMENSIONS.padding*2 + bnds.y; ctx.translate(bnds.x, 0); if (currentbound.x > rightPoint) { if (rightPoint > 0) { ctx.beginPath(); ctx.moveTo( DIMENSIONS.padding + rightPoint - currentbound.x + 2*DIMENSIONS.arcrad, -currentbound.y + bnds.y + DIMENSIONS.padding*2 ); ctx.lineTo( DIMENSIONS.padding + DIMENSIONS.arcrad*2, -currentbound.y + bnds.y + DIMENSIONS.padding*2); ctx.stroke(); } rightPoint = currentbound.x; ctx.beginPath(); ctx.moveTo(0, 0); } else { ctx.beginPath(); ctx.moveTo(0, 0); ctx.translate(rightPoint - bnds.x - 2*DIMENSIONS.arcrad, 0); } ctx.translate(DIMENSIONS.padding, 0); ctx.arc(0, -DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI/2, 0, true); ctx.translate(0, -currentbound.y + DIMENSIONS.arcrad + bnds.y + DIMENSIONS.padding*2); ctx.lineTo(DIMENSIONS.arcrad, 0); ctx.arc(DIMENSIONS.arcrad*2, 0, DIMENSIONS.arcrad, Math.PI, Math.PI*3/2); ctx.stroke(); ctx.restore(); }); currentbound.x += 2*DIMENSIONS.arcrad + DIMENSIONS.padding; return currentbound; } else if (tok.ebnf) { if (tok.modifier === ":+") { ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(DIMENSIONS.arcrad, 0); ctx.stroke(); ctx.save(); ctx.translate(DIMENSIONS.arcrad, 0); var bnds = renderTok(tok.ebnf); ctx.restore(); ctx.beginPath(); ctx.arc(DIMENSIONS.arcrad, DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI*3/2, Math.PI, true); ctx.lineTo(0, bnds.y - DIMENSIONS.arcrad); ctx.arc(DIMENSIONS.arcrad, bnds.y - DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI, Math.PI/2, true); ctx.lineTo(bnds.x + DIMENSIONS.arcrad, bnds.y); ctx.arc(bnds.x + DIMENSIONS.arcrad, bnds.y - DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI/2, 0, true); ctx.lineTo(bnds.x + 2*DIMENSIONS.arcrad, DIMENSIONS.arcrad); ctx.arc(bnds.x + DIMENSIONS.arcrad, DIMENSIONS.arcrad, DIMENSIONS.arcrad, 0, Math.PI*3/2, true); ctx.lineTo(bnds.x + 2*DIMENSIONS.arcrad, 0); ctx.stroke(); return new Point(bnds.x + 2*DIMENSIONS.arcrad, bnds.y + DIMENSIONS.arcrad); } else if (tok.modifier === ":?") { ctx.beginPath(); ctx.arc(0, DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI*3/2, 0); ctx.stroke(); ctx.beginPath(); ctx.arc(DIMENSIONS.arcrad*2, DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI/2, Math.PI); ctx.stroke(); ctx.save(); ctx.translate(DIMENSIONS.arcrad*2, DIMENSIONS.arcrad*2); var bnds = renderTok(tok.ebnf); ctx.restore(); ctx.beginPath(); ctx.arc(DIMENSIONS.arcrad*2, DIMENSIONS.arcrad, DIMENSIONS.arcrad, 0, Math.PI/2); ctx.moveTo(DIMENSIONS.arcrad*3, DIMENSIONS.arcrad); ctx.arc(DIMENSIONS.arcrad*4, DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI, Math.PI*3/2); ctx.save(); ctx.translate(bnds.x + 2*DIMENSIONS.arcrad, 0); ctx.arc(-DIMENSIONS.arcrad*2, DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI*3/2, 0); ctx.moveTo(0, DIMENSIONS.arcrad*2); ctx.arc(0, DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI/2, Math.PI); ctx.restore(); ctx.stroke(); ctx.translate(bnds.x + 2*DIMENSIONS.arcrad, 0); ctx.beginPath(); ctx.arc(0, DIMENSIONS.arcrad, DIMENSIONS.arcrad, 0, Math.PI/2); ctx.stroke(); ctx.beginPath(); ctx.arc(DIMENSIONS.arcrad*2, DIMENSIONS.arcrad, DIMENSIONS.arcrad, Math.PI, Math.PI*3/2); ctx.stroke(); return new Point(bnds.x + 4*DIMENSIONS.arcrad, bnds.y); } else if (tok.modifier === ":*") { var bnds = renderTok({ "ebnf": { "ebnf": tok.ebnf, "modifier": ":+" }, "modifier": ":?" }); return bnds; } } else if (tok.literal) { var str = JSON.stringify(tok.literal); var d = ctx.measureText(str).width; ctx.translate(0, -DIMENSIONS.fontsize/2); ctx.save(); ctx.fillStyle = "yellow"; ctx.fillRect(0, 0, d, DIMENSIONS.fontsize); ctx.restore(); ctx.fillText(str, 0, DIMENSIONS.fontsize); return new Point(d, DIMENSIONS.fontsize/2); } else if (tok.mixin) { return new Point(0,0); } else if (tok.macrocall) { return new Point(0,0); } else if (tok.tokens) { var currentbound = new Point(0, 0); tok.tokens.forEach(function(t) { ctx.save(); ctx.translate(currentbound.x, 0); ctx.beginPath(); ctx.moveTo(0,0); ctx.lineTo(DIMENSIONS.padding, 0); ctx.stroke(); ctx.translate(DIMENSIONS.padding, 0); currentbound.x += DIMENSIONS.padding; var bnds = renderTok(t); currentbound.x += bnds.x; currentbound.y = Math.max(currentbound.y, bnds.y); ctx.restore(); }); return currentbound; } else if (typeof(tok) === 'string') { ctx.save(); ctx.font = DIMENSIONS.fontsize+"px serif"; var d = ctx.measureText(tok).width; ctx.translate(0, -DIMENSIONS.fontsize/2); ctx.save(); ctx.fillStyle = "#aac"; ctx.fillRect(0, 0, d, DIMENSIONS.fontsize); ctx.restore(); ctx.fillText(tok, 0, DIMENSIONS.fontsize); ctx.restore(); return new Point(d, DIMENSIONS.fontsize/2); } else if (tok.constructor === RegExp) { var d = ctx.measureText(tok.toString()).width; ctx.translate(0, -DIMENSIONS.fontsize/2); ctx.fillText(tok.toString(), 0, DIMENSIONS.fontsize); ctx.strokeRect(0, 0, d, DIMENSIONS.fontsize); return new Point(d, DIMENSIONS.fontsize/2); } else { throw new Error(); } } var bnds = renderTok(outer); ctx.translate(bnds.x, 0); ctx.strokeRect(0, -5, 10, 10); var img = document.createElement('img'); img.src = can.toDataURL('image/png'); document.body.appendChild(img); } } window.addEventListener('load', function() { railroad(test2); }, false); var testcase = [ [ { name: 'final', rules: [ { tokens: [ 'whit?', 'prog', 'whit?' ], postprocess: ' function(d) { return d[1]; } ' } ] }, { name: 'prog', rules: [ { tokens: [ 'prod' ], postprocess: ' function(d) { return [d[0]]; } ' }, { tokens: [ 'prod', 'whit', 'prog' ], postprocess: ' function(d) { return [d[0]].concat(d[2]); } ' } ] }, { name: 'prod', rules: [ { tokens: [ 'word', 'whit?', { ebnf: { subexpression: [ { tokens: [ { literal: '-' } ] }, { tokens: [ { literal: '=' } ] } ] }, modifier: ':+' }, { literal: '>' }, 'whit?', 'expression+' ], postprocess: ' function(d) { return {name: d[0], rules: d[5]}; } ' }, { tokens: [ 'word', { literal: '[' }, 'wordlist', { literal: ']' }, 'whit?', { ebnf: { subexpression: [ { tokens: [ { literal: '-' } ] }, { tokens: [ { literal: '=' } ] } ] }, modifier: ':+' }, { literal: '>' }, 'whit?', 'expression+' ], postprocess: ' function(d) {return {macro: d[0], args: d[2], exprs: d[8]}} ' }, { tokens: [ { literal: '@' }, 'whit?', 'js' ], postprocess: ' function(d) { return {body: d[2]}; } ' }, { tokens: [ { literal: '@' }, 'word', 'whit', 'word' ], postprocess: ' function(d) { return {config: d[1], value: d[3]}; } ' }, { tokens: [ { literal: '@include' }, 'whit?', 'string' ], postprocess: ' function(d) {return {include: d[2].literal, builtin: false}} ' }, { tokens: [ { literal: '@builtin' }, 'whit?', 'string' ], postprocess: ' function(d) {return {include: d[2].literal, builtin: true }} ' } ] }, { name: 'expression+', rules: [ { tokens: [ 'completeexpression' ] }, { tokens: [ 'expression+', 'whit?', { literal: '|' }, 'whit?', 'completeexpression' ], postprocess: ' function(d) { return d[0].concat([d[4]]); } ' } ] }, { name: 'expressionlist', rules: [ { tokens: [ 'completeexpression' ] }, { tokens: [ 'expressionlist', 'whit?', { literal: ',' }, 'whit?', 'completeexpression' ], postprocess: ' function(d) { return d[0].concat([d[4]]); } ' } ] }, { name: 'wordlist', rules: [ { tokens: [ 'word' ] }, { tokens: [ 'wordlist', 'whit?', { literal: ',' }, 'whit?', 'word' ], postprocess: ' function(d) { return d[0].concat([d[4]]); } ' } ] }, { name: 'completeexpression', rules: [ { tokens: [ 'expr' ], postprocess: ' function(d) { return {tokens: d[0]}; } ' }, { tokens: [ 'expr', 'whit?', 'js' ], postprocess: ' function(d) { return {tokens: d[0], postprocess: d[2]}; } ' } ] }, { name: 'expr_member', rules: [ { tokens: [ 'word' ], postprocess: ' id ' }, { tokens: [ { literal: '$' }, 'word' ], postprocess: ' function(d) {return {mixin: d[1]}} ' }, { tokens: [ 'word', { literal: '[' }, 'expressionlist', { literal: ']' } ], postprocess: ' function(d) {return {macrocall: d[0], args: d[2]}} ' }, { tokens: [ 'string' ], postprocess: ' id ' }, { tokens: [ 'charclass' ], postprocess: ' id ' }, { tokens: [ { literal: '(' }, 'whit?', 'expression+', 'whit?', { literal: ')' } ], postprocess: ' function(d) {return {\'subexpression\': d[2]} ;} ' }, { tokens: [ 'expr_member', 'whit?', 'ebnf_modifier' ], postprocess: ' function(d) {return {\'ebnf\': d[0], \'modifier\': d[2]}; } ' } ] }, { name: 'ebnf_modifier', rules: [ { tokens: [ { literal: ':+' } ], postprocess: ' id ' }, { tokens: [ { literal: ':*' } ], postprocess: ' id ' }, { tokens: [ { literal: ':?' } ], postprocess: ' id ' } ] }, { name: 'expr', rules: [ { tokens: [ 'expr_member' ] }, { tokens: [ 'expr', 'whit', 'expr_member' ], postprocess: ' function(d){ return d[0].concat([d[2]]); } ' } ] }, { name: 'word', rules: [ { tokens: [ /[\w\?\+]/ ], postprocess: ' function(d){ return d[0]; } ' }, { tokens: [ 'word', /[\w\?\+]/ ], postprocess: ' function(d){ return d[0]+d[1]; } ' } ] }, { name: 'string', rules: [ { tokens: [ { literal: '"' }, 'charset', { literal: '"' } ], postprocess: ' function(d) { return { literal: d[1].join("") }; } ' } ] }, { name: 'charset', rules: [ { tokens: [ 'null' ] }, { tokens: [ 'charset', 'char' ], postprocess: ' function(d) { return d[0].concat([d[1]]); } ' } ] }, { name: 'char', rules: [ { tokens: [ /[^\\"]/ ], postprocess: ' function(d) { return d[0]; } ' }, { tokens: [ { literal: '\\' }, /./ ], postprocess: ' function(d) { return JSON.parse("\\""+"\\\\"+d[1]+"\\""); } ' } ] }, { name: 'charclass', rules: [ { tokens: [ { literal: '.' } ], postprocess: ' function(d) { return new RegExp("."); } ' }, { tokens: [ { literal: '[' }, 'charclassmembers', { literal: ']' } ], postprocess: ' function(d) { return new RegExp("[" + d[1].join(\'\') + "]"); } ' } ] }, { name: 'charclassmembers', rules: [ { tokens: [ 'null' ] }, { tokens: [ 'charclassmembers', 'charclassmember' ], postprocess: ' function(d) { return d[0].concat([d[1]]); } ' } ] }, { name: 'charclassmember', rules: [ { tokens: [ /[^\\\]]/ ], postprocess: ' function(d) { return d[0]; } ' }, { tokens: [ { literal: '\\' }, /./ ], postprocess: ' function(d) { return d[0] + d[1]; } ' } ] }, { name: 'js', rules: [ { tokens: [ { literal: '{' }, { literal: '%' }, 'jscode', { literal: '%' }, { literal: '}' } ], postprocess: ' function(d) { return d[2]; } ' } ] }, { name: 'jscode', rules: [ { tokens: [ 'null' ], postprocess: ' function() {return "";} ' }, { tokens: [ 'jscode', /[^%]/ ], postprocess: ' function(d) {return d[0] + d[1];} ' }, { tokens: [ 'jscode', { literal: '%' }, /[^}]/ ], postprocess: ' function(d) {return d[0] + d[1] + d[2]; } ' } ] }, { name: 'whit', rules: [ { tokens: [ 'whitraw' ] }, { tokens: [ 'whitraw?', 'comment', 'whit?' ] } ] }, { name: 'whit?', rules: [ { tokens: [ 'null' ] }, { tokens: [ 'whit' ] } ] }, { name: 'whitraw', rules: [ { tokens: [ /[\s]/ ] }, { tokens: [ 'whitraw', /[\s]/ ] } ] }, { name: 'whitraw?', rules: [ { tokens: [ 'null' ] }, { tokens: [ 'whitraw' ] } ] }, { name: 'comment', rules: [ { tokens: [ { literal: '#' }, 'commentchars', { literal: '\n' } ] } ] }, { name: 'commentchars', rules: [ { tokens: [ 'null' ] }, { tokens: [ 'commentchars', /[^\n]/ ] } ] } ] ][0] test2 = [ [ { name: 'a', rules: [ { tokens: [ { ebnf: { literal: 'cow' }, modifier: ':?' }, { literal: 'bee' }, /[abc]/, { subexpression: [ { tokens: [ 'd' ] }, { tokens: [ 'e' ] }, { tokens: [ 'f' ] } ] } ] }, { tokens: [ 'x' ] }, { tokens: [ 'y' ] }, { tokens: [ 'z' ] } ] } ] ][0] nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/railroad-experimental/index.html000066400000000000000000000003361376321042600304140ustar00rootroot00000000000000 nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/right.ne000066400000000000000000000002341376321042600235650ustar00rootroot00000000000000# right.ne # notice the exponential growth of states # as it must COMPLETE a state in every previous CHART # eg. 500 "." takes 3 seconds c -> null | "." c nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/token-2.ne000066400000000000000000000002161376321042600237270ustar00rootroot00000000000000@{% const tokenPrint = { literal: "print" }; const tokenNumber = { test: x => Number.isInteger(x) }; %} main -> %tokenPrint %tokenNumber ";;"nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/token.ne000066400000000000000000000002241376321042600235670ustar00rootroot00000000000000@{% var ws = {literal: " "}; var number = {test: function(n) { return n.constructor === Number; }}; %} main -> %number (%number %ws %number):+ nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/tosh.ne000066400000000000000000000372671376321042600234450ustar00rootroot00000000000000 line -> thing {% id %} thing -> block {% id %} | r_parens {% id %} | b_parens {% id %} n -> n4 {% id %} sb -> join {% id %} | n4 {% id %} | s0 {% id %} b -> b8 {% id %} c -> r_parens {% id %} | c0 {% id %} r_parens -> "(" _ r_value _ ")" {% d => d[2] %} r_value -> join {% id %} | n4 {% id %} b_parens -> "<" _ b8 _ ">" {% d => d[2] %} predicate -> simple_predicate {% id %} join -> "join" __ jpart __ jpart {% d => ["concatenate:with:", d[2], d[4]] %} jpart -> s0 {% id %} | "_" {% d => "" %} | join {% id %} | r_parens {% id %} | b_parens {% id %} predicate -> "touching" __ "color" __ c _ "?" {% d => ["touchingColor:", d[4]] %} | "color" __ c __ "is" __ "touching" __ c _ "?" {% d => ["color:sees:", d[2], d[8]] %} b8 -> b_and {% id %} | b_or {% id %} | b7 {% id %} b_and -> b_and __ "and" __ b7 {% d => ["&", d[0], d[4]] %} | b7 __ "and" __ b7 {% d => ["&", d[0], d[4]] %} b_or -> b_or __ "or" __ b7 {% d => ["|", d[0], d[4]] %} | b7 __ "or" __ b7 {% d => ["|", d[0], d[4]] %} b7 -> "not" __ b7 {% d => ["not", d[2]] %} | b6 {% id %} b6 -> sb _ "<" _ sb {% d => ["<", d[0], d[4]] %} | sb _ ">" _ sb {% d => [">", d[0], d[4]] %} | sb _ "=" _ sb {% d => ["=", d[0], d[4]] %} | m_list __ "contains" __ sb _ "?" {% d => ["list:contains:", d[0], d[4]] %} | predicate {% id %} | b2 {% id %} b2 -> b_parens {% id %} | b0 {% id %} n4 -> n4 _ "+" _ n3 {% d => ["+", d[0], d[4]] %} | n4 _ "-" _ n3 {% d => ["-", d[0], d[4]] %} | n3 {% id %} n3 -> n3 _ "*" _ n2 {% d => ["*", d[0], d[4]] %} | n3 _ "/" _ n2 {% d => ["/", d[0], d[4]] %} | n3 _ "mod" _ n2 {% d => ["%", d[0], d[4]] %} | n2 {% id %} n2 -> "round" __ n2 {% d => ["rounded", d[2]] %} | m_mathOp __ "of" __ n2 {% d => ["computeFunction:of:", d[0], d[4]] %} | "pick" __ "random" __ n4 __ "to" __ n2 {% d => ["randomFrom:to:", d[4], d[8]] %} | m_attribute __ "of" __ m_spriteOrStage {% d => ["getAttribute:of:", d[0], d[4]] %} | "distance" __ "to" __ m_spriteOrMouse {% d => ["distanceTo:", d[4]] %} | "length" __ "of" __ s2 {% d => ["stringLength:", d[4]] %} | "letter" __ n __ "of" __ s2 {% d => ["letter:of:", d[2], d[6]] %} | n1 {% id %} n1 -> simple_reporter {% id %} | r_parens {% id %} | b_parens {% id %} | n0 {% id %} s2 -> s0 {% id %} | n1 {% id %} n0 -> "-" _ number {% d => -d[2] %} | number {% d => d[0] %} | "_" {% d => 0 %} s0 -> string {% id %} b0 -> "<>" {% d => false %} c0 -> color {% id %} _greenFlag -> "flag" | "green" __ "flag" _turnLeft -> "ccw" | "left" _turnRight -> "cw" | "right" c0 -> "red" {% id %} | "orange" {% id %} | "yellow" {% id %} | "green" {% id %} | "blue" {% id %} | "purple" {% id %} | "black" {% id %} | "white" {% id %} | "pink" {% id %} | "brown" {% id %} m_attribute -> "x" __ "position" {% d => "x position" %} | "y" __ "position" {% d => "y position" %} | "direction" {% id %} | "costume" __ "#" {% d => "costume #" %} | "costume" __ "name" {% d => "costume name" %} | "backdrop" __ "#" {% d => "backdrop #" %} | "backdrop" __ "name" {% d => "backdrop name" %} | "size" {% id %} | "volume" {% id %} | "_" {% d => "" %} m_backdrop -> jpart {% id %} | "_" {% d => "" %} m_broadcast -> jpart {% id %} | "_" {% d => "" %} m_costume -> jpart {% id %} | "_" {% d => "" %} m_effect -> "color" {% id %} | "fisheye" {% id %} | "whirl" {% id %} | "pixelate" {% id %} | "mosaic" {% id %} | "brightness" {% id %} | "ghost" {% id %} | "_" {% d => "" %} m_key -> "space" {% id %} | "up" __ "arrow" {% d => "up arrow" %} | "down" __ "arrow" {% d => "down arrow" %} | "right" __ "arrow" {% d => "right arrow" %} | "left" __ "arrow" {% d => "left arrow" %} | "any" {% id %} | [a-z0-9] {% id %} | "_" {% d => "" %} m_list -> ListName {% id %} | "_" {% d => "" %} m_location -> jpart {% id %} | "mouse-pointer" {% d => "_mouse_" %} | "random" __ "position" {% d => "_random_" %} | "_" {% d => "" %} m_mathOp -> "abs" {% id %} | "floor" {% id %} | "ceiling" {% id %} | "sqrt" {% id %} | "sin" {% id %} | "cos" {% id %} | "tan" {% id %} | "asin" {% id %} | "acos" {% id %} | "atan" {% id %} | "ln" {% id %} | "log" {% id %} | "e" _ "^" {% d => "e ^" %} | "10" _ "^" {% d => "10 ^" %} | "_" {% d => "" %} m_rotationStyle -> "left-right" {% id %} | "don't" __ "rotate" {% d => "don't rotate" %} | "all" __ "around" {% d => "all around" %} | "_" {% d => "" %} m_scene -> jpart {% id %} | "_" {% d => "" %} m_sound -> jpart {% id %} | "_" {% d => "" %} m_spriteOnly -> jpart {% id %} | "myself" {% d => "_myself_" %} | "_" {% d => "" %} m_spriteOrMouse -> jpart {% id %} | "mouse-pointer" {% d => "_mouse_" %} | "_" {% d => "" %} m_spriteOrStage -> jpart {% id %} | "Stage" {% d => "_stage_" %} | "_" {% d => "" %} m_stageOrThis -> "Stage" {% d => "_stage_" %} | "this" __ "sprite" {% d => "this sprite" %} | "_" {% d => "" %} m_stop -> "all" {% id %} | "this" __ "script" {% d => "this script" %} | "other" __ "scripts" __ "in" __ "sprite" {% d => "other scripts in sprite" %} | "_" {% d => "" %} m_timeAndDate -> "year" {% id %} | "month" {% id %} | "date" {% id %} | "day" __ "of" __ "week" {% d => "day of week" %} | "hour" {% id %} | "minute" {% id %} | "second" {% id %} | "_" {% d => "" %} m_touching -> jpart {% id %} | "mouse-pointer" {% d => "_mouse_" %} | "edge" {% d => "_edge_" %} | "_" {% d => "" %} m_triggerSensor -> "loudness" {% id %} | "timer" {% id %} | "video" __ "motion" {% d => "video motion" %} | "_" {% d => "" %} m_var -> VariableName {% id %} | "_" {% d => "" %} m_varName -> VariableName {% id %} | "_" {% d => "" %} m_videoMotionType -> "motion" {% id %} | "direction" {% id %} | "_" {% d => "" %} m_videoState -> "off" {% id %} | "on" {% id %} | "on-flipped" {% id %} | "_" {% d => "" %} d_direction -> n {% id %} d_drum -> n {% id %} d_instrument -> n {% id %} d_listDeleteItem -> "last" {% id %} | "all" {% id %} | n {% id %} d_listItem -> "last" {% id %} | "random" {% id %} | n {% id %} d_note -> n {% id %} m_attribute -> jpart {% id %} block -> "move" __ n __ "steps" {% d => ["forward:", d[2]] %} | "turn" __ _turnRight __ n __ "degrees" {% d => ["turnRight:", d[2], d[4]] %} | "turn" __ _turnLeft __ n __ "degrees" {% d => ["turnLeft:", d[2], d[4]] %} | "point" __ "in" __ "direction" __ d_direction {% d => ["heading:", d[6]] %} | "point" __ "towards" __ m_spriteOrMouse {% d => ["pointTowards:", d[4]] %} | "go" __ "to" __ "x:" __ n __ "y:" __ n {% d => ["gotoX:y:", d[6], d[10]] %} | "go" __ "to" __ m_location {% d => ["gotoSpriteOrMouse:", d[4]] %} | "glide" __ n __ "secs" __ "to" __ "x:" __ n __ "y:" __ n {% d => ["glideSecs:toX:y:elapsed:from:", d[2], d[10], d[14]] %} | "change" __ "x" __ "by" __ n {% d => ["changeXposBy:", d[6]] %} | "set" __ "x" __ "to" __ n {% d => ["xpos:", d[6]] %} | "change" __ "y" __ "by" __ n {% d => ["changeYposBy:", d[6]] %} | "set" __ "y" __ "to" __ n {% d => ["ypos:", d[6]] %} | "set" __ "rotation" __ "style" __ m_rotationStyle {% d => ["setRotationStyle", d[6]] %} | "say" __ sb __ "for" __ n __ "secs" {% d => ["say:duration:elapsed:from:", d[2], d[6]] %} | "say" __ sb {% d => ["say:", d[2]] %} | "think" __ sb __ "for" __ n __ "secs" {% d => ["think:duration:elapsed:from:", d[2], d[6]] %} | "think" __ sb {% d => ["think:", d[2]] %} | "show" {% d => ["show"] %} | "hide" {% d => ["hide"] %} | "switch" __ "costume" __ "to" __ m_costume {% d => ["lookLike:", d[6]] %} | "next" __ "costume" {% d => ["nextCostume"] %} | "next" __ "backdrop" {% d => ["nextScene"] %} | "switch" __ "backdrop" __ "to" __ m_backdrop {% d => ["startScene", d[6]] %} | "switch" __ "backdrop" __ "to" __ m_backdrop __ "and" __ "wait" {% d => ["startSceneAndWait", d[6]] %} | "change" __ m_effect __ "effect" __ "by" __ n {% d => ["changeGraphicEffect:by:", d[2], d[8]] %} | "set" __ m_effect __ "effect" __ "to" __ n {% d => ["setGraphicEffect:to:", d[2], d[8]] %} | "clear" __ "graphic" __ "effects" {% d => ["filterReset"] %} | "change" __ "size" __ "by" __ n {% d => ["changeSizeBy:", d[6]] %} | "set" __ "size" __ "to" __ n __ "%" {% d => ["setSizeTo:", d[6]] %} | "go" __ "to" __ "front" {% d => ["comeToFront"] %} | "go" __ "back" __ n __ "layers" {% d => ["goBackByLayers:", d[4]] %} | "play" __ "sound" __ m_sound {% d => ["playSound:", d[4]] %} | "play" __ "sound" __ m_sound __ "until" __ "done" {% d => ["doPlaySoundAndWait", d[4]] %} | "stop" __ "all" __ "sounds" {% d => ["stopAllSounds"] %} | "play" __ "drum" __ d_drum __ "for" __ n __ "beats" {% d => ["playDrum", d[4], d[8]] %} | "rest" __ "for" __ n __ "beats" {% d => ["rest:elapsed:from:", d[4]] %} | "play" __ "note" __ d_note __ "for" __ n __ "beats" {% d => ["noteOn:duration:elapsed:from:", d[4], d[8]] %} | "set" __ "instrument" __ "to" __ d_instrument {% d => ["instrument:", d[6]] %} | "change" __ "volume" __ "by" __ n {% d => ["changeVolumeBy:", d[6]] %} | "set" __ "volume" __ "to" __ n __ "%" {% d => ["setVolumeTo:", d[6]] %} | "change" __ "tempo" __ "by" __ n {% d => ["changeTempoBy:", d[6]] %} | "set" __ "tempo" __ "to" __ n __ "bpm" {% d => ["setTempoTo:", d[6]] %} | "clear" {% d => ["clearPenTrails"] %} | "stamp" {% d => ["stampCostume"] %} | "pen" __ "down" {% d => ["putPenDown"] %} | "pen" __ "up" {% d => ["putPenUp"] %} | "set" __ "pen" __ "color" __ "to" __ c {% d => ["penColor:", d[8]] %} | "change" __ "pen" __ "hue" __ "by" __ n {% d => ["changePenHueBy:", d[8]] %} | "set" __ "pen" __ "hue" __ "to" __ n {% d => ["setPenHueTo:", d[8]] %} | "change" __ "pen" __ "shade" __ "by" __ n {% d => ["changePenShadeBy:", d[8]] %} | "set" __ "pen" __ "shade" __ "to" __ n {% d => ["setPenShadeTo:", d[8]] %} | "change" __ "pen" __ "size" __ "by" __ n {% d => ["changePenSizeBy:", d[8]] %} | "set" __ "pen" __ "size" __ "to" __ n {% d => ["penSize:", d[8]] %} | "when" __ _greenFlag __ "clicked" {% d => ["whenGreenFlag", d[2]] %} | "when" __ m_key __ "key" __ "pressed" {% d => ["whenKeyPressed", d[2]] %} | "when" __ "this" __ "sprite" __ "clicked" {% d => ["whenClicked"] %} | "when" __ "backdrop" __ "switches" __ "to" __ m_backdrop {% d => ["whenSceneStarts", d[8]] %} | "when" __ m_triggerSensor __ ">" __ n {% d => ["whenSensorGreaterThan", d[2], d[6]] %} | "when" __ "I" __ "receive" __ m_broadcast {% d => ["whenIReceive", d[6]] %} | "broadcast" __ m_broadcast {% d => ["broadcast:", d[2]] %} | "broadcast" __ m_broadcast __ "and" __ "wait" {% d => ["doBroadcastAndWait", d[2]] %} | "wait" __ n __ "secs" {% d => ["wait:elapsed:from:", d[2]] %} | "repeat" __ n {% d => ["doRepeat", d[2]] %} | "forever" {% d => ["doForever"] %} | "if" __ b __ "then" {% d => ["doIfElse", d[2]] %} | "wait" __ "until" __ b {% d => ["doWaitUntil", d[4]] %} | "repeat" __ "until" __ b {% d => ["doUntil", d[4]] %} | "stop" __ m_stop {% d => ["stopScripts", d[2]] %} | "when" __ "I" __ "start" __ "as" __ "a" __ "clone" {% d => ["whenCloned"] %} | "create" __ "clone" __ "of" __ m_spriteOnly {% d => ["createCloneOf", d[6]] %} | "delete" __ "this" __ "clone" {% d => ["deleteClone"] %} | "ask" __ sb __ "and" __ "wait" {% d => ["doAsk", d[2]] %} | "turn" __ "video" __ m_videoState {% d => ["setVideoState", d[4]] %} | "set" __ "video" __ "transparency" __ "to" __ n __ "%" {% d => ["setVideoTransparency", d[8]] %} | "reset" __ "timer" {% d => ["timerReset"] %} | "set" __ m_var __ "to" __ sb {% d => ["setVar:to:", d[2], d[6]] %} | "change" __ m_var __ "by" __ n {% d => ["changeVar:by:", d[2], d[6]] %} | "show" __ "variable" __ m_var {% d => ["showVariable:", d[4]] %} | "hide" __ "variable" __ m_var {% d => ["hideVariable:", d[4]] %} | "add" __ sb __ "to" __ m_list {% d => ["append:toList:", d[2], d[6]] %} | "delete" __ d_listDeleteItem __ "of" __ m_list {% d => ["deleteLine:ofList:", d[2], d[6]] %} | "if" __ "on" __ "edge," __ "bounce" {% d => ["bounceOffEdge"] %} | "insert" __ sb __ "at" __ d_listItem __ "of" __ m_list {% d => ["insert:at:ofList:", d[2], d[6], d[10]] %} | "replace" __ "item" __ d_listItem __ "of" __ m_list __ "with" __ sb {% d => ["setLine:ofList:to:", d[4], d[8], d[12]] %} | "show" __ "list" __ m_list {% d => ["showList:", d[4]] %} | "hide" __ "list" __ m_list {% d => ["hideList:", d[4]] %} simple_reporter -> "x" __ "position" {% d => ["xpos"] %} | "y" __ "position" {% d => ["ypos"] %} | "direction" {% d => ["heading"] %} | "costume" __ "#" {% d => ["costumeIndex"] %} | "size" {% d => ["scale"] %} | "backdrop" __ "name" {% d => ["sceneName"] %} | "backdrop" __ "#" {% d => ["backgroundIndex"] %} | "volume" {% d => ["volume"] %} | "tempo" {% d => ["tempo"] %} simple_predicate -> "touching" __ m_touching _ "?" {% d => ["touching:", d[2]] %} simple_reporter -> "answer" {% d => ["answer"] %} simple_predicate -> "key" __ m_key __ "pressed" _ "?" {% d => ["keyPressed:", d[2]] %} | "mouse" __ "down" _ "?" {% d => ["mousePressed"] %} simple_reporter -> "mouse" __ "x" {% d => ["mouseX"] %} | "mouse" __ "y" {% d => ["mouseY"] %} | "loudness" {% d => ["soundLevel"] %} | "video" __ m_videoMotionType __ "on" __ m_stageOrThis {% d => ["senseVideoMotion", d[2], d[6]] %} | "timer" {% d => ["timer"] %} | "current" __ m_timeAndDate {% d => ["timeAndDate", d[2]] %} | "days" __ "since" __ number {% d => ["timestamp", d[4]] %} | "username" {% d => ["getUserName"] %} | "item" __ d_listItem __ "of" __ m_list {% d => ["getLine:ofList:", d[2], d[6]] %} | "length" __ "of" __ m_list {% d => ["lineCountOfList:", d[4]] %} simple_reporter -> VariableName {% d => ['readVariable', d[0]] %} block -> "else" {% d => ["else"] %} | "end" {% d => ["end"] %} | "..." {% d => ["ellips"] %} _ -> [ ]:* {% d => null %} __ -> [ ]:+ {% d => null %} string -> "'hello'" {% d => 'hello' %} number -> digits {% d => parseInt(d[0]) %} number -> digits [.] digits {% d => parseFloat(d.join('')) %} digits -> [0-9]:+ {% d => d[0].join('') %} color -> [#] [0-9a-z] [0-9a-z] [0-9a-z] [0-9a-z] [0-9a-z] [0-9a-z] | [#] [0-9a-z] [0-9a-z] [0-9a-z] VariableName -> "foo" {% id %} ListName -> "list" {% id %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/examples/wikipedia.ne000066400000000000000000000002141376321042600244140ustar00rootroot00000000000000# https://en.wikipedia.org/wiki/Earley_parser#Example P -> S S -> S "+" M | M M -> M "*" T | T T -> "1" | "2" | "3" | "4"nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/index.html000066400000000000000000000551761376321042600223220ustar00rootroot00000000000000 Home - nearley.js - JS Parsing Toolkit

Home

Parsers turn strings of characters into meaningful data structures (like a JSON object!). nearley is a fast, feature-rich, and modern parser toolkit for JavaScript. nearley is an npm Staff Pick.

nearley 101

  1. Install: $ npm install -g nearley (or try nearley live in your browser here!)
  2. Write your grammar:
    # Match a CSS color
    # http://www.w3.org/TR/css3-color/#colorunits
    @builtin "whitespace.ne" # `_` means arbitrary amount of whitespace
    @builtin "number.ne"     # `int`, `decimal`, and `percentage` number primitives
    csscolor -> "#" hexdigit hexdigit hexdigit hexdigit hexdigit hexdigit
              | "#" hexdigit hexdigit hexdigit
              | "rgb"  _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")"
              | "hsl"  _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ ")"
              | "rgba" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")"
              | "hsla" _ "(" _ colnum _ "," _ colnum _ "," _ colnum _ "," _ decimal _ ")"
    hexdigit -> [a-fA-F0-9]
    colnum   -> int | percentage
  3. Compile your grammar:
    $ nearleyc csscolor.ne -o csscolor.js
  4. Test your grammar:
    $ nearley-test -i "#00ff00" csscolor.js
    Parse results:
    [ [ '#', [ '0' ], [ '0' ], [ 'f' ], [ 'f' ], [ '0' ], [ '0' ] ] ]
  5. Turn your grammar into a generator:
    $ nearley-unparse -n 3 csscolor.js
    #Ab21F2
    rgb  ( -29.889%,7,8172)
    #a40
  6. You try it! Type a CSS color here:
    …and the parsed output will appear here!
  7. Create beautiful railroad diagrams to document your grammar formally.
    $ nearley-railroad csscolor.ne -o csscolor.html
    See a demo here.

Features

  • nearley is the first JS parser to use the Earley algorithm (insert your own ‘early bird’ pun here). It also implements Joop Leo’s optimizations for right-recursion, making it effectively linear-time for LL(k) grammars.
  • nearley lives happily in node, but doesn’t mind the browser.
  • nearley outputs small files. And its expressive DSL comes with plenty of syntactic sugar to keep your source files short. And sweet.
  • nearley’s grammar language is powerful and expressive: you can use macros, import from a large builtin library of pre-defined parser-pieces, use a tokenizer for extra performance, and more!
  • nearley is built on an idiomatic streaming API. You even have access to partial parses to build predictive user interfaces.
  • nearley processes left recursion without choking. In fact, nearley will parse anything you throw at it without complaining or going into a sulk infinite loop.
  • nearley handles ambiguous grammars gracefully. Ambiguous grammars can be parsed in multiple ways: instead of getting confused, nearley gives you all the parsings (in a deterministic order!).
  • nearley allows for debugging with generous error detection. When it catches a parse-time error, nearley tells you exactly what went wrong and where.
  • nearley is powerful enough to be bootstrapped. That means nearley uses nearley to compile parts of nearley. nearleyception!
  • nearley parsers can be inverted to form generators which output random strings that match a grammar. Useful for writing test cases, fuzzers, and Mad-Libs.
  • You can export nearley parsers as railroad diagrams, which provide easy-to-understand documentation of your grammar.
  • nearley comes with fantastic tooling. You can find editor plug-ins for vim, Sublime Text, Atom, and VS Code; there are also plug-ins for Webpack and gulp.

Projects using nearley

Artificial Intelligence, NLP, Linguistics: Shrdlite is a programming project in Artificial Intelligence, a course given at the University of Gothenburg and Chalmers University of Technology. It uses nearley for reading instructions in natural language (i.e. English). lexicon-grammars was used to parse lexicons for a project at Australian National University.

Standard formats: node-dmi is a module that reads iconstate metadata from BYOND DMI files, edtf.js is a parser for Extended Date Time Format, node-krl-parser is a KRL parser for node, bibliography is a BibTeX-to-HTML converter, biblatex-csl-converter converts between bibtex/CSL/JSON, scalpel parses CSS selectors (powering enzyme, Airbnb’s React testing tool), rfc5545-rrule helps parse iCalendar data, mangudai parses RMS scripts for Age of Empires II, tf-hcl parses and generates HCL config files, css-selector-inspector parses and tokenizes CSS3 selectors, css-property-parser validates and expands CSS shorthands, node-scad-parser parses OpenSCAD 3D models, js-sql-parse parses SQL statements, pg-mem is an in-memory Postgres database emulator, resp-parser is a parser for the RESP protocol, celio parses Celestia star catalogs.

Templating and files: uPresent is a markdown-based presentation authoring system, saison is a minimal templating language, Packdown is a tool to generate human-readable archives of multiple files.

Programming languages: Carbon is a C subset that compiles to JavaScript, optimized for game development, ezlang is a simple language, tlnccuwagnf is a fun general-purpose language, nanalang is a silly esoteric language, english is a less esoteric programming language, ecmaless is an easily-extensible language, hm-parser parses Haskell-like Hindley-Milner type signatures, kozily implements the Oz language, abstract-machine inspects execution models, fbp-types provides typechecking primitives for flow-based systems, lp5562 is an assembler for the TI LP5562 LED driver, VSL is a Versatile Scripting Language, while-typescript is an implementation of the WHILE language, lo is a language for secure distributed systems, jaco is an implementation of CMU’s C0 teaching language, walt is a subset of JavaScript that targets WebAssembly.

Mathematics: Solvent is a powerful desktop calculator, Truth-table is a tool to visualize propositional logic in truth tables, Emunotes is a personal Wiki with inline graphing and computation, react-equation parses and renders equations in React, the mLab generates category theory papers.

Domain-specific languages: Hexant is a cellular automata simulator with a DSL for custom automata, Dicetower is an advanced dice plugin for hubot, deck.zone is a language to create board games, in-seconds is a time calculator for music applications, website-spec is a tool for functional web testing, pianola allows declarative function composition, idyll is a markup language for data-driven documents, virtsecgroup provides virtual AWS security groups, deadfad is a hex editor that lets you specify structs, bishbosh helps you create command-line interfaces, syso codifies aspects of French legal contracts, siteswap parses Siteswap notation for juggling patterns, jsgrep provides syntactic grep for JavaScript, electro-grammar parses descriptions of electronic components like resistors and capacitors, cicero helps create smart legal contracts, Eventbot is a calendar plugin for Slack used by thousands of teams, Obyte is a cryptocurrency platform, OptiCSS is a CSS optimizer built by LinkedIn, NESTUP is a language for specifying nested rhythmic tuplets.

Other: ProceduralPsychEpisode generates “random episodes of the hilarious but formulaic show�

Parsing libraries: nearley is a parser toolkit for JavaScript. It has a nearley-based DSL to specify parsers.

Give to nearley

nearley has been maintained by volunteers since 2014. If you want to help support us, contact @kach or @tjvr on GitHub. We’ll send over our PayPal information – and maybe something nice. :-).

nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/lib/000077500000000000000000000000001376321042600210555ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/lib/compile.js000066400000000000000000000244511376321042600230510ustar00rootroot00000000000000(function(root, factory) { if (typeof module === 'object' && module.exports) { module.exports = factory(require('./nearley')); } else { root.Compile = factory(root.nearley); } }(this, function(nearley) { function Compile(structure, opts) { var unique = uniquer(); if (!opts.alreadycompiled) { opts.alreadycompiled = []; } var result = { rules: [], body: [], // @directives list customTokens: [], // %tokens config: {}, // @config value macros: {}, start: '', version: opts.version || 'unknown' }; for (var i = 0; i < structure.length; i++) { var productionRule = structure[i]; if (productionRule.body) { // This isn't a rule, it's an @directive. if (!opts.nojs) { result.body.push(productionRule.body); } } else if (productionRule.include) { // Include file var path; if (!productionRule.builtin) { path = require('path').resolve( opts.args[0] ? require('path').dirname(opts.args[0]) : process.cwd(), productionRule.include ); } else { path = require('path').resolve( __dirname, '../builtin/', productionRule.include ); } if (opts.alreadycompiled.indexOf(path) === -1) { opts.alreadycompiled.push(path); var f = require('fs').readFileSync(path).toString(); var parserGrammar = nearley.Grammar.fromCompiled(require('./nearley-language-bootstrapped.js')); var parser = new nearley.Parser(parserGrammar); parser.feed(f); var c = Compile(parser.results[0], {args: [path], __proto__:opts}); result.rules = result.rules.concat(c.rules); result.body = result.body.concat(c.body); result.customTokens = result.customTokens.concat(c.customTokens); Object.keys(c.config).forEach(function(k) { result.config[k] = c.config[k]; }); Object.keys(c.macros).forEach(function(k) { result.macros[k] = c.macros[k]; }); } } else if (productionRule.macro) { result.macros[productionRule.macro] = { 'args': productionRule.args, 'exprs': productionRule.exprs }; } else if (productionRule.config) { // This isn't a rule, it's an @config. result.config[productionRule.config] = productionRule.value } else { produceRules(productionRule.name, productionRule.rules, {}); if (!result.start) { result.start = productionRule.name; } } } return result; function produceRules(name, rules, env) { for (var i = 0; i < rules.length; i++) { var rule = buildRule(name, rules[i], env); if (opts.nojs) { rule.postprocess = null; } result.rules.push(rule); } } function buildRule(ruleName, rule, env) { var tokens = []; for (var i = 0; i < rule.tokens.length; i++) { var token = buildToken(ruleName, rule.tokens[i], env); if (token !== null) { tokens.push(token); } } return new nearley.Rule( ruleName, tokens, rule.postprocess ); } function buildToken(ruleName, token, env) { if (typeof token === 'string') { if (token === 'null') { return null; } return token; } if (token instanceof RegExp) { return token; } if (token.literal) { if (!token.literal.length) { return null; } if (token.literal.length === 1 || result.config.lexer) { return token; } return buildStringToken(ruleName, token, env); } if (token.token) { if (result.config.lexer) { var name = token.token; if (result.customTokens.indexOf(name) === -1) { result.customTokens.push(name); } var expr = result.config.lexer + ".has(" + JSON.stringify(name) + ") ? {type: " + JSON.stringify(name) + "} : " + name; return {token: "(" + expr + ")"}; } return token; } if (token.subexpression) { return buildSubExpressionToken(ruleName, token, env); } if (token.ebnf) { return buildEBNFToken(ruleName, token, env); } if (token.macrocall) { return buildMacroCallToken(ruleName, token, env); } if (token.mixin) { if (env[token.mixin]) { return buildToken(ruleName, env[token.mixin], env); } else { throw new Error("Unbound variable: " + token.mixin); } } throw new Error("unrecognized token: " + JSON.stringify(token)); } function buildStringToken(ruleName, token, env) { var newname = unique(ruleName + "$string"); produceRules(newname, [ { tokens: token.literal.split("").map(function charLiteral(d) { return { literal: d }; }), postprocess: {builtin: "joiner"} } ], env); return newname; } function buildSubExpressionToken(ruleName, token, env) { var data = token.subexpression; var name = unique(ruleName + "$subexpression"); //structure.push({"name": name, "rules": data}); produceRules(name, data, env); return name; } function buildEBNFToken(ruleName, token, env) { switch (token.modifier) { case ":+": return buildEBNFPlus(ruleName, token, env); case ":*": return buildEBNFStar(ruleName, token, env); case ":?": return buildEBNFOpt(ruleName, token, env); } } function buildEBNFPlus(ruleName, token, env) { var name = unique(ruleName + "$ebnf"); /* structure.push({ name: name, rules: [{ tokens: [token.ebnf], }, { tokens: [token.ebnf, name], postprocess: {builtin: "arrconcat"} }] }); */ produceRules(name, [{ tokens: [token.ebnf], }, { tokens: [name, token.ebnf], postprocess: {builtin: "arrpush"} }], env ); return name; } function buildEBNFStar(ruleName, token, env) { var name = unique(ruleName + "$ebnf"); /* structure.push({ name: name, rules: [{ tokens: [], }, { tokens: [token.ebnf, name], postprocess: {builtin: "arrconcat"} }] }); */ produceRules(name, [{ tokens: [], }, { tokens: [name, token.ebnf], postprocess: {builtin: "arrpush"} }], env ); return name; } function buildEBNFOpt(ruleName, token, env) { var name = unique(ruleName + "$ebnf"); /* structure.push({ name: name, rules: [{ tokens: [token.ebnf], postprocess: {builtin: "id"} }, { tokens: [], postprocess: {builtin: "nuller"} }] }); */ produceRules(name, [{ tokens: [token.ebnf], postprocess: {builtin: "id"} }, { tokens: [], postprocess: {builtin: "nuller"} }], env ); return name; } function buildMacroCallToken(ruleName, token, env) { var name = unique(ruleName + "$macrocall"); var macro = result.macros[token.macrocall]; if (!macro) { throw new Error("Unkown macro: "+token.macrocall); } if (macro.args.length !== token.args.length) { throw new Error("Argument count mismatch."); } var newenv = {__proto__: env}; for (var i=0; i d.join('')", "arrconcat": "(d) -> [d[0]].concat(d[1])", "arrpush": "(d) -> d[0].concat([d[1]])", "nuller": "() -> null", "id": "id" }; generate.ts = generate.typescript = function (parser, exportName) { var output = "// Generated automatically by nearley, version " + parser.version + "\n"; output += "// http://github.com/Hardmath123/nearley\n"; output += "// Bypasses TS6133. Allow declared but unused functions.\n"; output += "// @ts-ignore\n"; output += "function id(d: any[]): any { return d[0]; }\n"; output += parser.customTokens.map(function (token) { return "declare var " + token + ": any;\n" }).join("") output += parser.body.join('\n'); output += "\n"; output += "interface NearleyToken {\n"; output += " value: any;\n"; output += " [key: string]: any;\n"; output += "};\n"; output += "\n"; output += "interface NearleyLexer {\n"; output += " reset: (chunk: string, info: any) => void;\n"; output += " next: () => NearleyToken | undefined;\n"; output += " save: () => any;\n"; output += " formatError: (token: never) => string;\n"; output += " has: (tokenType: string) => boolean;\n"; output += "};\n"; output += "\n"; output += "interface NearleyRule {\n"; output += " name: string;\n"; output += " symbols: NearleySymbol[];\n"; output += " postprocess?: (d: any[], loc?: number, reject?: {}) => any;\n"; output += "};\n"; output += "\n"; output += "type NearleySymbol = string | { literal: any } | { test: (token: any) => boolean };\n"; output += "\n"; output += "interface Grammar {\n"; output += " Lexer: NearleyLexer | undefined;\n"; output += " ParserRules: NearleyRule[];\n"; output += " ParserStart: string;\n"; output += "};\n"; output += "\n"; output += "const grammar: Grammar = {\n"; output += " Lexer: " + parser.config.lexer + ",\n"; output += " ParserRules: " + serializeRules(parser.rules, generate.typescript.builtinPostprocessors, " ") + ",\n"; output += " ParserStart: " + JSON.stringify(parser.start) + ",\n"; output += "};\n"; output += "\n"; output += "export default grammar;\n"; return output; }; generate.typescript.builtinPostprocessors = { "joiner": "(d) => d.join('')", "arrconcat": "(d) => [d[0]].concat(d[1])", "arrpush": "(d) => d[0].concat([d[1]])", "nuller": "() => null", "id": "id" }; return generate; })); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/lib/lint.js000066400000000000000000000012731376321042600223640ustar00rootroot00000000000000// Node-only var warn = function (opts, str) { opts.out.write("WARN"+"\t" + str + "\n"); } function lintNames(grm, opts) { var all = []; grm.rules.forEach(function(rule) { all.push(rule.name); }); grm.rules.forEach(function(rule) { rule.symbols.forEach(function(symbol) { if (!symbol.literal && !symbol.token && symbol.constructor !== RegExp) { if (all.indexOf(symbol) === -1) { warn(opts,"Undefined symbol `" + symbol + "` used."); } } }); }); } function lint(grm, opts) { if (!opts.out) opts.out = process.stderr; lintNames(grm, opts); } module.exports = lint; nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/lib/nearley-language-bootstrapped.js000066400000000000000000000163721376321042600273500ustar00rootroot00000000000000// Generated automatically by nearley, version 2.19.5 // http://github.com/Hardmath123/nearley (function () { function id(x) { return x[0]; } function getValue(d) { return d[0].value } function literals(list) { var rules = {} for (var lit of list) { rules[lit] = {match: lit, next: 'main'} } return rules } var moo = require('moo') var rules = Object.assign({ ws: {match: /\s+/, lineBreaks: true, next: 'main'}, comment: /\#.*/, arrow: {match: /[=-]+\>/, next: 'main'}, js: { match: /\{\%(?:[^%]|\%[^}])*\%\}/, value: x => x.slice(2, -2), lineBreaks: true, }, word: {match: /[\w\?\+]+/, next: 'afterWord'}, string: { match: /"(?:[^\\"\n]|\\["\\/bfnrt]|\\u[a-fA-F0-9]{4})*"/, value: x => JSON.parse(x), next: 'main', }, btstring: { match: /`[^`]*`/, value: x => x.slice(1, -1), next: 'main', lineBreaks: true, }, }, literals([ ",", "|", "$", "%", "(", ")", ":?", ":*", ":+", "@include", "@builtin", "@", "]", ])) var lexer = moo.states({ main: Object.assign({}, rules, { charclass: { match: /\.|\[(?:\\.|[^\\\n])+?\]/, value: x => new RegExp(x), }, }), // Both macro arguments and charclasses are both enclosed in [ ]. // We disambiguate based on whether the previous token was a `word`. afterWord: Object.assign({}, rules, { "[": {match: "[", next: 'main'}, }), }) function insensitive(sl) { var s = sl.literal; var result = []; for (var i=0; i ({literal: d[0].value})}, {"name": "string", "symbols": [(lexer.has("btstring") ? {type: "btstring"} : btstring)], "postprocess": d => ({literal: d[0].value})}, {"name": "charclass", "symbols": [(lexer.has("charclass") ? {type: "charclass"} : charclass)], "postprocess": getValue}, {"name": "js", "symbols": [(lexer.has("js") ? {type: "js"} : js)], "postprocess": getValue}, {"name": "_$ebnf$1", "symbols": ["ws"], "postprocess": id}, {"name": "_$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "_", "symbols": ["_$ebnf$1"]}, {"name": "ws", "symbols": [(lexer.has("ws") ? {type: "ws"} : ws)]}, {"name": "ws$ebnf$1", "symbols": [(lexer.has("ws") ? {type: "ws"} : ws)], "postprocess": id}, {"name": "ws$ebnf$1", "symbols": [], "postprocess": function(d) {return null;}}, {"name": "ws", "symbols": ["ws$ebnf$1", (lexer.has("comment") ? {type: "comment"} : comment), "_"]} ] , ParserStart: "final" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })(); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/lib/nearley-language-bootstrapped.ne000066400000000000000000000100561376321042600273270ustar00rootroot00000000000000# nearley grammar @{% function getValue(d) { return d[0].value } function literals(list) { var rules = {} for (var lit of list) { rules[lit] = {match: lit, next: 'main'} } return rules } var moo = require('moo') var rules = Object.assign({ ws: {match: /\s+/, lineBreaks: true, next: 'main'}, comment: /\#.*/, arrow: {match: /[=-]+\>/, next: 'main'}, js: { match: /\{\%(?:[^%]|\%[^}])*\%\}/, value: x => x.slice(2, -2), lineBreaks: true, }, word: {match: /[\w\?\+]+/, next: 'afterWord'}, string: { match: /"(?:[^\\"\n]|\\["\\/bfnrt]|\\u[a-fA-F0-9]{4})*"/, value: x => JSON.parse(x), next: 'main', }, btstring: { match: /`[^`]*`/, value: x => x.slice(1, -1), next: 'main', lineBreaks: true, }, }, literals([ ",", "|", "$", "%", "(", ")", ":?", ":*", ":+", "@include", "@builtin", "@", "]", ])) var lexer = moo.states({ main: Object.assign({}, rules, { charclass: { match: /\.|\[(?:\\.|[^\\\n])+?\]/, value: x => new RegExp(x), }, }), // Both macro arguments and charclasses are both enclosed in [ ]. // We disambiguate based on whether the previous token was a `word`. afterWord: Object.assign({}, rules, { "[": {match: "[", next: 'main'}, }), }) function insensitive(sl) { var s = sl.literal; var result = []; for (var i=0; i _ prog _ %ws:? {% function(d) { return d[1]; } %} prog -> prod {% function(d) { return [d[0]]; } %} | prod ws prog {% function(d) { return [d[0]].concat(d[2]); } %} prod -> word _ %arrow _ expression+ {% function(d) { return {name: d[0], rules: d[4]}; } %} | word "[" _ wordlist _ "]" _ %arrow _ expression+ {% function(d) {return {macro: d[0], args: d[3], exprs: d[9]}} %} | "@" _ js {% function(d) { return {body: d[2]}; } %} | "@" word ws word {% function(d) { return {config: d[1], value: d[3]}; } %} | "@include" _ string {% function(d) {return {include: d[2].literal, builtin: false}} %} | "@builtin" _ string {% function(d) {return {include: d[2].literal, builtin: true }} %} expression+ -> completeexpression | expression+ _ "|" _ completeexpression {% function(d) { return d[0].concat([d[4]]); } %} expressionlist -> completeexpression | expressionlist _ "," _ completeexpression {% function(d) { return d[0].concat([d[4]]); } %} wordlist -> word | wordlist _ "," _ word {% function(d) { return d[0].concat([d[4]]); } %} completeexpression -> expr {% function(d) { return {tokens: d[0]}; } %} | expr _ js {% function(d) { return {tokens: d[0], postprocess: d[2]}; } %} expr_member -> word {% id %} | "$" word {% function(d) {return {mixin: d[1]}} %} | word "[" _ expressionlist _ "]" {% function(d) {return {macrocall: d[0], args: d[3]}} %} | string "i":? {% function(d) { if (d[1]) {return insensitive(d[0]); } else {return d[0]; } } %} | "%" word {% function(d) {return {token: d[1]}} %} | charclass {% id %} | "(" _ expression+ _ ")" {% function(d) {return {'subexpression': d[2]} ;} %} | expr_member _ ebnf_modifier {% function(d) {return {'ebnf': d[0], 'modifier': d[2]}; } %} ebnf_modifier -> ":+" {% getValue %} | ":*" {% getValue %} | ":?" {% getValue %} expr -> expr_member | expr ws expr_member {% function(d){ return d[0].concat([d[2]]); } %} word -> %word {% getValue %} string -> %string {% d => ({literal: d[0].value}) %} | %btstring {% d => ({literal: d[0].value}) %} charclass -> %charclass {% getValue %} js -> %js {% getValue %} _ -> ws:? ws -> %ws | %ws:? %comment _ nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/lib/nearley.js000066400000000000000000000472241376321042600230630ustar00rootroot00000000000000(function(root, factory) { if (typeof module === 'object' && module.exports) { module.exports = factory(); } else { root.nearley = factory(); } }(this, function() { function Rule(name, symbols, postprocess) { this.id = ++Rule.highestId; this.name = name; this.symbols = symbols; // a list of literal | regex class | nonterminal this.postprocess = postprocess; return this; } Rule.highestId = 0; Rule.prototype.toString = function(withCursorAt) { var symbolSequence = (typeof withCursorAt === "undefined") ? this.symbols.map(getSymbolShortDisplay).join(' ') : ( this.symbols.slice(0, withCursorAt).map(getSymbolShortDisplay).join(' ') + " � " + this.symbols.slice(withCursorAt).map(getSymbolShortDisplay).join(' ') ); return this.name + " → " + symbolSequence; } // a State is a rule at a position from a given starting point in the input stream (reference) function State(rule, dot, reference, wantedBy) { this.rule = rule; this.dot = dot; this.reference = reference; this.data = []; this.wantedBy = wantedBy; this.isComplete = this.dot === rule.symbols.length; } State.prototype.toString = function() { return "{" + this.rule.toString(this.dot) + "}, from: " + (this.reference || 0); }; State.prototype.nextState = function(child) { var state = new State(this.rule, this.dot + 1, this.reference, this.wantedBy); state.left = this; state.right = child; if (state.isComplete) { state.data = state.build(); // Having right set here will prevent the right state and its children // form being garbage collected state.right = undefined; } return state; }; State.prototype.build = function() { var children = []; var node = this; do { children.push(node.right.data); node = node.left; } while (node.left); children.reverse(); return children; }; State.prototype.finish = function() { if (this.rule.postprocess) { this.data = this.rule.postprocess(this.data, this.reference, Parser.fail); } }; function Column(grammar, index) { this.grammar = grammar; this.index = index; this.states = []; this.wants = {}; // states indexed by the non-terminal they expect this.scannable = []; // list of states that expect a token this.completed = {}; // states that are nullable } Column.prototype.process = function(nextColumn) { var states = this.states; var wants = this.wants; var completed = this.completed; for (var w = 0; w < states.length; w++) { // nb. we push() during iteration var state = states[w]; if (state.isComplete) { state.finish(); if (state.data !== Parser.fail) { // complete var wantedBy = state.wantedBy; for (var i = wantedBy.length; i--; ) { // this line is hot var left = wantedBy[i]; this.complete(left, state); } // special-case nullables if (state.reference === this.index) { // make sure future predictors of this rule get completed. var exp = state.rule.name; (this.completed[exp] = this.completed[exp] || []).push(state); } } } else { // queue scannable states var exp = state.rule.symbols[state.dot]; if (typeof exp !== 'string') { this.scannable.push(state); continue; } // predict if (wants[exp]) { wants[exp].push(state); if (completed.hasOwnProperty(exp)) { var nulls = completed[exp]; for (var i = 0; i < nulls.length; i++) { var right = nulls[i]; this.complete(state, right); } } } else { wants[exp] = [state]; this.predict(exp); } } } } Column.prototype.predict = function(exp) { var rules = this.grammar.byName[exp] || []; for (var i = 0; i < rules.length; i++) { var r = rules[i]; var wantedBy = this.wants[exp]; var s = new State(r, 0, this.index, wantedBy); this.states.push(s); } } Column.prototype.complete = function(left, right) { var copy = left.nextState(right); this.states.push(copy); } function Grammar(rules, start) { this.rules = rules; this.start = start || this.rules[0].name; var byName = this.byName = {}; this.rules.forEach(function(rule) { if (!byName.hasOwnProperty(rule.name)) { byName[rule.name] = []; } byName[rule.name].push(rule); }); } // So we can allow passing (rules, start) directly to Parser for backwards compatibility Grammar.fromCompiled = function(rules, start) { var lexer = rules.Lexer; if (rules.ParserStart) { start = rules.ParserStart; rules = rules.ParserRules; } var rules = rules.map(function (r) { return (new Rule(r.name, r.symbols, r.postprocess)); }); var g = new Grammar(rules, start); g.lexer = lexer; // nb. storing lexer on Grammar is iffy, but unavoidable return g; } function StreamLexer() { this.reset(""); } StreamLexer.prototype.reset = function(data, state) { this.buffer = data; this.index = 0; this.line = state ? state.line : 1; this.lastLineBreak = state ? -state.col : 0; } StreamLexer.prototype.next = function() { if (this.index < this.buffer.length) { var ch = this.buffer[this.index++]; if (ch === '\n') { this.line += 1; this.lastLineBreak = this.index; } return {value: ch}; } } StreamLexer.prototype.save = function() { return { line: this.line, col: this.index - this.lastLineBreak, } } StreamLexer.prototype.formatError = function(token, message) { // nb. this gets called after consuming the offending token, // so the culprit is index-1 var buffer = this.buffer; if (typeof buffer === 'string') { var lines = buffer .split("\n") .slice( Math.max(0, this.line - 5), this.line ); var nextLineBreak = buffer.indexOf('\n', this.index); if (nextLineBreak === -1) nextLineBreak = buffer.length; var col = this.index - this.lastLineBreak; var lastLineDigits = String(this.line).length; message += " at line " + this.line + " col " + col + ":\n\n"; message += lines .map(function(line, i) { return pad(this.line - lines.length + i + 1, lastLineDigits) + " " + line; }, this) .join("\n"); message += "\n" + pad("", lastLineDigits + col) + "^\n"; return message; } else { return message + " at index " + (this.index - 1); } function pad(n, length) { var s = String(n); return Array(length - s.length + 1).join(" ") + s; } } function Parser(rules, start, options) { if (rules instanceof Grammar) { var grammar = rules; var options = start; } else { var grammar = Grammar.fromCompiled(rules, start); } this.grammar = grammar; // Read options this.options = { keepHistory: false, lexer: grammar.lexer || new StreamLexer, }; for (var key in (options || {})) { this.options[key] = options[key]; } // Setup lexer this.lexer = this.options.lexer; this.lexerState = undefined; // Setup a table var column = new Column(grammar, 0); var table = this.table = [column]; // I could be expecting anything. column.wants[grammar.start] = []; column.predict(grammar.start); // TODO what if start rule is nullable? column.process(); this.current = 0; // token index } // create a reserved token for indicating a parse fail Parser.fail = {}; Parser.prototype.feed = function(chunk) { var lexer = this.lexer; lexer.reset(chunk, this.lexerState); var token; while (true) { try { token = lexer.next(); if (!token) { break; } } catch (e) { // Create the next column so that the error reporter // can display the correctly predicted states. var nextColumn = new Column(this.grammar, this.current + 1); this.table.push(nextColumn); var err = new Error(this.reportLexerError(e)); err.offset = this.current; err.token = e.token; throw err; } // We add new states to table[current+1] var column = this.table[this.current]; // GC unused states if (!this.options.keepHistory) { delete this.table[this.current - 1]; } var n = this.current + 1; var nextColumn = new Column(this.grammar, n); this.table.push(nextColumn); // Advance all tokens that expect the symbol var literal = token.text !== undefined ? token.text : token.value; var value = lexer.constructor === StreamLexer ? token.value : token; var scannable = column.scannable; for (var w = scannable.length; w--; ) { var state = scannable[w]; var expect = state.rule.symbols[state.dot]; // Try to consume the token // either regex or literal if (expect.test ? expect.test(value) : expect.type ? expect.type === token.type : expect.literal === literal) { // Add it var next = state.nextState({data: value, token: token, isToken: true, reference: n - 1}); nextColumn.states.push(next); } } // Next, for each of the rules, we either // (a) complete it, and try to see if the reference row expected that // rule // (b) predict the next nonterminal it expects by adding that // nonterminal's start state // To prevent duplication, we also keep track of rules we have already // added nextColumn.process(); // If needed, throw an error: if (nextColumn.states.length === 0) { // No states at all! This is not good. var err = new Error(this.reportError(token)); err.offset = this.current; err.token = token; throw err; } // maybe save lexer state if (this.options.keepHistory) { column.lexerState = lexer.save() } this.current++; } if (column) { this.lexerState = lexer.save() } // Incrementally keep track of results this.results = this.finish(); // Allow chaining, for whatever it's worth return this; }; Parser.prototype.reportLexerError = function(lexerError) { var tokenDisplay, lexerMessage; // Planning to add a token property to moo's thrown error // even on erroring tokens to be used in error display below var token = lexerError.token; if (token) { tokenDisplay = "input " + JSON.stringify(token.text[0]) + " (lexer error)"; lexerMessage = this.lexer.formatError(token, "Syntax error"); } else { tokenDisplay = "input (lexer error)"; lexerMessage = lexerError.message; } return this.reportErrorCommon(lexerMessage, tokenDisplay); }; Parser.prototype.reportError = function(token) { var tokenDisplay = (token.type ? token.type + " token: " : "") + JSON.stringify(token.value !== undefined ? token.value : token); var lexerMessage = this.lexer.formatError(token, "Syntax error"); return this.reportErrorCommon(lexerMessage, tokenDisplay); }; Parser.prototype.reportErrorCommon = function(lexerMessage, tokenDisplay) { var lines = []; lines.push(lexerMessage); var lastColumnIndex = this.table.length - 2; var lastColumn = this.table[lastColumnIndex]; var expectantStates = lastColumn.states .filter(function(state) { var nextSymbol = state.rule.symbols[state.dot]; return nextSymbol && typeof nextSymbol !== "string"; }); if (expectantStates.length === 0) { lines.push('Unexpected ' + tokenDisplay + '. I did not expect any more input. Here is the state of my parse table:\n'); this.displayStateStack(lastColumn.states, lines); } else { lines.push('Unexpected ' + tokenDisplay + '. Instead, I was expecting to see one of the following:\n'); // Display a "state stack" for each expectant state // - which shows you how this state came to be, step by step. // If there is more than one derivation, we only display the first one. var stateStacks = expectantStates .map(function(state) { return this.buildFirstStateStack(state, []) || [state]; }, this); // Display each state that is expecting a terminal symbol next. stateStacks.forEach(function(stateStack) { var state = stateStack[0]; var nextSymbol = state.rule.symbols[state.dot]; var symbolDisplay = this.getSymbolDisplay(nextSymbol); lines.push('A ' + symbolDisplay + ' based on:'); this.displayStateStack(stateStack, lines); }, this); } lines.push(""); return lines.join("\n"); } Parser.prototype.displayStateStack = function(stateStack, lines) { var lastDisplay; var sameDisplayCount = 0; for (var j = 0; j < stateStack.length; j++) { var state = stateStack[j]; var display = state.rule.toString(state.dot); if (display === lastDisplay) { sameDisplayCount++; } else { if (sameDisplayCount > 0) { lines.push(' ^ ' + sameDisplayCount + ' more lines identical to this'); } sameDisplayCount = 0; lines.push(' ' + display); } lastDisplay = display; } }; Parser.prototype.getSymbolDisplay = function(symbol) { return getSymbolLongDisplay(symbol); }; /* Builds a the first state stack. You can think of a state stack as the call stack of the recursive-descent parser which the Nearley parse algorithm simulates. A state stack is represented as an array of state objects. Within a state stack, the first item of the array will be the starting state, with each successive item in the array going further back into history. This function needs to be given a starting state and an empty array representing the visited states, and it returns an single state stack. */ Parser.prototype.buildFirstStateStack = function(state, visited) { if (visited.indexOf(state) !== -1) { // Found cycle, return null // to eliminate this path from the results, because // we don't know how to display it meaningfully return null; } if (state.wantedBy.length === 0) { return [state]; } var prevState = state.wantedBy[0]; var childVisited = [state].concat(visited); var childResult = this.buildFirstStateStack(prevState, childVisited); if (childResult === null) { return null; } return [state].concat(childResult); }; Parser.prototype.save = function() { var column = this.table[this.current]; column.lexerState = this.lexerState; return column; }; Parser.prototype.restore = function(column) { var index = column.index; this.current = index; this.table[index] = column; this.table.splice(index + 1); this.lexerState = column.lexerState; // Incrementally keep track of results this.results = this.finish(); }; // nb. deprecated: use save/restore instead! Parser.prototype.rewind = function(index) { if (!this.options.keepHistory) { throw new Error('set option `keepHistory` to enable rewinding') } // nb. recall column (table) indicies fall between token indicies. // col 0 -- token 0 -- col 1 this.restore(this.table[index]); }; Parser.prototype.finish = function() { // Return the possible parsings var considerations = []; var start = this.grammar.start; var column = this.table[this.table.length - 1] column.states.forEach(function (t) { if (t.rule.name === start && t.dot === t.rule.symbols.length && t.reference === 0 && t.data !== Parser.fail) { considerations.push(t); } }); return considerations.map(function(c) {return c.data; }); }; function getSymbolLongDisplay(symbol) { var type = typeof symbol; if (type === "string") { return symbol; } else if (type === "object") { if (symbol.literal) { return JSON.stringify(symbol.literal); } else if (symbol instanceof RegExp) { return 'character matching ' + symbol; } else if (symbol.type) { return symbol.type + ' token'; } else if (symbol.test) { return 'token matching ' + String(symbol.test); } else { throw new Error('Unknown symbol type: ' + symbol); } } } function getSymbolShortDisplay(symbol) { var type = typeof symbol; if (type === "string") { return symbol; } else if (type === "object") { if (symbol.literal) { return JSON.stringify(symbol.literal); } else if (symbol instanceof RegExp) { return symbol.toString(); } else if (symbol.type) { return '%' + symbol.type; } else if (symbol.test) { return '<' + String(symbol.test) + '>'; } else { throw new Error('Unknown symbol type: ' + symbol); } } } return { Parser: Parser, Grammar: Grammar, Rule: Rule, }; })); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/lib/stream.js000066400000000000000000000006011376321042600227030ustar00rootroot00000000000000// Node-only var Writable = require('stream').Writable; var util = require('util'); function StreamWrapper(parser) { Writable.call(this); this._parser = parser; } util.inherits(StreamWrapper, Writable); StreamWrapper.prototype._write = function write(chunk, encoding, callback) { this._parser.feed(chunk.toString()); callback(); }; module.exports = StreamWrapper; nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/lib/unparse.js000066400000000000000000000116551376321042600231000ustar00rootroot00000000000000(function(root, factory) { if (typeof module === 'object' && module.exports) { module.exports = factory(require('./nearley')); } else { root.Unparser = factory(root.nearley); } }(this, function(nearley) { var randexp = require('randexp'); function genRandom(grammar, start) { // The first-generation generator. It just spews out stuff randomly, and is // not at all guaranteed to terminate. However, it is extremely performant. var output = ""; var stack = [start]; while (stack.length > 0) { var currentname = stack.pop(); if (typeof(currentname) === 'string') { var goodrules = grammar.rules.filter(function(x) { return x.name === currentname; }); if (goodrules.length > 0) { var chosen = goodrules[ Math.floor(Math.random()*goodrules.length) ]; for (var i=chosen.symbols.length-1; i>=0; i--) { stack.push(chosen.symbols[i]); } } else { throw new Error("Nothing matches rule: "+currentname+"!"); } } else if (currentname.test) { var c = new randexp(currentname).gen(); output += c; continue; } else if (currentname.literal) { output += currentname.literal; continue; } } return output; } function genBounded(grammar, start, depth) { // I guess you could call this the second-generation generator. // All it does is bound its output by a certain depth without having to // backtrack. It doesn't give guarantees on being uniformly random, but // that's doable if we *really* need it (by converting min_depth_rule, a // predicate, into something that counts the number of trees of depth d). var rules = grammar.rules; var min_depths_rule = []; function synth_nt(name, depth) { var good_rules = []; var min_min_depth = Infinity; for (var i=0; i 0) { return genBounded(grammar, start, depth); } else { return genRandom(grammar, start); } } return Unparse; })); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/package-lock.json000066400000000000000000014054421376321042600235350ustar00rootroot00000000000000{ "name": "nearley", "version": "2.20.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "version": "2.20.1", "license": "MIT", "dependencies": { "commander": "^2.19.0", "moo": "^0.5.0", "railroad-diagrams": "^1.0.0", "randexp": "0.4.6" }, "bin": { "nearley-railroad": "bin/nearley-railroad.js", "nearley-test": "bin/nearley-test.js", "nearley-unparse": "bin/nearley-unparse.js", "nearleyc": "bin/nearleyc.js" }, "devDependencies": { "@types/moo": "^0.3.0", "@types/node": "^7.0.27", "babel-cli": "^6.18.0", "babel-preset-env": "^1.6.0", "benchr": "^3.2.0", "coffee-script": "^1.10.0", "doctoc": "^1.3.0", "expect": "^1.20.2", "microtime": "^2.1.2", "mocha": "^8.2.1", "typescript": "^2.6.1" }, "funding": { "type": "individual", "url": "https://nearley.js.org/#give-to-nearley" } }, "node_modules/@textlint/ast-node-types": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.0.3.tgz", "integrity": "sha512-mkkqbuxZkCESmMCrVN5QEgmFqBJAcoAGIaZaQfziqKAyCQBLLgKVJzeFuup9mDm9mvCTKekhLk9yIaEFc8EFxA==", "dev": true }, "node_modules/@textlint/markdown-to-ast": { "version": "6.0.9", "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.0.9.tgz", "integrity": "sha512-hfAWBvTeUGh5t5kTn2U3uP3qOSM1BSrxzl1jF3nn0ywfZXpRBZr5yRjXnl4DzIYawCtZOshmRi/tI3/x4TE1jQ==", "dev": true, "dependencies": { "@textlint/ast-node-types": "^4.0.3", "debug": "^2.1.3", "remark-frontmatter": "^1.2.0", "remark-parse": "^5.0.0", "structured-source": "^3.0.2", "traverse": "^0.6.6", "unified": "^6.1.6" } }, "node_modules/@types/moo": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@types/moo/-/moo-0.3.0.tgz", "integrity": "sha512-GLZLDH6STLNmRtxU8TW4pqY7CmHfeB0MF7LMoG3uOOlRT+1yQOoH6sKbbNDRhwHFuGainBFZhJOB8pR44ASI2Q==", "dev": true }, "node_modules/@types/node": { "version": "7.10.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.2.tgz", "integrity": "sha512-RO4ig5taKmcrU4Rex8ojG1gpwFkjddzug9iPQSDvbewHN9vDpcFewevkaOK+KT+w1LeZnxbgOyfXwV4pxsQ4GQ==", "dev": true }, "node_modules/@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, "node_modules/anchor-markdown-header": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/anchor-markdown-header/-/anchor-markdown-header-0.5.7.tgz", "integrity": "sha1-BFBj125qH5zTJ6V6ASaqD97Dcac=", "dev": true, "dependencies": { "emoji-regex": "~6.1.0" } }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "node_modules/anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "optional": true, "dependencies": { "micromatch": "^2.1.5", "normalize-path": "^2.0.0" } }, "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "node_modules/are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" } }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "optional": true, "dependencies": { "arr-flatten": "^1.0.1" } }, "node_modules/arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, "optional": true }, "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true, "optional": true }, "node_modules/array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true, "optional": true }, "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true, "optional": true }, "node_modules/async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true, "optional": true }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, "optional": true }, "node_modules/babel-cli": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.18.0.tgz", "integrity": "sha1-khF/NBrdnerZD2+n0Kl8DMCOwYY=", "dev": true, "dependencies": { "babel-core": "^6.18.0", "babel-polyfill": "^6.16.0", "babel-register": "^6.18.0", "babel-runtime": "^6.9.0", "chokidar": "^1.0.0", "commander": "^2.8.1", "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.0.0", "glob": "^5.0.5", "lodash": "^4.2.0", "output-file-sync": "^1.1.0", "path-is-absolute": "^1.0.0", "slash": "^1.0.0", "source-map": "^0.5.0", "v8flags": "^2.0.10" }, "bin": { "babel": "bin/babel.js", "babel-doctor": "bin/babel-doctor.js", "babel-external-helpers": "bin/babel-external-helpers.js", "babel-node": "bin/babel-node.js" }, "optionalDependencies": { "chokidar": "^1.0.0" } }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "dependencies": { "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" } }, "node_modules/babel-core": { "version": "6.26.3", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "dependencies": { "babel-code-frame": "^6.26.0", "babel-generator": "^6.26.0", "babel-helpers": "^6.24.1", "babel-messages": "^6.23.0", "babel-register": "^6.26.0", "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", "babylon": "^6.18.0", "convert-source-map": "^1.5.1", "debug": "^2.6.9", "json5": "^0.5.1", "lodash": "^4.17.4", "minimatch": "^3.0.4", "path-is-absolute": "^1.0.1", "private": "^0.1.8", "slash": "^1.0.0", "source-map": "^0.5.7" } }, "node_modules/babel-generator": { "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "dependencies": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "detect-indent": "^4.0.0", "jsesc": "^1.3.0", "lodash": "^4.17.4", "source-map": "^0.5.7", "trim-right": "^1.0.1" } }, "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "dependencies": { "babel-helper-explode-assignable-expression": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "node_modules/babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "dependencies": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "node_modules/babel-helper-define-map": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "dependencies": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" } }, "node_modules/babel-helper-explode-assignable-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "node_modules/babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "dependencies": { "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "node_modules/babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "node_modules/babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "node_modules/babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "node_modules/babel-helper-regex": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" } }, "node_modules/babel-helper-remap-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "dependencies": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "node_modules/babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "dependencies": { "babel-helper-optimise-call-expression": "^6.24.1", "babel-messages": "^6.23.0", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "node_modules/babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "node_modules/babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-syntax-async-functions": { "version": "6.13.0", "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", "dev": true }, "node_modules/babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", "dev": true }, "node_modules/babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", "dev": true }, "node_modules/babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "dependencies": { "babel-helper-remap-async-to-generator": "^6.24.1", "babel-plugin-syntax-async-functions": "^6.8.0", "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-block-scoping": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" } }, "node_modules/babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "dependencies": { "babel-helper-define-map": "^6.24.1", "babel-helper-function-name": "^6.24.1", "babel-helper-optimise-call-expression": "^6.24.1", "babel-helper-replace-supers": "^6.24.1", "babel-messages": "^6.23.0", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "dependencies": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "dependencies": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-modules-commonjs": { "version": "6.26.2", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "dependencies": { "babel-plugin-transform-strict-mode": "^6.24.1", "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", "babel-types": "^6.26.0" } }, "node_modules/babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "dependencies": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "dependencies": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "dependencies": { "babel-helper-replace-supers": "^6.24.1", "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "dependencies": { "babel-helper-call-delegate": "^6.24.1", "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "dependencies": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "node_modules/babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "dependencies": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", "regexpu-core": "^2.0.0" } }, "node_modules/babel-plugin-transform-exponentiation-operator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "dependencies": { "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", "babel-plugin-syntax-exponentiation-operator": "^6.8.0", "babel-runtime": "^6.22.0" } }, "node_modules/babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "dependencies": { "regenerator-transform": "^0.10.0" } }, "node_modules/babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "node_modules/babel-polyfill": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", "core-js": "^2.5.0", "regenerator-runtime": "^0.10.5" } }, "node_modules/babel-polyfill/node_modules/regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true }, "node_modules/babel-preset-env": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "dev": true, "dependencies": { "babel-plugin-check-es2015-constants": "^6.22.0", "babel-plugin-syntax-trailing-function-commas": "^6.22.0", "babel-plugin-transform-async-to-generator": "^6.22.0", "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", "babel-plugin-transform-es2015-block-scoping": "^6.23.0", "babel-plugin-transform-es2015-classes": "^6.23.0", "babel-plugin-transform-es2015-computed-properties": "^6.22.0", "babel-plugin-transform-es2015-destructuring": "^6.23.0", "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", "babel-plugin-transform-es2015-for-of": "^6.23.0", "babel-plugin-transform-es2015-function-name": "^6.22.0", "babel-plugin-transform-es2015-literals": "^6.22.0", "babel-plugin-transform-es2015-modules-amd": "^6.22.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", "babel-plugin-transform-es2015-modules-umd": "^6.23.0", "babel-plugin-transform-es2015-object-super": "^6.22.0", "babel-plugin-transform-es2015-parameters": "^6.23.0", "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", "babel-plugin-transform-es2015-spread": "^6.22.0", "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", "babel-plugin-transform-es2015-template-literals": "^6.22.0", "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", "babel-plugin-transform-exponentiation-operator": "^6.22.0", "babel-plugin-transform-regenerator": "^6.22.0", "browserslist": "^3.2.6", "invariant": "^2.2.2", "semver": "^5.3.0" } }, "node_modules/babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "dependencies": { "babel-core": "^6.26.0", "babel-runtime": "^6.26.0", "core-js": "^2.5.0", "home-or-tmp": "^2.0.0", "lodash": "^4.17.4", "mkdirp": "^0.5.1", "source-map-support": "^0.4.15" } }, "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" } }, "node_modules/babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", "babylon": "^6.18.0", "lodash": "^4.17.4" } }, "node_modules/babel-traverse": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "dependencies": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "babylon": "^6.18.0", "debug": "^2.6.8", "globals": "^9.18.0", "invariant": "^2.2.2", "lodash": "^4.17.4" } }, "node_modules/babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", "lodash": "^4.17.4", "to-fast-properties": "^1.0.3" } }, "node_modules/babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "node_modules/bail": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz", "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==", "dev": true }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "optional": true, "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" } }, "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "optional": true, "dependencies": { "is-descriptor": "^1.0.0" } }, "node_modules/base/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "optional": true, "dependencies": { "kind-of": "^6.0.0" } }, "node_modules/base/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "optional": true, "dependencies": { "kind-of": "^6.0.0" } }, "node_modules/base/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "optional": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } }, "node_modules/base/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/base/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/benchmark": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=", "dev": true, "dependencies": { "lodash": "^4.17.4", "platform": "^1.3.3" } }, "node_modules/benchr": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/benchr/-/benchr-3.4.0.tgz", "integrity": "sha1-O97q/ucgqdfAa+vlIdD3JIJKmTM=", "dev": true, "dependencies": { "benchmark": "^2.1.0", "chalk": "^1.1.3", "docopt": "^0.6.2", "easy-table": "^1.0.0" } }, "node_modules/binary-extensions": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", "dev": true, "optional": true }, "node_modules/bindings": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz", "integrity": "sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew==", "dev": true }, "node_modules/bl": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", "dev": true, "dependencies": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" } }, "node_modules/boundary": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/boundary/-/boundary-1.0.1.tgz", "integrity": "sha1-TWfcJgLAzBbdm85+v4fpSCkPWBI=", "dev": true }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "optional": true, "dependencies": { "expand-range": "^1.8.1", "preserve": "^0.2.0", "repeat-element": "^1.1.2" } }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "node_modules/browserslist": { "version": "3.2.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "dependencies": { "caniuse-lite": "^1.0.30000844", "electron-to-chromium": "^1.3.47" } }, "node_modules/buffer-alloc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "dev": true, "dependencies": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" } }, "node_modules/buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", "dev": true }, "node_modules/buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", "dev": true }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "optional": true, "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" } }, "node_modules/cache-base/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { "version": "1.0.30000923", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz", "integrity": "sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w==", "dev": true }, "node_modules/chalk": { "version": "1.1.3", "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", "has-ansi": "^2.0.0", "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" } }, "node_modules/character-entities": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz", "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==", "dev": true }, "node_modules/character-entities-legacy": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz", "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==", "dev": true }, "node_modules/character-reference-invalid": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz", "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==", "dev": true }, "node_modules/chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "optional": true, "dependencies": { "anymatch": "^1.3.0", "async-each": "^1.0.0", "fsevents": "^1.0.0", "glob-parent": "^2.0.0", "inherits": "^2.0.1", "is-binary-path": "^1.0.0", "is-glob": "^2.0.0", "path-is-absolute": "^1.0.0", "readdirp": "^2.0.0" } }, "node_modules/chownr": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "dev": true }, "node_modules/class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "optional": true, "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" } }, "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "dependencies": { "is-descriptor": "^0.1.0" } }, "node_modules/class-utils/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" } }, "node_modules/cliui/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/cliui/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/cliui/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/cliui/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/cliui/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true, "optional": true }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "node_modules/coffee-script": { "version": "1.12.7", "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", "dev": true }, "node_modules/collapse-white-space": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==", "dev": true }, "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "optional": true, "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/commander": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" }, "node_modules/component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true, "optional": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "node_modules/convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "dependencies": { "safe-buffer": "~5.1.1" } }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true, "optional": true }, "node_modules/core-js": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.1.tgz", "integrity": "sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==", "dev": true }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true, "optional": true }, "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "dependencies": { "mimic-response": "^1.0.0" } }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "node_modules/defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "optional": true, "dependencies": { "clone": "^1.0.2" } }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "dependencies": { "object-keys": "^1.0.12" } }, "node_modules/define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "optional": true, "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" } }, "node_modules/define-property/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "optional": true, "dependencies": { "kind-of": "^6.0.0" } }, "node_modules/define-property/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "optional": true, "dependencies": { "kind-of": "^6.0.0" } }, "node_modules/define-property/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "optional": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } }, "node_modules/define-property/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/define-property/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, "node_modules/detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "dependencies": { "repeating": "^2.0.0" } }, "node_modules/detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/discontinuous-range": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=" }, "node_modules/docopt": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", "integrity": "sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=", "dev": true }, "node_modules/doctoc": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/doctoc/-/doctoc-1.4.0.tgz", "integrity": "sha512-8IAq3KdMkxhXCUF+xdZxdJxwuz8N2j25sMgqiu4U4JWluN9tRKMlAalxGASszQjlZaBprdD2YfXpL3VPWUD4eg==", "dev": true, "dependencies": { "@textlint/markdown-to-ast": "~6.0.9", "anchor-markdown-header": "^0.5.5", "htmlparser2": "~3.9.2", "minimist": "~1.2.0", "underscore": "~1.8.3", "update-section": "^0.3.0" } }, "node_modules/dom-serializer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "dependencies": { "domelementtype": "~1.1.1", "entities": "~1.1.1" } }, "node_modules/dom-serializer/node_modules/domelementtype": { "version": "1.1.3", "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", "dev": true }, "node_modules/domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "node_modules/domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "dependencies": { "domelementtype": "1" } }, "node_modules/domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "dependencies": { "dom-serializer": "0", "domelementtype": "1" } }, "node_modules/easy-table": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.1.tgz", "integrity": "sha512-C9Lvm0WFcn2RgxbMnTbXZenMIWcBtkzMr+dWqq/JsVoGFSVUVlPqeOa5LP5kM0I3zoOazFpckOEb2/0LDFfToQ==", "dev": true, "dependencies": { "ansi-regex": "^3.0.0", "wcwidth": ">=1.0.1" }, "optionalDependencies": { "wcwidth": ">=1.0.1" } }, "node_modules/easy-table/node_modules/ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "node_modules/electron-to-chromium": { "version": "1.3.95", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.95.tgz", "integrity": "sha512-0JZEDKOQAE05EO/4rk3vLAE+PYFI9OLCVLAS4QAq1y+Bb2y1N6MyQJz62ynzHN/y0Ka/nO5jVJcahbCEdfiXLQ==", "dev": true }, "node_modules/emoji-regex": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.3.tgz", "integrity": "sha1-7HmjlpsC0uzytyJUJ5v5m8eoOTI=", "dev": true }, "node_modules/end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "dependencies": { "once": "^1.4.0" } }, "node_modules/entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, "node_modules/es-abstract": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "dependencies": { "es-to-primitive": "^1.1.1", "function-bind": "^1.1.1", "has": "^1.0.1", "is-callable": "^1.1.3", "is-regex": "^1.0.4" } }, "node_modules/es-to-primitive": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" }, "engines": { "node": ">=4" } }, "node_modules/esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "node_modules/expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "optional": true, "dependencies": { "is-posix-bracket": "^0.1.0" } }, "node_modules/expand-range": { "version": "1.8.2", "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "optional": true, "dependencies": { "fill-range": "^2.1.0" } }, "node_modules/expand-template": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz", "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==", "dev": true }, "node_modules/expect": { "version": "1.20.2", "resolved": "http://registry.npmjs.org/expect/-/expect-1.20.2.tgz", "integrity": "sha1-1Fj+TFYAQDa64yMkFqP2Nh8E+WU=", "dev": true, "dependencies": { "define-properties": "~1.1.2", "has": "^1.0.1", "is-equal": "^1.5.1", "is-regex": "^1.0.3", "object-inspect": "^1.1.0", "object-keys": "^1.0.9", "tmatch": "^2.0.1" } }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "optional": true, "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" } }, "node_modules/extend-shallow/node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "optional": true, "dependencies": { "is-plain-object": "^2.0.4" } }, "node_modules/extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "optional": true, "dependencies": { "is-extglob": "^1.0.0" } }, "node_modules/fault": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.2.tgz", "integrity": "sha512-o2eo/X2syzzERAtN5LcGbiVQ0WwZSlN3qLtadwAz3X8Bu+XWD16dja/KMsjZLiQr+BLGPDnHGkc4yUJf1Xpkpw==", "dev": true, "dependencies": { "format": "^0.2.2" } }, "node_modules/filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true, "optional": true }, "node_modules/fill-range": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "optional": true, "dependencies": { "is-number": "^2.1.0", "isobject": "^2.0.0", "randomatic": "^3.0.0", "repeat-element": "^1.1.2", "repeat-string": "^1.5.2" } }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, "bin": { "flat": "cli.js" } }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true, "optional": true }, "node_modules/for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "optional": true, "dependencies": { "for-in": "^1.0.1" } }, "node_modules/format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", "dev": true }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "optional": true, "dependencies": { "map-cache": "^0.2.2" } }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, "node_modules/fs-minipass": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "optional": true, "dependencies": { "minipass": "^2.6.0" } }, "node_modules/fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "node_modules/fsevents": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "dev": true, "optional": true, "dependencies": { "nan": "^2.9.2", "node-pre-gyp": "^0.10.0" } }, "node_modules/fsevents/node_modules/abbrev": { "version": "1.1.1", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/ansi-regex": { "version": "2.1.1", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/aproba": { "version": "1.2.0", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/are-we-there-yet": { "version": "1.1.4", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" } }, "node_modules/fsevents/node_modules/balanced-match": { "version": "1.0.0", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/brace-expansion": { "version": "1.1.11", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/fsevents/node_modules/code-point-at": { "version": "1.1.0", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/concat-map": { "version": "0.0.1", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/console-control-strings": { "version": "1.1.0", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/core-util-is": { "version": "1.0.2", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/debug": { "version": "2.6.9", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "optional": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/fsevents/node_modules/deep-extend": { "version": "0.5.1", "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/delegates": { "version": "1.0.0", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/detect-libc": { "version": "1.0.3", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/gauge": { "version": "2.7.4", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.0", "object-assign": "^4.1.0", "signal-exit": "^3.0.0", "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" } }, "node_modules/fsevents/node_modules/glob": { "version": "7.1.2", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "optional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "node_modules/fsevents/node_modules/has-unicode": { "version": "2.0.1", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/iconv-lite": { "version": "0.4.21", "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, "dependencies": { "safer-buffer": "^2.1.0" } }, "node_modules/fsevents/node_modules/ignore-walk": { "version": "3.0.1", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, "dependencies": { "minimatch": "^3.0.4" } }, "node_modules/fsevents/node_modules/inherits": { "version": "2.0.3", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/ini": { "version": "1.3.5", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/is-fullwidth-code-point": { "version": "1.0.0", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, "dependencies": { "number-is-nan": "^1.0.0" } }, "node_modules/fsevents/node_modules/isarray": { "version": "1.0.0", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/minimatch": { "version": "3.0.4", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "optional": true, "dependencies": { "brace-expansion": "^1.1.7" } }, "node_modules/fsevents/node_modules/ms": { "version": "2.0.0", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/needle": { "version": "2.2.0", "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "dev": true, "optional": true, "dependencies": { "debug": "^2.1.2", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node_modules/fsevents/node_modules/node-pre-gyp": { "version": "0.10.0", "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "dev": true, "optional": true, "dependencies": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", "needle": "^2.2.0", "nopt": "^4.0.1", "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", "rc": "^1.1.7", "rimraf": "^2.6.1", "semver": "^5.3.0", "tar": "^4" } }, "node_modules/fsevents/node_modules/nopt": { "version": "4.0.1", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "dependencies": { "abbrev": "1", "osenv": "^0.1.4" } }, "node_modules/fsevents/node_modules/npm-bundled": { "version": "1.0.3", "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/npm-packlist": { "version": "1.1.10", "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, "dependencies": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" } }, "node_modules/fsevents/node_modules/npmlog": { "version": "4.1.2", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", "gauge": "~2.7.3", "set-blocking": "~2.0.0" } }, "node_modules/fsevents/node_modules/number-is-nan": { "version": "1.0.1", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/object-assign": { "version": "4.1.1", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/once": { "version": "1.4.0", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "optional": true, "dependencies": { "wrappy": "1" } }, "node_modules/fsevents/node_modules/os-homedir": { "version": "1.0.2", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/os-tmpdir": { "version": "1.0.2", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/osenv": { "version": "0.1.5", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" } }, "node_modules/fsevents/node_modules/path-is-absolute": { "version": "1.0.1", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/process-nextick-args": { "version": "2.0.0", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/rc": { "version": "1.2.7", "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "optional": true, "dependencies": { "deep-extend": "^0.5.1", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" } }, "node_modules/fsevents/node_modules/readable-stream": { "version": "2.3.6", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "node_modules/fsevents/node_modules/rimraf": { "version": "2.6.2", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, "dependencies": { "glob": "^7.0.5" } }, "node_modules/fsevents/node_modules/safe-buffer": { "version": "5.1.1", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/safer-buffer": { "version": "2.1.2", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/sax": { "version": "1.2.4", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/semver": { "version": "5.5.0", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/set-blocking": { "version": "2.0.0", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/signal-exit": { "version": "3.0.2", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/string_decoder": { "version": "1.1.1", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/fsevents/node_modules/string-width": { "version": "1.0.2", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "node_modules/fsevents/node_modules/strip-ansi": { "version": "3.0.1", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, "dependencies": { "ansi-regex": "^2.0.0" } }, "node_modules/fsevents/node_modules/strip-json-comments": { "version": "2.0.1", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/util-deprecate": { "version": "1.0.2", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "node_modules/fsevents/node_modules/wide-align": { "version": "1.1.2", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, "dependencies": { "string-width": "^1.0.2" } }, "node_modules/fsevents/node_modules/wrappy": { "version": "1.0.2", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true, "optional": true }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "node_modules/gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.0", "object-assign": "^4.1.0", "signal-exit": "^3.0.0", "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true, "optional": true }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", "dev": true }, "node_modules/glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "dependencies": { "inflight": "^1.0.4", "inherits": "2", "minimatch": "2 || 3", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" } }, "node_modules/glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "optional": true, "dependencies": { "glob-parent": "^2.0.0", "is-glob": "^2.0.0" } }, "node_modules/glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "optional": true, "dependencies": { "is-glob": "^2.0.0" } }, "node_modules/globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "node_modules/graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true, "engines": { "node": ">=4.x" } }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "dependencies": { "function-bind": "^1.1.1" } }, "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" } }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "optional": true, "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" } }, "node_modules/has-value/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "optional": true, "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" } }, "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" } }, "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "dependencies": { "is-buffer": "^1.1.5" } }, "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "optional": true, "dependencies": { "is-buffer": "^1.1.5" } }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, "bin": { "he": "bin/he" } }, "node_modules/home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.1" } }, "node_modules/htmlparser2": { "version": "3.9.2", "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "dependencies": { "domelementtype": "^1.3.0", "domhandler": "^2.3.0", "domutils": "^1.5.1", "entities": "^1.1.1", "inherits": "^2.0.1", "readable-stream": "^2.0.2" } }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "node_modules/ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" } }, "node_modules/is-alphabetical": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz", "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", "dev": true }, "node_modules/is-alphanumerical": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", "dev": true, "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" } }, "node_modules/is-arrow-function": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-arrow-function/-/is-arrow-function-2.0.3.tgz", "integrity": "sha1-Kb4sLY2UUIUri7r7Y1unuNjofsI=", "dev": true, "dependencies": { "is-callable": "^1.0.4" } }, "node_modules/is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "optional": true, "dependencies": { "binary-extensions": "^1.0.0" } }, "node_modules/is-boolean-object": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz", "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=", "dev": true }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "node_modules/is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, "node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" } }, "node_modules/is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, "node_modules/is-decimal": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz", "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==", "dev": true }, "node_modules/is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "optional": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" } }, "node_modules/is-descriptor/node_modules/kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, "optional": true }, "node_modules/is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true, "optional": true }, "node_modules/is-equal": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/is-equal/-/is-equal-1.5.5.tgz", "integrity": "sha1-XoXxlX4FKIMkf+s4aWWju6Ffuz0=", "dev": true, "dependencies": { "has": "^1.0.1", "is-arrow-function": "^2.0.3", "is-boolean-object": "^1.0.0", "is-callable": "^1.1.3", "is-date-object": "^1.0.1", "is-generator-function": "^1.0.6", "is-number-object": "^1.0.3", "is-regex": "^1.0.3", "is-string": "^1.0.4", "is-symbol": "^1.0.1", "object.entries": "^1.0.4" } }, "node_modules/is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "optional": true, "dependencies": { "is-primitive": "^2.0.0" } }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "optional": true }, "node_modules/is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true, "optional": true }, "node_modules/is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "dependencies": { "number-is-nan": "^1.0.0" } }, "node_modules/is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "dependencies": { "number-is-nan": "^1.0.0" } }, "node_modules/is-generator-function": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==", "dev": true }, "node_modules/is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "optional": true, "dependencies": { "is-extglob": "^1.0.0" } }, "node_modules/is-hexadecimal": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz", "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", "dev": true }, "node_modules/is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" } }, "node_modules/is-number-object": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz", "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=", "dev": true }, "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "optional": true, "dependencies": { "isobject": "^3.0.1" } }, "node_modules/is-plain-object/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true, "optional": true }, "node_modules/is-primitive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true, "optional": true }, "node_modules/is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "dependencies": { "has": "^1.0.1" } }, "node_modules/is-string": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=", "dev": true }, "node_modules/is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "dependencies": { "has-symbols": "^1.0.0" } }, "node_modules/is-whitespace-character": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", "integrity": "sha512-SzM+T5GKUCtLhlHFKt2SDAX2RFzfS6joT91F2/WSi9LxgFdsnhfPK/UIA+JhRR2xuyLdrCys2PiFDrtn1fU5hQ==", "dev": true }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, "optional": true }, "node_modules/is-word-character": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.2.tgz", "integrity": "sha512-T3FlsX8rCHAH8e7RE7PfOPZVFQlcV3XRF9eOOBQ1uf70OxO7CjjSOjeImMPCADBdYWcStAbVbYvJ1m2D3tb+EA==", "dev": true }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "optional": true, "dependencies": { "isarray": "1.0.0" } }, "node_modules/js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "node_modules/js-yaml": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/jsesc": { "version": "1.3.0", "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "node_modules/json5": { "version": "0.5.1", "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "dependencies": { "is-buffer": "^1.1.5" } }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { "p-locate": "^5.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { "version": "4.17.20", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "node_modules/log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", "dev": true, "dependencies": { "chalk": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true, "optional": true }, "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "optional": true, "dependencies": { "object-visit": "^1.0.0" } }, "node_modules/markdown-escapes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz", "integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA==", "dev": true }, "node_modules/math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", "dev": true, "optional": true }, "node_modules/micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "optional": true, "dependencies": { "arr-diff": "^2.0.0", "array-unique": "^0.2.1", "braces": "^1.8.2", "expand-brackets": "^0.1.4", "extglob": "^0.3.1", "filename-regex": "^2.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.1", "kind-of": "^3.0.2", "normalize-path": "^2.0.1", "object.omit": "^2.0.0", "parse-glob": "^3.0.4", "regex-cache": "^0.4.2" } }, "node_modules/microtime": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/microtime/-/microtime-2.1.8.tgz", "integrity": "sha1-tDxMWrE+Un4XM3DQMG2eCku/QQ0=", "dev": true, "dependencies": { "bindings": "1.3.x", "nan": "2.10.x", "prebuild-install": "^2.1.0" } }, "node_modules/microtime/node_modules/nan": { "version": "2.10.0", "resolved": "http://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", "dev": true }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" } }, "node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "node_modules/minipass": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, "optional": true, "dependencies": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "node_modules/minizlib": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "dev": true, "optional": true, "dependencies": { "minipass": "^2.9.0" } }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "optional": true, "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/mixin-deep/node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "optional": true, "dependencies": { "is-plain-object": "^2.0.4" } }, "node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/mocha": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz", "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", "dev": true, "dependencies": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.4.3", "debug": "4.2.0", "diff": "4.0.2", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.1.6", "growl": "1.10.5", "he": "1.2.0", "js-yaml": "3.14.0", "log-symbols": "4.0.0", "minimatch": "3.0.4", "ms": "2.1.2", "nanoid": "3.1.12", "serialize-javascript": "5.0.1", "strip-json-comments": "3.1.1", "supports-color": "7.2.0", "which": "2.0.2", "wide-align": "1.1.3", "workerpool": "6.0.2", "yargs": "13.3.2", "yargs-parser": "13.1.2", "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", "mocha": "bin/mocha" }, "engines": { "node": ">= 10.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha/node_modules/anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" }, "engines": { "node": ">= 8" } }, "node_modules/mocha/node_modules/binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/chokidar": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "dev": true, "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.5.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { "fsevents": "~2.1.2" } }, "node_modules/mocha/node_modules/debug": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/mocha/node_modules/glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/mocha/node_modules/glob-parent": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "dependencies": { "is-glob": "^4.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/mocha/node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/mocha/node_modules/is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/mocha/node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/mocha/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/mocha/node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/mocha/node_modules/readdirp": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "dependencies": { "picomatch": "^2.2.1" }, "engines": { "node": ">=8.10.0" } }, "node_modules/mocha/node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/moo": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/nan": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", "dev": true, "optional": true }, "node_modules/nanoid": { "version": "3.1.12", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz", "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" }, "engines": { "node": "^10 || ^12 || >=13.7" } }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "optional": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "node_modules/nanomatch/node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, "optional": true }, "node_modules/nanomatch/node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, "optional": true }, "node_modules/nanomatch/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/node-abi": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.5.0.tgz", "integrity": "sha512-9g2twBGSP6wIR5PW7tXvAWnEWKJDH/VskdXp168xsw9VVxpEGov8K4jsP4/VeoC7b2ZAyzckvMCuQuQlw44lXg==", "dev": true, "dependencies": { "semver": "^5.4.1" } }, "node_modules/noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", "dev": true }, "node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "optional": true, "dependencies": { "remove-trailing-separator": "^1.0.1" } }, "node_modules/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", "gauge": "~2.7.3", "set-blocking": "~2.0.0" } }, "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "optional": true, "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" } }, "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "dependencies": { "is-descriptor": "^0.1.0" } }, "node_modules/object-inspect": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", "dev": true }, "node_modules/object-keys": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", "dev": true }, "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "optional": true, "dependencies": { "isobject": "^3.0.0" } }, "node_modules/object-visit/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/object.entries": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", "dev": true, "dependencies": { "define-properties": "^1.1.2", "es-abstract": "^1.6.1", "function-bind": "^1.1.0", "has": "^1.0.1" } }, "node_modules/object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "optional": true, "dependencies": { "for-own": "^0.1.4", "is-extendable": "^0.1.1" } }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "optional": true, "dependencies": { "isobject": "^3.0.1" } }, "node_modules/object.pick/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "dependencies": { "wrappy": "1" } }, "node_modules/os-homedir": { "version": "1.0.2", "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "node_modules/output-file-sync": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "dev": true, "dependencies": { "graceful-fs": "^4.1.4", "mkdirp": "^0.5.1", "object-assign": "^4.1.0" } }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { "p-limit": "^3.0.2" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/parse-entities": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.0.tgz", "integrity": "sha512-XXtDdOPLSB0sHecbEapQi6/58U/ODj/KWfIXmmMCJF/eRn8laX6LZbOyioMoETOOJoWRW8/qTSl5VQkUIfKM5g==", "dev": true, "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" } }, "node_modules/parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "optional": true, "dependencies": { "glob-base": "^0.3.0", "is-dotfile": "^1.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.0" } }, "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true, "optional": true }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "node_modules/picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true, "engines": { "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/platform": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==", "dev": true }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true, "optional": true }, "node_modules/prebuild-install": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.3.tgz", "integrity": "sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==", "dev": true, "dependencies": { "detect-libc": "^1.0.3", "expand-template": "^1.0.2", "github-from-package": "0.0.0", "minimist": "^1.2.0", "mkdirp": "^0.5.1", "node-abi": "^2.2.0", "noop-logger": "^0.1.1", "npmlog": "^4.0.1", "os-homedir": "^1.0.1", "pump": "^2.0.1", "rc": "^1.1.6", "simple-get": "^2.7.0", "tar-fs": "^1.13.0", "tunnel-agent": "^0.6.0", "which-pm-runs": "^1.0.0" } }, "node_modules/preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true, "optional": true }, "node_modules/private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, "node_modules/process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true }, "node_modules/pump": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/railroad-diagrams": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=" }, "node_modules/randexp": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", "dependencies": { "discontinuous-range": "1.0.0", "ret": "~0.1.10" } }, "node_modules/randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "optional": true, "dependencies": { "is-number": "^4.0.0", "kind-of": "^6.0.0", "math-random": "^1.0.1" } }, "node_modules/randomatic/node_modules/is-number": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true, "optional": true }, "node_modules/randomatic/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" } }, "node_modules/readable-stream": { "version": "2.3.6", "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "node_modules/readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "optional": true, "dependencies": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" } }, "node_modules/readdirp/node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, "optional": true }, "node_modules/readdirp/node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, "optional": true }, "node_modules/readdirp/node_modules/braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "optional": true, "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" } }, "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "dependencies": { "is-extendable": "^0.1.0" } }, "node_modules/readdirp/node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "optional": true, "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "dependencies": { "is-descriptor": "^0.1.0" } }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "dependencies": { "is-extendable": "^0.1.0" } }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" } }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "dependencies": { "is-buffer": "^1.1.5" } }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" } }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "dependencies": { "is-buffer": "^1.1.5" } }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "optional": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" } }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, "optional": true }, "node_modules/readdirp/node_modules/extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "optional": true, "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", "fragment-cache": "^0.2.1", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "node_modules/readdirp/node_modules/extglob/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "optional": true, "dependencies": { "is-descriptor": "^1.0.0" } }, "node_modules/readdirp/node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "dependencies": { "is-extendable": "^0.1.0" } }, "node_modules/readdirp/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "optional": true, "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" } }, "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "dependencies": { "is-extendable": "^0.1.0" } }, "node_modules/readdirp/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "optional": true, "dependencies": { "kind-of": "^6.0.0" } }, "node_modules/readdirp/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "optional": true, "dependencies": { "kind-of": "^6.0.0" } }, "node_modules/readdirp/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "optional": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } }, "node_modules/readdirp/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" } }, "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "dependencies": { "is-buffer": "^1.1.5" } }, "node_modules/readdirp/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/readdirp/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/readdirp/node_modules/micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "optional": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } }, "node_modules/regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, "node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "node_modules/regenerator-transform": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "dependencies": { "babel-runtime": "^6.18.0", "babel-types": "^6.19.0", "private": "^0.1.6" } }, "node_modules/regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "optional": true, "dependencies": { "is-equal-shallow": "^0.1.3" } }, "node_modules/regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "optional": true, "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, "node_modules/regexpu-core": { "version": "2.0.0", "resolved": "http://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "dependencies": { "regenerate": "^1.2.1", "regjsgen": "^0.2.0", "regjsparser": "^0.1.4" } }, "node_modules/regjsgen": { "version": "0.2.0", "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", "dev": true }, "node_modules/regjsparser": { "version": "0.1.5", "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "dependencies": { "jsesc": "~0.5.0" } }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true }, "node_modules/remark-frontmatter": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.1.tgz", "integrity": "sha512-Zj/fDMYnSVgMCeKp8fXIhtMoZq4G6E1dnwfMoO8fVXrm/+oVSiN8YMREtwN2cctgK9EsnYSeS1ExX2hcX/fE1A==", "dev": true, "dependencies": { "fault": "^1.0.1", "xtend": "^4.0.1" } }, "node_modules/remark-parse": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", "dev": true, "dependencies": { "collapse-white-space": "^1.0.2", "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0", "is-whitespace-character": "^1.0.0", "is-word-character": "^1.0.0", "markdown-escapes": "^1.0.0", "parse-entities": "^1.1.0", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", "trim": "0.0.1", "trim-trailing-lines": "^1.0.0", "unherit": "^1.0.4", "unist-util-remove-position": "^1.0.0", "vfile-location": "^2.0.0", "xtend": "^4.0.1" } }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true, "optional": true }, "node_modules/repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true, "optional": true }, "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "node_modules/repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "dependencies": { "is-finite": "^1.0.0" } }, "node_modules/replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", "dev": true }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true, "optional": true }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/safe-regex": { "version": "1.1.0", "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "optional": true, "dependencies": { "ret": "~0.1.10" } }, "node_modules/semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true }, "node_modules/serialize-javascript": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "optional": true, "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "dependencies": { "is-extendable": "^0.1.0" } }, "node_modules/signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "node_modules/simple-concat": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", "dev": true }, "node_modules/simple-get": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", "dev": true, "dependencies": { "decompress-response": "^3.3.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, "node_modules/slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "optional": true, "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "map-cache": "^0.2.2", "source-map": "^0.5.6", "source-map-resolve": "^0.5.0", "use": "^3.1.0" } }, "node_modules/snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "optional": true, "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" } }, "node_modules/snapdragon-node/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "optional": true, "dependencies": { "is-descriptor": "^1.0.0" } }, "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "optional": true, "dependencies": { "kind-of": "^6.0.0" } }, "node_modules/snapdragon-node/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "optional": true, "dependencies": { "kind-of": "^6.0.0" } }, "node_modules/snapdragon-node/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "optional": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } }, "node_modules/snapdragon-node/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/snapdragon-node/node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.2.0" } }, "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "dependencies": { "is-descriptor": "^0.1.0" } }, "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "dependencies": { "is-extendable": "^0.1.0" } }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "node_modules/source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "optional": true, "dependencies": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", "urix": "^0.1.0" } }, "node_modules/source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "dependencies": { "source-map": "^0.5.6" } }, "node_modules/source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true, "optional": true }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "optional": true, "dependencies": { "extend-shallow": "^3.0.0" } }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "node_modules/state-toggle": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.1.tgz", "integrity": "sha512-Qe8QntFrrpWTnHwvwj2FZTgv+PKIsp0B9VxLzLLbSpPXWOgRgc5LVj/aTiSfK1RqIeF9jeC1UeOH8Q8y60A7og==", "dev": true }, "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "optional": true, "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" } }, "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "dependencies": { "is-descriptor": "^0.1.0" } }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string-width": { "version": "1.0.2", "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "node_modules/strip-ansi": { "version": "3.0.1", "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" } }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "node_modules/structured-source": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-3.0.2.tgz", "integrity": "sha1-3YAkJeD1PcSm56yjdSkBoczaevU=", "dev": true, "dependencies": { "boundary": "^1.0.1" } }, "node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "node_modules/tar": { "version": "4.4.13", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", "dev": true, "optional": true, "dependencies": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", "minipass": "^2.8.6", "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", "yallist": "^3.0.3" }, "engines": { "node": ">=4.5" } }, "node_modules/tar-fs": { "version": "1.16.3", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", "dev": true, "dependencies": { "chownr": "^1.0.1", "mkdirp": "^0.5.1", "pump": "^1.0.0", "tar-stream": "^1.1.2" } }, "node_modules/tar-fs/node_modules/pump": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/tar-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", "dev": true, "dependencies": { "bl": "^1.0.0", "buffer-alloc": "^1.2.0", "end-of-stream": "^1.0.0", "fs-constants": "^1.0.0", "readable-stream": "^2.3.0", "to-buffer": "^1.1.1", "xtend": "^4.0.0" } }, "node_modules/tmatch": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-2.0.1.tgz", "integrity": "sha1-DFYkbzPzDaG409colauvFmYPOM8=", "dev": true }, "node_modules/to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", "dev": true }, "node_modules/to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" } }, "node_modules/to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "optional": true, "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" } }, "node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "optional": true, "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } }, "node_modules/to-regex-range/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "optional": true, "dependencies": { "kind-of": "^3.0.2" } }, "node_modules/traverse": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", "dev": true }, "node_modules/trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", "dev": true }, "node_modules/trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "node_modules/trim-trailing-lines": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz", "integrity": "sha512-bWLv9BbWbbd7mlqqs2oQYnLD/U/ZqeJeJwbO0FG2zA1aTq+HTvxfHNKFa/HGCVyJpDiioUYaBhfiT6rgk+l4mg==", "dev": true }, "node_modules/trough": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.3.tgz", "integrity": "sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw==", "dev": true }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/typescript": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", "dev": true }, "node_modules/underscore": { "version": "1.8.3", "resolved": "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", "dev": true }, "node_modules/unherit": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.1.tgz", "integrity": "sha512-+XZuV691Cn4zHsK0vkKYwBEwB74T3IZIcxrgn2E4rKwTfFyI1zCh7X7grwh9Re08fdPlarIdyWgI8aVB3F5A5g==", "dev": true, "dependencies": { "inherits": "^2.0.1", "xtend": "^4.0.1" } }, "node_modules/unified": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", "dev": true, "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^1.1.0", "trough": "^1.0.0", "vfile": "^2.0.0", "x-is-string": "^0.1.0" } }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "optional": true, "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/unist-util-is": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.2.tgz", "integrity": "sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw==", "dev": true }, "node_modules/unist-util-remove-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz", "integrity": "sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q==", "dev": true, "dependencies": { "unist-util-visit": "^1.1.0" } }, "node_modules/unist-util-stringify-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", "dev": true }, "node_modules/unist-util-visit": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.0.tgz", "integrity": "sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw==", "dev": true, "dependencies": { "unist-util-visit-parents": "^2.0.0" } }, "node_modules/unist-util-visit-parents": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz", "integrity": "sha512-6B0UTiMfdWql4cQ03gDTCSns+64Zkfo2OCbK31Ov0uMizEz+CJeAp0cgZVb5Fhmcd7Bct2iRNywejT0orpbqUA==", "dev": true, "dependencies": { "unist-util-is": "^2.1.2" } }, "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "optional": true, "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" } }, "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "optional": true, "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" } }, "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "optional": true, "dependencies": { "isarray": "1.0.0" } }, "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true, "optional": true }, "node_modules/unset-value/node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "node_modules/update-section": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/update-section/-/update-section-0.3.3.tgz", "integrity": "sha1-RY8Xgg03gg3GDiC4bZQ5GwASMVg=", "dev": true }, "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true, "optional": true }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, "optional": true }, "node_modules/user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", "dev": true }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "node_modules/v8flags": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "dependencies": { "user-home": "^1.1.1" } }, "node_modules/vfile": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", "dev": true, "dependencies": { "is-buffer": "^1.1.4", "replace-ext": "1.0.0", "unist-util-stringify-position": "^1.0.0", "vfile-message": "^1.0.0" } }, "node_modules/vfile-location": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.4.tgz", "integrity": "sha512-KRL5uXQPoUKu+NGvQVL4XLORw45W62v4U4gxJ3vRlDfI9QsT4ZN1PNXn/zQpKUulqGDpYuT0XDfp5q9O87/y/w==", "dev": true }, "node_modules/vfile-message": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", "dev": true, "dependencies": { "unist-util-stringify-position": "^1.1.1" } }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "optional": true, "dependencies": { "defaults": "^1.0.3" } }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "node_modules/which-pm-runs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", "dev": true }, "node_modules/wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "dependencies": { "string-width": "^1.0.2 || 2" } }, "node_modules/workerpool": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==", "dev": true }, "node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" }, "engines": { "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { "color-convert": "^1.9.0" }, "engines": { "node": ">=4" } }, "node_modules/wrap-ansi/node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { "color-name": "1.1.3" } }, "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "node_modules/x-is-string": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", "dev": true }, "node_modules/xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, "node_modules/y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "optional": true }, "node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" } }, "node_modules/yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "node_modules/yargs-unparser": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" }, "engines": { "node": ">=10" } }, "node_modules/yargs-unparser/node_modules/camelcase": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/yargs-unparser/node_modules/decamelize": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/yargs-unparser/node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/yargs/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/yargs/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/yargs/node_modules/find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "dependencies": { "locate-path": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/yargs/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/yargs/node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/yargs/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/yargs/node_modules/p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "dependencies": { "p-limit": "^2.0.0" }, "engines": { "node": ">=6" } }, "node_modules/yargs/node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/yargs/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/yargs/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } } }, "dependencies": { "@textlint/ast-node-types": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.0.3.tgz", "integrity": "sha512-mkkqbuxZkCESmMCrVN5QEgmFqBJAcoAGIaZaQfziqKAyCQBLLgKVJzeFuup9mDm9mvCTKekhLk9yIaEFc8EFxA==", "dev": true }, "@textlint/markdown-to-ast": { "version": "6.0.9", "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.0.9.tgz", "integrity": "sha512-hfAWBvTeUGh5t5kTn2U3uP3qOSM1BSrxzl1jF3nn0ywfZXpRBZr5yRjXnl4DzIYawCtZOshmRi/tI3/x4TE1jQ==", "dev": true, "requires": { "@textlint/ast-node-types": "^4.0.3", "debug": "^2.1.3", "remark-frontmatter": "^1.2.0", "remark-parse": "^5.0.0", "structured-source": "^3.0.2", "traverse": "^0.6.6", "unified": "^6.1.6" } }, "@types/moo": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@types/moo/-/moo-0.3.0.tgz", "integrity": "sha512-GLZLDH6STLNmRtxU8TW4pqY7CmHfeB0MF7LMoG3uOOlRT+1yQOoH6sKbbNDRhwHFuGainBFZhJOB8pR44ASI2Q==", "dev": true }, "@types/node": { "version": "7.10.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.2.tgz", "integrity": "sha512-RO4ig5taKmcrU4Rex8ojG1gpwFkjddzug9iPQSDvbewHN9vDpcFewevkaOK+KT+w1LeZnxbgOyfXwV4pxsQ4GQ==", "dev": true }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, "anchor-markdown-header": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/anchor-markdown-header/-/anchor-markdown-header-0.5.7.tgz", "integrity": "sha1-BFBj125qH5zTJ6V6ASaqD97Dcac=", "dev": true, "requires": { "emoji-regex": "~6.1.0" } }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "optional": true, "requires": { "micromatch": "^2.1.5", "normalize-path": "^2.0.0" } }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" } }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "optional": true, "requires": { "arr-flatten": "^1.0.1" } }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, "optional": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true, "optional": true }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true, "optional": true }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true, "optional": true }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true, "optional": true }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, "optional": true }, "babel-cli": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.18.0.tgz", "integrity": "sha1-khF/NBrdnerZD2+n0Kl8DMCOwYY=", "dev": true, "requires": { "babel-core": "^6.18.0", "babel-polyfill": "^6.16.0", "babel-register": "^6.18.0", "babel-runtime": "^6.9.0", "chokidar": "^1.0.0", "commander": "^2.8.1", "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.0.0", "glob": "^5.0.5", "lodash": "^4.2.0", "output-file-sync": "^1.1.0", "path-is-absolute": "^1.0.0", "slash": "^1.0.0", "source-map": "^0.5.0", "v8flags": "^2.0.10" } }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" } }, "babel-core": { "version": "6.26.3", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { "babel-code-frame": "^6.26.0", "babel-generator": "^6.26.0", "babel-helpers": "^6.24.1", "babel-messages": "^6.23.0", "babel-register": "^6.26.0", "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", "babylon": "^6.18.0", "convert-source-map": "^1.5.1", "debug": "^2.6.9", "json5": "^0.5.1", "lodash": "^4.17.4", "minimatch": "^3.0.4", "path-is-absolute": "^1.0.1", "private": "^0.1.8", "slash": "^1.0.0", "source-map": "^0.5.7" } }, "babel-generator": { "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "detect-indent": "^4.0.0", "jsesc": "^1.3.0", "lodash": "^4.17.4", "source-map": "^0.5.7", "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { "babel-helper-explode-assignable-expression": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "babel-helper-define-map": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-helper-regex": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "requires": { "babel-helper-optimise-call-expression": "^6.24.1", "babel-messages": "^6.23.0", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", "dev": true }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", "dev": true }, "babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", "dev": true }, "babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { "babel-helper-remap-async-to-generator": "^6.24.1", "babel-plugin-syntax-async-functions": "^6.8.0", "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { "babel-helper-define-map": "^6.24.1", "babel-helper-function-name": "^6.24.1", "babel-helper-optimise-call-expression": "^6.24.1", "babel-helper-replace-supers": "^6.24.1", "babel-messages": "^6.23.0", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.26.2", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { "babel-plugin-transform-strict-mode": "^6.24.1", "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "requires": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "requires": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "requires": { "babel-helper-replace-supers": "^6.24.1", "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { "babel-helper-call-delegate": "^6.24.1", "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", "babel-plugin-syntax-exponentiation-operator": "^6.8.0", "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, "babel-polyfill": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { "babel-runtime": "^6.26.0", "core-js": "^2.5.0", "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true } } }, "babel-preset-env": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "dev": true, "requires": { "babel-plugin-check-es2015-constants": "^6.22.0", "babel-plugin-syntax-trailing-function-commas": "^6.22.0", "babel-plugin-transform-async-to-generator": "^6.22.0", "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", "babel-plugin-transform-es2015-block-scoping": "^6.23.0", "babel-plugin-transform-es2015-classes": "^6.23.0", "babel-plugin-transform-es2015-computed-properties": "^6.22.0", "babel-plugin-transform-es2015-destructuring": "^6.23.0", "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", "babel-plugin-transform-es2015-for-of": "^6.23.0", "babel-plugin-transform-es2015-function-name": "^6.22.0", "babel-plugin-transform-es2015-literals": "^6.22.0", "babel-plugin-transform-es2015-modules-amd": "^6.22.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", "babel-plugin-transform-es2015-modules-umd": "^6.23.0", "babel-plugin-transform-es2015-object-super": "^6.22.0", "babel-plugin-transform-es2015-parameters": "^6.23.0", "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", "babel-plugin-transform-es2015-spread": "^6.22.0", "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", "babel-plugin-transform-es2015-template-literals": "^6.22.0", "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", "babel-plugin-transform-exponentiation-operator": "^6.22.0", "babel-plugin-transform-regenerator": "^6.22.0", "browserslist": "^3.2.6", "invariant": "^2.2.2", "semver": "^5.3.0" } }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { "babel-core": "^6.26.0", "babel-runtime": "^6.26.0", "core-js": "^2.5.0", "home-or-tmp": "^2.0.0", "lodash": "^4.17.4", "mkdirp": "^0.5.1", "source-map-support": "^0.4.15" } }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", "babylon": "^6.18.0", "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "babylon": "^6.18.0", "debug": "^2.6.8", "globals": "^9.18.0", "invariant": "^2.2.2", "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", "lodash": "^4.17.4", "to-fast-properties": "^1.0.3" } }, "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "bail": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz", "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==", "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "optional": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "optional": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "optional": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "optional": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true } } }, "benchmark": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=", "dev": true, "requires": { "lodash": "^4.17.4", "platform": "^1.3.3" } }, "benchr": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/benchr/-/benchr-3.4.0.tgz", "integrity": "sha1-O97q/ucgqdfAa+vlIdD3JIJKmTM=", "dev": true, "requires": { "benchmark": "^2.1.0", "chalk": "^1.1.3", "docopt": "^0.6.2", "easy-table": "^1.0.0" } }, "binary-extensions": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", "dev": true, "optional": true }, "bindings": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz", "integrity": "sha512-i47mqjF9UbjxJhxGf+pZ6kSxrnI3wBLlnGI2ArWJ4r0VrvDS7ZYXkprq/pLaBWYq4GM0r4zdHY+NNRqEMU7uew==", "dev": true }, "bl": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", "dev": true, "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" } }, "boundary": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/boundary/-/boundary-1.0.1.tgz", "integrity": "sha1-TWfcJgLAzBbdm85+v4fpSCkPWBI=", "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "optional": true, "requires": { "expand-range": "^1.8.1", "preserve": "^0.2.0", "repeat-element": "^1.1.2" } }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "browserslist": { "version": "3.2.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { "caniuse-lite": "^1.0.30000844", "electron-to-chromium": "^1.3.47" } }, "buffer-alloc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "dev": true, "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" } }, "buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", "dev": true }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", "dev": true }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "optional": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true } } }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "caniuse-lite": { "version": "1.0.30000923", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz", "integrity": "sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w==", "dev": true }, "chalk": { "version": "1.1.3", "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", "has-ansi": "^2.0.0", "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" } }, "character-entities": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz", "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==", "dev": true }, "character-entities-legacy": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz", "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==", "dev": true }, "character-reference-invalid": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz", "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==", "dev": true }, "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "optional": true, "requires": { "anymatch": "^1.3.0", "async-each": "^1.0.0", "fsevents": "^1.0.0", "glob-parent": "^2.0.0", "inherits": "^2.0.1", "is-binary-path": "^1.0.0", "is-glob": "^2.0.0", "path-is-absolute": "^1.0.0", "readdirp": "^2.0.0" } }, "chownr": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "dev": true }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "optional": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "requires": { "is-descriptor": "^0.1.0" } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true } } }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "coffee-script": { "version": "1.12.7", "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", "dev": true }, "collapse-white-space": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==", "dev": true }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "optional": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "commander": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "requires": { "safe-buffer": "~5.1.1" } }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true, "optional": true }, "core-js": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.1.tgz", "integrity": "sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==", "dev": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true, "optional": true }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { "mimic-response": "^1.0.0" } }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "optional": true, "requires": { "clone": "^1.0.2" } }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { "object-keys": "^1.0.12" } }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "optional": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "optional": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "optional": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true } } }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { "repeating": "^2.0.0" } }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "discontinuous-range": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=" }, "docopt": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", "integrity": "sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=", "dev": true }, "doctoc": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/doctoc/-/doctoc-1.4.0.tgz", "integrity": "sha512-8IAq3KdMkxhXCUF+xdZxdJxwuz8N2j25sMgqiu4U4JWluN9tRKMlAalxGASszQjlZaBprdD2YfXpL3VPWUD4eg==", "dev": true, "requires": { "@textlint/markdown-to-ast": "~6.0.9", "anchor-markdown-header": "^0.5.5", "htmlparser2": "~3.9.2", "minimist": "~1.2.0", "underscore": "~1.8.3", "update-section": "^0.3.0" } }, "dom-serializer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { "domelementtype": "~1.1.1", "entities": "~1.1.1" }, "dependencies": { "domelementtype": { "version": "1.1.3", "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", "dev": true } } }, "domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1" } }, "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", "domelementtype": "1" } }, "easy-table": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.1.tgz", "integrity": "sha512-C9Lvm0WFcn2RgxbMnTbXZenMIWcBtkzMr+dWqq/JsVoGFSVUVlPqeOa5LP5kM0I3zoOazFpckOEb2/0LDFfToQ==", "dev": true, "requires": { "ansi-regex": "^3.0.0", "wcwidth": ">=1.0.1" }, "dependencies": { "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true } } }, "electron-to-chromium": { "version": "1.3.95", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.95.tgz", "integrity": "sha512-0JZEDKOQAE05EO/4rk3vLAE+PYFI9OLCVLAS4QAq1y+Bb2y1N6MyQJz62ynzHN/y0Ka/nO5jVJcahbCEdfiXLQ==", "dev": true }, "emoji-regex": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.3.tgz", "integrity": "sha1-7HmjlpsC0uzytyJUJ5v5m8eoOTI=", "dev": true }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { "once": "^1.4.0" } }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, "es-abstract": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { "es-to-primitive": "^1.1.1", "function-bind": "^1.1.1", "has": "^1.0.1", "is-callable": "^1.1.3", "is-regex": "^1.0.4" } }, "es-to-primitive": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "optional": true, "requires": { "is-posix-bracket": "^0.1.0" } }, "expand-range": { "version": "1.8.2", "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "optional": true, "requires": { "fill-range": "^2.1.0" } }, "expand-template": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz", "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==", "dev": true }, "expect": { "version": "1.20.2", "resolved": "http://registry.npmjs.org/expect/-/expect-1.20.2.tgz", "integrity": "sha1-1Fj+TFYAQDa64yMkFqP2Nh8E+WU=", "dev": true, "requires": { "define-properties": "~1.1.2", "has": "^1.0.1", "is-equal": "^1.5.1", "is-regex": "^1.0.3", "object-inspect": "^1.1.0", "object-keys": "^1.0.9", "tmatch": "^2.0.1" } }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "optional": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "optional": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "optional": true, "requires": { "is-extglob": "^1.0.0" } }, "fault": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.2.tgz", "integrity": "sha512-o2eo/X2syzzERAtN5LcGbiVQ0WwZSlN3qLtadwAz3X8Bu+XWD16dja/KMsjZLiQr+BLGPDnHGkc4yUJf1Xpkpw==", "dev": true, "requires": { "format": "^0.2.2" } }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true, "optional": true }, "fill-range": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "optional": true, "requires": { "is-number": "^2.1.0", "isobject": "^2.0.0", "randomatic": "^3.0.0", "repeat-element": "^1.1.2", "repeat-string": "^1.5.2" } }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true, "optional": true }, "for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "optional": true, "requires": { "for-in": "^1.0.1" } }, "format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", "dev": true }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "optional": true, "requires": { "map-cache": "^0.2.2" } }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, "fs-minipass": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "optional": true, "requires": { "minipass": "^2.6.0" } }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", "dev": true }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fsevents": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "dev": true, "optional": true, "requires": { "nan": "^2.9.2", "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { "version": "1.1.1", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true }, "aproba": { "version": "1.2.0", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "code-point-at": { "version": "1.1.0", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "2.6.9", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "optional": true, "requires": { "ms": "2.0.0" } }, "deep-extend": { "version": "0.5.1", "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.0", "object-assign": "^4.1.0", "signal-exit": "^3.0.0", "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" } }, "glob": { "version": "7.1.2", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "has-unicode": { "version": "2.0.1", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, "requires": { "safer-buffer": "^2.1.0" } }, "ignore-walk": { "version": "3.0.1", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, "requires": { "minimatch": "^3.0.4" } }, "inherits": { "version": "2.0.3", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true, "optional": true }, "ini": { "version": "1.3.5", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, "requires": { "number-is-nan": "^1.0.0" } }, "isarray": { "version": "1.0.0", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "ms": { "version": "2.0.0", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "needle": { "version": "2.2.0", "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "dev": true, "optional": true, "requires": { "debug": "^2.1.2", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { "version": "0.10.0", "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", "needle": "^2.2.0", "nopt": "^4.0.1", "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", "rc": "^1.1.7", "rimraf": "^2.6.1", "semver": "^5.3.0", "tar": "^4" } }, "nopt": { "version": "4.0.1", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" } }, "npm-bundled": { "version": "1.0.3", "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" } }, "npmlog": { "version": "4.1.2", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", "gauge": "~2.7.3", "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "optional": true, "requires": { "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { "version": "1.0.1", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.7", "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "optional": true, "requires": { "deep-extend": "^0.5.1", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" } }, "readable-stream": { "version": "2.3.6", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "rimraf": { "version": "2.6.2", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, "requires": { "glob": "^7.0.5" } }, "safe-buffer": { "version": "5.1.1", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.5.0", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string_decoder": { "version": "1.1.1", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, "requires": { "safe-buffer": "~5.1.0" } }, "string-width": { "version": "1.0.2", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "strip-ansi": { "version": "3.0.1", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, "requires": { "ansi-regex": "^2.0.0" } }, "strip-json-comments": { "version": "2.0.1", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "util-deprecate": { "version": "1.0.2", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, "requires": { "string-width": "^1.0.2" } }, "wrappy": { "version": "1.0.2", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true, "optional": true } } }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.0", "object-assign": "^4.1.0", "signal-exit": "^3.0.0", "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" } }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true, "optional": true }, "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", "dev": true }, "glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { "inflight": "^1.0.4", "inherits": "2", "minimatch": "2 || 3", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "optional": true, "requires": { "glob-parent": "^2.0.0", "is-glob": "^2.0.0" } }, "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "optional": true, "requires": { "is-glob": "^2.0.0" } }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "optional": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true } } }, "has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "optional": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "requires": { "is-buffer": "^1.1.5" } } } }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "optional": true, "requires": { "is-buffer": "^1.1.5" } } } }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.1" } }, "htmlparser2": { "version": "3.9.2", "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { "domelementtype": "^1.3.0", "domhandler": "^2.3.0", "domutils": "^1.5.1", "entities": "^1.1.1", "inherits": "^2.0.1", "readable-stream": "^2.0.2" } }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { "loose-envify": "^1.0.0" } }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" } }, "is-alphabetical": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz", "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", "dev": true }, "is-alphanumerical": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", "dev": true, "requires": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" } }, "is-arrow-function": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-arrow-function/-/is-arrow-function-2.0.3.tgz", "integrity": "sha1-Kb4sLY2UUIUri7r7Y1unuNjofsI=", "dev": true, "requires": { "is-callable": "^1.0.4" } }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "optional": true, "requires": { "binary-extensions": "^1.0.0" } }, "is-boolean-object": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz", "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=", "dev": true }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, "is-data-descriptor": { "version": "0.1.4", "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" } }, "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, "is-decimal": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz", "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==", "dev": true }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "optional": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, "optional": true } } }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true, "optional": true }, "is-equal": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/is-equal/-/is-equal-1.5.5.tgz", "integrity": "sha1-XoXxlX4FKIMkf+s4aWWju6Ffuz0=", "dev": true, "requires": { "has": "^1.0.1", "is-arrow-function": "^2.0.3", "is-boolean-object": "^1.0.0", "is-callable": "^1.1.3", "is-date-object": "^1.0.1", "is-generator-function": "^1.0.6", "is-number-object": "^1.0.3", "is-regex": "^1.0.3", "is-string": "^1.0.4", "is-symbol": "^1.0.1", "object.entries": "^1.0.4" } }, "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "optional": true, "requires": { "is-primitive": "^2.0.0" } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "optional": true }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true, "optional": true }, "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "is-generator-function": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==", "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "optional": true, "requires": { "is-extglob": "^1.0.0" } }, "is-hexadecimal": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz", "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", "dev": true }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" } }, "is-number-object": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz", "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=", "dev": true }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "optional": true, "requires": { "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true } } }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true, "optional": true }, "is-primitive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true, "optional": true }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { "has": "^1.0.1" } }, "is-string": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=", "dev": true }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { "has-symbols": "^1.0.0" } }, "is-whitespace-character": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", "integrity": "sha512-SzM+T5GKUCtLhlHFKt2SDAX2RFzfS6joT91F2/WSi9LxgFdsnhfPK/UIA+JhRR2xuyLdrCys2PiFDrtn1fU5hQ==", "dev": true }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, "optional": true }, "is-word-character": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.2.tgz", "integrity": "sha512-T3FlsX8rCHAH8e7RE7PfOPZVFQlcV3XRF9eOOBQ1uf70OxO7CjjSOjeImMPCADBdYWcStAbVbYvJ1m2D3tb+EA==", "dev": true }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "optional": true, "requires": { "isarray": "1.0.0" } }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "js-yaml": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "jsesc": { "version": "1.3.0", "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "json5": { "version": "0.5.1", "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "requires": { "is-buffer": "^1.1.5" } }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { "p-locate": "^5.0.0" } }, "lodash": { "version": "4.17.20", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, "log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", "dev": true, "requires": { "chalk": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true, "optional": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "optional": true, "requires": { "object-visit": "^1.0.0" } }, "markdown-escapes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz", "integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA==", "dev": true }, "math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", "dev": true, "optional": true }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "optional": true, "requires": { "arr-diff": "^2.0.0", "array-unique": "^0.2.1", "braces": "^1.8.2", "expand-brackets": "^0.1.4", "extglob": "^0.3.1", "filename-regex": "^2.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.1", "kind-of": "^3.0.2", "normalize-path": "^2.0.1", "object.omit": "^2.0.0", "parse-glob": "^3.0.4", "regex-cache": "^0.4.2" } }, "microtime": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/microtime/-/microtime-2.1.8.tgz", "integrity": "sha1-tDxMWrE+Un4XM3DQMG2eCku/QQ0=", "dev": true, "requires": { "bindings": "1.3.x", "nan": "2.10.x", "prebuild-install": "^2.1.0" }, "dependencies": { "nan": { "version": "2.10.0", "resolved": "http://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", "dev": true } } }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "minipass": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "minizlib": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "dev": true, "optional": true, "requires": { "minipass": "^2.9.0" } }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "optional": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "optional": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "mocha": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz", "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.4.3", "debug": "4.2.0", "diff": "4.0.2", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.1.6", "growl": "1.10.5", "he": "1.2.0", "js-yaml": "3.14.0", "log-symbols": "4.0.0", "minimatch": "3.0.4", "ms": "2.1.2", "nanoid": "3.1.12", "serialize-javascript": "5.0.1", "strip-json-comments": "3.1.1", "supports-color": "7.2.0", "which": "2.0.2", "wide-align": "1.1.3", "workerpool": "6.0.2", "yargs": "13.3.2", "yargs-parser": "13.1.2", "yargs-unparser": "2.0.0" }, "dependencies": { "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "chokidar": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.5.0" } }, "debug": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" } }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "readdirp": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "requires": { "picomatch": "^2.2.1" } }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } } } }, "moo": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "nan": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", "dev": true, "optional": true }, "nanoid": { "version": "3.1.12", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz", "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==", "dev": true }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "optional": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, "optional": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true } } }, "node-abi": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.5.0.tgz", "integrity": "sha512-9g2twBGSP6wIR5PW7tXvAWnEWKJDH/VskdXp168xsw9VVxpEGov8K4jsP4/VeoC7b2ZAyzckvMCuQuQlw44lXg==", "dev": true, "requires": { "semver": "^5.4.1" } }, "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", "dev": true }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", "gauge": "~2.7.3", "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "optional": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "object-inspect": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", "dev": true }, "object-keys": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", "dev": true }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "optional": true, "requires": { "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true } } }, "object.entries": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", "dev": true, "requires": { "define-properties": "^1.1.2", "es-abstract": "^1.6.1", "function-bind": "^1.1.0", "has": "^1.0.1" } }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "optional": true, "requires": { "for-own": "^0.1.4", "is-extendable": "^0.1.1" } }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "optional": true, "requires": { "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true } } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-tmpdir": { "version": "1.0.2", "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "output-file-sync": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "dev": true, "requires": { "graceful-fs": "^4.1.4", "mkdirp": "^0.5.1", "object-assign": "^4.1.0" } }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { "yocto-queue": "^0.1.0" } }, "p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { "p-limit": "^3.0.2" } }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "parse-entities": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.0.tgz", "integrity": "sha512-XXtDdOPLSB0sHecbEapQi6/58U/ODj/KWfIXmmMCJF/eRn8laX6LZbOyioMoETOOJoWRW8/qTSl5VQkUIfKM5g==", "dev": true, "requires": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" } }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "optional": true, "requires": { "glob-base": "^0.3.0", "is-dotfile": "^1.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.0" } }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true, "optional": true }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "platform": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==", "dev": true }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true, "optional": true }, "prebuild-install": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.3.tgz", "integrity": "sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==", "dev": true, "requires": { "detect-libc": "^1.0.3", "expand-template": "^1.0.2", "github-from-package": "0.0.0", "minimist": "^1.2.0", "mkdirp": "^0.5.1", "node-abi": "^2.2.0", "noop-logger": "^0.1.1", "npmlog": "^4.0.1", "os-homedir": "^1.0.1", "pump": "^2.0.1", "rc": "^1.1.6", "simple-get": "^2.7.0", "tar-fs": "^1.13.0", "tunnel-agent": "^0.6.0", "which-pm-runs": "^1.0.0" } }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true, "optional": true }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true }, "pump": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "railroad-diagrams": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=" }, "randexp": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", "requires": { "discontinuous-range": "1.0.0", "ret": "~0.1.10" } }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "optional": true, "requires": { "is-number": "^4.0.0", "kind-of": "^6.0.0", "math-random": "^1.0.1" }, "dependencies": { "is-number": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true, "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true } } }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" } }, "readable-stream": { "version": "2.3.6", "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "optional": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, "optional": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, "optional": true }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "optional": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "requires": { "is-extendable": "^0.1.0" } } } }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "optional": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "requires": { "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-data-descriptor": { "version": "0.1.4", "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "optional": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" } }, "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, "optional": true } } }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "optional": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", "fragment-cache": "^0.2.1", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "optional": true, "requires": { "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "requires": { "is-extendable": "^0.1.0" } } } }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "optional": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "requires": { "is-extendable": "^0.1.0" } } } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "optional": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "optional": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "optional": true, "requires": { "is-buffer": "^1.1.5" } } } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "optional": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } } } }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regenerator-transform": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { "babel-runtime": "^6.18.0", "babel-types": "^6.19.0", "private": "^0.1.6" } }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "optional": true, "requires": { "is-equal-shallow": "^0.1.3" } }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "optional": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, "regexpu-core": { "version": "2.0.0", "resolved": "http://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { "regenerate": "^1.2.1", "regjsgen": "^0.2.0", "regjsparser": "^0.1.4" } }, "regjsgen": { "version": "0.2.0", "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", "dev": true }, "regjsparser": { "version": "0.1.5", "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } } }, "remark-frontmatter": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.1.tgz", "integrity": "sha512-Zj/fDMYnSVgMCeKp8fXIhtMoZq4G6E1dnwfMoO8fVXrm/+oVSiN8YMREtwN2cctgK9EsnYSeS1ExX2hcX/fE1A==", "dev": true, "requires": { "fault": "^1.0.1", "xtend": "^4.0.1" } }, "remark-parse": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", "dev": true, "requires": { "collapse-white-space": "^1.0.2", "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0", "is-whitespace-character": "^1.0.0", "is-word-character": "^1.0.0", "markdown-escapes": "^1.0.0", "parse-entities": "^1.1.0", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", "trim": "0.0.1", "trim-trailing-lines": "^1.0.0", "unherit": "^1.0.4", "unist-util-remove-position": "^1.0.0", "vfile-location": "^2.0.0", "xtend": "^4.0.1" } }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true, "optional": true }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true, "optional": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { "is-finite": "^1.0.0" } }, "replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", "dev": true }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true, "optional": true }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "safe-regex": { "version": "1.1.0", "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "optional": true, "requires": { "ret": "~0.1.10" } }, "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true }, "serialize-javascript": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, "requires": { "randombytes": "^2.1.0" } }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "optional": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "requires": { "is-extendable": "^0.1.0" } } } }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "simple-concat": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", "dev": true }, "simple-get": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", "dev": true, "requires": { "decompress-response": "^3.3.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "optional": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "map-cache": "^0.2.2", "source-map": "^0.5.6", "source-map-resolve": "^0.5.0", "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "optional": true, "requires": { "is-extendable": "^0.1.0" } } } }, "snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "optional": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "optional": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "optional": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "optional": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "optional": true } } }, "snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "optional": true, "requires": { "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "optional": true, "requires": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", "urix": "^0.1.0" } }, "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { "source-map": "^0.5.6" } }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true, "optional": true }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "optional": true, "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "state-toggle": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.1.tgz", "integrity": "sha512-Qe8QntFrrpWTnHwvwj2FZTgv+PKIsp0B9VxLzLLbSpPXWOgRgc5LVj/aTiSfK1RqIeF9jeC1UeOH8Q8y60A7og==", "dev": true }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "optional": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "optional": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "string_decoder": { "version": "1.1.1", "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "string-width": { "version": "1.0.2", "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "strip-ansi": { "version": "3.0.1", "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "structured-source": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-3.0.2.tgz", "integrity": "sha1-3YAkJeD1PcSm56yjdSkBoczaevU=", "dev": true, "requires": { "boundary": "^1.0.1" } }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "tar": { "version": "4.4.13", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", "minipass": "^2.8.6", "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", "yallist": "^3.0.3" } }, "tar-fs": { "version": "1.16.3", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", "dev": true, "requires": { "chownr": "^1.0.1", "mkdirp": "^0.5.1", "pump": "^1.0.0", "tar-stream": "^1.1.2" }, "dependencies": { "pump": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } } } }, "tar-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", "dev": true, "requires": { "bl": "^1.0.0", "buffer-alloc": "^1.2.0", "end-of-stream": "^1.0.0", "fs-constants": "^1.0.0", "readable-stream": "^2.3.0", "to-buffer": "^1.1.1", "xtend": "^4.0.0" } }, "tmatch": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-2.0.1.tgz", "integrity": "sha1-DFYkbzPzDaG409colauvFmYPOM8=", "dev": true }, "to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", "dev": true }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "optional": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "optional": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "optional": true, "requires": { "kind-of": "^3.0.2" } } } }, "traverse": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", "dev": true }, "trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", "dev": true }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "trim-trailing-lines": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz", "integrity": "sha512-bWLv9BbWbbd7mlqqs2oQYnLD/U/ZqeJeJwbO0FG2zA1aTq+HTvxfHNKFa/HGCVyJpDiioUYaBhfiT6rgk+l4mg==", "dev": true }, "trough": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.3.tgz", "integrity": "sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw==", "dev": true }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { "safe-buffer": "^5.0.1" } }, "typescript": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", "dev": true }, "underscore": { "version": "1.8.3", "resolved": "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", "dev": true }, "unherit": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.1.tgz", "integrity": "sha512-+XZuV691Cn4zHsK0vkKYwBEwB74T3IZIcxrgn2E4rKwTfFyI1zCh7X7grwh9Re08fdPlarIdyWgI8aVB3F5A5g==", "dev": true, "requires": { "inherits": "^2.0.1", "xtend": "^4.0.1" } }, "unified": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", "dev": true, "requires": { "bail": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^1.1.0", "trough": "^1.0.0", "vfile": "^2.0.0", "x-is-string": "^0.1.0" } }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "optional": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" } }, "unist-util-is": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.2.tgz", "integrity": "sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw==", "dev": true }, "unist-util-remove-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz", "integrity": "sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q==", "dev": true, "requires": { "unist-util-visit": "^1.1.0" } }, "unist-util-stringify-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", "dev": true }, "unist-util-visit": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.0.tgz", "integrity": "sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw==", "dev": true, "requires": { "unist-util-visit-parents": "^2.0.0" } }, "unist-util-visit-parents": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz", "integrity": "sha512-6B0UTiMfdWql4cQ03gDTCSns+64Zkfo2OCbK31Ov0uMizEz+CJeAp0cgZVb5Fhmcd7Bct2iRNywejT0orpbqUA==", "dev": true, "requires": { "unist-util-is": "^2.1.2" } }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "optional": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "optional": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "optional": true, "requires": { "isarray": "1.0.0" } } } }, "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true, "optional": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "optional": true } } }, "update-section": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/update-section/-/update-section-0.3.3.tgz", "integrity": "sha1-RY8Xgg03gg3GDiC4bZQ5GwASMVg=", "dev": true }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true, "optional": true }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, "optional": true }, "user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", "dev": true }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "v8flags": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { "user-home": "^1.1.1" } }, "vfile": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", "dev": true, "requires": { "is-buffer": "^1.1.4", "replace-ext": "1.0.0", "unist-util-stringify-position": "^1.0.0", "vfile-message": "^1.0.0" } }, "vfile-location": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.4.tgz", "integrity": "sha512-KRL5uXQPoUKu+NGvQVL4XLORw45W62v4U4gxJ3vRlDfI9QsT4ZN1PNXn/zQpKUulqGDpYuT0XDfp5q9O87/y/w==", "dev": true }, "vfile-message": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", "dev": true, "requires": { "unist-util-stringify-position": "^1.1.1" } }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "optional": true, "requires": { "defaults": "^1.0.3" } }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "which-pm-runs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", "dev": true }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { "string-width": "^1.0.2 || 2" } }, "workerpool": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==", "dev": true }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" } }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "x-is-string": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", "dev": true }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, "y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "optional": true }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { "locate-path": "^3.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { "p-limit": "^2.0.0" } }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "yargs-unparser": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" }, "dependencies": { "camelcase": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, "decamelize": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, "is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true } } }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } } } nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/package.json000066400000000000000000000033211376321042600225740ustar00rootroot00000000000000{ "name": "nearley", "version": "2.20.1", "description": "Simple, fast, powerful parser toolkit for JavaScript.", "main": "lib/nearley.js", "dependencies": { "commander": "^2.19.0", "moo": "^0.5.0", "railroad-diagrams": "^1.0.0", "randexp": "0.4.6" }, "files": [ "bin/", "lib/", "builtin/" ], "bin": { "nearleyc": "bin/nearleyc.js", "nearley-test": "bin/nearley-test.js", "nearley-unparse": "bin/nearley-unparse.js", "nearley-railroad": "bin/nearley-railroad.js" }, "keywords": [ "parser", "parse", "generator", "compiler", "compile", "grammar", "language" ], "scripts": { "bootstrap": "mocha test/bootstrap.test.js && bin/nearleyc.js lib/nearley-language-bootstrapped.ne > tmp && mv tmp lib/nearley-language-bootstrapped.js && echo bootstrapped ok", "benchmark": "benchr test/benchmark.js", "test": "mocha test/*.test.js", "doctoc": "doctoc --notitle README.md", "profile": "bin/nearleyc.js test/grammars/parens.ne > test/grammars/parens.js && node test/profile.js" }, "author": "Hardmath123", "contributors": "https://github.com/Hardmath123/nearley/graphs/contributors", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/hardmath123/nearley.git" }, "devDependencies": { "@types/moo": "^0.3.0", "@types/node": "^7.0.27", "babel-cli": "^6.18.0", "babel-preset-env": "^1.6.0", "benchr": "^3.2.0", "coffee-script": "^1.10.0", "doctoc": "^1.3.0", "expect": "^1.20.2", "microtime": "^2.1.2", "mocha": "^8.2.1", "typescript": "^2.6.1" }, "funding": { "type": "individual", "url": "https://nearley.js.org/#give-to-nearley" } } nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/000077500000000000000000000000001376321042600212665ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/_shared.js000066400000000000000000000024661376321042600232410ustar00rootroot00000000000000 var path = require('path'); var nearley = require('../lib/nearley'); var Compile = require('../lib/compile'); var parserGrammar = nearley.Grammar.fromCompiled(require('../lib/nearley-language-bootstrapped')); var generate = require('../lib/generate'); function parse(grammar, input) { var p = new nearley.Parser(grammar); p.feed(input); return p.results; } function nearleyc(source) { // parse var results = parse(parserGrammar, source); // compile var c = Compile(results[0], {}); // generate return generate(c, 'grammar'); } function compile(source) { var compiledGrammar = nearleyc(source); // eval return evalGrammar(compiledGrammar); } /* function requireFromString(source) { var filename = '.' var Module = module.constructor; var m = new Module(); m.paths = Module._nodeModulePaths(path.dirname(filename)) m._compile(source, filename); return m.exports; } */ function requireFromString(source) { var module = {exports: null}; eval(source) return module.exports; } function evalGrammar(compiledGrammar) { var exports = requireFromString(compiledGrammar); return new nearley.Grammar.fromCompiled(exports); } module.exports = { compile: compile, nearleyc: nearleyc, evalGrammar: evalGrammar, parse: parse, }; nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/benchmark.js000066400000000000000000000041021376321042600235530ustar00rootroot00000000000000 const fs = require('fs'); const nearley = require('../lib/nearley'); const {compile} = require('./_shared'); function read(filename) { return fs.readFileSync(filename, 'utf-8'); } function makeParser(neFile) { var grammar; try { grammar = compile(read(neFile)); } catch (e) { grammar = null; // oh dear } return function parse(input) { if (grammar === null) { throw 'grammar error'; } var p = new nearley.Parser(grammar); p.feed(input); return p.results; } } // Define benchmarks /*suite('nearley: parse scannerless-nearley.ne', () => { //const nearleyGrammar = read('lib/nearley-language-bootstrapped.ne') const nearleyGrammar = read('test/grammars/scannerless-nearley.ne') const parseLexer = makeParser('lib/nearley-language-bootstrapped.ne') benchmark('current', () => parseLexer(nearleyGrammar)) const parseScannerless = makeParser('test/grammars/scannerless-nearley.ne') benchmark('scannerless', () => parseScannerless(nearleyGrammar)) }) suite('nearley: parse tosh.ne', () => { const toshGrammar = read('examples/tosh.ne') const parseLexer = makeParser('lib/nearley-language-bootstrapped.ne') benchmark('current', () => parseLexer(toshGrammar)) const parseScannerless = makeParser('test/grammars/scannerless-nearley.ne') benchmark('scannerless', () => parseScannerless(toshGrammar)) })*/ suite('calculator: parse', () => { const exampleFile = 'ln (3 + 2*(8/e - sin(pi/5)))' const parse = makeParser('examples/calculator/arithmetic.ne') benchmark('nearley', () => parse(exampleFile)) }) suite('json: parse sample1k', () => { const jsonFile = read('test/grammars/sample1k.json') const parse = makeParser('examples/json.ne') benchmark('nearley', () => parse(jsonFile)) //benchmark('native JSON 😛', () => JSON.parse(jsonFile)) }) suite('tosh: parse', () => { const toshFile = 'set foo to 2 * e^ of ( foo * -0.05 + 0.5) * (1 - e ^ of (foo * -0.05 + 0.5))' const parse = makeParser('examples/tosh.ne') benchmark('nearley', () => parse(toshFile)) }) nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/bootstrap.test.js000066400000000000000000000117631376321042600246270ustar00rootroot00000000000000/* * Tests that the parse trees generated by nearley-lanauge-bootstrapped.ne * match those generated by the old scannerless-nearley.ne. */ const fs = require('fs'); const expect = require('expect'); const nearley = require('../lib/nearley'); const shared = require('./_shared'); const compile = shared.compile; const parse = shared.parse; function read(filename) { return fs.readFileSync(filename, 'utf-8'); } describe('bootstrapped lexer', () => { const lexer = compile(read("lib/nearley-language-bootstrapped.ne")).lexer; function lex(source) { return Array.from(lexer.reset(source)).map(tok => tok.type + " " + tok.value) } function lexTypes(source) { return Array.from(lexer.reset(source)).map(tok => tok.type) } it('lexes directives', () => { expect(lex('@builtin "quxx"')).toEqual([ "@builtin @builtin", "ws ", "string quxx", ]) expect(lex("@lexer moo")).toEqual([ "@ @", "word lexer", "ws ", "word moo", ]) }) it('lexes a simple rule', () => { expect(lex("foo -> bar")).toEqual([ "word foo", "ws ", "arrow ->", "ws ", "word bar", ]) }) it('lexes arrows', () => { expect(lex("->")).toEqual(["arrow ->"]) expect(lex("=>")).toEqual(["arrow =>"]) expect(lex("-=->")).toEqual(["arrow -=->"]) }) it('lexes js code', () => { expect(lexTypes("{% foo % %}")).toEqual(['js']) expect(lexTypes("{% function() %}")).toEqual(['js']) expect(lexTypes("{% %}")).toEqual(['js']) expect(lexTypes("{%%}")).toEqual(['js']) }) it('lexes charclasses', () => { expect(lex(".")).toEqual([ "charclass /./", ]) expect(lex("[^a-z\\s]")).toEqual([ "charclass /[^a-z\\s]/", ]) expect(lex("foo->[^a-z\\s]")).toEqual([ "word foo", "arrow ->", "charclass /[^a-z\\s]/", ]) }) it('rejects newline in charclass', () => { expect(() => lex("[foo\n]")).toThrow() }) it('lexes macros', () => { expect(lex("foo[X, Y]")).toEqual([ "word foo", "[ [", "word X", ", ,", "ws ", "word Y", "] ]", ]) expect(lex("foo[[0-9]]")).toEqual([ "word foo", "[ [", "charclass /[0-9]/", "] ]", ]) }) it('lexes strings', () => { expect(lex(`"bar"`)).toEqual(['string bar']) expect(lex('"I\\"m\\\\"')).toEqual(["string I\"m\\"]) expect(lex('"foo\\"b\\\\ar\\n"')).toEqual(['string foo"b\\ar\n']) expect(lex('"\\u1234"')).toEqual(['string \u1234']) }) it('lexes strings non-greedily ', () => { expect(lexTypes('"foo" "bar"')).toEqual(["string", "ws", "string"]) }) it('lexes a rule', () => { expect(lex('Tp4 -> "(" _ Tp _ ")"')).toEqual([ "word Tp4", "ws ", "arrow ->", "ws ", "string (", "ws ", "word _", "ws ", "word Tp", "ws ", "word _", "ws ", "string )", ]) }) }) describe('bootstrapped parser', () => { const scannerless = compile(read("test/grammars/scannerless-nearley.ne")); const current = compile(read("lib/nearley-language-bootstrapped.ne")); const check = source => expect(parse(current, source)).toEqual(parse(scannerless, source)) it('parses directives', () => { check("@lexer moo") check('@include "foo"') check('@builtin "bar"') }) it('parses simple rules', () => { check('foo -> "waffle"') check("foo -> bar") }) it('parses postprocessors', () => { check('foo -> "waffle" {% d => d[0] %}') check('foo -> "waffle" {%\nfunction(d) { return d[0]; }\n%}') }) it('parses js code', () => { check("@{%\nconst moo = require('moo');\n%}") }) it('parses options', () => { check("foo -> bar\n | quxx") }) it('parses tokens', () => { check("foo -> %foo") }) it('parses strings', () => { check('foo -> "potato"') check('foo -> "("') //check("foo -> 'p'") }) it('parses charclasses', () => { check('char -> .') check('y -> x:+\nx -> [a-z0-9] | "\\n"') check('m_key -> "any" {% id %} | [a-z0-9] {% id %}') }) it('parses macro definitions', () => { check('foo[X] -> X') check('foo[X, Y] -> X') }) it('parses macro use', () => { check('Y -> foo[Q]') check('Y -> foo[Q, P]') check('Y -> foo["string"]') check('Y -> foo[%tok]') check('Y -> foo[(baz quxx)]') }) it('parses macro use', () => { check('Y -> foo[Q]') check('Y -> foo[Q, P]') check('Y -> foo["string"]') check('Y -> foo[%tok]') check('Y -> foo[(baz quxx)]') }) it('parses a rule', () => { check('Tp4 -> "(" _ Tp _ ")"') }) }) nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/external.js000066400000000000000000000013511376321042600234460ustar00rootroot00000000000000 const fs = require('fs') const path = require('path') const child_process = require('child_process') const root = 'test/' function sh(cmd) { return child_process.spawnSync(cmd, {shell: true, encoding: 'utf-8', stdio: 'pipe', cwd: root}) } var highestId = 0 function externalNearleyc(input, ext, flags = []) { const outPath = 'tmp.' + path.basename(input) + (++highestId) const {stderr, stdout} = sh(`../bin/nearleyc.js ${flags.join(' ')} ${input} -o ${outPath}${ext}`); return {outPath, stderr, stdout} } function cleanup() { for (let name of fs.readdirSync(root)) { if (/^tmp\./.test(name)) { fs.unlinkSync(path.join(root, name)) } } } module.exports = {sh, externalNearleyc, cleanup} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/000077500000000000000000000000001376321042600230775ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/caseinsensitive.ne000066400000000000000000000001001376321042600266060ustar00rootroot00000000000000a -> "Les rêves des amoureux sont comme le bon vin!"i {% id %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/classic_crontab.results000066400000000000000000000021201376321042600276460ustar00rootroot00000000000000[{"cron":{"minutes":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"hours":[12,17,19],"daysOfMonth":[5,10,15,20,25,30],"monthsOfYear":[1,10,11,12],"daysOfWeek":[1,2,3,4,5],"shell":{"cmd":"python -mpdb /a/b/c.py","stdin":null}}},{"env":{"a":null}},{"env":{"b":"def"}},{"env":{"c":"abc\\'\""}},{"cron":{"minutes":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"hours":[12,17,19],"daysOfMonth":[5,10,15,20,25,30],"monthsOfYear":[1,10,11,12],"daysOfWeek":[5],"shell":{"cmd":"a","stdin":null}}},{"env":{"d":"\\a\\b\\c\\\\'\""}},{"cron":{"minutes":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"hours":[12,17,19],"daysOfMonth":[5,10,15,20,25,30],"monthsOfYear":[1,10,11,12],"daysOfWeek":[5],"shell":{"cmd":"echo \"\\%\" burger! \"\\%\"","stdin":" stdin"}}},{"env":{"e":"\\a\\b\\c\\'\\\""}},{"cron":{"minutes":[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"hours":[12,17,19],"daysOfMonth":[5,10,15,20,25,30],"monthsOfYear":[1,10,11,12],"daysOfWeek":[5],"shell":{"cmd":"echo \"\\%\" burger! \"","stdin":"\" stdin"}}}] nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/classic_crontab.test000066400000000000000000000010131376321042600271240ustar00rootroot00000000000000####### 6-29 19,17,12 */5 dec,nov,oct,jan 5,3,1,4,1,2,4 python -mpdb /a/b/c.py # 6-29 19,17,12 */5 dec,nov,oct,jan 5,3,1,4,1,2,4 # Environment variables a= b=def # c=\a\b\c\\\'\" 6-29 19,17,12 */5 dec,nov,oct,jan fri a d="\a\b\c\\\'\"" # This is a valid cron statement and a valid shell command as well 6-29 19,17,12 */5 dec,nov,oct,jan fri echo "\%" burger! "\%" % stdin e='\a\b\c\\\'\"' # This is a valid cron statement but invalid shell command 6-29 19,17,12 */5 dec,nov,oct,jan fri echo "\%" burger! "%" stdin nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/coffeescript-test.ne000066400000000000000000000002121376321042600270470ustar00rootroot00000000000000@preprocessor coffee @{% test = (d)->d.join("") %} r -> l n l -> l [A-Z] {% test %} | null n -> n [0-9] {% (d) -> d[0] + d[1] %} | null nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/esmodules-test.ne000066400000000000000000000003511376321042600263770ustar00rootroot00000000000000@preprocessor esmodule @{% import { compile } from 'moo' const lexer = compile({ larrow: '<', rarrow: '>', integer: /[0-9]+/ }); %} @lexer lexer expression -> %larrow %integer %rarrow {% parts => parts.map(p => p.value) %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/folder-test.ne000066400000000000000000000000421376321042600256470ustar00rootroot00000000000000@include "folder/a.ne" main -> a nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/folder/000077500000000000000000000000001376321042600243525ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/folder/a.ne000066400000000000000000000000361376321042600251150ustar00rootroot00000000000000@include "b.ne" a -> "a" | b nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/folder/b.ne000066400000000000000000000000111376321042600251070ustar00rootroot00000000000000b -> "b" nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/indentation.ne000066400000000000000000000002211376321042600257320ustar00rootroot00000000000000cow -> "a" #test #test #test #test #test #test #test #test #test #this should finish in my lifetime nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/leobug.ne000066400000000000000000000002521376321042600246770ustar00rootroot00000000000000# https://github.com/Hardmath123/nearley/issues/159 S -> "a" "a" C "b" C | "a" C "b" C "a" C | "b" C "a" C "a" C C -> C "a" C "a" C | "b" C | "b" | null nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/macro-test.ne000066400000000000000000000001541376321042600255010ustar00rootroot00000000000000combine[X, Y] -> $X | $Y | $X "/" $Y | $Y "/" $X main -> combine["a", "b"] {% function() {return 'a/b'} %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/multi-include-test.ne000066400000000000000000000001131376321042600271460ustar00rootroot00000000000000@include "multi-include/a.ne" @include "multi-include/c.ne" main -> a | c nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/multi-include/000077500000000000000000000000001376321042600256525ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/multi-include/a.ne000066400000000000000000000000361376321042600264150ustar00rootroot00000000000000@include "b.ne" a -> "a" | b nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/multi-include/b.ne000066400000000000000000000000111376321042600264070ustar00rootroot00000000000000b -> "b" nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/multi-include/c.ne000066400000000000000000000000361376321042600264170ustar00rootroot00000000000000@include "b.ne" c -> "c" | b nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/parens.ne000066400000000000000000000002411376321042600247100ustar00rootroot00000000000000# mainly for profiling @{% /* This comment should exist. */ var f = 0; %} p -> "(" p ")" | [a-z] q {% function(d) {return 1;} %} q -> null | q ("c" "ow") nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/percent.ne000066400000000000000000000000521376321042600250600ustar00rootroot00000000000000a -> "a" {% function(d) {return "%"; } %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/sample1k.json000066400000000000000000000734771376321042600255310ustar00rootroot00000000000000[ { "_id": "5789f4e5688f478d31e213cb", "index": 0, "guid": "a601b360-938e-4326-8bd1-d78fd8c3d54b", "isActive": false, "balance": "$1,867.26", "picture": "http://placehold.it/32x32", "age": 40, "eyeColor": "brown", "name": "Gomez Rocha", "gender": "male", "company": "VERBUS", "email": "gomezrocha@verbus.com", "phone": "+1 (914) 572-3986", "address": "646 Blake Court, Cherokee, Colorado, 9616", "about": "In ipsum quis veniam consectetur commodo reprehenderit laboris pariatur fugiat culpa officia tempor excepteur do. Est duis elit deserunt ipsum consequat anim. Nulla adipisicing est labore labore incididunt exercitation proident enim eu voluptate laboris. Fugiat consequat occaecat est ut laborum culpa esse adipisicing Lorem incididunt fugiat aliqua labore ex.\r\n", "registered": "2015-01-16T05:01:25 -02:00", "latitude": 60.377082, "longitude": -50.078349, "tags": [ "elit", "sint", "ea", "enim", "nulla", "consectetur", "minim" ], "friends": [ { "id": 0, "name": "Rebekah Roy" }, { "id": 1, "name": "Callahan Barrera" }, { "id": 2, "name": "Cantu Fitzpatrick" } ], "greeting": "Hello, Gomez Rocha! You have 3 unread messages.", "favoriteFruit": "apple" }, { "_id": "5789f4e561c8bf01ed63c46a", "index": 1, "guid": "ebce58f2-e1f7-4dfc-bb84-b3bc2ebb799a", "isActive": true, "balance": "$1,062.96", "picture": "http://placehold.it/32x32", "age": 38, "eyeColor": "brown", "name": "Meagan Rutledge", "gender": "female", "company": "TWIGGERY", "email": "meaganrutledge@twiggery.com", "phone": "+1 (911) 471-3885", "address": "153 Church Lane, Avoca, Idaho, 7052", "about": "Exercitation dolore nisi nostrud quis do quis minim voluptate dolore ea eu esse. Ad velit in id velit nisi cillum commodo voluptate ut. Reprehenderit sit aute non aliqua ullamco fugiat laborum et est voluptate cillum Lorem reprehenderit. Occaecat id magna deserunt et non qui ea aliqua cupidatat ad. Reprehenderit occaecat elit et ullamco. Dolore id qui ullamco qui consectetur elit duis ipsum enim ex. Quis veniam ad ex elit duis deserunt voluptate consectetur eu tempor cupidatat nulla sit enim.\r\n", "registered": "2014-02-08T01:47:09 -02:00", "latitude": -65.072152, "longitude": 79.350832, "tags": [ "labore", "et", "culpa", "minim", "elit", "enim", "Lorem" ], "friends": [ { "id": 0, "name": "Macdonald Mckee" }, { "id": 1, "name": "Georgia Reynolds" }, { "id": 2, "name": "Puckett Mcfarland" } ], "greeting": "Hello, Meagan Rutledge! You have 7 unread messages.", "favoriteFruit": "banana" }, { "_id": "5789f4e53330326090a4a657", "index": 2, "guid": "7aa6f784-f1aa-497b-a8a5-10353413e37e", "isActive": true, "balance": "$2,026.11", "picture": "http://placehold.it/32x32", "age": 30, "eyeColor": "brown", "name": "Bradshaw Reilly", "gender": "male", "company": "GINKLE", "email": "bradshawreilly@ginkle.com", "phone": "+1 (898) 512-2689", "address": "204 Losee Terrace, Gasquet, Utah, 8110", "about": "Sit ullamco voluptate deserunt dolor mollit commodo fugiat reprehenderit fugiat dolor Lorem adipisicing laboris. Dolor ipsum id nostrud non. Sunt laboris mollit do ea mollit et. Minim aute aute cillum sit ex ad nostrud commodo. Irure ut nisi in et dolore quis. Duis magna quis voluptate irure incididunt nostrud.\r\n", "registered": "2014-08-07T11:44:47 -03:00", "latitude": -15.523501, "longitude": 1.30236, "tags": [ "Lorem", "eu", "occaecat", "duis", "ut", "veniam", "cillum" ], "friends": [ { "id": 0, "name": "Sarah Ratliff" }, { "id": 1, "name": "Lacy Key" }, { "id": 2, "name": "Lara Atkinson" } ], "greeting": "Hello, Bradshaw Reilly! You have 3 unread messages.", "favoriteFruit": "apple" }, { "_id": "5789f4e51e19a7f92b432464", "index": 3, "guid": "bb84ad96-7388-4510-b89c-a683f141f985", "isActive": false, "balance": "$3,791.84", "picture": "http://placehold.it/32x32", "age": 24, "eyeColor": "brown", "name": "Araceli Cole", "gender": "female", "company": "JETSILK", "email": "aracelicole@jetsilk.com", "phone": "+1 (864) 509-2264", "address": "184 Pierrepont Place, Beaverdale, Wisconsin, 5683", "about": "Quis labore proident deserunt dolor enim. Irure est veniam deserunt est ullamco fugiat et tempor fugiat minim ipsum minim elit deserunt. Est adipisicing minim amet sunt ad tempor nulla elit eu. Dolor proident amet qui voluptate voluptate veniam enim elit excepteur excepteur minim.\r\n", "registered": "2015-07-14T12:43:19 -03:00", "latitude": 32.53047, "longitude": -109.994191, "tags": [ "esse", "enim", "incididunt", "dolor", "anim", "ipsum", "deserunt" ], "friends": [ { "id": 0, "name": "Blanche Ortiz" }, { "id": 1, "name": "Carney Shaw" }, { "id": 2, "name": "Ethel Weeks" } ], "greeting": "Hello, Araceli Cole! You have 6 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "5789f4e53abf914c434918f9", "index": 4, "guid": "3a9e01a2-8b49-4658-a075-d0a9d1fc1a56", "isActive": false, "balance": "$3,327.44", "picture": "http://placehold.it/32x32", "age": 33, "eyeColor": "brown", "name": "Kaye Casey", "gender": "female", "company": "ZAGGLES", "email": "kayecasey@zaggles.com", "phone": "+1 (877) 533-3531", "address": "555 Cranberry Street, Guthrie, Delaware, 7792", "about": "Eu sunt dolor amet mollit enim exercitation amet laborum magna incididunt. Ex et quis fugiat ipsum. Incididunt elit sunt anim eu fugiat nostrud voluptate ea fugiat ea. Enim labore magna qui proident culpa occaecat ullamco adipisicing incididunt sunt nisi adipisicing consectetur aute. Ullamco reprehenderit do occaecat ut laborum excepteur cupidatat pariatur ut non non et exercitation. Nulla dolor voluptate aliquip mollit proident id ullamco aliqua exercitation eiusmod. Laboris ullamco veniam ullamco veniam reprehenderit labore nostrud enim reprehenderit fugiat adipisicing cupidatat.\r\n", "registered": "2016-02-29T05:37:25 -02:00", "latitude": -82.825057, "longitude": -19.579575, "tags": [ "qui", "tempor", "laborum", "laborum", "sit", "sint", "anim" ], "friends": [ { "id": 0, "name": "Lilian Battle" }, { "id": 1, "name": "Sofia Fleming" }, { "id": 2, "name": "Weber Cotton" } ], "greeting": "Hello, Kaye Casey! You have 4 unread messages.", "favoriteFruit": "apple" }, { "_id": "5789f4e55574ed3d787366dd", "index": 5, "guid": "83be6aaf-b5e7-4115-af40-3c69517dff12", "isActive": false, "balance": "$1,318.24", "picture": "http://placehold.it/32x32", "age": 23, "eyeColor": "blue", "name": "Pate Horn", "gender": "male", "company": "GENESYNK", "email": "patehorn@genesynk.com", "phone": "+1 (826) 424-2702", "address": "619 Schweikerts Walk, Murillo, Virginia, 4331", "about": "Anim voluptate ut do nisi amet quis labore. Quis anim est labore commodo laboris irure consequat qui duis do ex reprehenderit magna. Commodo id occaecat magna eiusmod.\r\n", "registered": "2015-05-26T03:16:26 -03:00", "latitude": 62.068817, "longitude": 90.165296, "tags": [ "eu", "aliqua", "laborum", "ipsum", "non", "labore", "occaecat" ], "friends": [ { "id": 0, "name": "Lorraine Cherry" }, { "id": 1, "name": "Janice Melendez" }, { "id": 2, "name": "Tanya Warner" } ], "greeting": "Hello, Pate Horn! You have 4 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "5789f4e5e067da500003a41e", "index": 6, "guid": "2aeb89b4-2166-48d1-b660-ea7be54c9f2b", "isActive": false, "balance": "$2,925.76", "picture": "http://placehold.it/32x32", "age": 25, "eyeColor": "green", "name": "Margarita Townsend", "gender": "female", "company": "LYRIA", "email": "margaritatownsend@lyria.com", "phone": "+1 (966) 572-3011", "address": "730 Judge Street, Enetai, Iowa, 5532", "about": "Ad deserunt veniam ut pariatur deserunt laboris aliquip consectetur exercitation ea sit. Sint anim elit aute veniam. Incididunt reprehenderit cillum quis velit minim ipsum culpa fugiat cupidatat laboris nisi nulla ullamco adipisicing.\r\n", "registered": "2015-07-26T07:19:27 -03:00", "latitude": -15.753305, "longitude": 44.857453, "tags": [ "mollit", "laborum", "incididunt", "ea", "ex", "minim", "magna" ], "friends": [ { "id": 0, "name": "Trevino Powell" }, { "id": 1, "name": "Acosta Roth" }, { "id": 2, "name": "Benson Garza" } ], "greeting": "Hello, Margarita Townsend! You have 7 unread messages.", "favoriteFruit": "apple" }, { "_id": "5789f4e5c2672507e2f18a45", "index": 7, "guid": "79e6945d-ba9c-441f-b37e-4ca5aaaa45ed", "isActive": false, "balance": "$3,673.04", "picture": "http://placehold.it/32x32", "age": 23, "eyeColor": "green", "name": "Cassie Cunningham", "gender": "female", "company": "GEEKOLOGY", "email": "cassiecunningham@geekology.com", "phone": "+1 (958) 484-3483", "address": "235 Doscher Street, Cawood, Nebraska, 4175", "about": "Magna ut Lorem amet cillum velit sit ut. Nisi reprehenderit irure consectetur officia do enim. Adipisicing Lorem ex proident pariatur nulla eu nulla in aute sit velit tempor.\r\n", "registered": "2014-08-18T11:24:59 -03:00", "latitude": 8.938399, "longitude": -103.017569, "tags": [ "aliquip", "aliqua", "minim", "magna", "amet", "sint", "irure" ], "friends": [ { "id": 0, "name": "Jordan Yang" }, { "id": 1, "name": "Mcfadden Wyatt" }, { "id": 2, "name": "Hutchinson Hyde" } ], "greeting": "Hello, Cassie Cunningham! You have 10 unread messages.", "favoriteFruit": "banana" }, { "_id": "5789f4e53aaa903d03bba918", "index": 8, "guid": "3b6df0a7-7a21-47a4-97f2-7f7ce60d50f6", "isActive": false, "balance": "$2,499.05", "picture": "http://placehold.it/32x32", "age": 22, "eyeColor": "brown", "name": "Yates Briggs", "gender": "male", "company": "FLUM", "email": "yatesbriggs@flum.com", "phone": "+1 (950) 581-3303", "address": "701 Remsen Street, Hachita, Oregon, 3684", "about": "Exercitation aute laboris quis nulla. Labore proident occaecat ea incididunt est id pariatur id ut do. Lorem enim tempor do enim Lorem veniam nisi laborum in elit pariatur laborum incididunt sint. Est ad sunt ex sint cupidatat ipsum esse ea qui esse.\r\n", "registered": "2015-04-18T01:37:38 -03:00", "latitude": 16.543165, "longitude": -104.303016, "tags": [ "dolor", "excepteur", "aliqua", "pariatur", "dolore", "consequat", "commodo" ], "friends": [ { "id": 0, "name": "Santos Hayden" }, { "id": 1, "name": "Holder Sharp" }, { "id": 2, "name": "Tracie Schmidt" } ], "greeting": "Hello, Yates Briggs! You have 1 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "5789f4e5481d70c6ce6409e8", "index": 9, "guid": "15ac8c07-20b3-47db-a40a-d9b7b85c3ca3", "isActive": true, "balance": "$1,835.62", "picture": "http://placehold.it/32x32", "age": 26, "eyeColor": "green", "name": "Victoria Hicks", "gender": "female", "company": "KOFFEE", "email": "victoriahicks@koffee.com", "phone": "+1 (861) 494-3124", "address": "954 Montague Street, Lithium, New Jersey, 7450", "about": "Sunt mollit consequat fugiat consequat ea occaecat dolore reprehenderit ut sit excepteur tempor. Cillum nulla consequat aute pariatur commodo velit aute voluptate pariatur sint minim proident. Anim ea ex laboris labore minim. Qui velit do quis dolore irure et commodo voluptate aliquip et exercitation cillum dolor excepteur. Nisi excepteur labore incididunt enim proident cillum esse.\r\n", "registered": "2016-01-06T01:02:17 -02:00", "latitude": -44.625892, "longitude": -103.250696, "tags": [ "nostrud", "ullamco", "irure", "velit", "esse", "fugiat", "consectetur" ], "friends": [ { "id": 0, "name": "Joyner Gardner" }, { "id": 1, "name": "Knapp Estes" }, { "id": 2, "name": "Brigitte Blevins" } ], "greeting": "Hello, Victoria Hicks! You have 4 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "5789f4e5cb20ad8e57ceea4d", "index": 10, "guid": "b4104037-8495-4f3b-aaf0-b1dcd3cabc35", "isActive": false, "balance": "$2,310.99", "picture": "http://placehold.it/32x32", "age": 34, "eyeColor": "green", "name": "Geneva Rivers", "gender": "female", "company": "CEPRENE", "email": "genevarivers@ceprene.com", "phone": "+1 (977) 442-3843", "address": "204 Bridgewater Street, Orviston, Pennsylvania, 113", "about": "Elit consectetur labore labore Lorem id commodo velit. Tempor quis nulla id officia velit ad aliquip deserunt elit eu adipisicing occaecat do. Laborum voluptate in fugiat quis culpa voluptate est.\r\n", "registered": "2015-01-14T02:57:57 -02:00", "latitude": 27.380443, "longitude": 50.795586, "tags": [ "eiusmod", "laborum", "reprehenderit", "proident", "adipisicing", "nulla", "ex" ], "friends": [ { "id": 0, "name": "Adams King" }, { "id": 1, "name": "Lucile Mccarthy" }, { "id": 2, "name": "Celia Nunez" } ], "greeting": "Hello, Geneva Rivers! You have 2 unread messages.", "favoriteFruit": "banana" }, { "_id": "5789f4e5651e3b37e60540ce", "index": 11, "guid": "5a815bba-fe38-481c-9462-919ac5bfc70c", "isActive": true, "balance": "$3,720.99", "picture": "http://placehold.it/32x32", "age": 25, "eyeColor": "blue", "name": "Geraldine Macias", "gender": "female", "company": "LIQUICOM", "email": "geraldinemacias@liquicom.com", "phone": "+1 (932) 414-2945", "address": "244 Garnet Street, Hobucken, Nevada, 9941", "about": "Sunt mollit nisi est do consequat proident veniam enim veniam. Anim id nisi tempor in dolor duis consequat duis sit incididunt excepteur dolor consectetur sit. Cillum sit laborum laboris sunt irure. Voluptate consectetur cupidatat id elit voluptate amet labore proident voluptate tempor aliquip excepteur proident enim. Qui Lorem officia ipsum commodo incididunt nulla laboris esse.\r\n", "registered": "2016-04-19T06:57:53 -03:00", "latitude": -30.787425, "longitude": 5.148991, "tags": [ "do", "voluptate", "do", "in", "minim", "elit", "fugiat" ], "friends": [ { "id": 0, "name": "Erika Norman" }, { "id": 1, "name": "Abby Reeves" }, { "id": 2, "name": "Carmen Kaufman" } ], "greeting": "Hello, Geraldine Macias! You have 7 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "5789f4e5c2cfdbfe57f9cea6", "index": 12, "guid": "d3875a27-1dfe-47b4-b795-cbd66de8b3d9", "isActive": true, "balance": "$2,974.40", "picture": "http://placehold.it/32x32", "age": 29, "eyeColor": "brown", "name": "Rodriguez Torres", "gender": "male", "company": "ZYTRAC", "email": "rodrigueztorres@zytrac.com", "phone": "+1 (814) 459-2850", "address": "369 Seagate Terrace, Eureka, Massachusetts, 2193", "about": "Cillum magna culpa fugiat eiusmod aute sint consectetur nostrud cupidatat eiusmod ullamco magna aute aliqua. Exercitation laborum proident est excepteur elit ullamco veniam sunt eu. Eu cillum dolore ea tempor consectetur aliqua eu in sit qui nostrud culpa. Nisi enim sunt exercitation aliqua tempor ipsum anim magna laboris non aliqua ea. Anim veniam adipisicing incididunt duis nulla est consequat aliqua ex irure commodo consectetur elit. Aliquip laborum ad nulla ea reprehenderit ut voluptate nisi laboris. Commodo eiusmod veniam anim ipsum incididunt tempor sunt labore eiusmod.\r\n", "registered": "2015-11-05T08:14:44 -02:00", "latitude": -15.861528, "longitude": 82.818214, "tags": [ "laboris", "laborum", "irure", "aliqua", "proident", "laborum", "id" ], "friends": [ { "id": 0, "name": "Chris Booker" }, { "id": 1, "name": "Lilia Riddle" }, { "id": 2, "name": "Marsha Webb" } ], "greeting": "Hello, Rodriguez Torres! You have 8 unread messages.", "favoriteFruit": "banana" }, { "_id": "5789f4e57feb29fe1500fe39", "index": 13, "guid": "3b88055f-656d-455a-b40b-b132c1c9ea2c", "isActive": false, "balance": "$3,793.19", "picture": "http://placehold.it/32x32", "age": 23, "eyeColor": "blue", "name": "Levine Gillespie", "gender": "male", "company": "COMTOUR", "email": "levinegillespie@comtour.com", "phone": "+1 (829) 512-3201", "address": "231 Box Street, Springhill, Indiana, 3853", "about": "Ipsum sit velit occaecat veniam id est ut dolor esse tempor elit voluptate dolor. Exercitation esse nisi dolore proident culpa cillum pariatur cillum mollit nisi non nulla aliquip veniam. In consectetur ea ad excepteur sit enim commodo do eu.\r\n", "registered": "2016-03-25T03:07:49 -03:00", "latitude": -18.792521, "longitude": 23.43746, "tags": [ "voluptate", "adipisicing", "duis", "cillum", "ex", "magna", "Lorem" ], "friends": [ { "id": 0, "name": "Cecile Hardin" }, { "id": 1, "name": "Clarke Mckay" }, { "id": 2, "name": "Nannie Mcleod" } ], "greeting": "Hello, Levine Gillespie! You have 1 unread messages.", "favoriteFruit": "apple" }, { "_id": "5789f4e53c70d7929534ea57", "index": 14, "guid": "4866b124-bc51-4552-b4a7-d1cad948ab70", "isActive": true, "balance": "$2,998.00", "picture": "http://placehold.it/32x32", "age": 22, "eyeColor": "brown", "name": "Mcclure Patterson", "gender": "male", "company": "XURBAN", "email": "mcclurepatterson@xurban.com", "phone": "+1 (934) 409-3147", "address": "780 Louisiana Avenue, Hasty, Tennessee, 8442", "about": "Qui quis dolore laborum magna et veniam fugiat quis incididunt aute. Tempor sunt laboris aliquip esse nulla eu incididunt sit sint. Tempor labore veniam pariatur ullamco eu fugiat laborum.\r\n", "registered": "2014-06-13T12:29:58 -03:00", "latitude": 24.572164, "longitude": -166.514278, "tags": [ "in", "enim", "elit", "ex", "magna", "incididunt", "excepteur" ], "friends": [ { "id": 0, "name": "Robertson Koch" }, { "id": 1, "name": "Martina Rivera" }, { "id": 2, "name": "Faye Duke" } ], "greeting": "Hello, Mcclure Patterson! You have 5 unread messages.", "favoriteFruit": "banana" }, { "_id": "5789f4e509f0dd4bbd434dd5", "index": 15, "guid": "44360e39-36cc-428a-bc16-4b2ac28622c2", "isActive": true, "balance": "$3,047.90", "picture": "http://placehold.it/32x32", "age": 28, "eyeColor": "green", "name": "Carissa Willis", "gender": "female", "company": "EVENTIX", "email": "carissawillis@eventix.com", "phone": "+1 (865) 459-2663", "address": "770 Battery Avenue, Konterra, North Carolina, 798", "about": "Est fugiat veniam commodo elit ut fugiat laborum culpa consequat adipisicing. Aute ut minim exercitation incididunt aliquip consequat velit. Eu Lorem cillum esse sunt tempor adipisicing velit pariatur commodo duis tempor eiusmod mollit esse. Sunt culpa ullamco dolore dolore. Nisi in aute et occaecat consectetur qui aute duis aliquip sunt proident.\r\n", "registered": "2016-01-10T06:46:10 -02:00", "latitude": -33.306816, "longitude": 56.679905, "tags": [ "do", "anim", "reprehenderit", "nostrud", "adipisicing", "ut", "pariatur" ], "friends": [ { "id": 0, "name": "Roberts Edwards" }, { "id": 1, "name": "Roy Barlow" }, { "id": 2, "name": "Yesenia Conner" } ], "greeting": "Hello, Carissa Willis! You have 9 unread messages.", "favoriteFruit": "apple" }, { "_id": "5789f4e524182ab79ce74069", "index": 16, "guid": "a1cbf0af-af18-4e76-96b4-1e5e91678f50", "isActive": false, "balance": "$1,231.30", "picture": "http://placehold.it/32x32", "age": 40, "eyeColor": "green", "name": "Noelle Madden", "gender": "female", "company": "GEEKETRON", "email": "noellemadden@geeketron.com", "phone": "+1 (956) 549-2920", "address": "391 Richardson Street, Davenport, Mississippi, 3116", "about": "Duis id magna in ad magna ullamco ut velit minim est consequat. Deserunt nisi duis dolore Lorem adipisicing aliquip exercitation. Nulla do est ex duis quis dolore deserunt ipsum exercitation officia labore culpa cillum. Ullamco fugiat qui dolore sit. In ipsum officia enim non incididunt cupidatat labore id cillum Lorem id deserunt. Labore velit laboris consectetur qui deserunt quis consectetur pariatur deserunt. In cupidatat proident esse sunt esse adipisicing reprehenderit quis et anim ex.\r\n", "registered": "2014-11-05T11:34:15 -02:00", "latitude": 42.01655, "longitude": -154.431165, "tags": [ "exercitation", "cupidatat", "ipsum", "irure", "aliquip", "consequat", "eiusmod" ], "friends": [ { "id": 0, "name": "Olga Charles" }, { "id": 1, "name": "Morton Fuentes" }, { "id": 2, "name": "Melendez Randall" } ], "greeting": "Hello, Noelle Madden! You have 4 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "5789f4e5a561722f88e2ae9c", "index": 17, "guid": "34f6b358-b8bc-4441-9081-592a2ef18c5f", "isActive": true, "balance": "$3,858.45", "picture": "http://placehold.it/32x32", "age": 36, "eyeColor": "brown", "name": "Lori Guzman", "gender": "female", "company": "MITROC", "email": "loriguzman@mitroc.com", "phone": "+1 (981) 455-3403", "address": "984 Ash Street, Eastmont, Kentucky, 8672", "about": "Nulla est laborum nulla voluptate non amet esse excepteur eiusmod ex ex. Proident cupidatat minim sunt qui deserunt elit aliquip magna culpa aliqua consequat nisi eiusmod irure. Est nostrud sunt officia consectetur dolore Lorem excepteur eiusmod id consequat ipsum consectetur. Adipisicing exercitation ad aliqua in pariatur adipisicing. Fugiat elit fugiat Lorem officia sit et exercitation id.\r\n", "registered": "2014-12-13T11:18:36 -02:00", "latitude": 14.713345, "longitude": -96.737292, "tags": [ "Lorem", "minim", "enim", "aliqua", "excepteur", "fugiat", "laboris" ], "friends": [ { "id": 0, "name": "Lindsey Oneill" }, { "id": 1, "name": "Audrey Rice" }, { "id": 2, "name": "Socorro Love" } ], "greeting": "Hello, Lori Guzman! You have 8 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "5789f4e53edd06a58de93e1b", "index": 18, "guid": "cce3334f-3ff6-4bbd-97e5-cc5fb14a57cf", "isActive": false, "balance": "$2,671.49", "picture": "http://placehold.it/32x32", "age": 31, "eyeColor": "brown", "name": "Solis Underwood", "gender": "male", "company": "ECOSYS", "email": "solisunderwood@ecosys.com", "phone": "+1 (814) 476-2136", "address": "890 Menahan Street, Wells, Missouri, 1455", "about": "Non velit magna sunt magna et anim sit. Sit consequat eu labore et anim incididunt eu et in sint laboris pariatur est magna. Non consequat reprehenderit excepteur incididunt sit voluptate do in incididunt mollit proident commodo. Elit do fugiat incididunt laborum. Veniam deserunt laborum sit minim sint. Excepteur adipisicing commodo labore irure commodo mollit nisi ad aliquip. Irure cupidatat irure do enim elit ex est.\r\n", "registered": "2016-01-19T09:51:10 -02:00", "latitude": -54.575181, "longitude": 84.036429, "tags": [ "pariatur", "officia", "sunt", "aliqua", "reprehenderit", "amet", "qui" ], "friends": [ { "id": 0, "name": "Savannah Vargas" }, { "id": 1, "name": "Cornelia Pratt" }, { "id": 2, "name": "Bettie Odonnell" } ], "greeting": "Hello, Solis Underwood! You have 4 unread messages.", "favoriteFruit": "banana" }, { "_id": "5789f4e5f2fd7e8024c25058", "index": 19, "guid": "a2b250dd-2fe7-401b-824d-10bdc5168def", "isActive": true, "balance": "$1,027.87", "picture": "http://placehold.it/32x32", "age": 40, "eyeColor": "green", "name": "Kennedy Blackwell", "gender": "male", "company": "ACCRUEX", "email": "kennedyblackwell@accruex.com", "phone": "+1 (984) 418-3932", "address": "365 Garland Court, Orovada, Maryland, 7323", "about": "In ex pariatur irure labore. Aliqua quis aliquip cillum reprehenderit ad tempor reprehenderit ad. Qui tempor quis ad do culpa exercitation in non eiusmod esse sint. Pariatur aliquip elit duis culpa. Dolore ad deserunt laboris ullamco fugiat ex veniam pariatur enim laboris non. Est eiusmod dolor Lorem duis.\r\n", "registered": "2015-01-04T03:33:07 -02:00", "latitude": -87.117942, "longitude": 121.076386, "tags": [ "incididunt", "exercitation", "tempor", "sint", "eu", "non", "occaecat" ], "friends": [ { "id": 0, "name": "Wood Stephens" }, { "id": 1, "name": "Clemons Mayer" }, { "id": 2, "name": "Wong Wolf" } ], "greeting": "Hello, Kennedy Blackwell! You have 1 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "5789f4e567a1ebc39e06f990", "index": 20, "guid": "3adc2be9-d985-41eb-8000-d32f922d96c4", "isActive": false, "balance": "$1,610.70", "picture": "http://placehold.it/32x32", "age": 37, "eyeColor": "blue", "name": "Coffey Mason", "gender": "male", "company": "PHOLIO", "email": "coffeymason@pholio.com", "phone": "+1 (936) 590-3032", "address": "635 Frost Street, Malo, California, 9398", "about": "Cupidatat nulla aute dolore fugiat. Fugiat eu labore do amet culpa incididunt ullamco do. Occaecat in quis do in. Labore elit exercitation anim ut duis deserunt labore amet quis. Mollit aliqua proident anim excepteur aliqua excepteur quis do Lorem minim sunt officia Lorem.\r\n", "registered": "2014-12-04T10:16:32 -02:00", "latitude": -31.999848, "longitude": -123.898345, "tags": [ "pariatur", "sint", "elit", "Lorem", "Lorem", "fugiat", "duis" ], "friends": [ { "id": 0, "name": "Shepard Rowland" }, { "id": 1, "name": "Caldwell George" }, { "id": 2, "name": "Howell Mccarty" } ], "greeting": "Hello, Coffey Mason! You have 4 unread messages.", "favoriteFruit": "strawberry" }, { "_id": "5789f4e5b3f86b2cb775595e", "index": 21, "guid": "73b9522e-ea10-43df-b221-61baa4c563ed", "isActive": false, "balance": "$2,434.93", "picture": "http://placehold.it/32x32", "age": 20, "eyeColor": "green", "name": "Soto Chase", "gender": "male", "company": "MONDICIL", "email": "sotochase@mondicil.com", "phone": "+1 (966) 490-3146", "address": "878 Beverly Road, Blende, Connecticut, 4465", "about": "Esse consequat in consequat veniam amet laboris occaecat et ea ipsum reprehenderit. Sunt officia anim labore nulla qui elit laborum et et excepteur dolor ex. Tempor elit aliquip labore et amet. Veniam aliquip sint minim tempor labore sunt. Officia est amet mollit qui mollit commodo adipisicing qui. Dolore anim consectetur enim dolore commodo sit ut et eiusmod occaecat esse tempor elit. Occaecat ad nulla adipisicing veniam veniam excepteur esse anim.\r\n", "registered": "2015-06-19T10:14:08 -03:00", "latitude": -47.396646, "longitude": -30.952543, "tags": [ "eu", "labore", "ipsum", "nisi", "incididunt", "sunt", "Lorem" ], "friends": [ { "id": 0, "name": "Susan Camacho" }, { "id": 1, "name": "Wilkerson Clements" }, { "id": 2, "name": "Mable Fletcher" } ], "greeting": "Hello, Soto Chase! You have 5 unread messages.", "favoriteFruit": "banana" } ] nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/scannerless-nearley.ne000066400000000000000000000101151376321042600273760ustar00rootroot00000000000000# nearley grammar @builtin "string.ne" @{% function insensitive(sl) { var s = sl.literal; var result = []; for (var i=0; i whit? prog whit? {% function(d) { return d[1]; } %} prog -> prod {% function(d) { return [d[0]]; } %} | prod whit prog {% function(d) { return [d[0]].concat(d[2]); } %} prod -> word whit? ("-"|"="):+ ">" whit? expression+ {% function(d) { return {name: d[0], rules: d[5]}; } %} | word "[" wordlist "]" whit? ("-"|"="):+ ">" whit? expression+ {% function(d) {return {macro: d[0], args: d[2], exprs: d[8]}} %} | "@" whit? js {% function(d) { return {body: d[2]}; } %} | "@" word whit word {% function(d) { return {config: d[1], value: d[3]}; } %} | "@include" whit? string {% function(d) {return {include: d[2].literal, builtin: false}} %} | "@builtin" whit? string {% function(d) {return {include: d[2].literal, builtin: true }} %} expression+ -> completeexpression | expression+ whit? "|" whit? completeexpression {% function(d) { return d[0].concat([d[4]]); } %} expressionlist -> completeexpression | expressionlist whit? "," whit? completeexpression {% function(d) { return d[0].concat([d[4]]); } %} wordlist -> word | wordlist whit? "," whit? word {% function(d) { return d[0].concat([d[4]]); } %} completeexpression -> expr {% function(d) { return {tokens: d[0]}; } %} | expr whit? js {% function(d) { return {tokens: d[0], postprocess: d[2]}; } %} expr_member -> word {% id %} | "$" word {% function(d) {return {mixin: d[1]}} %} | word "[" expressionlist "]" {% function(d) {return {macrocall: d[0], args: d[2]}} %} | string "i":? {% function(d) { if (d[1]) {return insensitive(d[0]); } else {return d[0]; } } %} | "%" word {% function(d) {return {token: d[1]}} %} | charclass {% id %} | "(" whit? expression+ whit? ")" {% function(d) {return {'subexpression': d[2]} ;} %} | expr_member whit? ebnf_modifier {% function(d) {return {'ebnf': d[0], 'modifier': d[2]}; } %} ebnf_modifier -> ":+" {% id %} | ":*" {% id %} | ":?" {% id %} expr -> expr_member | expr whit expr_member {% function(d){ return d[0].concat([d[2]]); } %} word -> [\w\?\+] {% function(d){ return d[0]; } %} | word [\w\?\+] {% function(d){ return d[0]+d[1]; } %} string -> dqstring {% function(d) {return { literal: d[0] }; } %} #string -> "\"" charset "\"" {% function(d) { return { literal: d[1].join("") }; } %} # #charset -> null # | charset char {% function(d) { return d[0].concat([d[1]]); } %} # #char -> [^\\"] {% function(d) { return d[0]; } %} # | "\\" . {% function(d) { return JSON.parse("\""+"\\"+d[1]+"\""); } %} charclass -> "." {% function(d) { return new RegExp("."); } %} | "[" charclassmembers "]" {% function(d) { return new RegExp("[" + d[1].join('') + "]"); } %} charclassmembers -> null | charclassmembers charclassmember {% function(d) { return d[0].concat([d[1]]); } %} charclassmember -> [^\\\]] {% function(d) { return d[0]; } %} | "\\" . {% function(d) { return d[0] + d[1]; } %} js -> "{" "%" jscode "%" "}" {% function(d) { return d[2]; } %} jscode -> null {% function() {return "";} %} | jscode [^%] {% function(d) {return d[0] + d[1];} %} | jscode "%" [^}] {% function(d) {return d[0] + d[1] + d[2]; } %} # Whitespace with a comment whit -> whitraw | whitraw? comment whit? # Optional whitespace with a comment whit? -> null | whit # Literally a string of whitespace whitraw -> [\s] | whitraw [\s] # A string of whitespace OR the empty string whitraw? -> null | whitraw comment -> "#" commentchars "\n" commentchars -> null | commentchars [^\n] nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/test1.json000066400000000000000000000001561376321042600250340ustar00rootroot00000000000000{ "a" : true, "b" : "䕧⡱a\\\"b\u4567\u2871䕧⡱\t\r\f\b\n", "c" : null, "d" : [null, true, false, null] } nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/test2.json000066400000000000000000000002231376321042600250300ustar00rootroot00000000000000{ "a" : true, "b" : "䕧⡱a\\\"b\u4567\u2871䕧⡱\t\r\f\b\n\u0010\u001f\u005b\u005c\u005d", "c" : null, "d" : [null, true, false, -0.2345E+10] } nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/trailing-comment.ne000066400000000000000000000000561376321042600266750ustar00rootroot00000000000000a -> "cow" # Please do NOT reformat this file.nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/tsconfig.json000066400000000000000000000001721376321042600256060ustar00rootroot00000000000000{ "compilerOptions": { "target": "es5", "strict": true }, "include": [ "./tmp.typescript-test.ts" ] } nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/typescript-test.ne000066400000000000000000000003531376321042600266070ustar00rootroot00000000000000@preprocessor typescript @{% import { compile } from 'moo' const lexer = compile({ larrow: '<', rarrow: '>', integer: /[0-9]+/ }); %} @lexer lexer expression -> %larrow %integer %rarrow {% parts => parts.map(p => p.value) %} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/warning-undefined-test.ne000066400000000000000000000000601376321042600300000ustar00rootroot00000000000000@include "warning-undefined-test2.ne" main -> x nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/warning-undefined-test2.ne000066400000000000000000000000071376321042600300630ustar00rootroot00000000000000y -> z nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/grammars/whitespace.ne000066400000000000000000000001471376321042600255610ustar00rootroot00000000000000@builtin "whitespace.ne" d -> a a -> b _ "&" | b b -> letter | "(" _ d _ ")" letter -> [a-z] nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/lint.test.js000066400000000000000000000025561376321042600235600ustar00rootroot00000000000000const expect = require("expect"); const lint = require("../lib/lint"); describe("Linter", function() { var mockGrammar, mockOpts, writeSpy; beforeEach(function () { mockGrammar = { rules: [], config: {} }; mockOpts = { out: { write() {} } }; writeSpy = expect.spyOn(mockOpts.out, "write"); }) it("runs without warnings on empty rules", function () { lint(mockGrammar, mockOpts); expect(writeSpy).toNotHaveBeenCalled(); }); it("warns about undefined symbol", function () { mockGrammar.rules = [ {name: "a", symbols: ["non-existent"]} ]; lint(mockGrammar, mockOpts); expect(writeSpy).toHaveBeenCalled(); }); it("doesn't warn about defined symbol", function () { mockGrammar.rules = [ {name: "a", symbols: []}, {name: "b", symbols: ["a"]} ]; lint(mockGrammar, mockOpts); expect(writeSpy).toNotHaveBeenCalled(); }); it("doesn't warn about duplicate symbol", function () { mockGrammar.rules = [ {name: "a", symbols: []}, {name: "a", symbols: []}, {name: "b", symbols: ["a"]} ]; lint(mockGrammar, mockOpts); expect(writeSpy).toNotHaveBeenCalled(); }); }) nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/nearleyc.test.js000066400000000000000000000233761376321042600244170ustar00rootroot00000000000000 const fs = require('fs'); const expect = require('expect'); const nearley = require('../lib/nearley'); const {compile, evalGrammar, parse, nearleyc} = require('./_shared'); const {sh, externalNearleyc, cleanup} = require('./external'); function read(filename) { return fs.readFileSync(filename, 'utf-8'); } function write(filename, contents) { fs.writeFileSync(filename, contents, 'utf-8'); } function prettyPrint(grammar) { return grammar.rules.map(g => g.toString()) } function typeScriptCheck(isStrict) { const {outPath, stdout, stderr} = externalNearleyc("grammars/typescript-test.ne", ".ts"); expect(stderr).toBe(""); expect(stdout).toBe(""); const spawnSync = sh(`tsc ${isStrict ? "--strict" : ""} ${outPath}.ts`); expect(spawnSync.stdout).toBe(""); // type errors get logged to stdout, not stderr const grammar = nearley.Grammar.fromCompiled(require(`./${outPath}.js`).default); expect(parse(grammar, "<123>")).toEqual([ [ '<', '123', '>' ] ]); } describe("bin/nearleyc", function() { after(cleanup) it('builds for ES5', function() { const {outPath, stdout, stderr} = externalNearleyc("grammars/parens.ne", '.js'); expect(stderr).toBe(""); expect(stdout).toBe(""); const grammar = nearley.Grammar.fromCompiled(require(`./${outPath}.js`)); }); it('builds for ES6+', function() { this.timeout(10000); // It takes a while to run babel! const {outPath, stdout, stderr} = externalNearleyc("grammars/esmodules-test.ne", '.js'); expect(stderr).toBe(""); expect(stdout).toBe(""); write(`test/${outPath}-parse.js`, `import {Grammar, Parser} from '../lib/nearley' import compiledGrammar from './${outPath}' const grammar = Grammar.fromCompiled(compiledGrammar) const parser = new Parser(grammar) parser.feed('<4>') console.log(JSON.stringify(parser.results))`); { const {stderr, stdout} = sh(`babel-node ${outPath}-parse.js --presets=env`); expect(stderr).toBe(""); expect(JSON.parse(stdout)).toEqual([ [ '<', '4', '>' ] ]); } }); it('builds for CoffeeScript', function() { const {outPath, stdout, stderr} = externalNearleyc("grammars/coffeescript-test.ne", ".coffee"); expect(stderr).toBe(""); expect(stdout).toBe(""); sh(`coffee -c ${outPath}.coffee`); const grammar = nearley.Grammar.fromCompiled(require(`./${outPath}.js`)); expect(parse(grammar, "ABCDEFZ12309")).toEqual([ [ 'ABCDEFZ', '12309' ] ]); }); it('builds for TypeScript', function() { this.timeout(10000); // It takes a while to run tsc! typeScriptCheck(false); }); it('builds for TypeScript with `--strict` with no type errors', function() { this.timeout(10000); typeScriptCheck(true); }); it('builds modules in folders', function() { const {outPath, stdout, stderr} = externalNearleyc("grammars/folder-test.ne", '.js'); expect(stderr).toBe(""); expect(stdout).toBe(""); const grammar = nearley.Grammar.fromCompiled(require(`./${outPath}.js`)); }); it('builds modules with multiple includes of the same file', function() { const {outPath, stdout, stderr} = externalNearleyc("grammars/multi-include-test.ne", '.js'); expect(stderr).toBe(""); expect(stdout).toBe(""); const grammar = nearley.Grammar.fromCompiled(require(`./${outPath}.js`)); }); it("warns about undefined symbol", function () { const {stdout, stderr} = externalNearleyc("grammars/warning-undefined-test.ne", '.js'); expect(stderr).toNotBe(""); expect(stdout).toBe(""); }); it("doesn't warn when used with the --quiet option", function () { const {stdout, stderr} = externalNearleyc("grammars/warning-undefined-test.ne", '.js', ['--quiet']); expect(stderr).toBe(""); expect(stdout).toBe(""); }); it("allows trailing comments without newline terminators", function () { const {stdout, stderr} = externalNearleyc("grammars/trailing-comment.ne", '.js'); expect(stderr).toBe(""); }); }) describe('nearleyc: example grammars', function() { it('calculator example', function() { const arith = compile(read("examples/calculator/arithmetic.ne")); expect(parse(arith, "ln (3 + 2*(8/e - sin(pi/5)))")).toEqual([ Math.log(3 + 2*(8/Math.exp(1) - Math.sin(Math.PI/5))) ]); }); it('csscolor example', function() { const cssc = compile(read("examples/csscolor.ne")); expect(parse(cssc, "#FF00FF")).toEqual([{r: 0xff, g: 0x00, b: 0xff}]); expect(parse(cssc, "#8A7")).toEqual([{r: 0x88, g: 0xaa, b: 0x77}]); expect(parse(cssc, "rgb(99,66,33)")).toEqual([{r: 99, g: 66, b: 33}]); expect(parse(cssc, "hsl(99,66,33)")).toEqual([{h: 99, s: 66, l: 33}]); expect(function() { parse(cssc, "#badcolor"); }).toThrow() }); it('exponential whitespace bug', function() { compile(read('test/grammars/indentation.ne')); }); it('percent bug', function() { compile(read('test/grammars/percent.ne')); }); it('json', function() { const grammar = compile(read("examples/json.ne")); expect(prettyPrint(grammar)).toEqual([ 'json$subexpression$1 → object', 'json$subexpression$1 → array', 'json → _ json$subexpression$1 _', 'object → "{" _ "}"', 'object$ebnf$1 → ', 'object$ebnf$1$subexpression$1 → _ "," _ pair', 'object$ebnf$1 → object$ebnf$1 object$ebnf$1$subexpression$1', 'object → "{" _ pair object$ebnf$1 _ "}"', 'array → "[" _ "]"', 'array$ebnf$1 → ', 'array$ebnf$1$subexpression$1 → _ "," _ value', 'array$ebnf$1 → array$ebnf$1 array$ebnf$1$subexpression$1', 'array → "[" _ value array$ebnf$1 _ "]"', 'value → object', 'value → array', 'value → number', 'value → string', 'value → "true"', 'value → "false"', 'value → "null"', 'number → %number', 'string → %string', 'pair → key _ ":" _ value', 'key → string', '_ → ', '_ → %space', ]) }); it('classic crontab', function() { // Try compiling the grammar const classicCrontab = compile(read("examples/classic_crontab.ne")); // Try parsing crontab file using the newly generated parser const crontabTest = read('test/grammars/classic_crontab.test'); const crontabResults = read('test/grammars/classic_crontab.results'); expect(parse(classicCrontab, crontabTest)).toEqual([JSON.parse(crontabResults)]); }); it('case-insensitive strings', function() { const caseinsensitive = compile(read("test/grammars/caseinsensitive.ne")); const passCases = [ "Les rêves des amoureux sont comme le bon vin!", "LES RÊVES DES AMOUREUX SONT COMME LE BON VIN!", "leS RêVeS DeS AmOuReUx sOnT CoMmE Le bOn vIn!", "LEs rÊvEs dEs aMoUrEuX SoNt cOmMe lE BoN ViN!" ]; passCases.forEach(function(c) { const p = parse(caseinsensitive, c); expect(p.length).toBe(1) expect(p[0].toUpperCase()).toBe(passCases[1]); }); }); it('scannerless nearley grammar', function() { compile(read("test/grammars/scannerless-nearley.ne")); }) }); describe('nearleyc: builtins', () => { it('generate includes id', () => { const source = nearleyc(` X -> "hat" {% id %} `) expect(source.indexOf('function id(')).toNotBe(-1) const g = evalGrammar(source) expect(parse(g, "hat")).toEqual(["hat"]) }) // TODO fix docs? it.skip('nuller', () => { //@builtin "postprocessors.ne" const source = nearleyc(` ws -> " " {% nuller %} `) const g = evalGrammar(source) expect(parse(g, " ")).toEqual([null]) }) }) describe('nearleyc: macros', () => { it('seems to work', () => { // Matches "'Hello?' 'Hello?' 'Hello?'" const grammar = compile(` matchThree[X] -> $X " " $X " " $X inQuotes[X] -> "'" $X "'" main -> matchThree[inQuotes["Hello?"]] `); expect(prettyPrint(grammar)).toEqual([ 'main$macrocall$2$macrocall$2$string$1 → "H" "e" "l" "l" "o" "?"', 'main$macrocall$2$macrocall$2 → main$macrocall$2$macrocall$2$string$1', 'main$macrocall$2$macrocall$1 → "\'" main$macrocall$2$macrocall$2 "\'"', 'main$macrocall$2 → main$macrocall$2$macrocall$1', 'main$macrocall$1 → main$macrocall$2 " " main$macrocall$2 " " main$macrocall$2', 'main → main$macrocall$1', ]); }); it('must be defined before use', () => { expect(() => compile(` main -> matchThree[inQuotes["Hello?"]] matchThree[X] -> $X " " $X " " $X inQuotes[X] -> "'" $X "'" `)).toThrow(); }); it('compiles a simple macro from external file', function() { const grammar = compile(read("test/grammars/macro-test.ne")); const passCases = [ "a", "b", "a/b", "b/a", ]; passCases.forEach(function(c) { const p = parse(grammar, c); expect(p.length).toBe(1); expect(p[0]).toBe("a/b"); }); expect(() => parse(grammar, "ab")).toThrow(); }); }) nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/parser.test.js000066400000000000000000000206161376321042600241030ustar00rootroot00000000000000 const fs = require('fs'); const expect = require('expect'); const nearley = require('../lib/nearley'); const {compile, parse} = require('./_shared'); function read(filename) { return fs.readFileSync(filename, 'utf-8'); } describe('Parser: API', function() { let testGrammar = compile(` y -> x:+ x -> [a-z0-9] | "\\n" `) let testGrammar2 = compile(` input -> ws a ws a -> "a" ws -> null ws -> wsc ws wsc -> " "`) let testGrammar3 = compile(` input -> ws a ws a -> "a" ws -> [ ]:*`) let jsonGrammar = compile(read("examples/json.ne")) it('shows line number in errors', function() { expect(() => parse(testGrammar, 'abc\n12!')).toThrow( /line 2 col 3/ ) }) it('shows token index in errors', function() { expect(() => parse(testGrammar, ['1', '2', '!'])).toThrow( /at index 2/ ) }) it('shows user friend error with state stack info', function() { const expectedError = [ "Syntax error at line 2 col 3:", "", "1 abc", "2 12!", " ^", "", "Unexpected \"!\". Instead, I was expecting to see one of the following:", "", "A character matching /[a-z0-9]/ based on:", " x → � /[a-z0-9]/", " y$ebnf$1 → y$ebnf$1 � x", " y → � y$ebnf$1", "A \"\\n\" based on:", " x → � \"\\n\"", " y$ebnf$1 → y$ebnf$1 � x", " y → � y$ebnf$1", "" ].join("\n"); expect(() => parse(testGrammar, 'abc\n12!')).toThrow(expectedError); }); it('displays user friendly error even on lexer errors', function() { expect(() => parse(jsonGrammar, 'abc')) .toThrow(/\(lexer error\).*I was expecting to see one of the following:/); }); it('displays current parser state if no more token expected', function() { var grammar = compile(`input -> "abc"`); var expectedError = [ "Syntax error at line 1 col 4:", "", "1 abcd", " ^", "", "Unexpected \"d\". I did not expect any more input. Here is the state of my parse table:", "", " input$string$1 → \"a\" \"b\" \"c\" � ", " input → input$string$1 � ", "" ].join("\n"); expect(() => parse(grammar, "abcd")).toThrow(expectedError); }); it('collapes identical consecutive lines', function() { expect(() => parse(testGrammar2, ` b`)) .toThrow(/ws → wsc � ws\n\s+\^ 3 more lines identical to this/) }); it('does not infinitely recurse on self-referential states', function() { // Would throw maximum call stack size exceeded // if infinite recursion expect(() => parse(testGrammar3, ` b`)) .toThrow(/Unexpected \"b\"/); }); var tosh = compile(read("examples/tosh.ne")); it('can save state', function() { let first = "say 'hello'"; let second = " for 2 secs"; let p = new nearley.Parser(tosh, { keepHistory: true }); p.feed(first); expect(p.current).toBe(11) expect(p.table.length).toBe(12) var col = p.save(); expect(col.index).toBe(11) expect(col.lexerState.col).toBe(first.length) }); it('can rewind', function() { let first = "say 'hello'"; let second = " for 2 secs"; let p = new nearley.Parser(tosh, { keepHistory: true }); p.feed(first); expect(p.current).toBe(11) expect(p.table.length).toBe(12) p.feed(second); p.rewind(first.length); expect(p.current).toBe(11) expect(p.table.length).toBe(12) expect(p.results).toEqual([['say:', 'hello']]); }); it("won't rewind without `keepHistory` option", function() { let p = new nearley.Parser(tosh, {}); expect(() => p.rewind()).toThrow() }) it('restores line numbers', function() { let p = new nearley.Parser(testGrammar); p.feed('abc\n') expect(p.save().lexerState.line).toBe(2) p.feed('123\n') var col = p.save(); expect(col.lexerState.line).toBe(3) p.feed('q') p.restore(col); expect(p.lexer.line).toBe(3) p.feed('z') }); it('restores column number', function() { let p = new nearley.Parser(testGrammar); p.feed('foo\nbar') var col = p.save(); expect(col.lexerState.line).toBe(2) expect(col.lexerState.col).toBe(3) p.feed('123'); expect(p.lexerState.col).toBe(6) p.restore(col); expect(p.lexerState.line).toBe(2) expect(p.lexerState.col).toBe(3) p.feed('456') expect(p.lexerState.col).toBe(6) }); // TODO: moo save/restore }); describe('Parser: examples', () => { it('nullable whitespace bug', function() { var wsb = compile(read("test/grammars/whitespace.ne")); expect(parse(wsb, "(x)")).toEqual( [ [ [ [ '(', null, [ [ [ [ 'x' ] ] ] ], null, ')' ] ] ] ]); }); const parentheses = compile(read("examples/parentheses.ne")); it('parentheses', () => { var passCases = [ '()', '[(){}<>]', '[(((<>)()({})())(()())(())[])]', '<<[([])]>([(<>[]{}{}<>())[{}[][]{}{}[]<>[]{}<>{}<>[]<>{}()][[][][]()()()]({})<[]>{(){}()<>}(<>[])]())({})>' ]; for (let i in passCases) { expect(parse(parentheses, passCases[i])).toEqual([true]); } var failCases = [ ' ', '[}', '[(){}><]', '(((())))(()))' ]; for (let i in failCases) { expect(function() { parse(parentheses, failCases[i]); }).toThrow() } // These are invalid inputs but the parser will not complain expect(parse(parentheses, '')).toEqual([]); expect(parse(parentheses, '((((())))(())()')).toEqual([]); }); it('tokens', function() { var tokc = compile(read("examples/token.ne")); expect(parse(tokc, [123, 456, " ", 789])).toEqual([ [123, [ [ 456, " ", 789 ] ]] ]); }); it('tokens 2', () => { var tokc = compile(read("examples/token-2.ne")); expect(() => parse(tokc, ["print", "blah", 12, ";", ";"])).toThrow(/A token matching x \=\> Number\.isInteger\(x\)/); }) const json = compile(read("examples/json.ne")); it('json', () => { const test1 = '{ "a" : true, "b" : "䕧⡱a\\\\\\"b\\u4567\\u2871䕧⡱\\t\\r\\f\\b\\n", "c" : null, "d" : [null, true, false, null] }\n' expect(parse(json, test1)).toEqual([JSON.parse(test1)]) const test2 = '{ "a" : true, "b" : "䕧⡱a\\\\\\"b\\u4567\\u2871䕧⡱\\t\\r\\f\\b\\n\\u0010\\u001f\\u005b\\u005c\\u005d", "c" : null, "d" : [null, true, false, -0.2345E+10] }\n' expect(parse(json, test2)).toEqual([JSON.parse(test2)]) }); it('tosh', () => { var tosh = compile(read("examples/tosh.ne")); expect(parse(tosh, "set foo to 2 * e^ of ( foo * -0.05 + 0.5) * (1 - e ^ of (foo * -0.05 + 0.5))")) .toEqual([["setVar:to:","foo",["*",["*",2,["computeFunction:of:","e ^",["+",["*",["readVariable","foo"],-0.05],0.5]]],["-",1,["computeFunction:of:","e ^",["+",["*",["readVariable","foo"],-0.05],0.5]]]]]]); }) it('fun-lang memory test (shouldn\'t use excessive memory for error reporting)', () => { var fun = compile(read("examples/fun-lang.ne")); expect(() => parse(fun, [ "fun count_smileys(faces) [", "return count(filter(fun (face) [", " has_eyes = face[0] == \":\" #", "], faces))" ].join("\n"))).toThrow(/Unexpected comment token/) }) it('should give accurate line and col counts in error reporting', () => { var nearley = compile(read("lib/nearley-language-bootstrapped.ne")); expect(() => parse(nearley, [ "", "", "@{%", "", "%}", "", "rule1 -> `", "", "", "`", "rule2 -> abc", " {%", " ([first]) =>", " first", " %} ]", "" ].join("\n"))).toThrow(/line 15 col 9/) }) }) nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/test/profile.js000077500000000000000000000042111376321042600232650ustar00rootroot00000000000000var nearley = require('../lib/nearley.js'); var parserGrammar = require('./grammars/parens.js'); function nspace(n) { var out = ""; for (var i=0; i \"(\" p \")\" | [a-z]"); console.log("An input of size n is 2n+1 characters long, and of the form (((...a...)))."); console.log(); console.log("Running time tests."); console.log("-------------------"); console.log("Each star corresponds to the time taken to parse an input of that size with a recursive grammar."); console.log(); console.log("SCALE"); console.log(nspace(20) + "0.25s"); console.log(nspace(40) + "0.50s"); console.log(nspace(60) + "0.75s"); console.log(nspace(80) + "1.00s"); for (var i=0; i<5e4; i+=2e3) { if (i%1e4 === 0) { console.log(i); } profile(i, "TIME"); } console.log("Running memory tests."); console.log("-------------------"); console.log("Each star corresponds to the memory taken to parse an input of that size with a recursive grammar."); console.log("Occasional outliers may be caused by gc runs. Nearley profiling doesn't explicitly call the gc before each run."); console.log(); console.log("SCALE"); console.log(nspace(20) + "025MB"); console.log(nspace(40) + "050MB"); console.log(nspace(60) + "075MB"); console.log(nspace(80) + "100MB"); for (var i=0; i<5e4; i+=2e3) { if (i%1e4 === 0) { console.log(i); } profile(i, "MEMO"); } nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/000077500000000000000000000000001376321042600211335ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/csscolor-railroad.html000066400000000000000000000030511376321042600254420ustar00rootroot00000000000000

hexdigit


/[a-fA-F0-9]/ nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/logo/000077500000000000000000000000001376321042600220735ustar00rootroot00000000000000nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/logo/favicon.png000066400000000000000000000007171376321042600242330ustar00rootroot00000000000000‰PNG  IHDRóÿagAMA±� üa†IDAT8�S±JA�Ý3x!¤Ñ2 ½ØYØLk¹”1DÑB? ŸàØ4Ä4‹µ)îÄ^!¥iB¸ˆ$ã¼[—»‰¢ Ëíî›÷vf̂«2‘j(Åù–,ÌfõHÄ]cNÃ4E¹M³yS�¦ ‚À‘×/ô+ðñx¶I4­ Ö,,½f§s4 |“C¥èÅ÷WÏ{½Ãw€ÙQ¯ß®O&—Ì´%"e'BAÐ6µZû.KX¶G,8ÀWlÍ\ö};KŒçÏs¢‘eMžÁÕRE5/J[¦0¯ˆ�”ÅqÉ6}R �nkMó7%;IuOˆ÷|�œbåõc®¥|>÷6Ú]š,©?¥cìR%)añø‰œfˆ¢ès#}¸Œlûa#­7x á°ÙŒö�À2²Ã“ï´ .2èÊlÁõ@iÌn.çídkNˆD08–+ˆÜú#AÞ–wÂaÌú̘ãaúF·ÎZç±1°È>&xÃýÞ_ÜøësþÉõ΢ã TIEND®B`‚nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/logo/nearley-logo.sketch000066400000000000000000002000001376321042600256630ustar00rootroot00000000000000SQLite format 3 @ .@ mµmFetablepayloadpayloadCREATE TABLE payload (name text, value blob)IgtablemetadatametadataCREATE TABLE metadata (name text, value blob) š¹g,׆< ¢_O �build streamtyped�è„@„„„NSNumber„„NSValue„„NSObject…„*„„q—‚­�†A !tappVersion streamtyped�è„@„„„NSString„„NSObject…„+42†e #�8saveHistory streamtyped�è„@„„„NSArray„„NSObject…„i’„„„NSString”„+NONAPPSTORE.36781††‚0 „Vcreated streamtyped�è„@„„„ NSDictionary„„NSObject…„i’„„„NSString”„+app†’„–—com.bohemiancoding.sketch3†’„–—commit†’„–—(566dab740f05650c87722a04bbcb154884097f92†’„–—build†’„„„NSNumber„„NSValue”„*„„q›‚­�†’„–— appVersion†’„–—42†’„–—variant†’„–— NONAPPSTORE†’„–—version†’„œšž›W††H�variant streamtyped�è„@„„„NSString„„NSObject…„+ NONAPPSTORE†O�autosaved streamtyped�è„@„„„NSNumber„„NSValue„„NSObject…„*„„c—†S�$app streamtyped�è„@„„„NSString„„NSObject…„+com.bohemiancoding.sketch3†9nfonts streamtyped�è„@„„„NSArray„„NSObject…„i†P�length streamtyped�è„@„„„NSNumber„„NSValue„„NSObject…„*„„q—‚Φ†M�version streamtyped�è„@„„„NSNumber„„NSValue„„NSObject…„*„„q—W†ƒ/†pagesAndArtboards streamtyped�è„@„„„ NSDictionary„„NSObject…„i’„„„NSString”„+$FC4C1A04-C4BE-4937-A55C-FC8C592CFA77†’„“•’„–—name†’„–—Page 1†’„–— artboards†’„„„NSMutableDictionary“•’„–—$DBFB1402-D4FF-4188-9378-7189ECFFACDB†’„“•’˜’„–—nearley-purple††’„–—$D606694F-A175-4209-BCCC-6FF7C10EF05C†’„“•’˜’„–—favicon††’„–—$A00D5557-3D0F-4284-8752-8F22FDA90581†’„“•’˜’„–—nearley†††††d�@commit streamtyped�è„@„„„NSString„„NSObject…„+(566dab740f05650c87722a04bbcb154884097f92† ¿ ¿ŠK!•UIMetadatabplist00Ô…†X$versionX$objectsY$archiverT$top† ¯" !"#$%&'/012789@DLMNOPX`hijks{ƒU$nullÓ WNS.keysZNS.objectsV$class¨ €€€€€€€€ ¨€ €€€€€€€ €!_$41E0775B-3BED-4DC6-9FDF-848B1376EA2C_$9CE2F54A-1BA9-4568-BA96-1D119DC90F01_$DFA5B02B-58AC-4BA6-A7F1-976819366BAD_$E89348DD-D157-4F5E-A149-B771A088B29A_$FC4C1A04-C4BE-4937-A55C-FC8C592CFA77_$68233D02-26C1-4DF3-8758-334C21BC2F56_$F2458A3D-0154-48DC-AB2F-61CCAFB2D013_$FC8B8C04-C9F2-4A9A-B043-C6D9A7DA9B1AÓ (+.¢)*€ € ¢,-€ €€^pageListHeight_exportableLayerSelection#¿ðÒ 36¢45€€€_$A00D5557-3D0F-4284-8752-8F22FDA90581_$D606694F-A175-4209-BCCC-6FF7C10EF05CÒ:;<=Z$classnameX$classes^NSMutableArray£<>?WNSArrayXNSObjectÒ:;AB_NSMutableDictionary£AC?\NSDictionaryÓ EH.¢FG€€¢IJ€€€\scrollOriginYzoomValueV{0, 0}#?ðÓ QT.¢FG€€¢IJ€€€Ó Y\.¢FG€€¢IJ€€€Ó ad.¢bG€€¢ef€€€\scrollOriginZ{329, 274}#?éÖæËÝÓ lo.¢FG€€¢IJ€€€Ó tw.¢FG€€¢IJ€€€Ó |.¢FG€€¢IJ€€€Ò:;C„¢C?_NSKeyedArchiverчˆTroot€#-27\biq|ƒŒŽ�’”–˜šœ¥§©«­¯±³µ·Þ,Sz¡Èïöùûý09>ACEGn•𥮽ÁÉÒ×íñþ  ",3<CFHJMOQSZ]_adfhjqtvx{}�Ž™¢©¬®°³µ·¹ÀÃÅÇÊÌÎÐ×ÚÜÞáãåçìï ‰ ‚ÍW…›(mainbplist00Ô{|X$versionX$objectsY$archiverT$top† ¯%&24;=@BFMOQX\^gjluxz…‰·¸ÁÃÊÓÚÛäëò%&'.3489?@JTU^ajt{†‰“˜£²ÉÊÏÑØÙâçèïøûÿ %&+-017;IJKLSZ[\]dmz�Ž“•𛣍©­°´¶¹¾ÃÆÖ×ÜÞáåéðñòóúûüý&+,0379<AFIYZ_adhlstuv}~€“”™› ¡©®¯³¶º¼¿ÄÉÌÜÝâäéíñøùúû %&.348;?ADINQabgilpt{|}~…†‡ˆ›œ¡£¨©±¶·»¾ÂÄÇÌÑÔäåêìïó÷þÿ   #%*+056:MNSUZ[chimptvy~ƒ†–—œž¡¥ª±²¹º»¼ÃÄרÝßãäìñòöùýÿ  %'*.29:;<CDEFQdejlrsz€ƒ‡‰Œ“˜¤¥©¬¯¶¹¼½ÄÇÛÜáãæêñù !(16=@Mghmrw{ƒ„‹��“˜� ¥ª¹ÌÍÒÔ×Þãäèëïô÷ !"#$+,-.ABGILSXY]`dil|}‚„‡‹�–—˜™ ¡¢£¶·¼¾ÁÈÍÎÒÕÙÞáñò÷ùü       + , 1 3 8 ? D E I L P U X h i n p u y } „ … † ‡ Ž � � ‘ ¤ ¥ ª ¬ ° · ¼ ½ Á Ä È Í Ð à á æ è ë ï ó ú û ü ý       " & - 2 3 7 : > C F V W \ ^ a e i p q r s z { | } � � • — š Ÿ ¤ ¥ © ¼ ½ Â Ä Ç Ï Ô Õ Ù Ü à å è í ò õ      ' ( ) * 1 D E J L O W \ ] a d h m p u z } � Ž “ • ™ � ¡ ¨ © ª « ² ³ ´ Ç È Í Ï Ò Ø Ý Þ á å ê í ÿ      % - 5 7 : = @ Z [ ` c g l m t y z } ‚ ‡ Š � ” ™ ¬ ­ ² ´ » Ã È É Í Ð Ô Ù Ü á æ é ù ú ÿ         2 3 8 : @ H M N R U Y ^ a f k n ~  „ † ‹ � ” › ¢ £ ¤ ¥ ¬ ¿ À Å Ç Ê Ñ Ö × Ú Þ ã æ ì ñ ÷ ø ü ÿ  $&)-4<=EMUVX[^adgtU$nullÞ !"[layerStylesVassets_enableSliceInteractionUpages_currentPageIndexV$class[cloudUserID_layerTextStyles_enableLayerInteraction\cloudShareID[do_objectID\layerSymbols]cloudShareURLXuserInfo€€ €�€€ €€€€€_$41E0775B-3BED-4DC6-9FDF-848B1376EA2CÖ'()*+,-./0YgradientsVcolors_imageCollectionVimages]exportPresets€ €€€€ €Ñ3€Ò5678Z$classnameX$classes^NSMutableArray£79:WNSArrayXNSObjectÑ3€Ò*>?€€ ÑA€ Ò56CD_NSMutableDictionary£CE:\NSDictionaryÒ56GH_MSImmutableImageCollection¥IJKL:_MSImmutableImageCollection__MSImmutableImageCollection_MSImmutableModelObject_MSModelObjectCommonÑN€ Ò569P¢9:Ò56RS_MSImmutableAssetCollection¥TUVW:_MSImmutableAssetCollection__MSImmutableAssetCollection_MSImmutableModelObject_MSModelObjectCommonÒYZ[Wobjects€€Ñ3€Ò56_`_MSImmutableSharedStyleContainer§abcdef:_MSImmutableSharedStyleContainer_ _MSImmutableSharedStyleContainer_ MSImmutableSharedObjectContainer_!_MSImmutableSharedObjectContainer_MSImmutableModelObject_MSModelObjectCommonÒYhi€€Ñ3€Ò56mn_MSImmutableSymbolContainer§opqrst:_MSImmutableSymbolContainer__MSImmutableSymbolContainer_ MSImmutableSharedObjectContainer_!_MSImmutableSharedObjectContainer_MSImmutableModelObject_MSModelObjectCommonÒYvw€€Ñ3€Ò56{|_#MSImmutableSharedTextStyleContainer©}~€�‚ƒ„:_#MSImmutableSharedTextStyleContainer_$_MSImmutableSharedTextStyleContainer_MSImmutableSharedStyleContainer_ _MSImmutableSharedStyleContainer_ MSImmutableSharedObjectContainer_!_MSImmutableSharedObjectContainer_MSImmutableModelObject_MSModelObjectCommonÒ†3ˆ[NS.object.0€€ßŠ‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ¡¢£¤¦§¨ª«¡¡®°¡¡_originalObjectID_isFlippedHorizontalUstyleXrotationUframe_hasClickThrough_layerListExpandedType]exportOptions_horizontalRulerData_includeInCloudUpload_verticalRulerData_isFlippedVertical\resizingType[nameIsFixedVlayersYisVisibleTnameTgridXisLockedVlayout_shouldBreakMaskChain^sharedObjectID€€ #€ €€� � � €" €€€€€_$FC4C1A04-C4BE-4937-A55C-FC8C592CFA77Õ¹º»¼¡0¿ÀZshouldTrim_includedLayerIds\layerOptions]exportFormats€ €€Ñ3€Ò56ÄÅ_MSImmutableExportOptions¥ÆÇÈÉ:_MSImmutableExportOptions__MSImmutableExportOptions_MSImmutableModelObject_MSModelObjectCommonÖËÌÍÎϣСÒÒ£Qy_constrainProportionsUwidthVheightQx€#@rÀÒ56ÔÕ_MSImmutableRect¥ÖרÙ:_MSImmutableRect__MSImmutableRect_MSImmutableModelObject_MSModelObjectCommonVPage 1ÖÜŸÝÞßàâ_startDecorationTypeZmiterLimitYtextStyle_endDecorationType€!€ €Ò56åæ_MSImmutableStyle¥çèéê:_MSImmutableStyle__MSImmutableStyle_MSImmutableModelObject_MSModelObjectCommonÔì†í3ïðñ[NS.object.1[NS.object.2€�~€#�˜ßŠ‹Œ�Ž��‘ó’ô“”•–—˜™š›œ�žŸõ¡ø£ùûüýÿ¡ ¡¡¡_hasBackgroundColor_backgroundColor_includeBackgroundColorInExport€€1€/ €%€$ �z�w �|�} €> €0€�x€€_$A00D5557-3D0F-4284-8752-8F22FDA90581Õ¹º»¼¡0¿€ €€&Ôì†í3€€+€'€-ך !£"#$\absoluteSizeZfileFormat\namingScheme_visibleScaleTypeUscale€*€(€)#?àSpngPÒ56()_MSImmutableExportFormat¥*+,-:_MSImmutableExportFormat__MSImmutableExportFormat_MSImmutableModelObject_MSModelObjectCommonך !£0#2€*€,€)#@Ssvgך !£"72€*€(€.S@4xÖËÌÍÎÏ:С=>£#@H€#@p#@dWnearleyÙAÜŸßBCÞÝDàGHâWbordersUfillsTblur€5€€!€:€2€ÖKLMNOPQ£¡SVradius[motionAngleYisEnabledTtypeVcenter#@€4€3Z{0.5, 0.5}Ò56VW_MSImmutableStyleBlur§XYZ[\]:_MSImmutableStyleBlur__MSImmutableStyleBlur_MSImmutableStylePart__MSImmutableStylePart_MSImmutableModelObject_MSModelObjectCommonÒ†3`€€6ÖbcMdefgiYthicknessXfillTypeXpositionUcolor#?à€9 €7ÕklmnopqrsSredUalphaTblueUgreen€8#?âñ©ûçl‹#?ð#?âñ©ûçl‹#?âñ©ûçl‹Ò56uv_MSImmutableColor¥wxyz:_MSImmutableColor__MSImmutableColor_MSImmutableModelObject_MSModelObjectCommonÒ56|}_MSImmutableStyleBorder©~€�‚ƒ„…:_MSImmutableStyleBorder__MSImmutableStyleBorder_MSImmutableStyleBasicFill__MSImmutableStyleBasicFill_MSImmutableStylePart__MSImmutableStylePart_MSImmutableModelObject_MSModelObjectCommonÒ†3ˆ€€;ÙeŠc‹Œ�ŽM��£qUimage^noiseIntensity_patternFillType_patternTileScaleZnoiseIndex€=€<€ Õklmno•q–—€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò56™š_MSImmutableStyleFill©›œ�žŸ ¡¢:_MSImmutableStyleFill__MSImmutableStyleFill_MSImmutableStyleBasicFill__MSImmutableStyleBasicFill_MSImmutableStylePart__MSImmutableStylePart_MSImmutableModelObject_MSModelObjectCommonÙí¤¥ì¦§†¨©ª3¬­®¯°±[NS.object.7[NS.object.4[NS.object.6[NS.object.3[NS.object.5€…�P€€Å€e�€¥€?€åߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡¸£¹¡»¼½¾¡Àá¡¡[windingRule_clippingMaskMode_hasClippingMask€€E€C€A€@€d€P €D€€_$FE6FF485-19EE-426E-BFB1-992538EFCFCDÕ¹º»¼¡0¿Î€ €€BÑ3€ÖËÌÍÎÏÒСÕÖ×#@S€#@J#@ #@g€Zright lineÚAߟÜÚBCÞÝÛàÞßàâ]borderOptions€J€€!€H€M€F€ÖKLMNOãQ£¡æ#@@€4€GZ{0.5, 0.5}ÕéêMëìû¡0]lineJoinStyle\lineCapStyle[dashPattern€I€ Ò56ðñ_MSImmutableStyleBorderOptions§òóôõö÷:_MSImmutableStyleBorderOptions__MSImmutableStyleBorderOptions_MSImmutableStylePart__MSImmutableStylePart_MSImmutableModelObject_MSModelObjectCommonÒ†3ú€€KÖbcMdeÖgþ€9 €LÕklmno£q££€8Ò†3€€NÙeŠc‹Œ�ŽM�£q¡€=€O€Õklmno q  €8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3€€Qßž�‘Ž•™Š–‹œ�—𡣡¡¡!¡#_booleanOperationVeditedTpath€S€U €ÿÿÿÿÿÿÿÿ €W€c€R€V€_$2F36BBC7-3BAB-4227-B91C-5E615E21F247Õ¹º»¼¡0¿*€ €€TÑ3€ÖËÌÍÎϣСÕÖ£€TPathÓ234¡6VpointsXisClosed€X€bÓì†83:€^€€YØ<=>?@AB¡½DEF£G¡\hasCurveFromYcurveModeUpointYcurveFrom\cornerRadiusWcurveToZhasCurveTo€]€\€Z€[_({-3.715004485310605, 4.9166666666666661}_({-3.715004485310605, 4.9166666666666661}X{0, 0.5}Ò56MN_MSImmutableCurvePoint¥OPQR:_MSImmutableCurvePoint__MSImmutableCurvePoint_MSImmutableModelObject_MSModelObjectCommonØ<=>?@AB¡½DVW£X¡€]€a€_€`_){-3.7000246692083416, 14.249999999999996}_){-3.7000246692083416, 14.249999999999996}X{1, 0.5}Ò56^__MSImmutableShapePath¥`abc:_MSImmutableShapePath__MSImmutableShapePath_MSImmutableModelObject_MSModelObjectCommonÒ56ef_MSImmutableShapePathLayer§ghijkl:_MSImmutableShapePathLayer__MSImmutableShapePathLayer_MSImmutableLayer__MSImmutableLayer_MSImmutableModelObject_MSModelObjectCommonÒ56no_MSImmutableShapeGroup«pqrstuvwxy:_MSImmutableShapeGroup__MSImmutableShapeGroup_MSImmutableLayerGroup__MSImmutableLayerGroup_MSImmutableStyledLayer__MSImmutableStyledLayer_MSImmutableLayer__MSImmutableLayer_MSImmutableModelObject_MSModelObjectCommonߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡}£~¡€�½¾¡„‡¡¡¡€€k€i€g€f€d€u €j€€_$DAC3DCCA-DB91-4AE9-95A0-ECFAFB8C85EDÕ¹º»¼¡0¿’€ €€hÑ3€ÖËÌÍÎÏÒС˜Ö™€#@H€#@0Yleft lineÚAߟÜÚBCÞÝœàŸ ¡â€o€€!€n€r€l€ÖKLMNO¤Q£¡§#@@€4€mZ{0.5, 0.5}ÕéêMëìû¡0€I€ Ò†3¯€€pÖbcMdeÖg³€9 €qÕklmno£q££€8Ò†3¸€€sÙeŠc‹Œ�ŽM�»£q¡€=€t€ÕklmnoÀqÁ€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3Å€€vßž�‘Ž•™Š–‹œ�—š¡£ÈɡΡ¡Ò¡#€x€z € €{€c€w€V€_$3F6D8E6C-5612-4747-9D7D-382CBDEDE725Õ¹º»¼¡0¿Û€ €€yÑ3€ÖËÌÍÎϣС˜Ö£€Ó23â¡6€|€bÓì†æ3è€�€€}Ø<=>?@AB¡½Dìí£î¡€]€€€~€_*{-0.41862043297562168, 9.8333333333333286}_*{-0.41862043297562168, 9.8333333333333286}X{0, 0.5}Ø<=>?@AB¡½Dö÷£ø¡€]€„€‚€ƒ_{-0.40259041002419205, 28.5}_{-0.40259041002419205, 28.5}_{0.99033806835804161, 0.5}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡£¡½¾¡ ¡¡¡€€‹€‰€‡€†€d€• €Š€€_$804BAC6D-4B23-4065-B5AD-60331183FC79Õ¹º»¼¡0¿€ €€ˆÑ3€ÖËÌÍÎÏÕС2€#@L#@?Xleft endÚAߟÜÚBCÞÝà"#$â€�€€!€Ž€’€Œ€ÖKLMNO'Q£¡*#@€4€�Z{0.5, 0.5}ÕéêMë콡0€I€ Ò†32€€�ÖbcMdeÖg6€9 €‘Õklmno£q££€8Ò†3;€€“ÙeŠc‹Œ�ŽM�>£½q¡€=€”€ÕklmnoCqDE€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3H€€–ßž�‘Ž•™Š–‹œ�—š¡£KL¡Q¡¡U¡#€˜€š € €›€c€—€V€_$4E902C2B-F0B3-4434-9F5F-C986E70D15E0Õ¹º»¼¡0¿^€ €€™Ñ3€ÖËÌÍÎϣС2£€Ó23e¡6€œ€bÓì†i3k€¡€€�Ø<=>?@AB¡½Dop£q¡€]€ €ž€Ÿ_{-19.5, 0.21344866071428573}_{-19.5, 0.21344866071428573}X{0.5, 0}Ø<=>?@AB¡½Dyz£{¡€]€¤€¢€£_{-19.5, 0.87636622643108242}_{-19.5, 0.87636622643108242}X{0.5, 1}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ƒ£„¡†‡½¾¡Š�¡¡¡€€«€©€§€¦€d€µ €ª€€_$BC1E7926-F05E-442E-92FB-7983BE2F7859Õ¹º»¼¡0¿˜€ €€¨Ñ3€ÖËÌÍÎÏÕСžŸ€#@#@.]left end copyÚAߟÜÚBCÞݢ०§ €€!€®€²€¬€ÖKLMNOªQ£¡­#@€4€­Z{0.5, 0.5}ÕéêMë콡0€I€ Ò†3µ€€°ÖbcMdeÖg¹€9 €±Õklmno£q££€8Ò†3¾€€³ÙeŠc‹Œ�ŽM�Á£½q¡€=€´€ÕklmnoÆqÇÈ€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3Ë€€¶ßž�‘Ž•™Š–‹œ�—š¡£Îϡԡ¡Ø¡#€¸€º € €»€c€·€V€_$E1B65A42-996C-487C-A589-E0D56AC1D2F2Õ¹º»¼¡0¿á€ €€¹Ñ3€ÖËÌÍÎϣСçè€#@#¼àÓ23ê¡6€¼€bÓì†î3ð€Á€€½Ø<=>?@AB¡½Dôõ£ö¡€]€À€¾€¿_){-19.499999999999964, 0.2491629464285714}_){-19.499999999999964, 0.2491629464285714}_{0.49999999999999911, 0}Ø<=>?@AB¡½Dþÿ£¡€]€Ä€Â€Ã_*{-19.499999999999964, 0.91208051214536812}_*{-19.499999999999964, 0.91208051214536812}_{0.50000000000000089, 1}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡£ ¡  ½¾¡¡¡¡€€Ë€É€Ç€Æ€d€Õ €Ê€€_$7AE4361A-0E0F-44CA-9EB1-3BCB0AFD18C0Õ¹º»¼¡0¿€ €€ÈÑ3€ÖËÌÍÎÏ!С2$#@J€#@mà_left end copy 3ÚAߟÜÚBCÞÝ'à*+,â€Ï€€!€Î€Ò€Ì€ÖKLMNO/Q£¡2#@€4€ÍZ{0.5, 0.5}ÕéêMë콡0€I€ Ò†3:€€ÐÖbcMdeÖg>€9 €ÑÕklmno£q££€8Ò†3C€€ÓÙeŠc‹Œ�ŽM�F£½q¡€=€Ô€ÕklmnoKqLM€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3P€€Ößž�‘Ž•™Š–‹œ�—š¡£ST¡Y¡¡]¡#€Ø€Ú € €Û€c€×€V€_$47E1C37C-146B-4D82-9967-207721AC7934Õ¹º»¼¡0¿f€ €€ÙÑ3€ÖËÌÍÎϣС2£€Ó23m¡6€Ü€bÓì†q3s€á€€ÝØ<=>?@AB¡½Dwx£y¡€]€à€Þ€ß_{-19.5, 0.20010811941964296}_{-19.5, 0.20010811941964296}X{0.5, 0}Ø<=>?@AB¡½D�‚£ƒ¡€]€ä€â€ã_{-19.5, 0.82159333727914019}_{-19.5, 0.82159333727914019}_{0.5, 0.99999999999999989}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡‹£Œ¡Ž�½¾¡’•¡¡¡€€ë€é€ç€æ€d€õ €ê€€_$C009659C-FC6A-4F34-856F-8E66FE35695DÕ¹º»¼¡0¿ € €€èÑ3€ÖËÌÍÎϤС2§#@J€#@kà_left end copy 2ÚAߟÜÚBCÞݪ୮¯â€ï€€!€î€ò€ì€ÖKLMNO²Q£¡µ#@€4€íZ{0.5, 0.5}ÕéêMë콡0€I€ Ò†3½€€ðÖbcMdeÖgÁ€9 €ñÕklmno£q££€8Ò†3Æ€€óÙeŠc‹Œ�ŽM�É£½q¡€=€ô€ÕklmnoÎqÏЀ8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3Ó€€ößž�‘Ž•™Š–‹œ�—š¡£ÖסÜ¡¡à¡#€ø€ú € €û€c€÷€V€_$830A5073-F076-4FB5-A8FA-E172CB2E280EÕ¹º»¼¡0¿é€ €€ùÑ3€ÖËÌÍÎϣС2£€Ó23ð¡6€ü€bÓì†ô3ö�€€ýØ<=>?@AB¡½Dúû£ü¡€]�€þ€ÿ_{-19.5, 0.23359026227678575}_{-19.5, 0.23359026227678575}X{0.5, 0}Ø<=>?@AB¡½D£¡€]���_{-19.5, 0.85507548013628298}_{-19.5, 0.85507548013628298}_{0.5, 0.99999999999999989}ߊ‹Œ�Ž��‘•–—˜™šœžŸ¡£¡û¡¡¡€� � ���O � � €€_$6DFE9F34-2F91-41FA-8F02-870500792C29Õ¹º»¼¡0¿"€ €�Ñ3€ÖËÌÍÎÏ&СÕÕ)#@K€#@Y€Uarrow×ÜŸßCÞÝà.â€!€� €ÖKLMNO1Q£¡4#@)€4� Z{0.5, 0.5}Óì†739�/€�ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡=£>¡@A½¾¡D¡G¡¡¡€����€d� �€€_$C0AB70DA-03C7-4669-AF84-11BD85406CDEÕ¹º»¼¡0¿R€ €�Ñ3€ÖËÌÍÎϣСXXY€#@>#@6VPath 3ÚAߟÜÚBCÞÝ\à_`aâ�€€!���€ÖKLMNOdQ£¡g#@À€4�Z{0.5, 0.5}ÕéêMë½ì½¡0€I€ Ò†3o€�ÖbcMdeÖgs€9 �Õklmno£q££€8Ò†3x€�ÙeŠc‹Œ�ŽM�{£½q¡€=�€Õklmno€q�‚€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3…€� ßž�‘Ž•™Š–‹œ�—š¡£ˆ‰¡Ž¡¡’¡#�"�$ € �%€c�!€V€_$956AC2A4-C1D4-4DCD-9F52-64AC96FDBEEDÕ¹º»¼¡0¿›€ €�#Ñ3€ÖËÌÍÎϣСXX£€Ó23¢¡6�&€bÔì†í3§¨©€�)�'�-Ø<=>?@AB¡½D­­£­¡€]�(�(�(V{0, 0}Ø<=>?@AB¡½Dµ¶£·¡€]�,�*�+_{0.99999999999999978, 0}_{0.99999999999999978, 0}_{0.99999999999999978, 0}Ø<=>?@AB¡½D¿¿£¿¡€]�.�.�.V{1, 1}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡Ç£È¡Ê˽¾¡Î¡Ñ¡¡¡€�5�3�1�0€d�? �4€€_$698D1EA6-EC50-4418-9655-2ED7A37491DDÕ¹º»¼¡0¿Ü€ €�2Ñ3€ÖËÌÍÎϣСÕÕâ€#½ VPath 4ÚAߟÜÚBCÞÝåàèéêâ�9€€!�8�<�6€ÖKLMNOíQ£¡ð#@À€4�7Z{0.5, 0.5}ÕéêMë콡0€I€ Ò†3ø€�:ÖbcMdeÖgü€9 �;Õklmno£q££€8Ò†3€�=ÙeŠc‹Œ�ŽM�£½q¡€=�>€Õklmno q  €8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3€�@ßž�‘Ž•™Š–‹œ�—𡣡¡¡¡#�B�D € �E€c�A€V€_$34E7A20F-485A-4517-AA1A-1A1066792C4FÕ¹º»¼¡0¿$€ €�CÑ3€ÖËÌÍÎϣСÕÕ£€Ó23+¡6�F€bÓì†/31�K€�GØ<=>?@AB¡½D56£7¡€]�J�H�I_{0.99999999999999944, 0}_{0.99999999999999944, 0}_{0.99999999999999944, 0}Ø<=>?@AB¡½D?@£A¡€]�N�L�M_,{-0.010764778180457379, 0.96625685242139769}_,{-0.010764778180457379, 0.96625685242139769}V{0, 1}Ò56GH_MSImmutableLayerGroup©IJKLMNOP:_MSImmutableLayerGroup__MSImmutableLayerGroup_MSImmutableStyledLayer__MSImmutableStyledLayer_MSImmutableLayer__MSImmutableLayer_MSImmutableModelObject_MSModelObjectCommonߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡T£U¡ûWX½¾¡[^¡¡¡€�V�T�R�Q€d�i �U€€_$72D101FE-82C8-47C6-8600-F7A9C1BD8F99Õ¹º»¼¡0¿i€ €�SÑ3€ÖËÌÍÎÏmÐppq#@4€ #@^#@QVcircleÙAÜŸßBCÞÝtàwxâ�Y€€!�\�W€ÖKLMNO{Q£¡~#@@€4�XZ{0.5, 0.5}Ò†3‚€�ZÖbcMdeÖg†€9 �[Õklmno£q££€8Ò†3‹€�]Ú�eŠc‹�ŒŽMqŽ�£‘¡Xgradient�^€=€�_Õklmno•q–—€8#?º#?º#?º×™š›œ�žŸ¡¡¢££_shouldSmoothenOpacity\gradientTypeTfromUstopsRto\elipseLength�h�`�a�gX{0.5, 1}Ó솦3¨�e€�bÓedª£«�c�dÕklmno£qq®€8#?ã,…�²Ò56°±_MSImmutableGradientStop¥²³´µ:_MSImmutableGradientStop__MSImmutableGradientStop_MSImmutableModelObject_MSModelObjectCommonÓed·q«�f�dÕklmno£qq»€8#?ìvBÈY $X{0.5, 0}Ò56¾¿_MSImmutableGradient¥ÀÁÂÃ:_MSImmutableGradient__MSImmutableGradient_MSImmutableModelObject_MSModelObjectCommonÒ†3Æ€�jߊ‹È�Ž�‘•–—™šœžÉ¡£ÍÎÏ¡ÑÒ¡¡^¡¡Ú_hasConvertedToNewRoundCorners[fixedRadius€ �n�k�l�v�o �U€#@Sˆ_$A1B1B238-46F2-4F14-8140-39A510543091Õ¹º»¼¡0¿à€ €�mÑ3€ÖËÌÍÎϣСpp£€Ó23ç6�p €bÕì†ëí3íîïð[NS.object.3€�r�q�u�tØ<=>?@AB¡½D­­ö­¡€]�(�(#@Sˆ�(Ø<=>?@AB¡½Düüþü¡€]�s�s#@Sˆ�sV{1, 0}Ø<=>?@AB¡½D¿¿¿¡€]�.�.#@Sˆ�.Ø<=>?@AB¡½D???¡€]�N�N#@Sˆ�NÒ56_MSImmutableRectangleShape«:_MSImmutableRectangleShape__MSImmutableRectangleShape_MSImmutableCustomShapeLayer__MSImmutableCustomShapeLayer_MSImmutableShapePathLayer__MSImmutableShapePathLayer_MSImmutableLayer__MSImmutableLayer_MSImmutableModelObject_MSModelObjectCommonÕklmnoqqqq€8Ô"M#$¡&'^thickGridTimesXgridSize�yÒ56)*_MSImmutableSimpleGrid§+,-./0:_MSImmutableSimpleGrid__MSImmutableSimpleGrid_MSImmutableBaseGrid__MSImmutableBaseGrid_MSImmutableModelObject_MSModelObjectCommonÓ2305TbaseVguides€ �{Ò5678_MSImmutableRulerData¥9:;<:_MSImmutableRulerData__MSImmutableRulerData_MSImmutableModelObject_MSModelObjectCommonÓ2305€ �{Ò56AB_MSImmutableArtboardGroup«CDEFGHIJKL:_MSImmutableArtboardGroup__MSImmutableArtboardGroup_MSImmutableLayerGroup__MSImmutableLayerGroup_MSImmutableStyledLayer__MSImmutableStyledLayer_MSImmutableLayer__MSImmutableLayer_MSImmutableModelObject_MSModelObjectCommonߊ‹Œ�Ž��‘ó’ô“”•–—˜™š›œ�žŸõ¡P£QûSTVWY¡]_a¡¡¡€�‡�… �€� �–�” �—�} �� �†€�•€€_$DBFB1402-D4FF-4188-9378-7189ECFFACDBÕ¹º»¼¡0¿l€ €��Ôì†í3opq€�ƒ�‚�„ך !£"#v€*€(€)#?àך !£0#2€*€,€)ך !£"72€*€(€.ÖËÌÍÎÏ:С=>‚€#@v@^nearley-purpleÙAÜŸßBCÞÝ…àˆ‰â�Š€€!���ˆ€ÖKLMNOPQ£¡Ž€4�‰Z{0.5, 0.5}Ò†3’€�‹ÖbcMde”g—#?à€9 �ŒÕklmnošq›œ€8#?âñ©ûçl‹#?âñ©ûçl‹#?âñ©ûçl‹Ò†3Ÿ€�ŽÙeŠc‹Œ�ŽM�¢£q€=��€ Õklmno§q¨©€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ùí«¬ì­®†¯°±3³´µ¶·¸[NS.object.7[NS.object.4[NS.object.6[NS.object.3[NS.object.5�É�}€��­�9�å�‘�ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡¼£½¡¿À½¾¡Ãá¡¡€�–�•�“�’€d�� €D€€_$EC9ADD93-8817-4282-A650-EC771D6D9B62Õ¹º»¼¡0¿Ñ€ €�”Ñ3€ÖËÌÍÎÏÒСÕÖ×€ÙAÜŸßÚCÞÝØàÛÜâ�š€€!�™�—€ÖKLMNOßQ£¡â#@@€4�˜Z{0.5, 0.5}ÕéêMëìû¡0€I€ Ò†3ê€�›ÖbcMdeÖgî€9 �œÕklmnoñqòó€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3ö€�žßž�‘Ž•™Š–‹œ�—š¡£ùú¡ÿ¡¡¡#� �¢ € �£€c�Ÿ€V€_$432385DF-758A-4053-9A72-EC072F682E12Õ¹º»¼¡0¿ € €�¡Ñ3€ÖËÌÍÎϣСÕÖ£€Ó23¡6�¤€bÓì†3�©€�¥Ø<=>?@AB¡½D£¡€]�¨�¦�§_({-3.715004485310605, 4.9166666666666661}_({-3.715004485310605, 4.9166666666666661}X{0, 0.5}Ø<=>?@AB¡½D'(£)¡€]�¬�ª�«_){-3.7000246692083416, 14.249999999999996}_){-3.7000246692083416, 14.249999999999996}X{1, 0.5}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡1£2¡45½¾¡8‡¡¡¡€�²�±�¯�®€d�¹ €j€€_$3387CA42-F892-4F75-885B-2BED2DF2E1A5Õ¹º»¼¡0¿F€ €�°Ñ3€ÖËÌÍÎÏÒС˜Ö™€ÙAÜŸßÚCÞÝMàPQâ�¶€€!�µ�³€ÖKLMNOTQ£¡W#@@€4�´Z{0.5, 0.5}ÕéêMëìû¡0€I€ Ò†3_€�·ÖbcMdeÖgc€9 �¸Õklmnofqgh€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3k€�ºßž�‘Ž•™Š–‹œ�—š¡£no¡t¡¡x¡#�¼�¾ € �¿€c�»€V€_$96CF7677-05D8-4EB0-AD62-9B6A46B65A46Õ¹º»¼¡0¿�€ €�½Ñ3€ÖËÌÍÎϣС˜Ö£€Ó23ˆ¡6�À€bÓ소3Ž�Å€�ÁØ<=>?@AB¡½D’“£”¡€]�Ä�Â�Ã_*{-0.41862043297562168, 9.8333333333333286}_*{-0.41862043297562168, 9.8333333333333286}X{0, 0.5}Ø<=>?@AB¡½Dœ�£ž¡€]�È�Æ�Ç_{-0.40259041002419205, 28.5}_{-0.40259041002419205, 28.5}_{0.99033806835804161, 0.5}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡¦£§¡©ª½¾¡­ ¡¡¡€�Î�Í�Ë�Ê€d�Õ €Š€€_$FBE6817F-5437-4FBA-9407-5F2491428C8EÕ¹º»¼¡0¿»€ €�ÌÑ3€ÖËÌÍÎÏÕС2€ÙAÜŸßÚCÞÝÂàÅÆâ�Ò€€!�Ñ�Ï€ÖKLMNOÉQ£¡Ì#@€4�ÐZ{0.5, 0.5}ÕéêMë콡0€I€ Ò†3Ô€�ÓÖbcMdeÖgØ€9 �ÔÕklmnoÛqÜÝ€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3à€�Ößž�‘Ž•™Š–‹œ�—š¡£ãä¡é¡¡í¡#�Ø�Ú € �Û€c�×€V€_$C82AB035-827E-4D95-9B0B-EE5B8718155DÕ¹º»¼¡0¿ö€ €�ÙÑ3€ÖËÌÍÎϣС2£€Ó23ý¡6�Ü€bÓì† 3 �á€�ÝØ<=>?@AB¡½D  £ ¡€]�à�Þ�ß_{-19.5, 0.21344866071428573}_{-19.5, 0.21344866071428573}X{0.5, 0}Ø<=>?@AB¡½D  £ ¡€]�ä�â�ã_{-19.5, 0.87636622643108242}_{-19.5, 0.87636622643108242}X{0.5, 1}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ £ ¡  ½¾¡ "�¡¡¡€�ê�é�ç�æ€d�ñ €ª€€_$1922C290-D705-4AE9-B632-CEDC6EAB1AC0Õ¹º»¼¡0¿ 0€ €�èÑ3€ÖËÌÍÎÏÕС 6 7€#@#@.ÙAÜŸßÚCÞÝ 9à < =â�!�í�ë€ÖKLMNO @Q£¡ C#@€4�ìZ{0.5, 0.5}ÕéêMë콡0€I€ Ò†3 K€�ïÖbcMdeÖg O€9 �ðÕklmno Rq S T€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3 W€�òßž�‘Ž•™Š–‹œ�—š¡£ Z [¡ `¡¡ d¡#�ô�ö € �÷€c�ó€V€_$46A5F7C6-EF5B-4D3D-9585-E2864E5E4F6CÕ¹º»¼¡0¿ m€ €�õÑ3€ÖËÌÍÎϣС s t€#@#<àÓ23 v¡6�ø€bÓì† z3 |�ý€�ùØ<=>?@AB¡½D € �£ ‚¡€]�ü�ú�û_){-19.499999999999964, 0.2491629464285714}_){-19.499999999999964, 0.2491629464285714}_{0.49999999999999911, 0}Ø<=>?@AB¡½D Š ‹£ Œ¡€]��þ�ÿ_*{-19.499999999999964, 0.91208051214536812}_*{-19.499999999999964, 0.91208051214536812}_{0.50000000000000089, 1}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ ”£ •¡ — ˜½¾¡ ›¡¡¡€����€d� €Ê€€_$93FD771A-BEAD-4B6E-A744-449FB066D989Õ¹º»¼¡0¿ ©€ €�Ñ3€ÖËÌÍÎÏ ­Ð¡2$#@J€ÙAÜŸßÚCÞÝ ±à ´ µâ� €€!� �€ÖKLMNO ¸Q£¡ »#@€4�Z{0.5, 0.5}ÕéêMë콡0€I€ Ò†3 À� ÖbcMdeÖg Ç€9 � Õklmno Êq Ë Ì€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3 Ï€�ßž�‘Ž•™Š–‹œ�—š¡£ Ò Ó¡ Ø¡¡ Ü¡#�� € �€c�€V€_$57830079-DDE7-42FD-BF25-9D5870F2A8AAÕ¹º»¼¡0¿ å€ €�Ñ3€ÖËÌÍÎϣС2£€Ó23 ì¡6�€bÓì† ð3 ò�€�Ø<=>?@AB¡½D ö ÷£ ø¡€]���_{-19.5, 0.20010811941964296}_{-19.5, 0.20010811941964296}X{0.5, 0}Ø<=>?@AB¡½D £ ¡€]���_{-19.5, 0.82159333727914019}_{-19.5, 0.82159333727914019}_{0.5, 0.99999999999999989}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ £ ¡ ½¾¡ •¡¡¡€�"�!��€d�) €ê€€_$4CCD3BCF-0560-4664-8F37-D98C4C0FC3B4Õ¹º»¼¡0¿ € €� Ñ3€ÖËÌÍÎÏ #С2§#@J€ÙAÜŸßÚCÞÝ 'à * +â�&€€!�%�#€ÖKLMNO .Q£¡ 1#@€4�$Z{0.5, 0.5}ÕéêMë콡0€I€ Ò†3 9€�'ÖbcMdeÖg =€9 �(Õklmno @q A B€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3 E€�*ßž�‘Ž•™Š–‹œ�—š¡£ H I¡ N¡¡ R¡#�,�. € �/€c�+€V€_$EC55C716-A411-4EC6-9FF5-1BA542E46069Õ¹º»¼¡0¿ [€ €�-Ñ3€ÖËÌÍÎϣС2£€Ó23 b¡6�0€bÓì† f3 h�5€�1Ø<=>?@AB¡½D l m£ n¡€]�4�2�3_{-19.5, 0.23359026227678575}_{-19.5, 0.23359026227678575}X{0.5, 0}Ø<=>?@AB¡½D v w£ x¡€]�8�6�7_{-19.5, 0.85507548013628298}_{-19.5, 0.85507548013628298}_{0.5, 0.99999999999999989}ߊ‹Œ�Ž��‘•–—˜™šœžŸ¡ €£ �¡û ƒ „¡ ˆ¡¡€�>�=�;�:�O �A � €€_$F715C42D-6E79-464A-946B-85078B229F8FÕ¹º»¼¡0¿ ”€ €�<Ñ3€ÖËÌÍÎÏ&СÕÕ)€×ÜŸßCÞÝà �â€!€�?€ÖKLMNO  Q£¡ £#@)€4�@Z{0.5, 0.5}Óì† ¦3 ¨�_€�Bߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ ¬£ ­¡ ¯ °½¾¡ ³¡G¡¡¡€�G�F�D�C€d�Q �€€_$8E1073D4-1A90-4B68-9C3B-B4E99F62EF69Õ¹º»¼¡0¿ Á€ €�EÑ3€ÖËÌÍÎϣСXXY€ÚAߟÜÚBCÞÝ Èà Ë Ì Íâ�K€€!�J�N�H€ÖKLMNO ÐQ£¡ Ó#@À€4�IZ{0.5, 0.5}ÕéêMë½ì½¡0€I€ Ò†3 Û€�LÖbcMdeÖg ߀9 �MÕklmno âq ã ä€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3 ç€�OÙeŠc‹Œ�ŽM� ꣽq¡€=�P€Õklmno ïq ð ñ€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3 ô€�Rßž�‘Ž•™Š–‹œ�—š¡£ ÷ ø¡ ý¡¡ ¡#�T�V € �W€c�S€V€_$A36F3474-5B57-4B02-A7F6-73594EABB192Õ¹º»¼¡0¿ € €�UÑ3€ÖËÌÍÎϣСXX£€Ó23 ¡6�X€bÔì†í3   €�Z�Y�^Ø<=>?@AB¡½D­­£­¡€]�(�(�(Ø<=>?@AB¡½D # $£ %¡€]�]�[�\_{0.99999999999999978, 0}_{0.99999999999999978, 0}_{0.99999999999999978, 0}Ø<=>?@AB¡½D¿¿£¿¡€]�.�.�.ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ 4£ 5¡ 7 8½¾¡ ;¡Ñ¡¡¡€�d�c�a�`€d�n �4€€_$BD841886-70AA-4383-86DF-0FDC87CD7DA3Õ¹º»¼¡0¿ I€ €�bÑ3€ÖËÌÍÎϣСÕÕ£€ÚAߟÜÚBCÞÝ Pà S T Uâ�h€€!�g�k�e€ÖKLMNO XQ£¡ [#@À€4�fZ{0.5, 0.5}ÕéêMë콡0€I€ Ò†3 c€�iÖbcMdeÖg g€9 �jÕklmno jq k l€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3 o€�lÙeŠc‹Œ�ŽM� r£½q¡€=�m€Õklmno wq x y€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3 |€�oßž�‘Ž•™Š–‹œ�—š¡£  €¡ …¡¡ ‰¡#�q�s € �t€c�p€V€_$6520A325-4471-482D-A8BE-9E096BF787F2Õ¹º»¼¡0¿ ’€ €�rÑ3€ÖËÌÍÎϣСÕÕ ˜€#= Ó23 š¡6�u€bÓì† ž3  �z€�vØ<=>?@AB¡½D ¤ ¥£ ¦¡€]�y�w�x_{0.99999999999999944, 0}_{0.99999999999999944, 0}_{0.99999999999999944, 0}Ø<=>?@AB¡½D? ¯£ °¡€]�N�{�|_,{-0.010764778180457379, 0.96625685242139769}_,{-0.010764778180457379, 0.96625685242139769}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ ·£ ¸¡û º »½¾¡ ¾^¡¡¡€�‚����~€d�ˆ �U€€_$99FE0EF5-4A77-41DC-8755-BA0E40E590FFÕ¹º»¼¡0¿ Ì€ €�€Ñ3€ÖËÌÍÎÏmÐppq€ ØAÜŸßCÞÝ Óà Öâ�…€€!�ƒ€ÖKLMNO ÙQ£¡ Ü#@@€4�„Z{0.5, 0.5}Ò†3 à€�†ÖbcMdeÖg ä€9 �‡Õklmno çq è é€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3 ì€�‰ßŠ‹È�Ž�‘•–—™šœžÉ¡£ ñ ò ó¡Ñ ö¡¡^¡¡ þ€ ���Š�‹�v�Ž �U€#@Sˆ_$489004C8-94D7-412B-B400-7C8F2CF97B48Õ¹º»¼¡0¿ € €�ŒÑ3€ÖËÌÍÎϣСpp£€Ó23 6�� €bÕì† í3    [NS.object.3€�‘���“�’Ø<=>?@AB¡½D­­ ­¡€]�(�(#@Sˆ�(Ø<=>?@AB¡½Düü "ü¡€]�s�s#@Sˆ�sØ<=>?@AB¡½D¿¿ *¿¡€]�.�.#@Sˆ�.Ø<=>?@AB¡½D?? 2?¡€]�N�N#@Sˆ�NÕklmnoqqqq€8Ô"M#$¡&'�yÓ2305€ �{Ó2305€ �{ߊ‹Œ�Ž��‘ó’ô“”•–—˜™š›œ�žŸõ¡ C£ Dû F G I J L¡ P R T¡¡¡€�Ÿ�� �š�™ � � � �} �¨ �ž€�€€_$D606694F-A175-4209-BCCC-6FF7C10EF05CÕ¹º»¼¡0¿ _€ €�›Ò†3 b€�œ×š !£"#q€*€(€)ÖËÌÍÎÏ hС™™ k#@uP€#@W€WfaviconÙAÜŸßBCÞÝ nà q râ�¢€€!�¥� €ÖKLMNO uQ£¡ x#?ä€4�¡Z{0.5, 0.5}Ò†3 |€�£ÖbcMde ~g �#?à€9 �¤Õklmno „q … †€8#?âñ©ûçl‹#?âñ©ûçl‹#?âñ©ûçl‹Ò†3 ‰€�¦ÙeŠc‹Œ�ŽM� Œ£q€=�§€ Õklmno ‘q ’ “€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ôì†í3 – — ˜€�Æ�©�ãߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ œ£ �¡ Ÿ  ½¾¡ £¡Ñ¡¡¡€�®�­�«�ª€d�¸ �4€€_$3186A554-E02C-4D17-ADCE-2A5A075235E1Õ¹º»¼¡0¿ ±€ €�¬Ñ3€ÖËÌÍÎÏ µÐ¡ ¸ ¹ º#@€#@ÿÿÿÿÿÿ#@#@ÚAߟÜÚBCÞÝ ¼à ¿ À Áâ�²€€!�±�µ�¯€ÖKLMNO ÄQ£¡ Ç#?Þ€4�°Z{0.5, 0.5}ÕéêMë콡0€I€ Ò†3 Ï€�³ÖbcMdeqg Ó€9 �´Õklmno Öq × Ø€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3 Û€�¶ÙeŠc‹Œ�ŽM� Þ£½q¡€=�·€Õklmno ãq ä å€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3 è€�¹ßž�‘Ž•™Š–‹œ�—š¡£ ë ì¡ ñ¡¡ õ¡#�»�½ € �¾€c�º€V€_$92D3717F-C16D-428A-99A6-9D8FB94411C2Õ¹º»¼¡0¿ þ€ €�¼Ñ3€ÖËÌÍÎϣС  ¹£€#@ÿÿÿÿÿÿÓ23 ¡6�¿€bÓì† 3 �À�ÀØ<=>?@AB¡½Dü £ ¡€]�s�Á�Â_+{1.0714285714285714, -0.071428571428571438}_+{1.0714285714285714, -0.071428571428571438}Ø<=>?@AB¡½D? £ ¡€]�N�Ä�Å_*{-0.14399558981683408, 1.0999115490650031}_*{-0.14399558981683408, 1.0999115490650031}ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ "£ #¡ % &½¾¡ )¡G¡¡¡€�Ë�Ê�È�Ç€d�Õ �€€_$15F46203-FD62-4DE9-A520-F575A8F77555Õ¹º»¼¡0¿ 7€ €�ÉÑ3€ÖËÌÍÎÏ ;С > ? ¹#@€#@#@ÚAߟÜÚBCÞÝ Aà D E Fâ�Ï€€!�Î�Ò�Ì€ÖKLMNO IQ£¡ L#?Þ€4�ÍZ{0.5, 0.5}ÕéêMë½ì½¡0€I€ Ò†3 T€�ÐÖbcMdeqg X€9 �ÑÕklmno [q \ ]€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3 `€�ÓÙeŠc‹Œ�ŽM� c£½q¡€=�Ô€Õklmno hq i j€8#?럾vÈ´#?럾vÈ´#?럾vÈ´Ò†3 m€�Ößž�‘Ž•™Š–‹œ�—š¡£ p q¡ v¡¡ z¡#�Ø�Ú € �Û€c�×€V€_$7919EEF9-71F1-4121-8452-6B43A06741F6Õ¹º»¼¡0¿ ƒ€ €�ÙÑ3€ÖËÌÍÎϣС ‰ Š£€#@#@Ó23 Œ¡6�Ü€bÔì†í3 ‘ ’ “€�Þ�Ý�âØ<=>?@AB¡½D­­£­¡€]�(�(�(Ø<=>?@AB¡½D ž Ÿ£  ¡€]�á�ß�à_{0.99999999999999956, 0}_{0.99999999999999956, 0}_{0.99999999999999956, 0}Ø<=>?@AB¡½D¿¿£¿¡€]�.�.�.ߊ‹Œ�Ž��‘³•´–˜™—šµœžŸ¡ ¯£ °¡û ² ³½¾¡ ¶^¡¡¡€�è�ç�å�ä€d�ù �U€€_$6E729CCD-776D-4F1A-B3D9-471F2EA8866FÕ¹º»¼¡0¿ Ä€ €�æÑ3€ÖËÌÍÎϣЙ™£€ ÙAÜŸßBCÞÝ Ëà Î Ïâ�뀀!�î�é€ÖKLMNO ÒQ£¡ Õ#?é€4�êZ{0.5, 0.5}Ò†3 Ù€�ìÖbcMdeqg½ Ý€9 �íÕklmno àq á â€8#?ÕUUUUUU#?ã333333#?ÕUUUUUUÒ†3 å€�ïÚ�eŠc‹�ŒŽMq ç�£ ê¡�ð€=€�ñÕklmno îq ï ð€8#?º#?º#?º×™š›œ�žŸ¡ ô õ ö£�h�ò�ó�øX{0.5, 1}Óì† ù3 û�ö€�ôÓed ý£«�õ�dÕklmno£qq€8#?ã,…�²Óedq«�÷�dÕklmno£qq€8#?ìvBÈY $X{0.5, 0}Ò†3 €�úߊ‹È�Ž�‘•–—™šœžÉ¡£Ñ¡¡^¡¡€ �þ�û�ü �v�ÿ �U€#@@_$ADEBCB92-E413-4464-BA81-776FDA82BAC8Õ¹º»¼¡0¿#€ €�ýÑ3€ÖËÌÍÎϣС™™£€Ó23*6� €bÕì†.í30123[NS.object.3€����Ø<=>?@AB¡½D­­9:¡€]�(�(#@@�_{0, 0.49609406789143878}Ø<=>?@AB¡½DüüBü¡€]�s�s#@@�sØ<=>?@AB¡½D¿¿J¿¡€]�.�.#@@�.Ø<=>?@AB¡½D?QR?¡€]�N�#@@�N_{0, 0.51171779632568359}Õklmnoqqqq€8Ô"M#$¡&'�yÓ2305€ �{Ó2305€ �{Ó2305€ �{Ó2305€ �{Ò56hi_MSImmutablePage«jklmnopqrs:_MSImmutablePage__MSImmutablePage_MSImmutableLayerGroup__MSImmutableLayerGroup_MSImmutableStyledLayer__MSImmutableStyledLayer_MSImmutableLayer__MSImmutableLayer_MSImmutableModelObject_MSModelObjectCommonÒ56uv_MSImmutableDocumentData¥wxyz:_MSImmutableDocumentData__MSImmutableDocumentData_MSImmutableModelObject_MSModelObjectCommonZMSArchiverÑ}~Troot€"+5:?ag ¬³ÌÒåìø #0<IW`bdegilnpqsuwy{¢»ÅÌÞåóõ÷ùûýÿ#29AJOQZ\^cen„‹˜¡¾Éæ   3 8 : C H Q n y – ´ Í ã ì ô ö ø ý ÿ  * 9 [ ~ ¡ Å Þ ô ý ÿ     . = Z x › ¿ Ø î ÷ ù û  1 D j ‘ ³ Ö ù  6 L U a c e Ì ß õ û 4BXoƒ—¤°·ÁÆËÔÛò !"$%')+,./1Xmx‹˜¦§©«­²´½Øãþ3Ibd{�ˆŠŒ�–Ÿ±¼Îáú0FQ[oqsuw€“ž±ÅÞô"$'š¯Áâäåçéêìîðñô÷øûþÿ   8MNPRTegikmŠ—¢¯ÂÈÊÌÎ×ÛÜåÿ $?Xn‹��‘šž»½¿ÁÅÞçéêóü)17<>@BDFHaht~ƒŠ“•–˜£¬ÃÒé0I_hjl…�˜¡§°²³µÊÎÔÙßáêóü!,?Sl‚‹¤·Ðê#:Rk�ŠŒŽ³¹ÈÚíøúüþÿ(1:Qd{“¯Ìãû*O[gs‹��’”–™›�Ÿþ /124679;=?@BCDFHIJKMt‰ŠŒŽ�•—°¹»¼ÅÎ×â !#%'@IKLNYn|‰•—˜š£ÃÒò*B[qz|~—™šœ±³¼¾Àåçéëì ')+z�”™šœžŸ ¢«¬®¯±²´µ·¹àõöøúü$18ACDFSUWYz‡‘—¡®¶ÁÂÄÆÈÊËö ! * 3 K V n ‡   ¶ × Ø Ú Ü Þ à á! !9!B!K!b!m!„!œ!µ!Ë!Ô!ð!ÿ""8"K"_"x"Ž"—"¯"Æ"Þ"÷##(#A#[#n#‚#›#±$$$$$$$$$$$!$"$#$%$'$($)$*$,$S$h$i$k$m$o$t$v$�$‘$’$›$¤$®$×$Ù$Û$Ý$ß$á$ã$å$þ%% % % %%,%.%/%1%:%<%>%W%Y%Z%\%q%s%|%~%€%¥%§%©%«%¬%Á%Ã%Ì%Õ%Þ%ç%é%ë&:&;&=&?&@&A&C&D&F&G&I&J&L&M&O&Q&x&�&Ž&�&’&”&™&›&´&¶&·&Ä&Æ&Ç&É&Ö&Ø&Ú&Ü&ý&þ''''''4'a'j'‹'Œ'Ž'�'’'”'•'´'Ó'ð(O(Q(R(T(V(W(Y([(](^(`(a(b(d(f(g(h(i(k(’(§(¨(ª(¬(®(³(µ(Î(Ð(Ñ(Ú(ã(ì)))))))!)#)<)E)G)H)J)U)j)l)m)o)x)z)|)•)—)˜)š)¯)±)º)¼)¾)ã)å)ç)é)ê)ÿ** ***%*'*)*x*y*{*}*~**�*‚*„*…*‡*ˆ*Š*‹*�*�*¶*Ë*Ì*Î*Ð*Ò*×*Ù*ò*ô*õ+++++++++;+<+>+@+B+D+E+d+ƒ+Œ+­+®+°+²+´+¶+·+Ö+õ+þ,],_,`,b,d,e,g,i,k,l,n,o,p,r,t,u,v,w,y, ,µ,¶,¸,º,¼,Á,Ã,Ü,Þ,ß,è,ñ,ÿ-(-*-,-.-0-2-4-6-O-X-Z-[-]-h-}--€-‚-‹-�-�-¨-ª-«-­-Â-Ä-Í-Ï-Ñ-ö-ø-ú-ü-ý....&./.8.:.<.‹.Œ.Ž.�.‘.’.”.•.—.˜.š.›.�.ž. .¢.É.Þ.ß.á.ã.å.ê.ì//////'/)/*/,/9/;/=/?/`/a/c/e/g/i/j/–/Â/Ý/þ/ÿ00000050b0}0Ü0Þ0ß0á0ã0ä0æ0è0ê0ë0í0î0ï0ñ0ó0ô0õ0ö0ø1141517191;1@1B1[1d1f1g1p1‚1«1­1¯1±1³1µ1·1¹1Ò1Û1Ý1Þ1à1ë22222222+2-2.202E2G2P2R2T2y2{2}22€2•2—2 2©2²2»2½2¿3333333333333 3!3#3%3L3a3b3d3f3h3m3o3ˆ3Š3‹3˜3š3›3�3ª3¬3®3°3Ñ3Ò3Ô3Ö3Ø3Ú3Û3ú44"4C4D4F4H4J4L4M4l4‹4¨55 5 5 5555555555555 5!5#5J5_5`5b5d5f5k5m5†5�5‘5’5›5­5Ö5Ø5Ú5Ü5Þ5à5â5ä5ý666 6 66+6-6.60696;6=6V6X6Y6[6p6r6{6}66¤6¦6¨6ª6«6À6Â6Ë6Ô6Ý6æ6è6ê797:7<7>7?7@7B7C7E7F7H7I7K7L7N7P7w7Œ7�7�7‘7“7˜7š7³7µ7¶7Ã7Å7Æ7È7Õ7Ø7Ú7Ü7ý7þ888888'8F8O8p8q8s8v8y8|8}8œ8»8Ø9+9-9.919495989;9>9?9@9C9D9G9I9J9K9M9t9‰9Š9Œ9Ž9‘9–9˜9±9º9¼9½9Æ9Ì9é9ë9í9ð9ò: :::::%:2:5:7:::™:›:œ:Ÿ:¢:£:¦:©:«:¬:¯:°:±:´:¶:·:¸:¹:»:â:÷:ø:ú:ü:ÿ;;;;!;";+;4;;;d;g;i;k;n;q;t;v;�;˜;š;›;ž;©;¾;À;Á;Ã;Ì;Î;Ñ;ê;ì;í;ð<<<<<<:<<>>6>W>X>Z>]>`>c>d>k>Ê>Ì>Í>Ð>Ó>Ô>×>Ú>Ü>Ý>à>á>â>å>ç>è>é>ê>ì??(?)?+?-?0?5?7?P?R?S?\?c?Œ?�?‘?“?–?™?œ?ž?·?À?Â?Ã?Æ?Ñ?æ?è?é?ë?ô?ö?ù@@@@@-@/@8@:@=@b@d@g@i@j@@�@Š@“@œ@¥@§@ª@ù@ú@ýAAAAAAA A A AAAAA;APAQASAUAXA]A_AxAzA{AˆA‹AŒAŽA›AžA A£AÄAÅAÇAÊAÍAÐAÑAìBB"BCBDBFBIBLBOBPBB®BµB¾BÖBéCCC3CMC`CtC�C£DDDDD D DDDDDDDDDD D!D"D$DKD`DaDcDeDhDmDoDˆD‘D“D”D�D¦D­DÒDÕD×DÙDÜDßDáDúEEEE EEEE"E;E=E>EAEVEXEaEcEfE�E˜E›E�EŸE¢E£E¸EºEÃEÌEÕEòF FFF"F%F2F5F6F9FS?SBSWSYSbSkStS}SS‚SÑSÒSÕSØSÙSÚSÜSÝSàSáSãSäSçSèSêSìTT(T)T+T-T0T5T7TPTRTST`TcTdTfTsTvTxT{TœT�TŸT¢T¥T¨T©TÔTÿUU)U*U,U/U2U5U6UbUŽU—UöUøUùUüUÿVVVVV V V VVVVVVVV>VSVTVVVXV[V`VbV{V}V~V£V¦V¨VªV­V°V²VËVÔVÖV×VÚVåVúVüVýVÿWW W W&W(W)W,WAWCWLWUW^WgWiWlW»W¼W¿WÂWÃWÄWÆWÇWÊWËWÍWÎWÑWÒWÔWÖWýXXXXXXX!X:XZ@ZCZHZJZcZeZfZ‹ZŽZ�Z’Z•Z˜ZšZ³Z¼Z¾Z¿ZÂZÍZâZäZåZçZðZòZõ[[[[[)[+[4[=[F[O[Q[T[£[¤[§[ª[«[¬[®[¯[²[³[µ[¶[¹[º[¼[¾[å[ú[û[ý[ÿ\\\ \"\$\%\2\5\6\8\E\H\J\M\n\o\q\t\w\z\{\š\¹\Â\ã\ä\æ\é\ì\ï\ð]].]7]–]˜]™]œ]Ÿ] ]£]¦]¨]©]¬]­]®]°]²]³]´]µ]·]Þ]ó]ô]ö]ø]û^^^^^^'^0^U^X^Z^\^_^b^d^}^†^ˆ^‰^Œ^—^¬^®^¯^±^º^¼^¿^Ø^Ú^Û^Þ^ó^õ^þ______m_n_q_t_u_v_x_y_|_}__€_ƒ_„_†_ˆ_¯_Ä_Å_Ç_É_Ì_Ñ_Ó_ì_î_ï_ø``````!`$`&`)`J`K`M`P`S`V`W`ƒ`¯`Ê`ë`ì`î`ñ`ô`÷`øa%aRamaÌaÎaÏaÒaÕaÖaÙaÜaÞaßaâaãaäaæaèaéaêaëaíbb)b*b,b.b1b6b8bQbZb\b]b‚b…b‡b‰bŒb�b‘bªb³bµb¶b¹bÄbÙbÛbÜbÞbçbébìcccc c c"c+c4c=cFcHcKcšc›cžc¡c¢c£c¥c¦c©cªc¬c­c°c±c³cµcÜcñcòcôcöcùcþddddd)d,d-d/djAjLjYj\j^jajÀjÂjÃjÆjÉjÊjÍjÐjÒjÓjÖj×jØjÛjÝjÞjßjàjâk kkk!k#k&k+k-kFkHkIkrkukwkyk|kk‚k„k�k¦k¨k©k¬k·kÌkÎkÏkÑkÚkÜkßkøkúkûkþllll'l0l9l;l>lclelhljlkl€l‚l‹l”l�l¦l¨l«lúlûlþmmmmmm m m m mmmmms?sBsEsFsIsLsNsOsRsSsTsWsYsZs[s\s^s…sšs›s�sŸs¢s§s©sÂsÄsÅsæsésësísðsòt ttttt%t.t0t3tLtNtOtRtgtitrt{t„t�t�t’tétëtìtítðtótöt÷tútýtþtÿuuuuuuu7uLuMuOuQuTuYu[utuvuwu„u‡uˆuŠuŸu«u­u°u³u¶u¹uÚuÛuÝuàuãuìuïuðvvvvvv#v&v'vHvIvKvNvQvZv]v^vv€v‚v…vˆv‘v”v•vªv¬v½v¾vÁvÎvÐvÓvàvâvåwXwZw[w^wawbwewhwiwlwowpwswvwwwxw{w|ww�w„w…w‡wˆwŠw‹w²wÇwÈwÊwÌwÏwØwÚwÝwúwüwþxxx"x$x%x.x6x[x^x`xbxexhxjxƒxŒxŽx�x’x�x¦x¨x«xÄxÍxÏxÐxÓxèxêxóxüyyyyy8y:y=y?y@yUyWy`yiyryƒy…yˆy‹yŽyíyïyðyóyöy÷yúyýyÿzzzzzz z z z zz6zKzLzNzPzSzXzZzsz|z~zzˆz‘zšzÃzÆzÈzÊzÍzÐzÓzÕzîz÷zùzúzý{{{{ {"{+{-{0{I{K{L{O{d{f{o{x{�{Š{Œ{�{´{¶{¹{»{¼{Ñ{Ó{Ü{å{î{÷{ù{ü|K|L|O|R|S|T|V|W|Z|[|]|^|a|b|d|f|�|¢|£|¥|§|ª|¯|±|Ê|Ì|Í|Ö|ã|æ|ç|é|ö|ù|û|þ}} }"}%}(}+},}Z}ˆ}©}ª}¬}¯}²}µ}¶}ã~~o~q~r~u~x~y~|~~�~‚~…~†~‡~Š~Œ~�~Ž~�~‘~¸~Í~Î~Ð~Ò~Õ~Ú~Ü~õ~þ <?ACFILNgprsv�–˜™›¤¦©ÂÄÅÈÝßèñú€€€€-€/€2€4€5€J€L€U€^€g€p€r€u€Ä€Å€È€Ë€Ì€Í€Ï€Ð€Ó€Ô€Ö€×€Ú€Û€Ý€ß����� �#�(�*�C�E�F�O�X�e�h�i�k�|�~���„�‡�¨�©�«�®�±�´�µ�Ö�×�Ù�Ü�ß�â�ã�þ‚‚4‚U‚V‚X‚[‚^‚a‚b‚Á‚ÂĂǂʂ˂΂тӂԂׂ؂ق܂ނ߂à‚á‚ムƒƒ ƒ"ƒ$ƒ'ƒ,ƒ.ƒGƒIƒJƒoƒrƒtƒvƒyƒ|ƒ~ƒ—ƒ ƒ¢ƒ£ƒ¦ƒ±ƒºƒ¼ƒ¿ƒØƒÚƒÛƒÞƒóƒõƒþ„„„„„„G„J„L„N„Q„R„g„i„r„{„„„¡„¤„¥„¨„«„®„·„ĄDŽɄ̄ل܄߄ô„ö„ÿ… ………'…)…2…;…D…F…I… …¢…£…¤…§…ª…­…®…±…´…µ…¶…·…º…¼…½…¾…Dž††† †††+†-†.†;†>†?†A†V†b†d†g†j†m†p†‘†’†”†—†š†£†¦†§†Â†ã†ä†æ†é†ì†õ†ø†ù‡‡‡‡ ‡#‡,‡/‡0‡Q‡R‡T‡W‡Z‡c‡f‡g‡‚‡—‡™‡ª‡«‡®‡»‡½‡À‡Í‡Ï‡Ò‡ß‡á‡ä‡ñ‡ó‡ö‡ÿˆˆ(ˆ:ˆMˆeˆ~ˆ—ˆ±ˆÄˆØˆñ‰‰‰*‰5‰O‰j‰ƒ‰™‰¤‰©‰®‰°nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/logo/nearley-purple.png000066400000000000000000000054141376321042600255510ustar00rootroot00000000000000‰PNG  IHDR€PÑ}ägAMA±� üa ÃIDATxí]MŒÅîêÛ,Z+±B|áGÎ!Fs‰EÂqIˆ‘œ€2³h±�½àµP '‡å?9DD2Î!bm6‹�-vV$ÂQÌÄcKQd@ v°/!ƹ#@^±ëõnW¾7Ý5óªgf§{¦»«f©’vëÕOW½ï½×UÕÕÕo<Ï''''''''''''''�OŠÄrZ.O|Vˆ…¯IéÝîyòVà]/„wÒ«=Oà�‚¼‚¼+È»ŒÄyäŸCúŒ”¥W§§Gß«UY¦ÿ–¥”Ë6B©#ø» ÊÜ€¸KœBâÚ·ÐÆKø;:=½ëôr³ƒ.cŸFGŸ^=3³0†»xÜÝ–‡g12L •Æ'&º’S…6Û÷02rdÍÂÂÌ!µ=Pþš"¤#øýì¿þú•û&'w~XDŸyõÑ· ¥÷ßp‡”Áï¡øÚ H,Ba¯£Î ß—ÿÂ?çy¥wW®ô¯ÌÎÖîâÁÁÙÕóóÖ 7£½[ƒ@|×lÆ5_Ä0ЮmÔ¹Œö~üÜsO AÓEÿ…¾4€rù©[ ð£0‚M­DÅ\ƒ}G|u^žžÞýQ«z�òÐϧ<ÏÇ:Bn…~ï�A¬hu x9‰~FÐÏ…Vå6çõ�T*7I¹øum ÁÎBû®»nÕzðýå]gmßþÌgææ®>E?ŠF[4tIˆ�ûªÕ‡O¶(³6«¯  RÅ]ø'Ü‘+u‰ŠE¤'=oÕϧ§üŸ^–mª\~æFÏ»úK´º£yzóu©VÇ&²í5¿ÖúÂÊåê€<åÓÝ âEÌé{ñ¼~6V�kû xÒXxFpw¼#Á>)×€§ ¦ÕÁz å{Þ‡òå]’Bb¸ÿiµºëwz~±©JåÀO0-üüÅd)ŽyÞ§ï³ÝübÅ•¾7ºó›•ïÍø¾¸×´ò ñ@¼€œÑÑÉ-!ïz®m©˜ÕÚÅ^8ç˧9W^ßÁT°+îñ|Ó4žîoÇÀÛ:Î F©‡l^Xkáj?xw}ÁGÊ_µjð+‡o¿Ä…l ½mÛ¡µW¯ÎþC7Zú_·õéÀJ ç|(õŸøã�z4ÄÞiÛ�7> �w C¬Œ öË6îX·À‚ £¦8 �1å éûþVÛ•O '‰W¼<â;ƒk a£:6…¶Ûœ¦˜|ûí›vBP?àýc¥ÕþAžg3}æÌßÎmذ妯o0>oyþù7þ‹²7Yžq²­E�ßÞ8qèûÞØÔÔž·¡Sy£fr*z±ssh}owÎq,¢¾�¼{j–ËãÇaõ}¬a.ãÒç³x�ÔIþ�Ê•”JŠˆÇ¡òåM”�—#d7ó:�Êyݤ4½ÕãÊÇ0ºˆC?Jz}’z Á„Ø’\Ó\G,àÝÀ¯ªÕÝ¿n.ã9¥½Ø,úŒ 6Ò¶�?ž§Í¬_ðZÝÐ�äß©\õ¹Ä€ ˆÓêRžÇiUž.¦÷ù¸bOìªÉ¬wø¸`b}¥HʦóŸuº â}2VoO„5–�6ÉeÎiÕÏã´*ã% @¯˜wjffq7îþ>–ööóî·ûöeÛÑSo³†XÂ@éàŠJ›Ž­1,üvra`îß—Ç‹ZÏ`j¹ÈûÊ“& „…÷#åi“tB+ΗÅð _P?Æ…ÅÒ5z¥›G¯ÑbV[Ï´ë| cþ>¢æðvõ:å–¹¹¹½PüЍîm„Ù†3†–Œt€S Ïú}¾Öz‚DVʧ® Ö x"à¡ 3/,Œ¶ÅîÒ‹gõt±©Öʯ�9è�‘8&:±l>7:·�9G·U G?ù²J·W¾x 7^‚—豶цØbo䘠Œ}´�9–oH�ÆvjWgøzàRÊÇ|=ÕKû„ k›×mЖ7a7ŒFøbG ¯i©‚y*_AÖЦ¸v^\mÜ ú\«èèv=QQ„ò J36{Apµn,0o=ç(<·Ïsò¥‹R>¡�rà| �†=VVHÒ¸`^¬¿ø —Þ-9:)Rù„É÷.plÍØyi1tâ� tàï·›¸ëTÞtA”�yP ôÅŽ–‘S¢håŒðk¤ `_×­Ü­„T·íâ@ÔçZñü,Ó&”Oü�-­œ¬3€´ÒÖ7¥ü´|Uß: 5óoZùybëVf‰×ØÈà›5X@ék‚xyR†*•§þCs¡ª~¥ë½¯ÒYÅÙ(ŸÞ"ªwëéß(FØê�°|‡J>WÏHAt’¼¼]ÓÆG(ÿ²ÎÜB¢7uú5K§²Q~x4.|•,.†¯•—î7^‹tÚ¹š±×‹ #�9rDÏÆ_RíÓ÷ù µ3UÖMœ•ò©ï4¯’[ñ*Äâz(�‡ø¾/+„6>àŽ‚Ã†F ç �ToT–Êï�“ðêfl:ö,úHÛ†qÀnƒG°4xC÷qÁoù5ð2:5µëÏ<Ï4m�`Á$`'oj‡\Ĉ{!¼yöRàÿ;A ÿŠ…i]¾ØÜ: þ7#滞ÆA,±0à a½“c¥(H�QáYl§Þ¡rl�‰Gâ•+¼^"L¶)Ÿdh�S8\r�/ãápžÒQÂzŒ\±© Ûbâ�x_ÌC¹‰€ÇP;=‰[i¤Xò«a>•ŒÅá:òÃgãH@<5û¬íoÀy´½Ä­5€ÐÆ&`Úª™Œe§hžåÆa’Žx9ñVg…x·ÙK(1jµƒäu÷ «< Ñ"‹VÚ<ÓM<„ >>ì'nc‰w»C}•j3›Î]|~Úé PðÝF(Id÷•l÷“1Ù)ŸZê; ¦±âv?E‚È ô¥nl¬$þÙ8T?�¿×ÒülêÓáÔ�詾—�´°Êw?§IÄ@ÂýpdoBïÛ Ûýtl\"ÉÒËÆ8\œ¤¡ïÜ�Gs¹´¢—¥p äŠÍý|<—ˆ£�œœœœœœœœœœœœœ>©ø?ð’Ï“ö—îIEND®B`‚nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/logo/nearley-purple.svg000066400000000000000000000026271376321042600255670ustar00rootroot00000000000000 nearley-purple Created with Sketch. nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/logo/nearley-purple@4x.png000066400000000000000000000375401376321042600261320ustar00rootroot00000000000000‰PNG  IHDR@ÊÈÄ gAMA±� üa?IDATxí� ”Åu÷»zö!eÉ‘�!ùC ‚;Á€mÄçJ ± ³»’Œõ@Z'Žcƒ�†ÏƒmâG|ÚHô؈Ãga‚ElKD‰�‚ÇŠ016È’Ž%‹}L×÷/Í,H«}ÌÌ­î®îþÏ9Òìtwݺõ»u»nWUWy?$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$095ù%¼‚HÀUù|ßÔ††}¿êt­½×k­f(¥OÂßæ{¾Oò<ÕŠ¿§  MøÝŒßMž§+ߦdzÇÌ·R¾½AÈy¿÷áø^ü~ Ç÷â¾õ^üýsß×Ï·þw±Ø~ØHà‡H y$ÏfÔ8c …GúûŸ�åûÃsÐП…Fø÷� ¾ž‰ï×ÅŒã¥Ônèð,„ÿB`ðT4ìhk;}W¡0w8fݘ= �ÀL‡§H j‹¯™rèÐà[ð”ýGxúžƒ'ö9x?zà‰=Qô$¨§QŽÐÊñï--M?\»v zø!p�¬@2KફîzÍÀÀá ÐX^ˆ'ú ñ}Ltѧñ£0Ô C�Á6|oknžúèÝwø—i,)ËDI À V¢Ž©!€1û&¥ö¡±÷æáéx¾ÏJMáê(<›ñ½YëÖm˜S€ � �(0ˆ‚2óÈ4�|~Ý)J \††îR<ùþoÀ8!Ó@Æ/üAô€|ÁÀƒZ7ß_,.z~üKy†H@J€€” Ó“Àòù5˜œ7x%´vœ¾ ?}m NãRç¶b¸ Wë†ûŠÅ%/Œ-Ï� ÔC€7¥z¨1 ŒA Ÿ_}¢R|mýwâ‰ßã2ª‘z$ù.‚©>­ý¾bqÙ¯jÁËI€Æ À` (%¯$�ì`�[³¤U(´ßßß݉§ÉðÄ?«Êd¼ÌA°á.Øðƶ¶®M…‚2oðC$P!À€U�*ÐP¨öö՘ɯ ø×F0i" úña¡¯oÙ}|s MveY$Hè1mjtt¬zvÚ» ÿ¹©) 2õ8v,\ÙÛ»â¡1Nò dŠ€L™›…M`Á‚5g ý-þ÷�>— ß‡ñT»óv£ø§^Äëñ{ñû%Ç·z Çàu¹�ÆÆ†�\®4xèP‹yŸ~dÝý¦––CÍ¥R®ihhßÖ2ÐÓ ã$ôŠÌÀx:¾Õ ;rfâ÷LŸ‰ôSñ/‘”áþ††¦k7lXòL" @¥IÀ RDòäó«ÐÀyŸ…æKÐë|f9ÜÐûILpÃ6»Þ.ß÷ž�ëx³Bx§C�Y˜(‰­‹•ÙºølüÆ2ÈîÀqZ~ öÿ\±¸â€ûSC°K€€]ž”–x¥o)nú·”Ÿh�UøžÞ·CÇmxêþ7¬‡ÿD±¸ôEgµ=J±|þΓ•>º¿ º›mŽÏÇéiG]âØŸ¦ÇÄ»¯Þé˜bT‡B%À T¼î¬ÕÿFÏ zÐ0]ì’^e]Ô~|ãv½¥¡Áßö¦7-{*-³ÖÍ[?þñ곆‡ƒ \‚2¾eu0 Pÿêyþrì5ð“²Mø? ¤›€tÛ—¥�Bᑆ�;Ÿ¹Öü‰§Ñ)n@1kØëÇñä¹½›ÛÚfm/满[¸Z{ô÷ï:eŸ‡²ÏCP€‰—nì–ˆ^——M=™=ûŒÛ²b�p­Mé.`à²u¨›˜f÷¿³ûï@ãÀìþ#�þvß÷û‚ ©ÈýîËæÍç×�âûƒù 0;)* ¸ y[àj¼-ð#q%¤p”G CµäÚÛW}RnÅSfÌkö«Çð´» ½ØÊvÅyÉÒ+“3OÃSx;lÖ‰@à¼8K ›™I‚+ûúV|9N=˜7 „E€@Xd)76 ¬o:´ Èå±)á©ýx�n½R =Ü ¦>+T6^ZŽ· –Óë“b#•úfccËâ î³!�2HÀ \±õ°B ££ç|t%÷BØiVÖ(O¯Ûð¯kУ‹¿ýp�Éyù°'ÃTìÉ�GJþa"a,Ÿ=ºéèí]Ž73ø!�t`�;f¾hLôÓ7ÇÔåÿ Œpºø·fÞ!ÀÁEÿü»4ÄlÆ]PŸFp‚ÖoØÿ9ßW�›6u=V”Ka`6aÊ…@¹Ë¿ûS¸ñß„ BÉä8¡j=¿wáæ ^ûéq§y 6xÝó ¨ ×a$èÃèhŠH‘aÔ…Ïôöv}‘Cg6V 0°Š“¢ °xñš)¿ùÍàFÜðÑýþ7ùÝüÝ��ê¦õë—ÿ,ü™C½.ìùÝ¡!34`& z~½rjI‡úñ�ßú­¦ùk×.1‹ñC‰!À 1¦¢¢†ÿé‡ }7ø·GAOv?ÀSåG8Æm{y˜9è­¹=Eoµ'u"Iêû--�—#Ø?ÑU”N2‘L’‘©ÈÔY&€±Üw£Ûÿ‘põk<¹]ÓÖvÆylüÓ[ÛŒm���­1¼óëðJªO6uÖÔÝðò d�`€œ!%„D ½½g¾YàÝþanæ³5—k\°iÓÒçB*Å:H ³óÎSK¥¡ Pͬ,Ê�Æ�Y0¨¯oùÆP2 P`€ “‡C;ù} cþëÃkü�ŒõßÒÖ6k.ÿplè²Tcsc{èx zBYÖ×Ô]S‡M]v™uË.öd×öΖ7Ìnž7„¥ žÌ^Ò:w–r5oð“qXJúR¥Jw£Î� Ô¹±­p!,ù”Kõ`P5¦ �@ùÉßûjhxêûž×<¿X\ô|xyPrÒäóëNñ¼tÕ‡·¾‚€¿D𵤱¡¾é%À!€ôÚ6q%3cþXtç+á(®4nÀ7{Þô¹lüÃ!œd©å:1}n¹Ž„5$ ¾Rž×’dRÔ=MØ�&k&¸,fÆ´RÁÿ gÌ_½èûúCX¿ÿ¡#¢êÀ¾ï uOož ÀÒÚÿ¬,ù/‡Ù�À¸Œ‹†'¢"€E~ÞŠý¶ ¿ìç©mnÖWÞsÏŠŸÛ—M‰i%ð¡­zýÀ€ºAÀ!”ñ v¼‹ý ÙIU`P5*^³Â_x[CzÚº_ëÖŽb±ýpºSfº äó}S•Ú׋^©Ëì—ÔôJyqÅ@ûd)±zœP=+^i™€YÛß,ïRã¿�ÿØø[6Z†Ä™ºcêºíר/¶>ÙÔ}ãöeS" TG€=ÕqâU– ”wõüÄZߨk±ßÚ××u�e•).ÃÚÛ»oAƒ½2O¶´4½ƒ»†@–"'%À€IñÛÐøO)oék»ñWÚ÷ýO°ñ·m1Ê3uÊÔ­ :Ûø‚ñ R&�¨ 0ˆšxÆóÃS”úÍo­¿omfWc(3ý—‡ôaÆ Çâ{庥?T®k6�è·Ÿ0¾aS*e‘Àdr“]Àó$`“ÀÓOŸ²“ª>jS&ºüáÉìýÅâŠoØ”KY$0šÀÎ�<ÙÖvù Î}çšFŸüþ_÷Þû£Ãýý÷s'JD&­�#ÎÚxñj�ÎÎî J%ý]ˆhˆ�t¯çåþËúþÇèüMaÀòÁèyf‹jo†Å<†s9õÎM›ºµ(“¢H`\ ÆEÃ6 à†y"Ö[Oÿ§Ú’kžü±¨Ê%lüm¥œZ˜ ‹WmA×}K-é&ºà ÏM™2åîºk[~H \œ._J�òØæ‘m}-6þfÌß»‚�?«X\*uï ›sL€|øðÀZΈ˪ÙÊ—s²eïXJ‹qÿO" °8îd­ösÌ?s2Ó£`Ìþ§³g_öSÌAù ÛêQ�…ù!›CG±æŸö ت°ö5£ÄTèèè9_ëà{x²i´U ó:gûÛ¢I96 ž<‚/Û�ed˜^¥üw žo·%“rH`4Œ&ÂßÖ,X°¾7E³”ªµÆÊÝÂÆßš‰(È�J�¼Å’8 ›y�ÆwŒÙ’I9$0š€ÑDøÛ�¡¡Ck!ì4[ñT´Ýþ×Û’G9$`“€©›¦ŽZ”yZŇ,Ф(x•€WYð/‹òùîk0î¹-‘¸±š�}–Û’G9$SGM]µ'[_^ö%{)‰FpÀ ~[#€ýÔߌ.Ìíöºþ&CM7ö±f" ‘€ÙEÐóö?ŒØÊVÂ(0À;¿·wÅ�BT›¢3H€=4z˜E.iu‡½Æßûes³¾’�˜V£l›L]5u2iCny>€ºÃø– y”A#Œ�à·;w>s-ž|ε"Ì3›ûxWÝsÏŠŸÛ‘G)$ SgMÝÅ|~m'G}nÙ·ìH£08Àz`�VF{#VF{‹˜XÚÙÌ¿©X\þ×Ö¤ ˆ˜@>ßó7ž|ÆF¶Xùòe¬|y6 ú‰ y”Aì`°H è±×ø«ï{Þ´,*GQ$�i7`üþ{62.ûÖホ  ”á1`%°BO:W£ëÿbÂpÃ|Éóšçc,µdCe�@\LF‡Ø‚r�¶¡…¾¸½}õR’(ƒI²ˆ äó«¦a4é'‹…3õÍî~ÊeQ ¸AÃc—b(»j ÷\õ"äœ�u¸Q:j‘TìHªåÒO7ŸµÓø›Bé[Ùø;d\ªb…@¹Në[­C ]ö9;Ò(%»,D£µÁ›?¿» {Â/ë-ïAÊ‘Uâö B?„½°WoÜØÕ_›ÄÚ®Ž;ÿÚ´uÿê Öœ1<<Øo鵿­mm³æ s‡Ý/95$�Ú˜×øúûw=‚TÕ–òø«q¿jhhjÛ°a zÞø©–@Ü÷ÿ¸óÍ)²‹c4)µïo¡ÀGÐXŒÙó€JàüíXMëŒ� ŽVVò;îü%º»œ«”aÕ3ý>¹Žê×¹\CÛ¦MKŸ“Ë¢p“@gç�§–JÃxÈÑ¿-×P=P,v]&—“~ qßÿãÎ< G˜Âce¬Í¨ô—Œ§È±ÇÕ¬ü6ÏVwþÇ–-=¿°âß{‚Àû¶�!ø»¦¯o…µÝÔlèD$�ööUŸÀC�y°ÖÀ{±BàCbA)÷ý?îü'2í˜Oâ%¨ç\ùÉ¿ÚÆßä /©ôÔ“ÝqiâÎÿ8…Rp¯$)¬øgiLSí˜={Öߥ ‹@“(×uµcÒ «¸Àø ñÅ*.Íì%qßÿãÎ"Ç^q*c;ÆëöO93€9s¤sâμò%ý8^ûÃR§AQ^¥±ïùÛûú–m“Ë¢„1ÆOÈÜgÌÊ{føp§ïçn@½²¸1�=’x•ïB­¬ua£ñöóX0ë^{Ú¥GRÜ÷ÿ¸óŸÌ’¡÷T&üÕœ� LÚÉ 0Ùù¸óŸL¿$ž/4ì© 6tWJ¯eã/'iºѵü÷¨ï&Øþ8$ÎÆ¿L5þ†"°`ž×Œ€öŸñŠêŽË.[õ[æœKSçMÝ·£“.”}ÒŽ´4I‰ûþwþ“Ù²æ†y2�£Ïãfdfû×õ‘¤ÉP"C’v$ÿ4~÷÷ww"h“– 7é}Z7®”ÊÉzú‘1FÔ×?Ç¿Ð}:9¼�<]Ÿ=eŠ÷œ‹A€©ûÆäŠå¹Ï­7=Óe‹€lÙ»îÒj=üɺ¿’P•p“³´zà+B³þÇž¬HKù Ü‚• JÒòÀÇ,ôÔIµ`ú$`�+Ŭãüù=¯… R5pƒÛ„uË*•Ãô¯Ó‡^ýÅ¿’LÀø†ñ eè¨ø¬Q‘f Òl]KeÃLóŘ`Ô(§Ð;Ùp³LS�&`¶ÐF£!žA>Z.ÇC —ó>�^³œqÝã«ÆgëÀ„™!À 3¦®¯ hµÑr{â%™±rà×±ðÉÎú´`ªñTöʸ}¼ó<ž,{~CªµñYã»R9LŸn Òm_qé::º/FãýF± Ïçӿ☴n½O�[Æ<Ƀ $`ã-ýƲï&°øT92 "C�ÌŒì<ý{ò½ÿðì_,¶ãõ±éó0ð�sT’+¾ò 4?K¾+Uƒé&ÀÀaãÄ­9:\aA¾÷oâD"LÐ×·â£f m_Áµf¸åàDixÎi6|把;]P*�†ø²fήÀ¢"íxŠh–è‰uηõõum•È`Úê TÆ�?Q}Šø®\ºôŽßþõ¯KxÒÕħ…›9‹+¶¶·woÃ8þ… ±-rÐŽôÿW ƒISL€=)6®´hhüůþAÆ*©LŸ>lü'·© ß±áÓkÊ+’J€@R-²Þùüš×aA‘wȲQû16}¯LS§�ÿj-j|ÇøPýãÃÆ—ë—À”i&À ÍÖ•mðJ<=ˆên>ë16}X¤§ŠÿêÍi|ÇøPõ)Ž¿²ìÃW†GHÀ“Ýà 0Í”;}”jè `âT`ã_»9íø�Ü—kל)’@@ô„—„RÇÚ äóëNAª‹jOyt õXoïÕO}„g—ÿúl_ö!%Ý:û¢ŠO×§S¥–€Ôš¶þ‚)5pff‹VC×åÆú5`Ê4`ã/³¦Ü—4^Æ1>Í K€À±<ø 0n8O¬ûïe2˜: ØøË­Xö%ñþBŸ–—ƒÜ#ÀÀ=›ÄªQ>ßׄà™z;ÞcÞ#“ÁÔI'ÀÆßŽ˾¤·Ë¤éKʾ-“ÂÔé"À ]ö´Pšfìÿ‰ ß÷û$é™6ùØøÛµ¡Ÿ‚Oñm»ŠQZ¢ 0H´ùì+�ñFaW¡ÒAÐÄîû¦IŒD6þöMUö)Ù0€ç—Ú׌“L€@’­ŠîZt“@ñŸÅâ¢çCQ�B�'rãŸÙ%¥Ë>¥—Tì! î%¹3­‹¸h•˜tºêª»^ƒ Gg ³ïb&ÌŸÉc"~ãßšé øf‰i�o—È`Út`�.{ŠJ30pX¼) n2¢›”¨L�(¬Œ—éÝ mø– �­’1cëXGšd�J²ó ®ö·µÍÎVN2¿lêÎÆ?»—}K¶7|TèãÑ”•¹DC€@4œ‘‹pëQSƇ …¹Ã‰(,•´B€�¿ŒU ©øÖÃU]<ÎE||É<œD ’hµt^¼xÍ<œ'­·ÈÒ3u’°ñ�ÃZRSç•}=Ý™§k¸f‘˜ô9thð-X‹Õÿihð·ÕŸš)“D€�<Ö’û˜n*ûz<ú3W·0p˱iƒÆ$ÌüÀ›Þ´ì)¡ &O6þñ©âc$XðuIöLë#^UÔIþØmd{¡ ‰ ¦uŸÿxmd|ÌøšL ™¯Ëòfj—0pÉ1ê‚WŒD†Øý£ý¢Èš�”«ÉCækr_¯FG^“ ’`¥�u,i@~¦,õo²ôLí26þ.YGêkú̲ϻT&êqPw,ÏþþggA¥f‰ZZ7PËo¥|ÑÓH-yñÚð °ñŸ±4 >wºT¦O>É·¡�Ho»l(Añ`ã¿ ªÔ@äsØ`f•ùð²`�bãVS´|¾o*n¯­æÚñ®ñ}ïÙñÎñxr°ñOŽ­,øÜëŒï'§ÄÔ4  Â š ™¾`¦PÝÃ7.ÿ…P“ÇL€�̨1ûŠÏ®1Ù1—74ìû½cðGæ0ÈœÉGXÖˆeIw�–ÈßÉ"`ÿƒK›±Ô!h¾ÕóZç‹íC��i‘RßÛҡ¿LóOCá¤ÁŠ‚2`YÐ× ’{H¿[’žiã%0Òø‡´O<ÿÍ+õ=©ï‡X4ŠŽˆ€ˆ@»›�>I¦›Þ-KÏÔq`ãy[ùÊ|Ok5Ö&”“L ’i7‹ZKoŠ+Z´FT¢ØøGE:Ì|d¾‡µ„Á˜e£ì(0ˆ‚²Ãy Pô€ÙÈ/9\<ª66þc@Ià!©ïI}?�Ȩò( FÉàOÑS@è½d–Ø"³ñO¬éŽSÜ‚ï‰|ÿ8…x q° ¬ÛŸ|~•ŽSøó¿ì2¼˜‰Ì |#YÉ��¿ŒÎ1¾‡É›}ôŸ¦ÿþ&Àƒ¤içÃYýÈ|jL$â@jÿ©Fé{5ãåÇ`p¨…€ïûk¹ž×FO€�ộȑ¾åtçÁ Ýö ½t þ@è™0ƒº °ñ¯�ó é{ΛÈy8o"·ôýæA·5Ì®vlüÓm{ú^ºíEéDA9Åyär%Ú—�¿ƒF±¬}Ï2Ð Šc�A£Û,ò¡C-° Ô‚,6þ &@}/Fr\EŽ(ê±À!#±ñwÈá«Bß Ÿqªs`�jó²pY"ÀÆ?KÖfYI@N€€œaÖ%4e€ ågãï‚"×�¾9òteÈ ]öŒ¼4--‡š#Ï”C€�ÿ182󃾗S‡VP¡¡Í†àR)ǧ�M�Ï÷�pð`i3–„½05¶z^ë¼b±ý`²)RH€¾'ÈäV�¡¡aöˆÖŸØ4þJí��ý “œ’¾—d빡;7ì�X-´b@ ÖcãtDz,•ߎÙ$iê0HšÅÓ7ü鎩”zuØø§ÞÄUPO«òB^Fc`0&¬–€Rš{ŠW ËÂulü-@L‰ú^J c1bÌ»ª¬‹Åªª ǹHºŸ³4ÿqÔræp>ßý ÏÓZ¯BžQoZ¦«�ÿ#¼Ì„Äj#÷ÊÕ©šÌ(÷=õÏÅb×û_¡“Â?â¾ÿKóÛ$ì›°ûò_’¨¨”Ç À*Ó²ñÔžWþªýIÚÚs 9…ßù~ÈÅ£ø0ˆ²ËYà&²W¢ŸÖŠ=€U¤eãÿ*$Ôׇ^ýUÛ_’´µåÍÕRß“ú~4¥d.a`&ÝÈÆMDø ON@1«"ÿcM—Ë©Õh¸‚c�Nþˤ1i'¿29W L¯‘h+÷}IîLë.X!F0‘HÔàyjfŒê§:k6þÇ›wãÆ®~½ýø3“¹½’vÒ “r�ÖÞïIt•û¾$w¦u�¬£xŠø¹${¤Ÿ)IÏ´c`ã?6sTëÖkxnÿŠÑgÔ–ršÑÇ“ý[ê{RßO6=jo0Èx=ð}ý¬f"Ï”¤gÚã °ñ?žÉÑG°41¶Á�> Ø?à߸Ã朹Æ\[Ns´”äÿ-õ=©ï'Ÿ KÀ ãu`x¸õ¿…¦ÎŸßóZ¡ &¯`ã_]U0 z_ߊ�b\ù¯ ÕNü3¯ù™;Í1sÎ\“ÆÆ¿âsSQÖº?|¿î¼™Ð ίà¦ôj�›ãa¼«úJøºzKÞéHû‹zÓ3]™ÿÚkBe\ÿµ§LvŠŠÏI ñ‚ñ}‰¦M>ö$߆â(¥v …̦Ï|r6þ™¯µùœŸ¯U_^ï %•„ó‚91蜚,Ùø§Æ”‘Dk±Ï‰|>²‚2£P 0o2„ã}àÿ’hŠ×‘Ζ¤ÏrZ6þY¶~ýe‡ÏŠ‚n©Ïׯ9SºD€€KÖˆIÌ~J˜µèf$Ì;±ÉÙø'Öt(®EA·Ÿw€U�` %˜‚ôAаCXŒ×åówrEÀ ²ñ¯/=†@Å×êž´k„Yðùctâ�d`�L»YÕº­íô]8 ªÔð9’ôYJËÆ?KÖ¶_V ¾6PñyûÊQb¢0H”¹ÂQ¶P˜;Œ•Õž–I×o“¥ÏFj6þÙ°s¸¥”úšzºìóájIéî`à¾�"Ñ §‡Ô…‘(šàLØø'ØxN©.ó5¹¯;ƒÊ0ÀKWR- °,éù…‚f}§R°ñ ×DÀø˜ñµšw±Ì×�lj%ÀvbMgWq¼Ê÷ïB‰Ó~üãÕg e¤29ÿTš5–BU|lš$s ¾.Éži"ÀÀ!cÄ©JKKÓ1›¬Ôÿ8 0 ÿQ@øSD@îcj°ìë"5˜8%¤Ä�Òb¬]»äel´ú˜LŽºD–>]©Ùø§Ëžn”Fêcú±²¯»Qj/ñòw*w¬¾M¨Ð» …G¸Á ²ñÖ$&?Ž@Ù·ô»�;Qà >^Cn¼Ôu \·P¤úia §÷÷ïNPŠ´À¡dÆÆ?¬™Zñ-Ñø?zù„>žy3¤ €T™SV˜ææ©�Ê$`�òæIe$9=ÿ$[ÏmÝmø– w›µ«…€Zh¥üÚ»ïþð/q“í €Æ™ Lãïyû6ã5­0&Cnõ¼ÖyØÃý`Ê«!‹7©oß6>>ŽxÎ 4úDEÆMfóDç'?§ÎÍç×�2ùuéºb¤ñG©. ¡dlüC€š$‘eŸRçJt–û¶$w¦u‘­«Nþƒ²ìµòýÁ¼LF²R³ñO–½’¨mÙ§´’èŽap/É�i]$ÀÀE«ÄªÓ4†1f,¤¾#C ÎÏçW�&“á~j6þîÛ( –}I ß®Qß)ûvˆ° ¶0°E2ErÐU(€ŒT°ñOQ…w¼(xw=jâî¡O;‰êÕE€@]ØÒ�HëæûÑ  %¥ÔZÍ—¤w9-—­“>Ý0y¯SV*…SŒOóCÇ`p,þ�bqÑóø2s}^GÇç8™”�¿“fI­ReÒç ¸µâÓB1Lž6 ÒfQkåÑ}RQZ/—Êp)=—¬‘ ]lø†z³A‹¥¬•€Z‰eæú¦{1ŽHŠ‹a€…h4§Jd¸’–�¿+–ÈŽÆwŒIJl|Xë†û$2˜6½¤×¶¢’‹K^€€ïŠ„xzºïHüd@6þ²ZÀÔõ(ûŽž^_êWR}·â˯à$0B€À ~�A@YÐ]cNÌ!6þ‰1Uê ½B^(¹Ëu W 0pÕ2襵o€‰*f]|¼ÇÆò¸µªJËÆ¿*L¼(eŸÑET|X(†ÉÓJ€@Z-k¡\Åâ²_AŒ�ñÃÏXP'Rlü#ÅÍÌŽ'`Ãgî«øðñÒy„@€«Á„r9¿g ª;yi>ß#}•©ºœ,\ÕÕµªÑóö?Qaô\pc 6J³ˆŠ¯\*-£%ß•ªÁô`à°q\PmãÆef"à3r]‚OËeD#aÿ~ïËXyí�!䯯?¨é©m<ý?SñÝôáa‰¬`` e:áb�wÈK§>�Ïß9[.'\ ?B.lüC€š6‘óçw·¡Lï—– ¯ÿ­6¾+•Ãôé&À ÝöµRº\N­Å eH&ÌÄà èîÂÒ«¶ý‚�¿¬òd&u©ä]oaÝÿ!tÿ¯Ë 4´n¶otu+„îظqù/ �x51³¦yGǪ7¸[R£™~·eýØø[šVqÆ7äëþ£kµ©â³iEÅrY"ÀÀÈ´‹QªáKò2ênp×Éå„*Áæ6ÆlüC5Uº„—}C礥òýÜmRLŸ  ²agq){{¯~}øKáéäà öü®TNÒ³ñO€‘\QÑø„ñ ©>ÆG�¯Jå0}60Ȇ�­”‹ŠXx²ÐMCCVf9[)ÓBöŒq¬ÖClük%–ñëá�Îû& ,ôÔYЂ"A€@"Ì䆒XTäAL|J®�îrw]õ/Âò±ñÌZò²/hñΙÆ7ûúº¾�5~,oýÔÏ.“)•ò¿(-8Æ:}¼¡t{¡ ¬ ݸ‘Ö» "iåÈXzãÆŒOH‹nÃ7¥:0}²ˆ+]Å=XÅ5ã]"I;"S"C’v$ÿT}Á´õgÜ%-öxëÎ�=ÎmT,.݉²Ý^GùØø×-ëIŒ_�r0>i|S*'…é%÷pIÚ”’´#ùOøE°gB &>)I;"Y"C’v$ÿT}‹í%ܰn´S(}3Þ9ÙŽ,{R¦O÷>iß©^¢Âj‰­óÀ&t‡­^'^é:�rÝ×7ÛÐÓø¤ñM²R&Cr—¤Á(‘!I;’ÿ„ßþ„g-œDwêCõŠ‘¤ÉS"C’v$ÿ4~·µumò<Õ/-º=[=oø R9¶Óww¯jmõæÁþÿ€ã˜sæšÖVýn6þ¶­�yÃ_(û€´¬ª¿ì“R9éKÿdû3�YC°Š–¤ÿ&:žn&�I;Þùj�Ç�µz&éºBA¡QTK:/jo_}¡%YÖĘ  ¯oÅGµn<eý*›¡ó„oþáoõUsÎ\c®Å1~H j•:¿¨ê^¨ eŸœð¢LžŒûþwþ“]Mv��óíí«þ‘îŸ×"Ë�YÙ Àm˜#õÉtbi¢&É@Ô…b~Ñ@ãÿ9ÌñxÑN®je>¿úR;²(…Ü P®ÓÊÒœõbÙçÜ(µH.ɵ�3šã‰ýžH¬<Ù`Ê(æ4•îÎç×�âL© ˜ºlê´©Û1¯$5¾f|î•üƒê$`¥BÖ™7“¥Œ@>ß�ñM}±�b©ïc2è\L áêfv€RJ òù¾œçí7~ñvÙ£ñ]ÿ—Ø�E$ÀÖ‹üåx|ÙŽ@ýv¥öý;²(…â!P®Ã¶õ²Ö9çöψ‡,sµA€€ Š”q„¶ þ þ(ØÂ�×¥®ïèXeÞá‡GÀÔ]S‡-*^¨ø˜E‘•e ²lýÊ>{ö·aBàãvDkêž}hÕëíÈ£ˆ†€©³¦îÚ÷7>Uö­hôg.Ù À9Ù°s¤¥Ä“Ï›1Ky;þÙXº«G1à]˜p8Ò‚03¨ƒÆý§zÞ¾ï éÛêH~\ŒûáßùXôKoóCö°ÀKJª¨Ü¨,½òd„ê 0–Ú[žPEÌ$à.SGM]…†VÿJIW²ñw׿IÖŒ@’­ç°î˜©üe<¹Ó–ŠèM¸ 7Ö[ò(‡ `ꨩ«öd«o–}ÉžDJ"� FHðÛ:�ÆÆ–źǖ`ÜX—´·wßbKå�€M¦nš:jQ枊YIQ$ð*¯²à_– lذpŸïûf Ó–hlC¼²££çã¶äQ Ø `ꤩ›6dÆgŒï²%“rH`4,RÁ „G ¿ÿþŸµµ]n&ïY{�OYïmk{ß3;w>ðdxšS2 TGkü/@�\…«­MªÆz×õõuõU§¯"�úX«°õeÏTY €'#ÕÞÞƒùú}¶Ê[îUP—á&ùm[2)‡j%€nÿ÷¢^ß�ÀÒ/Fõ@_ßòËèZõáõ$P ÔB‹×ÖE |#ó¡Ñ~®.c$ªÜpïÃ&+8Æi"�Ð TêÞ}6ÿ²�_a㺙�Ç€• XÁìW¾¯:‘Ù°­ ѳÐây¥o1°E”rª%P®s¥o•ë`µ©&½nØøˆñ•I¯ä$`� )¢:›6u=Š'œÏTwuÕWÍP*ØR: /$�º ˜ºfę̂[È �oã‘@(8 ¬:�Ê|€û0nú�ñ®©ç8nžCèŠ]ŒmR7Ô“žiH Ý Q‡×Øìö/竾Žqÿ+Øõ_�x�-ì°E’rª"`np--� 0Ñ ÛýÚû”oÈê¾"h�)%KÀÔ­ ðî¡ñÿ¾ñ 6þÇòæ¯ð ° |ÆÌa ‹¯™~èÐà÷pêì1NKÝ‚ž€ë¥B˜žFàU¿ÏãïëF~[ü~²¥¥ék×.ÙoQ&E‘@UT…‰…A ³óŽß ‚ámx¢ši[>†ÐMÛº•l˦¼ì¨¬ío–÷]b»Ô¨£»}¿áÂM›®þÛ²)�ª!À J¼&4S�…nÕ­˜p²íLpƒÅûÙ­ÜEÐ6ÙlÈ3»ú™�}Ðø[\Û„�zÑ÷½‹z{»v�á7 DM€s¢&ÎüŽ!`n€¸þ <æ„…å÷þ‡ÍÞìÄQD†”ëÌþ‡Ãiü½ƒ¹\î�Ùøg¨B9ZTŽ&KjáFøÏó?hfòÛ/·¾``À{¼£c•µ¥ˆíëH‰.0uÅÔôJ]`[¯r÷?ˆnÿÚ–My$P+ÔJŒ×‡FËÏÇ+Vëqã ¡^š•ÕÔÍž7íÎ Í„‰lÆû=ïÀ�¨Ÿ«b¦ÿB¼î·1Ñ ¨|j„p£M $íí«>†nׯ†•5žÀ¾§õ”Åâ¢çÃʃr“G Ÿ_wŠR/o@Ý{GXÚ£îýe_ߊ¯…%ŸrI V¨•¯•€¹AâF‰§°p>æ�ýãXÊõÒpr Ô¤0uÁÔ‰�ÿÙø'­f¤__ö¤ßƉ,a¹'@}%œ®XƒÄ è[ÛÚf}¶P˜km‚DÂΨ҅Â# ýý»>‡º°2Ìz†µ¯>ÎÆ?£•Ìñb3pÜ@YVÏÌ ð¼`žÌ,nµzÑ­¹\ã‚M›–ZÛ©ð¸xÀ9��wžZ* ™e£/ K¹Ê„¿Eó‹0åJ 0�dúP äó=ïFðOÈä„ð2R¿ÆSÚ ³gÏú;ö„GÙÉæ©çÎ]¡µÂ0“þíuÂk­þ‹ÅåÿbM" Dø˜8 X1ð-¥Ré[¸a[_,èXýÕ¥ü?ëë[¶íØãü•íí«/Ô:øGÔ£9á–çÈ"?R~½5Üœ(�$Hè1mdÌŠ�xEðÛ˜n¦J£7`­Ö�+‹Å¥/†›¥GA Ÿ¿ód¥†nÅSÿâðÆúË%A·ÿn¼ê÷^.ò…e™‡”)A¦�Œ€Ù; T~†±�Ð1åÀ�|þ]æ™]=…‚ Ž9ɉ P(hÿé§»—#hü<þµF ô“¹\Ã¥\Û?ÒÌ V0RHTÊ»}Oro�"O<ÍýOŽÁXîcQäÇ<ìÀÜ‘óГs;z�ÞjGâdR”ÙÒ÷rîê7'žw‰—¬A]ª"€ `Ê¡Cf·þ@U „¡'=ª»±QÝ´~ýòŸ Å1yˆ.ìùÝ¡!ýÔ�.<õG´Î‰ú:ÿhü_±hMÖ 0°Ž”£ €';ÕÑÑóWøþä×Ež ¬Ã“å­½½+~MžÌ¥X¿ÿ ¨+Ñè/BãßTM × £‡è¯{{—ßXW‚HɲµE ³³û‚ Лpã?uÔ©ªäÙp3& î 1#Šž„&øÍVjøÓ°'~¬åÍöÎ÷Uç¦M]�F“#s!ûØgJ‰ÀR®'šƒÐ¼/Ú¬�¬&øu¼ï�@€s¢doÆøaslÚ£0 ÆæQ•F=0ujóâ»îZ´w¢«xŽ\'ÀÀu Q¿ªT†®Ecp3žÃ\9p<}ÌÛ 7‹+¶Žw�Ë äó«ÌÊ}ã÷"ßËOýØ®Z}]þ·±Ë_nKJˆŸ€øm@ ,À¼€óƒ è…ÈÓ,Š­Z†m@VyÞô{±íðáªòÂq `›Þ©ž·ÿJ4À+è]8î…ážØãû~ÿíáfCé$ѱfNX°`}ëÐСµè ¸<¢,ÇÈFíǼ°õJ5ôôö^ýÄðÐ$::î8Gëa¼Ç¯–Ó'¹<ÄÓê›��-‹7lX¸/ÄL(š"'À räÌ0*ù|÷5h„o‰iHà¨bªÇ ÇFèQÄÁž£NðÏQÐÅžôóhô±”Æ8|Óå=®+»þ6>-˜3 „G€@xl)Ùx=ìÍA î@crnüê™4¸]É}AЄ``Ñóñë¿ùüºS|0�¡›vŒ±Ÿ[9p_R�û¾¾¯{þ(~BÔ€Â!à€£…S0J%�åàžÁA¯€1ä)#Çãý>²çÀB‡Ñ3°¹­mÖö¬ìDhìÑß¿ë|�Êü€+ð¯Í}�©a °i“Æùïã8 Ôxiª 0HµyY¸z˜YëýýÝ�h(n@P0«LãØplˆ×úº6¥å­ 7ÈR‹4`�+² ¡Àô9ß?°Ü>…ñõ³BÉ„BC!€1þ§0Qò‹A0m=öd(…’ …’@ 0H¸©~4°†À¥J×âiï°óã*<ñ?¬µÞåÐU© ¸B€€+– ‰ PÙ æ“P¶½ql;œNQ*‰§}ó:_/Þv@Ãßõx”y3/H2I¶u��€y¾TÒ‹,ÄA¬0ÈOôÔOÐø¯ÎåÔÚ¸ÖBˆ¾ÌÌ‘ì``�%%e�†TGG÷Åå@ÀÃ^s1DYätóÿ‚.l³Üõ¯ø[G™9ó"�4`�&k²,±À<�1O Á@Ú¥wàÛ�U¡”dާüqÖ÷ð�n~¿ãû¿JIÑX ˆ•€Xñ3ó´Èç×`9ÜÁ+±r¶¸õ.Â+}­&cy²ß n}ž×to±¸Ä,ƒÌ �€E¼)Y„IQ$0³ß½R—¡G[ßj³Þ c]ÇcÞAL[ð¤¿Yëæû‹ÅEÏ“ �@x„Ç–’Ià8X[ Éó G Àk…Þ<™^_ žB£ÿ ºø7cÃÀ­xgd‚ãØñ �€] ìò¤4¨‰ÀUWÝõš��à4Ûæ^ˆïóÐK€ !�…Æ]?†‰{ØâXoknžúèÝwø—i,)ËDI À V¢Ž™!°xñš)‡ ¾OÆ„`Àl±‹íuõ™�´· °Û zåÀ¶ÅzÊñï--M?\»vÉË™1& JŽ`à¸�¨  �4ô÷?;Ë÷‡ç`dzð†Á@e&þ�Ž^ƒ×ÆIOó¿@þÏâ¶#V?õ}ýT4ìhk;}W¡0w8Nݘ7 �ÀÄL̇gIÀi˜S0ûÌÄSöL]ó OìG¾qí®Å“ºÞ‡ã{qÁKx’ß‹cøÖ{ñ÷Ïq|7ÖÙß�1ûÃGDð?                                                                                                                                �TøÿscZ:5›É>IEND®B`‚nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/logo/nearley.png000066400000000000000000000040251376321042600242410ustar00rootroot00000000000000‰PNG  IHDR€PÑ}ägAMA±� üaÌIDATxí�=‹UÇWv!‘Ml‚a«H iÜ2šÞ* 6Qü+‚°UŠ@ÈHaca¥úŒM- ±Ù"UˆØ,Œ¯ÿ_x&Ï3ÏsæÎÛÎlÎ�Ãsïœ{ÏùŸÿ½óvgfwc#%H’�d H’�d H’�d Hžž{=­/K/H_‘ž“ž’_¨~6ú›~•Þ“þ"ýVúPš23¶…÷†ôgé?Ò[*}ñ�/|¦L˜öè]){nÛ�úá›ÄJ™/ Çžôwi4€}Ù‰EÌ“ÒYËœ¯À~Uz]Ê9}•ü-ÃOÒÛÒ»RÎï÷¥ ÕÏÓë�—Uæ:á¼ô ékÒcÒUÂ5ÃGÒO¥L®”‘8«8ßIWíÑ�eûRº#=!m+ô}[Š/|®Š0¥ŒÀÀ%Åx ­ŒGÚ~Mº)í[ð‰obÔÅØRdà}ùþCêà/m»%=#ZˆA,bz`cJÏ p¾)õ„SÿFúªtl!&±ë0�uÝµÃØXg"¿’z¢¹Gÿx™�,˜sô0@u{>WðWzðÝ— °€ÉO°§t`€ó©'u_Û.vð9TW0�ÍãÍk‚–ŒsEí/ø ø¥–þÆè6? È!ï ÙçžÚßêqˆ�âžïS£?�K®x¦VÔYáó‹<\dM霿úÓÍ`õ†ä4ç•×§É ]xOüyt Wû¥yƒÙçAn³‘7…ôþB){‰ì¾}“:vxþn‰ûºIlj¶ñëäÖפˆÿÈRÆàWAÙKd÷í›Ô÷Ô¨ŠÉ/«m}/òTÄØ8¥å?…ëi$`÷+†{Q§†öˆÿȆñ¤ø‘Ý·�êÇÕÀ?Òeɵo±ÄøJêL‚&BÖ/9’kW±>){‰ì¾ýR=rÙ—>”Ýú|¤ú™ Os_¬M„ÈÅæ¶Û¤cÐÆú«ÃÙ÷ÿ©øÜ|î#¥Û,Lt‰ìÍ¢llü †Öïã�) ¾=7ƒ…:Û½Xœ”Kå²:XäÞV¬Ÿ:,‘=Œ9ˆìa€Eƒ}ýZ_[M;öЮdð gqR.•-u°>öK˜öÖO–Èn\Õ½ƒ±ê›õpzßZ:øð”‚"7ïc¬z)ÖCúB1ÒòmŸ(~°J#“›÷1V½ë¡z´|ôƒUJjN€=©Cžº ~`Ö§?ÛýÀy{Óú¾Z_[M;¶ë:ø„³�’)—Ê–:Ø\ɽ­X?”½Dvß~©9ˆìKWlã6°�Á~õ(™Á§\*yXëov2}PӦ˦¾¿ †ª/¹Ù\ɽ­X?”½Dö'í§°xÏ!?ïê]ª þÐË»%ø|n>÷_ƒ·�fPdo pG ­¯;M;í¦´çWP'÷0¨V÷k…²—ÈîÛ¯ªñ8xŠƒŸ�ƒWÍmïó…�)>©ç !k&€%Œ×§ÚÈTŸ\ò•°5#º-›=¥´y)tʃÏP¾ºf`âUi; ®í­ù-Uš>ÒµýÆ*“‹Í�\»ŠõGÙKd÷í—ꑃȾä0ذ+»õYòaˆ]¡ÃǪçù„AÌùaHCZù\ªí§avLiðIý–ÔNìÙ|fI¥ì%²ûöMê{jdÉb0›|ʲ,xPNS‘YjI¥ì%²ûöMêuŸ‡ó‰õ\ìvB?TýdOÉDüGöž`ôï&ÿ@DÿœÎÊ#F…WÃížÃGWf”XÁls 'rKiÀÀYµy µ¨~±AßÃnF°ZìäBN) \RÛü3q„Ŧü‘E»'QÞ—NñH&°y¼ä�Ò��›êëIå;¥k°øÃ>˜ÁžÒ‘�cêŸ,º#‰sïÎ$¨;°—q¯Ýd±¨oˆéïó«#XÁœÒ3œOý…!¤³bÈ’+ëîC 1ˆEÌjÀ«_°å9_$ )Üø[ÄjÉÆ“·ÍàßĨâÙ_0�-e¸§ö‹Ev0xöÎ ;ÒÒ¶Bß#ýO£æ¼2ö«ÒëÒSÒUÂyøQÊ„¹+åMÜûR®ÚQäøB_Öoõoã^Wy[ºî\žÿ6N¶ðiOê%Û#Bßeb³¯;r•Ò•öâ]©³¨ÏÁÇ71ˆ•2a8tß�ò¶±(S2!è‹|áóÈÉœ¯šÆi5¼,½ åü~NÊ5{qµ'¨Œæ¿� )É@2� $É@2� $É@2� $É@2p4øºÎ§cjIEND®B`‚nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/logo/nearley.svg000066400000000000000000000026121376321042600242540ustar00rootroot00000000000000 nearley Created with Sketch. nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/logo/nearley@4x.png000066400000000000000000000306741376321042600246260ustar00rootroot00000000000000‰PNG  IHDR@ÊÈÄ gAMA±� üa1sIDATxí�{ì-Õußy\cnå ó2Æ×v.ÁF1~'¦\þpRŒAŠÕþA+åVá�DU°Y&¶Lÿ‰d)±¥Q\ETTMEU?Ú&–I0€âØ$¼ÔX<ä ®e¬æ^P#›«ð¦]_ø�r~çÎì³gÖžÙ{Ïþ,iéœ3³÷^k}öZ³çœ™sÎqÇ!€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ �íŽßÞ„€@Áöšo?czŽéÙ¦§›ž±ó¸z~ª½>Ùô$Ó×o<ÚËãž7}nãñY{ý¤é¦�o<þÀ^6}ØôS¨�'N.7G`�E|žéûLßcú³¦Zð÷›¾Ù4§üÐŒ1Õ Áß™>hzÈô!ÓM@ Pœ:1¸Õ,½Sÿ€éMµàKßeªwî5‰>Qø®©N¤kz�©>Y@ �pPÀ$àBÓÞdÑ_lz`G/´G}T¿DÑ¥†{MïÚÑ»íñG¦ ��' c²iZܵØ_±£úH¿eÑ%ƒ[vT':I@ �p0dL4O`Ÿø¨éå¦ÿÔô ¦È±ŽÚ¦o˜Þjz³éß›"€ �ªèæ¼ß2½ÝôeÓÿ‹b fb÷oLsßèh. € �~§Ù®«M¿iú’)‹~b)¦b+Æ @ ;]Fû�é—Mu‡;‹þ´ ÄX¬?dÊ%Lƒ€@€À¼Î2sךêûî,úyˆý§M5 @`RØè_4ÕÝê,üe0Ð\|ÁTsƒ@€’øˆ�öuSý²hŽ4W @`4�­çU¦˜²ð×Å@s¦¹Ó"€ �('X«ƒ¦ß3eᯛ�æPs©9E @�tWù•¦úu:þe1Мjnùæ€A@ @à5—ÙÓûMYø—Í@s¬¹F Ð<Ά›O�æ¼Óü‘é¯TLâóýÈš>fÏŸ0}|íñ'ö\ÿÐ'Õ]ó«G{úÊŸéßõ?z”žbz†éék�gÚóýkº×ž×*ú©áOš~¿Öð^œx Ò¿VZà~Çô㦯«$ˆšŸúk]Ýà¦Ç‡L›>jšCôýûsLÏ3]ýuñ{íy-?Ýû‚ùúǦ¿kª$€Nà×->ý mÉ÷?eþÝjª“”KMõ¯òY¾+ÅR2kå‚r� �…x‡Åu›i‰‹Ñ“æ×WL?fªwÓKºk]±(&ŦK=!Pn(G@X�=‡~¶W×ÊKYü_6_î3ý¬é%¦ò±Q¬ŠY±‹�X”2/ÊåJKóaá"€–Gàý’îü.a�ÑBw·é'L÷™"¯ 1›RN”3Ê€*$p�ù¬;Þs/þ÷˜Ÿ2}»)& Fb%f¹çM¹£B @ §šŸ7™æ\@tMÿ:Ó L‘qÄN Å2ç\*—”S Là"óíaÓ\ Æ�fû*Óš¿#oî%b)¦b›k^•SÊ-€ # ß´ÐGǹ>ò¿ÅlëÆ6dZb,Ö9N”[Ê1å@8Í|Ð/»Í½(¼l6o4½Ð™—€˜‹½æ`îyW®)ç@ÈHàb³ýˆéœ‹À‹fïK¦ç›"y ¼ÛÌk.4'sæ€rN¹‡@€ÀÌô1ì§Mõs®søõûùbz®)R͉æFs4W>(÷”ƒ\0 �9œlFþÜt®ýKfëzÓ·š"eÐi®4gså‡rQ9‰@€À„Þhcßn:×Áý[f‹küNèDCkÎ4wså‰rR¹‰@€ÀÞbc2�ã þc³sµé ¦H�4wšCÍå9£ÜTŽ"€ ��€þrö°éÔrÝUþ_Lkú÷=s Ð\jNçøÆ€rT¹Š@€@°1ô—­S/þß6øËeÐÜjާÎ#åªr� �[ß§M§ÓJ¢„ 0ž€Þ-My Ö÷µ÷�w�ž % œPnL™{|°Ðä!,@ÀO@×K§ú8Vã~ÖôD¿›Œ°PÊ åÈ”9È= M‚ÆÐÓSÝð§¯e]6Þ5z6F@¹2Õ×N•ã|; ±„"\@ ŸÀ/Ø®©¾êw—�}v¿iö@ “€rF¹3Å%åºr� Ð4ýjÚTï¶¾fcïmš.Á{(w”CSœ(çùÅ@ÏìШšÀ[ÌûæS`o°q¹Þ_uzá¼rH¹4EŽ*÷U �¦èŸÓ™Nq`ýý¦Hì”SSäªj€œc±AàdóbН\éîíO!N,‘€rkŠo¨T �E8Þ¢ûsÓÔï¦twõÁE“#¸(Ç”k©óW5¡Ú@ ,–ÀµYêƒçQó#‹%F`¥P®)çRç±j� °H[T/˜¦

nãýâ"iTÉ”sʽ”¹¬ÚP� €Eà4‹æÓ”L½ cñ_TšTŒr/õ'ª‘Ó«¢€³€tmófÓ”‹¿®Ãò±:»f! L}O€j…ûf™>Œ@Sø”H¹øëNìƒS;Íøˆ$ \LýíÕ @ j™÷©ß!ñU¿ªSb‘Î+'SžäªfT; �* œj^?lšòÀø¹*Iàt ”›)s]µ£B TGà&ó8åñ†êàpk”£)s^5„@¨ŠÀo›·)„_³ñømÿªR Ig•£ÊÕ”¹¯ZB TAàýæeÊëþú[Vþ՝ЩÇÉ�\MùWª%Õ@ h{Ì»ûMS½zÔÆÒ³#¨‰€rV¹›ªTSª-€@±RþÔ¯¾ZuY±‘â”»)¿ÈO‡y³ÈHàfûÓTïz~/c,˜†@ ÊáTõ ÚR�!€Š#p›y”ê`§¿H妿⦇Pÿ�iªºP�ñ+�'�æ€À´~ÆOu�{ÌÆÚ7­»Œ�Ù(—•Ó©êCµ†@(‚À)æÅ�LSàtÍôò"¢Â ¤# œNu?€jM5‡@ÈNà̓‹¿Æà—þ²O'LD å/ªæTGàÝæñçM¿cúôŽê¹¶ißÔ’ÛþÔñÍ=þ;Í`ªïüßací™;ìA`&ÊmåxŠ“eÕœjF ÷ñ?·ýa´¶>ÉÆºÎô%Ó¾Ð>µQÛÔ’Û~êxJ/ÕßüþÔz[)Aá&" W®÷‡lWí!qrÿsÛ�£4Q+ÿ ÓØäV[õI%¹í§Š£´q.3‡bçt[»kJ  0åú¶zˆÝ¯DÂrÿsÛÓ™a¯ÞÕÇ&ôª�ú¤’ÜöSÅQÒ8ú*Òý¦«ùò<~ÛÆá£ÿ’f_¦$ \WÎ{jfÕW5È×ó•ûøŸÛ~˜ÎÄ{uÍã%ÓUÂÆ>ª�úz%·}¯ÿ¥ö¿Ò‹�ËP;Ý} Ô +ôkócˆý÷)Ÿž5½Ïô£ÏŸr>Õ·T‹H7�ÜÇÿÜö»©Ì¸U7÷�=Ш¯WrÛ÷ú_bÿÌ©MÇÎëz¿J °BŸô1£ÞiŒ9Ù^Ÿ�%=×{Èô™–(Êý¼U‹ªIäX¹�ÿ¹íKdæ-ºÃl’«¯WrÛ÷ú_bÿƒæÔØ9]ï÷cç̧̬¡××ç …çOØ|–x ÜW ¤˜Õ$r,�ÜÇÿÜö�%2ó}Õol‚«¯WrÛ÷ú_Zÿ͡�Óõ~¿YZp•ú£wþë\y~,}P¢¨RÌ—jRµ‰ì&�ûøŸÛþn^y“Ûërnû^ÿKë•9äeªþß2åcKÿ쎽ƘbkC—J¼'@5 ZHÁRµ‰ì&àåº{´á¯rÛîqâ¹ä¶Ÿgöá0¼Lu�úÂì‘,ÃÏ5Fï<ÖÖ_7–(ª…÷n¨6‘ݼ9º{´á¯rÛîqâ¹ä¶ŸgÖáô{æ^žê}Ö(–eÜs�1Å\Ö4†¾Pª¨&R°ä4vϰ—éîц¿Êm¸Ç‰{ä�Û~bœY‡ûºY÷ò|ÎÆxkÖ(–eüésâ�ÓZúë2@©¢šPmxYªF‘×xy¾6Ò¸g¹í½æl;×\`Ï/]{=ö鵎ÿglgúAÀA äÌQM|ÁÛª«jôçW/x„@n¹Ï€rÛÏÍ?•ý/Ú@^–/Úç¦rˆq^!À%€ayYrÚ¨6T#Þ:S­"¯ð²ôrÌmßë¿»n¹í»0ÀYæCŠüûR±,Ín¶`–>ÿªï1KµªšEü,½ ½s鵟½n¹ígŸ€\kcx9êúëù |aˆÝøà°ÜÜM¯¼WšOÕŠ·ÞT³ˆŸ£—¡w½ö³÷Ï ·ýìàt@×M¿oêåøU§tï'ÀÅçg?ÅröÜh®xëM5[ò=sÑörôú™Û¾×wÿÜrÛwÌ<À/™}/Cõç{ÿÓM$?Ÿ£ÓÍBº‘U+)jNµÛºx9zùå¶ïõßÝ?7€ÜöÝ3ðe³ïexKæZ0ÏŸÅåi-¹ šñÖ�j·uñ2ôòËmßë¿»n¹í»fà4³­Oñ2¼$c ­™Ö5dݨoðÇæn-ù šñÖ�jW5ܲxzÙå¶ïõßÝ?7€ÜöÝ3pµÙöò»3£ÿ˜.›À?6÷î2õæØ�þeÙí�jgHl]mUÃ-K“!Û¼ì†Øêj뵟½WPC¶yb««­×~Íýo3绘 Ùök5À÷ÉäXü•·5‰jgH­uµ½­¦€'ðµ‹É�m^—†Øêj뵟½WPC¶yb««­×~­ýßlŽ{ÿ äIco­ð{2¹ÕwM¢ÚQ u—b·©†UË­J,§¾v^n}ãÆn÷Úöç§€ƒxšÞy¥EïÍÝ„ôLÓ ~“€ÿ[M/ÞÜÁëc¨v¼7ò©†U˲ˆ=ÓékçuºoÜØí^ûµö¿Ý�eÔ×î‚ZƒÇïIä|ç¿ÊÑI›pPÕÐÊ÷±�ªåVe,³U?/·Õ8c½ö³÷øªŸ7€Õ8c½ökì¿ÏœöþÙ=5ŽÏ“(añ×1 FQ-�=~©ŸjY5Ý¢x¸¥È—Üöƒsîýˆ788;«%ðQóÜû+bÿ½Úèq<5>ö÷õÖ’jY5�@`v¹Ï€rÛŸxƒ7ÙnzÇñö~0DýJyç¿Ê牪–TS«Æ<ª¦[”1¬Öûx™­�5æ¹×~öþc‚^ïã `}¬1Ͻökë¯_”óþ€Ìݵ�¿“(mñWý×*ª©1ǯUÕ´j»5YÅ?öÑËk¬ÝU?¯ý`.ñ4¹S¿@ögäæìO÷ú ð±Ú9ôÖ”jš_äL;'Õ�Æ @õS˜<€+œ#êÌõ+Î1è^7ÿôó§šRmyärOgúB` �ÕGcÇØ\ï3ÖîªßúX-<À‚\Å>æñÞ c/�)?ö¿Ã™›Êçšå>s~LM®ú¨¶[“Uìc½¼ÆÚ]õóÚöç€ žæv¾É"~�3jýÈ Ò&�)ßùëwñ½ŸNÕ>+ÞÕTm«Æ¼B€a�@Š_gó¤Öýáy=æXü�ÖƒcOSÔVŠŸ$8�Ÿ'ó3/Ùâ§sOYÿÿéƒîõ`ñŸgÎT[ª1�xkÜc›¾…à ° ÉìŽ÷àðWæÿ‹™cÀü¼Xüçã­ÚR�yÄ[ãÛôm�Àêf†±�^dcí®úyí×Òÿdsô9ÓUÜc?VK°ø™„€ÿ»LÇäʶ>ºá¯ëë¨ÛúmÛŸ$ðŒƒ¨Æ¶ÅÚ¯W­·"!1û¼œbl„Úxígï .fŸ7€¡6^ûµô¿Ä qˆÙ÷¾Z‚ÅO7�‹¿œŽÉÃPwà™P�…â‹Ù§ZoEbx„Úx9…ÆŽÙçµìÏ%€ ž¦v~ÐíO¬ÿƒÎ1è^>öÏ7Oª1ÕšG¼µî±Mß‚pPÐddvÅûî]7(é÷Ê‘e`ñÏ;¿ª1ÕšG¼µî±Mß‚pPÐddvÅ{Pе`dÙXü˘_o­yk½ xQ�˜ë¡6Þ CcÇìóÚ¯¡ÿsòYÓ}m.­!P|M ×5ÿM‡ûò/vûæx5¾V­ÅÆÛÕNµ®šoAºâ²ÍËhˆ­®¶^ûÙûw5d›7€!¶ºÚzí×Ðÿ|s²+ö!Ûά!P|E ”Å_ÎÉÉ®¶£ÖIµÖÛ�mªùd“®¶^F]cÙæµìÏ%€ žfvz?ü¡‘z¬ZmÊÇþåÍ·jM5çoÍ{lÓ·œ2™Ýðþþÿ¡Ìþc~,þÓpM1ª·æ¼5Ÿ"ÆÈL€€ÌPˆùs�~´ø/cNdÅwgñ/{м5÷³e‡‡wsà`ÊåÛØïtÑûnÄižî‰ °ø':ÁpÞš;gŸ²2œT6a¹ë=<4‘_ ;?ÿù™�±è­¹ýcŒÒC ¹ã±«íP{›í»Æ²ms¼¥½Þk áÑÕö¬¥Ai4-þsÿ¶ÿPÔ]ù7dÛP{¥¶WÍ ‰»«­jéÒ÷�m^>CluµõÚÏÞ¿+¨!Û¼ ±ÕÕÖk¿ôþï2»âŽÝö¥ˆQjXüHl^öµ‹‚QI#Õ^_œ1Û®’8=nÆpµñØVßÐØ1û¼öƒý¹ÄÓÄÎýÎ(�8ûÓ=?-þ·˜^<�+wÚ˜W˜�`ìÖ‡<âà½ôç4O÷Ü8È=ùíŸítሳ?ÝóX-þSüO<‹ÿ´s{Ä9¼·ö�æéž›'¹g ¿ý3œ.qö§{>,þùا°|Ä9ÈéÎþt¯œ'•O`÷½~0Á$d‚Å?ôÄ&½µç=ùOÃÍM€€¹‰—gÏ{ðxy!áÑ,þ[U²Û[{ÞÚ¯nöà �L;Û½ïžhÕ""eñ_Ä4¾„·ö¼µ¿’�FRÃ_Bê«9%·ýœ±ÇØö„blÐ& ÿ4KÅ[{ÿÌáøžÍEóá€ðä³w;ïÇ�Û-Ð"ÿ˃Ú+k>ªó†€ê¦¬8‡Ÿ*Î#Ú$Àâ¿Id¯©½eÌc¶(8Ȇ~1†Ÿ[L$Ë „ř󪨨½åÎí,‘q0 æEy~ÑÑÕ‹Ýó·Í{jo!ö pÄÃ΄" ehÂâŸúÌ&©½™�/Í'K›ÑùãácÈù™o³Èâ¿�Ð2öS{˘ÇlQp� ýb ó.¤¬©dñ/k>¦ô†Ú›’ncsÐÀ$b3Xü›™j…€Ÿ'~†­�pRë ‰ŸÅ¿�‰˜Ñ joFØK4Å ÀguÞ˜^?¯9¬u`ñï€ÒÀ&j¯�Iž2DN¦¤ÛÆØ¼ É;Ïo0󷘘À�;mÌ+L�N06Cú P{~†M�À @ÓÓŸ$xÞ…$Á8j-þ·š²ø�ÂW}'j¯ú)Ì'yù/Á:ïBòÌ"‹î%Yå ¤Ù¨ÐN*œ´Â\~caþ´à‹ ³¼=ÆS¶7¡ú pÐφ=qøOñ8N©Z±ø§"Yÿ8Ô^ýs¸øôÊõòØ^ôAï€ý çüôNý£ hñ×�yÞœîê‡�«ñK—§ÍÁ.ÿc¶©ï’Dµw_ÕþÒ¥/öØí^>±vúÚyíûó @O;wFÉ»'ÀÈî¼óÔ#‘¼ºšyúv�—{›·ö¼µŸ;~ì; p฀îO8c8ÝÙŸîÛ °ø¿Æè/_{:ø™§ï`c3tðÖž·ögSà`JºuŒí}pfaVë%‹ÿî©ûÏöòåÝ›¢^©�ú.IÞä Æ[ûNótÏM€€Ü3�ß¾÷]Àþü!,Öÿc§ö;¶éúc7oÝ¢>ê»$ùg0ÞÚwš§{ únnˆÝîek§¯�×~éýõKo}±Çlÿ_¥X©Zü[¿á¯oêôÛß0�ÉOµQÛ%þ^…j/–AW;ÕþÒ¥+î!Û¼|†Øêj뵟½WPC¶yb««­×~éýÎìŠ;vÛ?”`…þ±øoŸ4-è×™¾dÚ—«Ú§6K\ü-¬ãT{}±ÇlWí/]b8„Úxù„ÆŽÙ絟½L�¡6ÞBcÇìóÚ/½ÿ^s0†C¨ÍY¥Y‘,þÃ&ëÝÖüó¦úx__ó“ê¹¶ißRE5ªÉ˜}ªý¥K ‡P/ŸÐØ1û¼ö³÷� 2ÔÆ@hì˜}^û5ôÿ�9â¯ÍE5Y��,þLR!.ªæúê1f»j¾‰ajãe;fŸ×~°?7ñ4³óˆ3Òóœýéþê�ððÇ>dB,o͉5D»åà`¹s;$²ÃCw´}_Ç66ÅÐ;ÿx^´<î8oÍykž9XN0‰ Bø;çïuöo¹;‹˳?>vï €·æÇ{NÏbpPÌTduäA§uïÁÈi¾Úî,þÕN]vǽ'ÝÞšÏê s£C¨�7ÊÐØ1û¼ökè¾9Ã"ÔæÌ-ÈGnø+h2*sEµªÅ˜}ªù$†E¨�—Qhì˜}^ûÙûÇjã 4vÌ>¯ýúï1'Ÿ5�áÑ׿Ò-ÄGÿB&¢R7Tk}u³]µ®šoAbx„Úx…ÆŽÙçµìÏ%€ žfv¾h‘~×í?qöo¥;û·2ÓÓÅé­5Õºjiœ'�'ÀZø‡Öž�yz`L§Æú°ø76á…ë­5o­OÃÎM€€¹‰—kÏ{P¸ÈB#Ÿúç—Å¿Ÿ {â ¨ÆTkñÖºÇ6}#s�#ÔÆ‹+4vÌ>¯ýZú_bŽÆðµáÛݳÍ5ÿn.lN@5ªÁ˜}ªõV$†G¨�—Shì˜}^ûÙûÇjã 4vÌ>¯ýZúŸlŽ>gä¯ÍÇj vF?Yüg„Ý€)ÕX_ýÅlW�«Ö[‘&¡6^N¡±cöyíûó‘mOS;ugð½ÎˆÙÙiÝùØi3š?o�©ÆUëf!s–jãu24vÌ>¯ýšúÿ;s6†I_›'­+_/Ú6¯¼óßFˆýC ¨¶ž2í«¿˜íªñ–$†I¨�—Uhì˜}^ûÙûÇjã 4vÌ>¯ýšúÿss6†I¨MK×ûæ–Å¿� Û=Rܧ£oIBǪ˜}^V16Bm¼öƒý¹ÄÓÜλD|E‚1j‚�ýkž½²}OQ[)j¼lJxW�ÐÙMÌ>o016Bm¼ökëÿ€9â±mß}µœÐ_-þw8ùõñÕ¸i—€j«/?b¶«¶[“.¡6^^¡±cöyígïd¨�7€ÐØ1û¼ökëÿæp —¾6/[ÿ}µ�À_ÿ¢—€jJµÕWw1ÛUÛ­I —P/¯ÐØ1û¼öƒý¹ÄÓäÎ[�Qoýÿ…sŒÚºkñ¿ÅtŠûî´qõÑïQS¤]ª)Õ–G”£f%s–jãu64vÌ>¯ýÚúŸd?mæ¯MK×yç_[†×é¯jª¯Þb¶«¦UÛ­I ›P/¯ÐØ1û¼ö³÷� 2ÔÆ@hì˜}^û5öÿ s:†M_}Tùöè3‹ÿ@`4E@µäýø_5Ý¢ô£b·{™ÅÚékçµìÏ%€ žfwr`ûÔó±ÿvF´HCà_Ú0Þ�ÿ½5�&FiŽ@ß™Mìv/°X;}í¼ökìŸâ†£{j <ÒgÞùG‚¢Yª¥¾ãSÌv}zÐâ�¹‚Ã'ÔFcx$4vÌ>�í"úÆjã "4vÌ>¯ýZûßnŽÇð µ¹ Öà~³øà°+9ÕP¨Æbö©–[•>¡6^n¡±cöyíûs ˆ§é�– ú�`Œ’†ÐâÏÝþ%ÍÈò}IQCº|LDX*�˜³œPo\¡±cöyí×ÚÿÍæøK¦1ŒúÚè¿öÖ `ÃoÞùoáåäT;ª¡¾úŠÙ®V-·*1ŒBm¼ÜBcÇìóÚÏÞ?&ÈPo¡±cöyí×Üÿ›æ| £P›«j°ã;‹ÿ&±ÂT;¡ÚŠÙ§nYb…ÚxÙ…ÆŽÙ絟½L�¡6ÞBcÇìóÚ¯¹ÿÕæ| £Pý�MÍÂâ_óìÕíû]æ~¨¶bö©†[–F¡6^v¡±cöyígïd¨�7€ÐØ1û¼ökîš9ÿ¬i §P›)~!o®,þsPÆF�ÿü§ÚU ·,¡ãRÌ>/»¡6^ûÙû‡‚‹Ùç ÆF¨�×~íý¿l„øÄì«ñ'HYükÏܺýWÍÄÔV¨�j·u ñ‰Ùçåc#ÔÆk?{ÿPp1û¼ÄصñÚ¯½ÿ‡,€ŸØ}Vâuæë_'Š{“ÿêWQ"drUµ²™7c^(“ÿ%™Ãm½�7–õ±Æ<÷ÚÏÞLÐë}¼¬�5æ¹×~íýõ d™Ža·Þç«�¸.A¼ë±¯ž³øW”]½1Aþ©f½¿˜A2Ó«Úûèud¬ÝU?¯ýìýW�Œ}ô0Ö×þú_kA¬xŒ}|ÙÆ8¿òÑûõÇ.F,þL~.¾Û|P­tåÐ�mŸ. –\¬«­7†®1‡lóÚÏÞH°]m½t�9d›×þúŸeA&Oºú°ø>Ù…¹§ÚèÊ£¡ÛT«È«†²Ûlïå¸9ÞÐ×^ûÙû x³½7€Íñ†¾öÚ_Rÿ¯[0Cùm¶ÎÆxkÁPR�°ø<ɺ¦šPmlÖËÐתQä5Cùm¶m¤qÏ6ÇúzœÕ‚z x³½7”Íñ†¾öÚ_RÿË-˜¡üºÚ__0”—Xü žàB]û�‰jë#…Æ—Ë­®ãÏ�m^¿‡Øêj뵟½WPC¶yb««­×þÒú?`uq²MwÙë»Î%Š÷&@ÿgµlŸT )¾y¢ÚDvr\êj»{´á¯ºÆ²m¸ÅÂz ¶«­7œ®1‡lóÚ_ZÿP"þß2-ñï¨=_dñ_Z¶O�j@µ0ä˜Ô×Vµ‰ì&ÐÇ*vûîц¿ŠµÓ×n¸ÅÂz‚ýË5{CŸzú®lyÆðô]Ù_âãÿ° ”Ø^9Õøï ôÁƼÂô?˜êWÙúDûÔæÃ¦Gû±=”ûª¯¨U“ȱ<ÇpOß•'ž1<}Wö³?ê§-ÇÜà¢>êë•Üö½þ—ÚÿJs,æ�ɶ6ZD”¤ù¥{tc ²ú8OªçÚ¦}ÆPÎ+÷·ÕGÌ~Õ"ÒM ÷ñ?·ýn*3osMU}RInû©â(iýÑÈý¦1¨mm¾mãì))8|�À„”ëÊùmu³_5ÈŸþ„'+÷ñ?·ý0�öžd6¾a“Ðj£¶ê“JrÛOGiã\fÅÎé¶v×”þ@`"Êõmõ»_5ˆ„ ä>þ綦3Ó^AЙPèr€ö©�Ú¦–ÜöSÇSÊx_3GbV¡v?µqÞVJPø�‰(Ç•ë¡ZˆÝ§ÚCâä>þç¶Gi†Vº&òyÓÍkªÚ¦}SKnûSÇ7÷øï4ƒÏ›Æ´BíôU:.Ì=ƒØ›‹€r[9ª�Ø}ª9Õ2Œ@îãnûÃhÑþÐÚĸ¶µû\„=š@ FÊímù»_5‡@ÈNàóàG¦±¯P;Ý}yöˆpi (§SÝõ¯ZSÍ!€Š ðëæEha²ï1k_Qáü”ËÊé!5j«ZC Eà6ó&tà²ïv‹Ÿ6-jzqfå°ryHî‡Ú~s„t� 09�w˜…gLC°!û>;¹Ç€À´”ÃCr>ÔVµ¥C IàZó*t²O×L/+2Jœ‚ÀvÊÝT×ýU7ª-€@±ôU§ûM‡,ô¡¶ºáéìb£Å1tPΦº1Võ¡šRm!€Š&ð~ó.Õoèàw—éÞ¢#Æ9¼F@¹z·ièÄvÈ>Õ’j � P�”?wªƒ¥~õŒ›«˜ú¦�TŽ*W‡,ðÛÚò3ÙM§ÁC N7™ÛÛnCößP'¼nˆ€rtHNok«B TGàTóøaÓm¹!û¿: 8Ü åæ�\ÞÖVµ£B TIà"ó:åý:h~¢J8½dÊÉm ú�ýªÕ@ jŸ2ï‡ü¶µÕW«VMç—D@¹˜òë~ÊÕ @ zÇ[7›n[؇ì×;¤�TO†j' T.ÉÝmmU+ª€À"œfQmQm;ݯwa\Xdº”r-õ;å¼j� °Xº¶y£éÐE~[{]‡=¸XjV �eŽ(×¶åãÐýª ®û—2ËøLFàd9å_¤®¶º›¯N6mͬÜJ}·¿rWµ š@ 4Aà�å!ÓÕâ�òñsM$È9 (§Ræèj,Õ€j� Ð�·X´‡MWÔ�7ظüw@Sé4I°Ê!åRÊÜ\�uØÆU €š$pžE�òoSWW=~Í”l2­’­ÜQ­çTªçÊyå>@ i¿`Ñ?mšêàº>ŽþJXÿÍŽ@`åŒrg=—R=W®`ˆ3´… °d¶à¦¸»ZíGM/[2ÒµNšsÍý*¦xTîrÍ¿ÎüÀk@ ºczª¯®ú?5טòi@>± šc͵æ|5ÿS<*g¹Ûß €<ô�é©~,hýàÿm³sÀã(}‹& ¹Õ¯ÏùÏ•«úm €Я¦6�‽>¦®ß`z¦)² šKÍé”×úW9¤åþ–‘7DDà-æË!ÓÕÁvÊÇ›�ß4=Á©“€æNs¨¹œ2WVc+7•£ L@@ÿœ6Å_ ¯â›�ß2{NCNK@s¦¹ÛœÏ©^+'ùW¿iç”Ñ!¼òßé7‡©æ›ã¾d¶®7}+ì‹' 9Ò\iÎ6çqª×ÊÅ“M@˜�ÀñfãZÓL§:°oŽûœÙúO¦çš"eМhn4G›ó6ÕkåžrP¹ˆ@€ÀÌ.6{�˜Nu�ï÷E³÷%ÓóM‘¼4š ÍI×\MµM9§ÜC @ #�ÓÌöͦSìûÆÕ]å_5åƒ0³ˆ¹ØÏqgÿæü+×NŸ9^ÌA€@} û)ÓçM7Øs¼¾Åì^bŠLK@ŒÅzŽ9Ý´¡ÜRŽñ‘¿A@ ”Fà"sèaÓ̓÷\¯ï4Û¿fº×IC@,ÅTlçšÇM;Ê)å@8Õ|»Étó >çë'Íþu¦˜"ãˆ�Šåœs·iK¹¤œB @ ¿m~æº$°¾ˆÜc~|Òôí•pË馉•˜­3Ìñ\¹£B @ Bï7Ÿï7ͱ€lÚÔ kw›~ÂtŸ)ò*±±ÉqSßæ<éµrF¹ƒ@€@Åö˜ïú¾ö3¦]ûÛ´ÐÝkúYSÝØ&[Ū˜û}¦¥,úÊåÈ¿5mi>,\€À² ¼Ã»Í4Ç‚¿Í¦®sÅôc¦ï3=Át)¢X“bSŒ¹¯é÷Í…rC9‚@€À è+\¿aú#Ó¾… „íO™·šþŽé¥¦5ý;¡|•Ïò]1(–˜öù \PNðõ>ƒ€´C€„og®‰t7�S쥨�›¾n÷®b_ýÐ<;dúÀÎãCöxØôQÓr–=ÇT«wøïÝy|³=Ö ú)ß?6ý]ÓŸÔà0>B %NRÒd¬ ¼Óœþ#Ó_©ÑùŸuÝúÈš>fÏ7}bGõ\ïÂõ;ùº³]ºznO�;Éôõ;�«ço´×g˜êï¤z®wöû×TßϯUn6Ç?iúýZÀo@HCà2Fw~÷}LÌöe°Ñk®@€Àÿ' OÄ®4}ДY ¾³3·|êi @è& »Öš~Ï”�ºh5—KúV……ƒ@€À”N´Á¯2}À”�ºhÎ4wšC€ 0šÀåÖó릜”Í@s¤¹B @I \`£}ÑTwÒs2PÍ…æäçM@€À¤ôøkMõ52Nò0{Í�æ� ÌJ@w•ÿ’é—MŸ5åd`ZbüßLÅœ;ú @ù œf.\mz›éK¦œ ¤a –b*¶bŒ@€Š% ŸÃý-ÓÛMKú·»ZNJÄLìİ–Ÿ6WÔC€�Ðê™+<­—À>sý£¦W˜þ²éL‘c µMß4½ÅT?Õû÷¦ 0N&˰è! ßÚ¿ÄT_UÓ Á{L[ýêâ­¦Zôï4Õý 0Nf€Œ ¼Éö]lz`G/´G�$,Q´¸ßkz׎Þm�ú+^È@€€ Ð1 ��“mßL?hª¿Ø•¾ËTÿÖW“èß¿kª¿/–þ­é=¦º‹� À @“€ ØB`�í?ÏT'ºdp®é~ÓsLÏ2Í)�šñæGLÿ·©>Òׂÿ�鋦 P(N �Ü‚@$�½ÖnÿŽžm�§›ž±ñxª½Ö' úA—¤«çöô•ëîzÇ®�è¥z®wêOš>aúøÆãìõ‘}Æ@€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ �…øèÜå{#Èt"IEND®B`‚nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/main.css000066400000000000000000000104351376321042600225740ustar00rootroot00000000000000body { font-family: BlinkMacSystemFont, -apple-system, Helvetica Neue, Open Sans, Ubuntu, Arial, Helvetica, sans-serif; font-weight: 300; font-size: 15pt; margin: 0px; padding: 0px; } #main a { color: #55a; } #main a:visited { color: #55a; } #main a:hover { color: #259; } h1 { font-size: 1.2em; font-weight: normal; letter-spacing: 0.2em; text-align: center; margin: 0em; padding: 1em; } h1 a { color: #559; text-decoration: none; } h1 a:hover { color: orange; cursor: pointer; } #version { background: orange; border-radius: 50%; font-weight: bold; color: white; width: 3em; height: 3em; display: inline-block; text-align: center; line-height: 3em; letter-spacing: 0em; } h2 { font-size: 1.5em; margin-top: 2em; } h3 { margin-top: 3em; } h4 { margin-top: 3em; } .center { padding-left: 2em; padding-right: 2em; margin-left: auto; margin-right: auto; } #main { max-width: 35em; } #main p, ul, ol { line-height: 1.5em; margin-bottom: 1em; } #main li { margin-top: 1em; margin-bottom: 1em; } #main ul li { list-style: none; min-width: 10em; } #main ul li:before { display: inline-block; content: "\2014"; margin-left: -1.5em; width: 1.5em; position: absolute; } #main textarea { width: 100%; height: 20em; resize: none; margin-top: 5px; margin-bottom: 5px; font-family: menlo, monaco, monospace; font-size: 10pt; padding: 5px; border: none; border-left: solid 1px #aaa; } #main textarea:focus { outline: none; } #main img { display: block; margin-left: auto; margin-right: auto; max-width: 100%; } img + .caption { text-align: center; font-size: 0.7em; color: #aaa; } #footer { margin-top: 10em; color: #aaa; font-size: 0.7em; padding: 5em; } code { margin-left: 0.2em; margin-right: 0.2em; padding: 0.2em; border-radius: 0.2em; background-color: #eee; } pre code { border-radius: 0.5em; padding: 0.5em; display: block; overflow: auto; } ol { counter-reset: tutorial-counter; position: relative; } ol li { list-style: none; } ol li:before { content: counter(tutorial-counter); counter-increment: tutorial-counter; font-weight: bold; border-radius: 50%; background-color: #559; width: 2em; height: 2em; display: inline-block; text-align: center; line-height: 2em; color: white; margin-left: -2em; position: absolute; left: 1em; } input[type="text"] { border: none; font-family: monospace; font-size: 1em; color: #559; } input[type="text"]:focus { outline: none; } nav { border-bottom: 2px solid #559; background: #fafafa; } nav ul { padding: 0; margin: 0; } nav ul a { text-decoration: none; color: #334; display: block; overflow: hidden; text-overflow: ellipsis; padding: 0.25em 0.5em; */ } .page { display: block; } .page-title-active, .page-heading-active a { color: #66f; } .page-heading { display: block; padding-left: 1.5em; } @media screen and (min-width: 36rem) { nav { position: fixed; width: 16rem; left: 0; top: 0; bottom: 0; white-space: nowrap; overflow-y: auto; font-size: 1rem; border-bottom: none; border-right: 2px solid #559; } body.docs-page { margin-left: 16rem; } } /* highlight.js */ .hljs{display:block;overflow-x:auto;padding:0.5em;background:#F0F0F0}.hljs,.hljs-subst{color:#444}.hljs-comment{color:#888888}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/main.js000066400000000000000000000011621376321042600224150ustar00rootroot00000000000000window.addEventListener("load", function() { var grammarInput = document.getElementById("grammar-input"); var compileInput = document.getElementById("compile-grammar"); compileInput.addEventListener("click", function() { var grm = grammarInput.value; var parser = new nearley.Parser(grammar.ParserRules, grammar.ParserStart); parser.feed(grammarInput.value); var result = parser.results[0]; var compiled = Compile(result, {}); var js = generate(compiled); window.open("data:text/javascript;charset=utf-8,"+encodeURIComponent(js)); }, false); }, false); nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/playground.png000066400000000000000000013650341376321042600240410ustar00rootroot00000000000000‰PNG  IHDRŠ€GÅc iCCPICC ProfileH‰•WTSIžWR -)¡7Az•Þ‹€t°’B‰!TìÈ¢‚kAE+º ¢àZYlX°°Øë‚ŠŠ².l¨ü“Ðuÿrþ{μ÷½;÷Þùî�™wfP´g …™¨Y‚\QT 3!1‰Iê  ‹�#ôŽŒ PFß—w7 5”«–’Xÿìÿ¯¢Ìáæ°@"!Náä°³ >®ÉŠr t@½Áì\¡¿…XU @$K0O†µ$8E†­¥61Q¾û@¦²X" ’øÌ<6ÆQBl-àðï€Øƒ�Æâ@Ü ñ„¬¬Y+R!6Mù.ïo1SÆb²X¼1,ËE*d?~Ž0“5÷ÿ,Çÿ–¬Lñèú°QÓDAQ’œaݪ2f…J0äŽ4 RÂ# V�øŸ#µ—à;iâ Øû~vŽ/¬œg€Ë/bXK”!ΈõÁ¶,‘ÔÚ£áüÜà˜œ"š5Íd†‡�ÄYžÆ ÅÛ¸9þÑ£6©ü€`ˆáJC�ä§ÅÄËx¢góøqá+@Ü‘“:âû ?Í7|ÔF$Ž’p6„ømª( Jfƒ©gåŒæ…Y±YÒ±Ô!öÊM‹ ’ùb Üœ„°Q®Ÿ¿ŒÆá bG¸apuùD�ø 3#Gì±mÜÌÀ(Y�±ƒ9yÑ£¾]¹p�Éê€=Lg…DÊøc‘12n8€/ðL †-Ìé€ßÞßпd=€D€¸ÀrD3ê/íÀg4ÈBÄ9c~>Ò^.ȃú/cZÙÓ¤J{ó¤à ÄY¸&î�»áaðé›-Œú1GG%úýˆAÄ¢Ù6d� ›ðÿ�.¾¹0; Áhßâž:  × Ý„Û <–F±šÉ/ýÀœ &ƒn-`$»³oÔ7†¬pÜò‡Üq® ,q{˜‰7î ss€ÚïŠÇ¸}«å�ãIXŸÏˆ^Á\Áa„EÊØÌøŽYýÅ÷»qà;ôGKl9vkÅNc±f¬0±“X#Ö†—ౕðXºFG‹’rË€qø£6Ö5Ö}ÖŸÿ1:k„�H:ß —;'W²!|g çŠø¼´\¦7ü#s™Á¶Õ¦­µ�’ÿ»ì÷ñ†!ýo#ŒKßtÙ§p)†JÞ7Ë€cO ¿û¦3x ·×Žw°Å¢<™—<€áÎÐ:À˜Âœl�#p^À„€Á Xõ4�YÏóÁPJÀ°lÛÁ.P€C 4ƒÓà<¸ :Àup®�^ð €w`ABC舢‹!ˆ-âŒx þH…$"É bd>²)AJ‘ÍÈN¤ù9†œF."�Èm¤éC^#ŸP ¥¢ª¨6jŒND�Qo4�A§£<4ÍG ÑUh9Z‰îGëÑÓèeô:Ú�¾@1€Éc L³Äœ1_,KÂR1¶+ÆÊ°J¬k‚s}ëÆú±�8§ãLÜ®Ï <gãÙøB|%¾¯Âëñ³øU¼À¿h-‚Á•LH ð³ E„2ÂÂQÂ9¸wz ïˆD"ƒhBt‚{3‘˜NœG\IÜJ¬#ž"vI$’É‚äNŠ ±H¹¤"Ò&Ò~ÒIR©—ô�,OÖ%Û’ÈId¹€\FÞG>Aî"?%É)ÉɹÊEÈqäæÊ­–Û-×$wE®Wnˆ¢L1¡¸Sb(é”%”rJ-ååå�¼¼¼¾¼‹üy¾übùrùƒòä{ä?RU¨æT_ê4ª˜ºŠº—zŠz›ú†F£Ó¼hI´\Ú*Z5í ííƒ]ÁJ!X�£°H¡B¡^¡Kᥢœ¢‘¢·â Å|Å2ÅÊWû•䔌•|•XJ •*”Ž)ÝTT¦+Û(G(g)¯TÞ§|Qù™ IÅXÅ_…£R¨²KåŒÊ#:F7 ûÒÙô¥ôÝôsô^U¢ª‰j°jºj‰êÕvÕ55{µ8µ9jjÇÕºØÌÈd¬fbÜ`|§=Î{wÜŠqµãºÆ½W¯î¥ÎU/V¯S¿®þIƒ©á¯‘¡±V£Aã¾&®i®9Es¶æ6ÍsšýãUÇ»�g�/hü-TË\+JkžÖ.­6­Amí@m¡ö&í3Úý: /�t�õ:'tút麺|Ýõº'uŸ3Õ˜ÞÌLf9ó,s@OK/HO¬·S¯]oHßD?V¿@¿Nÿ¾ÅÀÙ Õ`½A‹Á€¡®ádÃù†5†wŒäŒœ�ÒŒ6µ½761Ž7^fÜ`üÌDÝ$Ø$ߤÆäž)ÍÔÓ4Û´ÒôšÑÌÙ,Ãl«Y‡9jî`žf^a~ŵp´à[lµèœ@˜à2A0¡rÂMKª¥·eže�e�Ã*̪ÀªÁêåDÉI×Nl�øÕÚÁ:Óz·õ]›››&›×¶æ¶lÛ Ûkv4»»Ev�v¯ì-ì¹öÛìo9Ð&;,shqøâèä(r¬uìs2tJvÚâtÓYÕ9Òy¥ó‚‹�Ë"—f—�®Ž®¹®‡\ÿr³tËpÛçöl’É$î¤Ý“¹ë»³Üwºw{0=’=vxt{êy²<+=zxq¼öx=õ6óN÷ÞïýÒÇÚGäsÔ罯«ïßS~˜_ _±_»¿Š¬ÿfÿú¼€š€�@‡Ày�§‚A¡Akƒnk³ƒ«ƒBœB„œ ¥†F‡n}f& kšŒN™¼nò½p£pAxCˆŽXq?Ò$2;ò·)Ä)‘S*¦<‰²‰šÕM�ž½/ú]ŒOÌ꘻±¦±âØ–8ŸiqÕqïãýâKã»&&,H¸œ¨™ÈOlL"%Å%íIœê?uÃÔÞiÓŠ¦Ý˜n2}Îô‹34gdÎ8>Sq&kæádBr|ò¾äϬV%k0%8eKÊÛ—½‘ý‚ãÅYÏéãºsK¹OSÝSKSŸñÜyëx}ižieiý|_þfþ«ô ôíéï3"2öf gÆgÖe‘³’³Ž T‚³³tfÍ™Õ)´ »³]³7dˆBE{r�œé9�¹ªð¨Ó&6ÿ$îÉóÈ«Èû0;nöá9ÊssÚæšÏ]1÷i~@þ/óðyìy-óõæ/™ß³À{ÁÎ…È”…-‹ .ê]¸¸j eIÆ’ß ¬ J Þ.�_ÚT¨]¸¸ðÑO�?Õ)‰Šn.s[¶}9¾œ¿¼}…ÝŠM+¾sŠ/•X—”•|^É^yég›ŸË^•ºª}µãêmkˆkkn¬õ\[Uª\š_úhÝäuõë™ë‹×¿Ý0sÃÅ2û²í)Å»ËÃÊ7nZ³éóæ´Í×+|*ê¶hmY±åýVÎÖ®m^Ûj·ko/ÙþiÇ­��;ë+�+Ëvwåíz²;nwë/οTïÑÜS²çË^ÁÞª³ÕNÕÕû´ö­®AkÄ5}û§íï8àw ±Ö²vg£®ä 8(>øü×ä_o =ÔrØùpí£#[ŽÒ�×#õsëÒº;�…kirk:ú›Õo{›õš+Ž«_}‚r¢ðÄðÉü“ƒ§„§úOóN?j™Ùr÷L™kg§œm?zîÂù€ógZ½[O^p¿Ð|Ñõâ±KΗ.;^®osh;ú»ÃïGÛÛë¯8]iìpéhêœÔy¢Ë³ëôU¿«ç¯_»|=üzç�Ø·nN»Ù}‹sëÙíÌÛ¯îäݺ»øá^ñ}¥ûe´TþaöG]·c÷ñ¿ž¶‡Ñï>b?zñ8çñçÞÂ'´'eOuŸV?³}ÖÜÐ×ñ|êóÞÂCýE*ÿ¹å¥éË#yýÕ6�0ÐûJôjøõÊ7oö¾µÛ29øà]Ö»¡÷Å4>T}tþØú)þÓÓ¡ÙŸIŸË¿˜}iúúõÞpÖð°�%bI�lhj*¯÷@K„gx�£(Èî_RAdwF)ÿ ËîhRq`¯±‹ƒg”m°AL…oÉñ;Æ  vvcmDrRíle±¨ðCø0<üFR_DÃÃC[‡‡¿ì†dop*[vñw˜IP{ü(ÿ½bl?:^×ÞŸiTXtXML:com.adobe.xmp 1930 1536 F;ô¬@IDATxì½ ¼]UyðýÜ)7ÃÍ<@!’+ JPœÐˆ819¢ØV¿ê[}ûYm_íÛV}ýlõ§­~”â,“ˆ¨t¢u µ"(AC€ 2�éf¼Ó»Ÿ}Îs³îÊÞûìsöÞgºÿ箵ži=ë¿Ï=9÷ÍXmÆœôÈ5k^Mõ¬¢ —îp4§fȧrHwô°‚ @€ @€ @íM  £Í�ƒ{”›-7·¦SìK> ÍÆ§Qù4jÝ䣃€ @€ @€ @ Ž@£ ¥�Z·Ù8ÄåÓ4r €ñ‡¢YØÔ;�z¯ÒkZ1çô»Ã€ @€ @€ �f$ÐlÑ4Œê�s½×‹cÐ,yÄå×9¶#±7“zåP¯uޤ-i¶|¢³D @€ @€ @€j'ÐlEËzåS¯u’ŽL3ä�”_]uæÆân4�¢×/:þXš‡g�Z÷pŒ @€ @€ @€@khTQ³èu‹Ž_é(7zýJùÕMO¯„ºÑŠ\¿ÈØîµ^ë¸k2† @€ @€ @ã‘@½Š�E®Sdì4ωF¯Ÿ&ÇBm(î‰4’AQkWŸŒEÆÎûÉÞJ¹æ½wâA€ @€ @€ ��V*(™kQ±‹Š›æè7rí4ùj3ž i�Ú{Që·ˆ˜iŸÐ�\;mŽØA€ @€ @€ �4Y�,bí"b*Ç¢âV:F�Z·R^…êÇk1®QûÎ{Ý<ãå+éI[¯u’r@@€ @€ @€š‘@½ –y®“g,=&yÇK{œµnÚür·�E»Fì9Ï5óŠ•WÿIYT\�f˜�§½6or€ @€ @€ DO¾¢öšWܼâèqÎ3VÔó&JÖˆ5£ò¨‹l¼ºê½ß<×Ë#V1쉙g,‹Ymß 9T›3ö€ @€ @€ ´�f(.æ™C±òˆaÏ’›•?yA€ @€ @€Àø Ðö¼òaÌ{ŸYã5Ú_±dÍ¡Úß�z¯Wm~™ìÛ½°UÏýå±V–�òµ'`–õ-F-}£Ö­%W| @€ @€ @h/�*$æ±n–�òµgO–õ-FÚ¾žk¥Í)»v.²Õkoy¬SkŒzûÙ“®ÖuÍ?®/*nÜzÈ!@€ @€ @€@½ UxÌ·Vÿzû¹Ç«ÖµÝiÆõZ'M.¹Ù´ka®^ûʺN­þµøÕâ£O´Zýü'i^qü¸yÍ›=¿¼öI@€ @€ @€ê ãj™çU˜¬5N-~µø(—ZýŒiV‹S©¯×:•òÈMߎűzí)Ë:µúVëW­½>±jñqŸ�YýÝXQã¢ãG­‰ € @€ @€ ¤!Pt11küZü«õ©ÖÞ¸Öê§þY|mý4}½ÖI“Kf›v+ºÕc?YרֿÙìíIWm^æÕç+*>2@€ @€ @€ Ðlò,:Ö«Z¿f³÷�iµùùþiæõX#M™mÚ­@Wô~²Ä¯Ö·Hû"cG=)«]/*FZY=×J›v€ @€ @€ ´�z ³®U­5öÕØê‘/ÚÞ}vU»–ë›f\tü49äbÓ.Eµzì£Ö5ªõ«Æ¾lÝ'b5ù¸~qã¼ãÅ­ƒ€ @€ @€ E ïÂb­ñªñk[=Õäá¿ZýÜ•ÆõX£R™ôíPˆ+zYâWã[„m1í WMló±>‹¯Å¨¥oÔºµäŠ @€ @€ @�!Ш`–u«õ­Æ>­mZ;=ªEÙúϘjÖñ}ÓÌ‹ŽŸ&‡šmÚ¡pVäj�]­_Zû4vilô “Ö®Z[{2Vß|’ú¼ã%­…€ @€ @€ d!�w±–xÕø¤µMc—ÆFÙ¦µ³ãP­}V?óOêkÍ))fÝt­^|+2ÿZcWã—Ö6�]}b¥±Kcã>I«µÏË×�Sí8KÎÕ®…= @€ @€ @ÍM Q¿,ëVë›Æ>��É4vilÒÆ²gOÚ˜fo}­~æŸÔ;iÝ̺V-–�w­ñÓúåi—&V^6ú„KËbÖâãǰyž±,&= @€ @€ @ȃ@žEÃZb¥õIcWOeŸf½jìüã™6¾ï—v^tü´y¤¶kÕ¢[‘y×»Ÿ4¶yØäCŸHiâØ®[ó©v ׯÖq­yÖº~€ @€ @€ 4?�zúj]¯¿4¶yØäCŸ!iâØ3©Û,>æ[©¯%ŸJ1 Õ·bÁ¬Èœk‰�Ö'�]%›Jz}²T²Éª·'d¥8fg}µöæçöyÄpã1† @€ @€ @yÈ£`XmŒ´ö•ì²ê•e=bØ1«´–Ù¹}->®Ò¸ÈØIëÖ¤kÅÂ[9׳ŸJ¶EèݘîØ¢$éÌ6��Ú¦µ«6®Ù§é«Í!MLl @€ @€ @€€(¢XmÌ´öiì’l\�;¶gB”ÌtiXeõ¯f-×ÖÆ•Ö7»jú"bV³~U¶­TT+2×jc§µOc—d“¤Ó¥WYgùÑUîUæÚºã@uD«¤W‡46¸[ó±>‹¯ÅÈ£o–<òØ 1 @€ @€ @íN Y vYò¨Æ7�m%W¯c} �¡r¯c×&˜†-Jf:í“ôI:‹‘ƦÒ:ËíÓÆu}ÒŽ‹Œ�6‡Šv­Tü**×j㦵¯d—Eå«2-÷�Þà19xL*�U¦:µ‰ò ÄaKÒ©A%})Jz»ZíÍ/ªO›c”/2@€ @€ @€ �D Ï`µ±ÒÚW²KÒ«NZƒÇþ౯ªÓ–Å·!9†Ùø}Òº¾mÚy1Ó®�Ê.®ð˜Ê¹NFEäXKÌ4>•l’ôµèÔGZ$žÒÓÓsÔwoüî»Îyñ9/ëëë;-ø%}è¯T0ªÓáb@€ @€ @€ �V&Сå'ý¿#�þþþûïüÅ�?}ë¥oýÆÀÀÀ3ÁÞö+Ç¡â䊦V]%_ÕkKŠ_²8òg->GF+)"æØ2Ì´ÈØì-ïk‰—Ƨ’M’>N'×cf:-÷]pÁ'ÿõ_þõûŸ{Úsß248$CCC¥"q³]òƒ @€ @€ @hZZ(îêê’®î.ùÝý¿»ùÏ?ñç_ùñ�üp�pðÐb±¶¤‚hœ.N^)^}Zµs[RN®]ÚqÞñÒ®›ÊΊ�©Œ`”w~µÄKã“d“·Î�דÉÁ™Ä V­ZõñÓN=í-Á·8(7à‰Ê’€ @€ @€ @ � hÁ8¨IÉýÜóyç�÷é &µ1د޻xÈÙw\a4N®®Eè,¥¤Øfã÷µøø1ÜyÞñÜØ™ÆZhlÖæDóȱÚxj_ɧ’M’œ..¦/×yOð˜õÝï~÷}gŸuö•‡¢HœÇ3…€ @€ @€ @cèíNõжóçÏÎgœq0¨OÝèýЇC¿žeª8¹êU×*é’ô3iÝZÖŒóI’WÊ1É·P…âx¼•Z­ú¸'d5rµí “/½ôÒ3Þså{®ììè<*~+h @€ @€ @€ ��Àðа‹'?ýôÓMïW<µšº—ºÇÙ›.b‰Q‘úÒj  ÷·mÆ–÷­&^ÛJ6qú<ä#¼ìô›Þô¦“'M>M¿ÅAƒ @€ @€ @€@Ñ´6¥5ªo¼ñwÁZûƒ‡žU¬5,¿`% Ì"mk‘«�¶¸uJÚ’^Ç~~¦÷ûJñ|ûJó¼ãUZ/•¾Ù Å )ï–w̤xµè¢|*ÉTžQ¼dÉ’S‡‡Ý3úóÆG<@€ @€ @€ & '0j�*�L;‚‡Ö®´k5.· % LG}tì6‹åÊtÇìâüL_m_D<ÍÁeSmN¹Úk±±�›=aÒî±’}’>N§ò(]”N%÷eþ\ŸT¾,íÜ·kË'(›‚ @€ @€ @hjV³²Þ’­v®~•|¢lâÖ3y’�ÙøëšÜïÓÚù~M9o†KOç4mœJvIú(]”L¶/¯vîÇpýmÜ12⟉ߔÏ3’jCúÜ;xð ì?°_†‡dhhHšéùØÑÑ!]]]ÒÝÝ-'N”ÞÞ^QYRkÖ=Õ²—¤}V£kV&Õì¡VÛFr¯5gü ÐxÝ©îß®Z�ùxæ\+3ü @€êG€¿ÉëÇš• ä@À>x×^‹V6·–Ém©(½êÌ^ÇQ>®Þl´�’û2µÓæÇ-Iÿ¬¤7Ë´vf×ç'.~Ey# źù¼Zž±ârŠZ£V™ïWÍ|Œm¥ÂWÜf�C �}ûöÉîÝ»eÚôi2oÞ¼°ÛÝÓf³ÄÍÓW ׃ƒràÀéßÓ/[¶l‘iÓ¦ÉäÉ“#—iæ=U»—È Ö lf&5l§j—Fq¯:Q ÐFxÝ©îß®Zýxç\+7ü @€êG€¿ÉëÇš• äL@kXV¤õǺ”étìêÓÎÕÎ�å'SyžÍÏ¿ÖØG›¿¯’´àŸ¶xÁËD†Ïsí´±*ÙÅé£äµÊ|¿¤yœNåS‚ÇÒ­Ïl]I! "°gÏ�…‹†gê†Ë4äå+åË¿EZ0~jÃSáÆS§NãÜ2{J±—1Ë0i&ö˜ÚµŽÜSç„!Ú�¯;ÎA-ðuÎg†€ @ÍO À÷ÆÍ¿y2„ Ðæ5÷¼ Ó5Ácoð°j�õ¶ wîŽU_í<ʧYœ­Ê­ù9™ÜïÓÚù~QóÂy¼îÀ¹2g, @€šŸ@ï�›—d@ e ÄÕ±\¹nÎ�»ã(�«wÇf%S�ß|;_Ÿe^dì,y¥òíNeÕÚF•P%½»{ßÖŸ«­+sǾΟ»¶î8ÎNm|;µ¥A zÉéÙsf‡gâ²@ƒN›6M¶oÛ®Øê{²½ôöæSÀo§ã\äS*oîEæJl4;^wÒ¡¬¯;pNÇ+@€ �æ'�õ½qóï� !´·^¥c»„²?Ö�ÅéL®6®Ÿ?÷u¾>j®²¸ϵ­¤wm[r܈B±BÍÚÒÆ¨d§�’û2®{Š’Ù^}�;¯y¬—¤A ZþlbãÔÓÓÞ¯XZý iw/¶¿,};ç,*ùæÍ½Òzè!ÐÎxÝIwt³¾îÀ9g¬ @€šŸ@Ö÷ÆÍ¿C2„ в´Ö¥E+«yùcݘÙ$�}�ÎÝæÆ0¹/óçj%K’ÇÅ6¹ÛklmYŠvyÄ(eQÅÏz_zÚ6YEŠ…™Æå%�’ù‰ù6îÜûs‹U�\m]{‹A�B KWgW!±ë´gB� I;ìÉö’Ãv`’‹¤8ysOZ Ú�¯;éŽpÖ×8§ãŒ @€@óÈúÞ¸ùwH†€ZŽ€[¯rëVµŒÓø( ×.X”M”,m¼¸uò–Çå˜÷:a¼zžQ\×�»KZ/I烎²õeIs_çÆwu6¶Þìܹ�­7zN@?`îî©çKFq[Ò‚·îG[«ïÉÝKÄÚé8çÁ#.FÞÜãÖA�ñ@ Ñ¯;zu‰õë×ËêÕ«eýºõ²mû6Ù¿ˆ~Ò¤I2göY´x‘,_¾\-Z$�y–õu§ÑœÇÃs™=B€ ”ÜtÓMòÊW¾RfΜY’¬ï� IŠ €  ôC;‹ØÎ¬5™éµO²Q½Û|‹«6®.j'SyTóã¹6I:×.¯qÝÖkŪ�Â)ª¥‰íÛ$Í]]Þc�çÆ,ŠIŸÃk×ÊÐoî‘á‡VËð3›ex÷®Ð§sÚté<êhéÖ­_'«V­’¹sçÊË^ö29ãŒ3ê^0æu'ò!„ @hBkÖ¬‘Ç{LÎ;ï<9ûì³¥«+ß+ÔñÞ¸ :)Aã�€[¯Ò±‚•‹?VY%ûߊÂfïúêX›«‹š‡FÞßÇSgš;SbqέX(ŽÛ‹+××âtQr_VÍܵ�»9ÆÙDÉ]™£®ãá ëeàÖïÉàÝwÉœ©SdÒ¤ ˜7q‚È”£Ky—ö•mÏÈþ_+Ûnù®t¿è,é¹øÍÒyÜ¢ºä9¼û xìÛ2°éç2gf·L™Ü+Ò×-]SÂõG†Š <*{·þN¶=úMé™ÿéYòvéœvB]ò[Óÿ„|mÃwä'[.Ý3'ÊÄ)“¥{F·ôuÍ×?ð{h`ƒÜ»ëa¹fÝ·äås_"W÷6YÚWŸüê!b‘gžyF¾ó�ïÈ�BíÃ?,Ïþó#,›O´sçNÙ»wïhÞ'Ÿ|r]ŠÅÍG":£‡zXnùþ-²{÷îhƒœ¥Ó§O—7^üF9ù”“sŽL8@ Õ lß¾]nºñ&Y¼—ÑÖ××'§Ÿ~º,[ºLæ5/œ«\_Ó7oÚ,k[#¿ýío²žq×/ï’K.½DfÏ.ý›­¶4@€ @à0½å—~)ó¾ûî“×¾öµ²xñâÃJF€ Ю´ve…áJE^³õY¸ò4cõwíÒÌ£lT¦Í�U’–~&é\»–·c¡XT\‹ÓEÉ}Y5s×Ö»y¹òJã(½Ê:ôl˜F´¡ÿ‡¼þÛ2ÊDé>þ8‘Îàv×~*ÝÁ·{'Ȥ ˆ¼pÎl\ó°lúäŸKïåo—® ^QhÚƒëo“ƒ�\#ÇÌ™°4øWÏ õòëÐo3÷ªíë›$}sFäЮ_ËÓ¿üµôžô>é^´²Ðü¾ÿô?É—ž¸FFæôÈÜ¥ ¤ÃåWγ««;8£¶W&÷M ì†å»~+wÞûkùà ï“7óºBó‹ ®Ï5»\s”>™‰¯»îºÑ"qoooø‡DëÚïNž±µÐ ß’Õ?†E‹Ü'�tRð%ŠIyà‰�¡{±ýÄ¥TyœëY$ÖíîÚµK¾ë÷åOOúÓ”»¯Î,OîÕ­Œ5Ú‹@‘¯;Q¤Ö­['ßüæ7ÃkôНxÅ+äÌ3Ï”îî#ßO›6Mô±ì¤eòš×¼Fî¹ç¹ýöÛÃó—¾ô%yç;ßY×¼²¼îÔ›s{d€ @ダû¾uÛ¶máûïÓN;M.¸à™2¥tGVîYcá@™ „õªrk•C{m6¶ �éUgc×Vån3•Å�}]šy”�Ê´¹ë”$‡&é[µÐèÈOÄš7y…_¯VíZ®}ãJ1\}½˜Œ®3pË÷dÊ¿þHæÍž!2ibé×\Åc‹ÖAº�ÁY³Á¥”'�=7~[öœž7½y4fžƒ�5ß–)›¿-G/˜*z†s˜›æ—°JG‡L˜Ù'‹&’ÝþNö—§îYúö‡ÚU×®ÿ¶|õÙeê±3¤×ø·ËÕ7¸cZyª÷BìøM ø ø}î™ÿ_žØ!ï]TL~cr¨ãdË–-rýõ×�)_~ùå2cFðNÔ]•»d1ãÁŸüGX$ž:wŽ§Þ”~¥Ç8½b§þ^�êƒñĉú…æýAá³ûåùžY<°áŸÂ"ñôyAqQÏÖtÂG9¯ˆôJ/K%ŽÁСoPhÞ7q–ô—ï™»·núç°Hª�Êu䦹¾ÓfM•A¬Ži§÷,>>ʳjÙã{×Éç×|E¦. äZ$Ö´ÜÜFsñBkNjü|<ú*?�ujß)râ”ÅžC1Óá‘ ª]@‹*_vÙe…‰uEíGckAxÉ’%ábV,^³fMxEgë^òz-(’‹²qÛ­·ÞêNåâ‹/3oöIžÜ›}¯ä�" Ôëuç–[n ï9|Ì1ÇÈ¥—^ü{zäÛ`}-½öÚkEÏ<Övê©§†_\ò÷¯¾Zhþ‡øÙ¸q£hìw¿ûݾYîó,¯;õâœû¦ ´�;vÈÝwßþ}£—ì×ˋΛ7/œëÙÅz™ŒÕFõ3gÎl‰}5"Éþ¾#Ç<ÿáÒŸ¿{‹ü?g”®°'¿÷›ï•7þñ¡ýí×Þ+ß{Çs‘6kBã�ÀÎ�;å†n½´´¶c�=6|ý_°`Aøžúˆ+ç6ú%ÌsÏ=W^üâ‡>Y~dyoœe]|!@ ’€V1ìQ.¶hU#lå G¨O#S'óqÇQ²p�û(�Ïôq²$¹ëÛòã#?!kù-º}"Æ5WçŽÍÞ•E�Mf½úÙØzWÆ­çÙ!C·~OŽÖûˆØå’+‰ÃÃ"gp7åÒv¬XÄÐXÛ‚˜]úpÙ0[7ôøwdþì ”:ærÓÁºå—ž0]{²¥²Z».Ù”sTYcþ샲-ˆÙõüO˜u¦þk¾#2gBérÓþ™Äº´[4¶•Â#¯ ©^ÿ/‹õ’Õæì�ùéåÿˬ íµH�wÛºukx¹i;“x„ áïóçÏÏ{©#â±w=ãL‹ÅZ ÖoÕêjzIê"îY¬{Éëµ h..£VçɽÕY�?²¨Ç뎞ù«WzÐûÈ_rÉ%¢ÿÞD5½Lž‰U¯—ÏÓ£¢¾äÓÓÓ#o}ë[EïU¬±u ½Õ@‘-ËëN=8¹wbCÍM@_µ 0kÖ,9ÿüóÇ|gaðÅ`½RÐÏ~ö3Ñ‚²Úž}öÙͽ¡–ÊnÚh¶»·ŒŽ@(’À³Ï>ÞwX¿¤_þyÝë^'‹/N\ò„N�W¿úÕ2{vpJ-Ë{ã–' Ä(W3F åÂKX…±"ƒ/Ó¹6óõÇ¡2…>ÊÎdô1êQ(¶“BEqÿ$›8]”Ü—¹sw¬I»óJãjôÄ|¬w×TYøˆúvžȳ^¿N†îú¥ôœ¸¨TT «®ºBðûk¿Âåé˜u-{µq‹ÅAú=3§…1‡.Z+�‹�q«v2¼ëqÜ´Jz—Í-çDp ¯aºšƒ›ky‘05Í3Ô…³PÓ;£O]%];“Îé'–­këÖô?.?Þ²Jæ�œ=,qÄ™Äå\G±–—)á+çTÎ1,�tÈ´ÓåÇ�¬’w-¼L–öeË/Í®tÝ<ŸoZ$v/7­Úë^ú!RžëÄíM÷£­Èµ¦_†Xºtéh±XÏ.¶BÂÄà2âyµ<�Mž±âögÌßð†7Œ11¹ ý¹É«íóŠã¯[VþšÌ!ÐŽêñ»´jÕª�Þcxîܹ±¯ýz–›“í²yZ Ö‚pÜëˆÆ:묳ÂKíéúe "[VY|‹Ü±!�ö  g ëkåé§Ÿ¾Žú¯›z%†3Î8C~ò“Ÿ„÷/öõíA¡˜]ı2ùÉ+? Ÿ\{²ì�rù;N�ý7«˜ìˆ ŒGúEø›o¾YöìÙžE¬Ÿåèûf{]R&úev»ò™~‘þ•¯|¥<ç9¥+¸vYøñþ6 =|!äN@«ö°"Kéø’Ü—YåªGèëÛ«MZ½këÇ®¤‹²7Y”¯é47m–wi6ög›±cgYýÇF‹™](¶MÄ,ß0qT^¾ÌŸ»Éºº4có�²5™õjkc¿7�És;‹ÐŒë‡ÿû™=½O¯ã<íƒç¿û+àŽ-�Ê,Ûpì‚XsW»kññæQS?¼õ—2{VpvPg°˜.Q.¼j°°øÊÊ¡­¼iµüì4OèÕ±4æî v׌%eçÚºÿ|6(²Ïž,ÊO¯à®Sî˹ZZî *Ó´JÁÈrTyKcjìeS³åç®7ÎóL¤íÛ·Q$ÖËMëå@ëÕòÜORÎV,Ö³Íô�$->è™ÅË–-‹EŠ5ñF·´9T²‹Ó§‘›�õÊÄÆÖ»œL–¦ïÈë[xnQãᇊZ“K¿ÒVÑÔ_gkîØdÖGþÚ—„sG{däÍf]S?ôì}2ero9¿Ã!ÂTu©ð¡?œfû(Ž0#£^6Õ˜;‚ØÝ#os«þ÷Îûdb_‰ßè1³œ‚~4•ˆÐª+¥¥Á(ø_ctgO î…«±ßs\¶ü"–=B¤ßÔÌ£é½kü3‰õ2 õ,ë>òÚO&V,ÖËPk±XÏ,Öb±^¢4îª4qÍ&ÏoÑÖ“K«ß£8Oîv,é!0 ýº£_ÔѦ—>µ"EçSŸ{ªè#m›1cFûÉ'Ÿ /A­gÕ²¼î͹¨=h-zïɸ–¤‹óI’÷ozBîdƒ’ 2aJ�L›}¬œ|Â|‰ú�ãÀÎm²cÿ€LšyŒÌ˜8";7<"«ŸÚ$‡M�9Ç-“SO˜3ºTÇ��òðC�ʦ]ƒÁ­ zäèãO‘æ_šöšsÛ†äѧv1EŽ;ýErÂŒ®1;7k>¬\Ii‚ôÈì îIqÇ8¥šì—m›vJ°;™;Fäþý0Cý²uËè™$óç”î�<ÖfPvnÛ*ûzdÆÜ92)êÐÎ ò›ÕOÈÞ€á„)ÓåØãÉqsúäpì©Aì#¹�]‡ ÐjöíÛÞo^ó¾è¢‹b?ÓÐ[Šée¦‹¼µX–÷Æ­Æ�|!´-a”ʇ{M»\ÔˆìÝm©¯k«º$™ëëÚ¦•›�­aó¸>­]œòÂrˆx»ŸG¾u�¡pªiiì]w¬ëøs[;Jn2ë]“YŸ¤3¿¯[±kxË‘‰A!v´9ECgxDÅSÏÌÕf¿âþ$¸œ£ÆÎúáåðÞ§E¦:OgËI{‡kÇü0MWÇFº§[†·?�9¿�û7I÷L'?K#XkL‘xÌDó(%2Z,¶¼ÊþÝA~;+?K'©Ïc =ÓJ‹Äú‡…6½œ§^¢hÁ‚IK¢Ëc?Õ$¦—Z²ËPÛ™Åzê<îY¬{Ék?yÅ©†M«ÚæÉ½U�7ò PôëŽpµ-^¼8ì£~èÕ6nÜx„JÏ‚Ðs¥¦÷[ÓuôQx¡8xů¥͹–œð� P �ŽOȵùCyÿµwé¾üCrû�þJV,<ü·kGG¿\wÉy`¾òÓ7ÊE»®–÷~Öó½ü+²ñï•=ÿô7rò?~DÜ÷|ùgò¥÷ž3Z„uc®øèWä¢í/|íêQ¿Oÿ×ùÈ §‡ó¤|W|èZùÆgÞ!ó»j{m×ö>ø5Yðü‡k}þîgå§O ÇI?øú»äù¸-0Y!?ßþïò{}c×ïèÿ�\²à,¹#°øôÝÁ^N/í¥s¿Üyí'äü|©4u~®üôíò…W?&Kžÿ�@ºBî bŸáÅvÌB-H@?Ç8xð üñ‰ï“ßõ®w~Dþ&oÁ')Cã�€V0ôÍe5½r‰òQ¹GeÖLgsë}¹;wÇfï÷il\Ÿjí]ߦGT®š"/KB×Ú¢|£d~ü$WWiìêm “YoríMVM||iæn¨üÇ#»w‹L9:ÿÀÁ}5vÖ}ŒÚ%] ûXw'a6šcGW§„±3rÞ9°Kúºf—^îܵ³Œƒ—N½�âÎ�í™ù¥IC�ÑèÙÐi"l~øÃމ5w;“8k܈¥*Šì9WϵíÌb=»M×Õ„^ªTÏ,ÎÒt/¶Ÿ,qÔWãÍÄâ·ú=Šóäžõ¸á�V&PôëŽÞî@Û¼¹ób_ßô¾úŒZ(þë¿þë#ä¾`¡Hײ×8ß&�y–×�¢9ç±?b@­Gছn“ô�7Þ8f71;ý{ šÖ±÷^y×ì³åz×iùr‘Õå"íê/Ê«–ü‡ÜpÿÏåâeö÷áˆL˜Vr¸íã—Š–G�h׿_�¸öÕœ/Ç.yZ>vžÝ^àpÌ;>ûþ° êúN ¾Ð«ÿtô? ïŸs¦\ë*�ñ_|¯,¾o«¬½ýÃ2?æoÖ¸WËÅESþ;dgúN ŠßA©Å_»{DŽ)ç91èëå?ÿÏä•q‡³‹å²\Vÿ‰ÜöñWSMÓÈŽ¯Éé!�V&`WëY¼ö~mˆÞQ%}´Wzi–÷ÆéWÁ€RЋY´�*üÆÉÝ%|›J:³W»¸±÷óu6wc%ÉLW©�ŠWɧnúøëBÕ-…Ø…\¥–Æ&K 7~µc[×üü^õ¾¬š¹ÚvØ·çŠîm3EõYó/*/‹Ûîù¥ÝŸñȣ׳jõƒùF5Ûs½××â°Û´‘µÙ^òê³æ3^üóâM@@ÿv(®Ù¿5“&OŠ]D_‹ŸûÜçÊyç�7Æ&íkôä)Áí%‚fk� ’ã$ës%ÇT@ åÇùžÃEâË¿ ÷=µSüæ7rpçZùþ'W–sZ-—]z�l‹{Ÿ½â£ò˵»Dñþ[äõÞN>yãݲ#Ð<¸Mþë[Õþï/ÿ‹ôÇÅ ¢\óÓûesp›�Í›·ÉûžWúwaÕçÞ1Z$^ñÑoËšíûÂuw>u�|ƾãcòñ›]§™×Þ≗Ëçoÿ�ôø�üæ@¿¬ùé5Á9Ä4@ Ý lÞ¼9Üâ¢E‹¾Õ¬ï�ñ‡ �üÿ(„õªr¯ÿF؇ÞÕöI¾ª³fqu^íØbXïú›¬Ú>MŒ46Õ®›‹}3гl0 x™kãŽãrqm¢Æ&³Þ�c²Z{7VáãŽiÁW°½W.‹1ÃØƒuL˜.#CÃñQbÿ \tScgm3z¦‡g�ŽyÉÊ4xæhÑQc·J[¹r¥èYµÚô›¥·Ür‹<þøã­’~æZuä 47+öê”âšÞ/^o…°bÅŠ8“D¹Å¶µ�QB€@M:7ÿL>÷Åò™Ã+¾ O}ýýrÒ=ß5øÛbâ|¹ðc7Ë?tE8—Õ“>¸·4óóõòó[þJΘ_: wö²×ÊÕ·rÔâ²/ß-{Ãó‚»ýêß+}òÂK>._XQVï>œ¯ÕVÈmë¾'ï8g™Ìn73cF_x‰êÎíwȧ?[Î÷òoË÷þò­²pJé#˜‰sN•ß¼Z>TwÃ;n‘';›ýã™AùéÕŸðùÿºCÞÞÒò帻eá9ï�ÞÿÍQ=@ = ô÷÷‡ÓÛkåÑ>ó™Ïȧ>õ©ˆÆÎ˜ß‚IóeÐÍÏrÖRT£Í¸Y_V„6®]Y®15v=žy¬1{ÖlyÛo-ëëZ,~lÍc-³‡Z9ìܱSÖ®]+VLÐû3Ÿ´ì$é�|H•ñùÕ2þöD·ýÚÜz_nóZ{?n­qð?ÏQŽu[ëÉ“Kguõï >ÔªtŒíuÃí+ùú0vக¾bĨ|¬`#žÍñp_/kWqû7o½ÄóŸüéÅ2g8pöü_ñ\¹Ôn^åü�a¹½÷ 9uJðÅ!ÇoâœàoÝr;÷¬¥ct#Ã3äœ×Û™Ê"Á™ëÍéò÷ȹG��©ñûŸ||4ßÏðµÒçå;2|‚\þy‹ýÙÜíi4/‹í®§ckiå¾�Í-Žö&ó{³)Ë;ä€lZ[.|/ÿŒ¼õÌà ËžOï²×ËMïµ#�Ûóóã0‡Ï�æ}„_Œ ~‡G¼×´ZŽÙÁeh08�D?ôâu<xðhíç@© £ «bäÕ!ccª.ªÙÚªsǾm’ηmëy³ß£¸øQ7­ÌÖsí«»¶ËzÓåÑû1l�ÂúŽ“Ÿ#ûü¯2iªž ,¯÷0Ò,ô\›;.Iÿ´lÍ.ìaðÿþýûDcgm�3O“½Û”¾¾òe%ËyÙ{ÍRür"vÿ¥°úhT¬é”Õ¡mY¶wßAéœ}ZÉ=ÃÏçO?Mîßó¨LïÓ®§?‚{WéOcé­ææüÐ>há›è`|`ß>ÑØ­ÔfΜ‹¯»þ:Ño¢jáôû·~_.~ÃŲtiðÁL6=“xíºµcÎ$^¶t™ôöº÷kÃ�WØÒ.zC Ô€²˜3gNx5‡ÍÏ”.“WMÄ´÷UÛ´ySV×¢A€@1ì¶5+ä5§ët�¼RÄÈÌErz ÑræÔˆ?°Vž±T&ÅüÝ¥YŒøroOoòYs+_üœÈ˜‡óùðYçʵNýT×’ >½úŽrá5˜ê½‚›¹utì�-Aí]ÛŠ·¿TæDð•‘I²ôŒ‹Ãû ø´ =“x÷®Ý²gϞ̟ih mS§Nm>l€À8&P®\Xµ%|s«2}“›µ�ÂêÇT“¥ûq]Ó¥•™}Kö­Z(Öƒ“¥ùþþ¼šØQ¾&«ÔÛ:•ì\½;6ÿÂûÎ3Ï”í·Ü,ÇΙüºÙ‰èA*Á]’GÿžÕÌü¿m-[Í0;‚ @¸}W¿ô±³¶ÎygËö5ß”¾9AZY ««¥Üt8š–B]yEMÇÌUÎõGЂoGnö�L8åìÒ<ÃÏ—Î>[þqÝ·ddNp)kå§K„¹hÐÒ$ü9šhi±0UUè@{má}zpß°Ë䯛n ÿ¸Ð¸·þàVÑÂá’%K’�sÖæµ§¸´vïÞ=¦H¬g/9q‰h_ôÚq9U’�WÚøií½ŸJ룇*Èë÷=j¥ãŽ;N~õ«_Éc�=Vñu7*�(™¿ŽÝFA×Jcïû×kÞ̹Ջë@ùÏ(˲±»³A@IDATš×¥µ¿þYy¥cdbïpäëmgï,y®dËuJ�ßÑá”áç~)HïÒ–”“ꆃi¥˜šèá|u¶ZVûµÓ1óÝr(ˆ«ñãò©V®«¦i×ßs§Ser`«MïÚ¸¾y±Š�ÓyÜbé<ë,Ø\+\ÙIņêmYYoC›²a¹è©±4¦ÆÎÚ:§�(]ó_*w—•´µ�âêá‚k°Ò¨¾4uš@(~”õKcjì¬mé”ååó^*»ƒ7ÓßÎã:ë†)‡zµñrRcÇWciL�ÝŠMÏ,Öb±}sT?@øÁ kÖ¬iÅíDæW$ïgGÂB@  zµŠ®®.yöÙgåɧžÌ}•§6>%Û¶m ×h×+cä�€€j °äìW•½~+Op`³ürL6Ú¬ÒÃùŠüýO’'Dy8îñ5yî”z~žüݜԂ»:ù#½Käe¯/9Ýö‹åÀèÒcM_d—Ó+g´ýâ»¶W?˜yC£Þ' dNœ€ E`´šQVÚ\§:֖ԛε �?å%ócº63©¯Ö¾R¬<ã%­•Z×l…â¬€Òø§±IåŸFæÛøs]Ódq½k“”c!º®7¼Y6ïÝ\/ú@)þè†Aº–qÔÊ¡®l`>A �¥1ój]'¼M6m¾ï|àP9¿ Óõœ¥Ã“yõ„^{”u¡�c«14–ÆÌ«]¹0ˆµí�T~š–³Þèú��Â}x6æÆb…1óJ°qf̘!W\~…L›6-\½�ŠÅþå¦'L˜ K—,Í|i¦&–„ ÐÒ&Oš,§žzj¸‡U«VEîEÿýÑ"òSO=u„^åIf‹©kèZ4@(šÀjù×»£¿øspÃò£òò}½=E'’:þú}“äè£ÊÂ…q�£e¢soêÀ5NšµxÔs`ttxppýoF9–:£ëo–{wùqRçðƒò�>|F±ãÁhË—/—Þ‰½²aýY»vmÍ»R_�¡±4& €ÚŠ€U]tS6ŽëÝ�›�É*ÍÝøæ'sõ•ÆþºQöil¢üL–ÕßâäÒùÎ>—°M$ lצÒ8JŸ$3]š>ÉFuöP¸66Ÿºï þ¨íyÛ;eÏŽ�"ƒÁWŒµi!3lAoEM7»P_¶1ÛÀWch,�™Wëœv¼ôœò²ûÙ="Cåo˜‡¹hnÁ*å4ƬgrË]•�¯ÆÐX3¯vâ”Åò?NüƒpÁŸãÁÚVø ×Í%˜¹cU:¶ê«ü4–Ælõ¦Eb-ë娵ée‡ôÌâG}´e·¦Eâuë×�^6N‹Äú­[íi€ P/}éKÃsy$8“ëÑGŽHàࡃrÍ5×È׿þõ1:ý7Iåúˆºt¦Æzøá‡Ãغ €Š#0å¤Éååð_½ìoä·ûÆ~œÑѹM®û_ïM`å'�Ž1˜ròóGóýÜÊ/È£Ãcó þ¨–Ÿ~ñ=òš _#¯yïÕ²¹Ó×gÏzïS¿•üà²êþgÆ›·ÔØüHþé®Íctäß®þÊ™NFFúä‚«þ¤,ÿ‘¼ü#_‘'�=)ÿïüñ;åÚ#ʧ’ÌÕûc�G5Ë9J×ò²V¼Gq–âûúó¨šÆFýÌÎz‹eóJ}T óñu*úf=[çù/—~½|ò¿Ý&SgΙ¤oæÊi†¹¸)—3³±ª‚³iµÈÙÿê•ÒÄÊ;ÿ®c/”þƒ;DžùŽL›5U:&– sšƒ¢ŠHoT¦&Á™ÄZ$î?êm¢±òÎ^#Û=+_ÛzSȯ7à×1RÊ-n­Ñbr`¦g+¿+g^"+ΧL>ß.àWÔz}}}ré%—ÊM7Ý$;wí ×ùá�~(+W®”“–Ù‡ùnÇî�÷ž4ÿ 6Œ²ê�Ð+'žxbxOâ¼×%’ç±É3Öh‚ci9¤µýÈY^qŽˆ\VG¬‰íH ¿Kzß³³Ï>[î¼óN¹õÖ[媫®’Y3ßS­3øpþØÇ&ÒÕ×÷õd×î]a,uÒØº†«O V«2 «,¾µæ‹ ÐöôþµYZ5¯›C–ˇ>¿R®ÏX½VΙ»E¾±ê¯äe‹gÊþ�Ê×þÇòÙ;ÊÙ\þmyÕ±å×å±9úkŽÙC…×Jõ-ù'ÇÔ,†zž'ïÍ÷‹rú‹öÊÍ×þ‰¼ô„²wÛãò“o}F®úÿÊgß~èÿ•ÙÁ–5j\>ÕÊ»Ý'ï9éœÑ3ƒo~¤_.\Púƒ¸wêÌ2(‘Ï­¼PfÜò5yûYÇÉà–5rÓçþP>v½sýn‡ÉQ+Þ#•ÏÉgÕûú?–“®ÿ™|êš7É ò”Üð¾?]k4¸ã«ÿÖF}éjÔ– Ð2^øÂ†_–|zÓÓáç8oyË[dÊ”)©òß\]ðæ›o–;wÈ1ó�‘¼àµ¿‡v^cR-Ž I@ßhº}k«síµÙØï“tQ¶Qö*Kj§›4>qñ²øÆÅ,TÞŠ…â( ÞoQ2߯�»öîØµ±±é­7¹Û§Ñ™�öîXã¸ó¨±»V]Ç]¿Qög�î¼ñ:™?e¢tO.~ûÙÒôÒQqpIÇÁ�»eÓÞÒséÒõò <£ü¦]'^!ý=ÓeÇškå˜Y‡dÂôàͪ^Î9®…ù�È¡�{åégEz–~@ºŽ{]œufù• ¯�™Ý3äï×]+ç�©¿Ž€_X0ÖèîK§ÎƒüF~{~Ûä#‹_.žÿZÕ´UÓ3‹/½ôR¹ñÆG‹Å·Ýv›L¹tJÅï›ÄÞ}{eýúõ£é¸EâQ!ƒºð?¬Ë¢,45� .¸@Ö¯[/ŸÞ(ßüæ7åÊ+¯”éÓJW³˜Ð3AÞ÷¾Ãg¡UÚˆ~)Hcè] ŽY ›@Å8í¾,×Þs›¼÷z]ëGò®óìBÓîÚ’;ÿæ-Á¥œßǸ|s"ר¦qùºZ¡oš˜/òýJ�ïû5ßÕ×Ê[Ή:ßöõ²ê£/—n9œoMÉyNƒ›ÖŽ)Ü>ºeoP(î ­:�}µÜú!‘‹¿¨ÓÕògo:KþÌó�šw,”ÿ½a•l?î¼ò™Ã?’?{Ÿs ^ÿQùüÉ«åÃVw‚h¡xÈ®üåÈB­G »»[´8üõo|=|o­ý…^('BâfžXûDx&±^…M?zË[ß"‹@mGÀŠ1V,Ö ÚØïãtQP4®UO|½é¬÷õ6wõîØôI½o¯smq9•´-ð3ÿk5ï¦í Y†î¼Ú±Å°ÞüÓôq6+�ÎìÔÖìUV×Öz{>ñ²åÄ“äɵdÿ–­"ýÁý‹.àêCÇ�Luj£¶ê£¾E7-ôNø½ÏË–Ž3eÝšíÒ¿%8Kuï~9\òYÿ8Õokc•©NmÔV}Š,Û¾µÐ{õi+ç =O¶®Ù(ÏŒö6 .}94<>t¬2Õ©�ÚªO;‰�ËÔ©SÃb±Þ»X›ûžzò)S7}¿WÊM/3} '„g›Œ¾D`ý†õ±(ò*ð&­»8 @ ­ twuËÛÞþ6™={¶ìرC®¾újyìñǪ޳~À¥—¢Þ¾}{Kcjl O`xx¶\þ�ÏÈO¯ù‰º£å•ŸºAßýäyÓÆ]§–ê£ußâîî©£‰÷Mî�Ê©’c&ÅÜÃ-)¦Yi¾ï òý·¿ÿ#9ýrÑ|xæ&9ÓÉ·{’“OÏá|bå£ù/—Ù“zGãwÿùÂëËÓå’ —_ð.·‘‘‰òªOo”Û>u¥‰Fûó.û¼üúá;å£eÀœÔhhÖ™òwû6È¿}ãoå�‚/]]vÙeÁ• .“Oüým²ñ†OÊ…K˰[÷þÇI_Þ]� Ð*ôÊpï~×»Ã/Mjá÷†n�o}ë[rÏ=÷È–-[ÂKRë%¦Ÿyæ™P¦:µQ[ý¢¥úöM9üzÑ*û&O@ˆ%`õ*·f56™õÐÆnïŽãl\¹Žýf1T^íØ÷ñc·ÕÜ…“÷Æj‰�Æ'Ê&�Ì·qçÕŒÍÖïÝ'Ž«sÇil¢ì]™Žõ¡×tY¶ñÉ�·jÐF¶‘uëdøÞÿ–‘G’‘-ÏÈÈîÝa:Á·;æ%'�"�g¼@:/nHšÃ»“‘mwËÈÎßÉðÞ§ƒqpéì uL˜.�SŽ‘ŽÏ•Ž9/’ÎéK’ߣý�Éí¸[~»ûwòÔþM²s ”ߌà¬èc'Í—Ó§=WÎ�ù"YÖטü о¹?éä‚.m‹”ûþþ~ù÷ÿø÷ðç¯yõkDÿÉ»=òpé•yîi0¸ÿ¶(õÛò �]X·oÆê^Ž:ê¨\yœÿæoÿFv—_rI6Eý–òÿüÈÿLaY½IžÜ«_´�"_w¢(õïí—ë®»N6nܪŸóœçÈùçŸ/óæÎ‹2•=¼ÇYµj•<ðÀ¡lÁ‚rÅWÔõ®,¯;õæ< Ž �‚t ��ÁU¡Fz»ä@ÿé›1_ú&6ï—ùÃ|ƒ/–î��žI¢_Ž�ØÕø|‡ì”­;G©G&öÍ�}‡‹Óþ¡3æƒAÉ|öìÒU9|›{¿t¡œûñU"ËÿB¿ç£rtpu,½�Ò„Þ rðÀAßœ9 Ðâôs�{þû¹óww›ÛŸ¸›Iƒû¿ø9ógæòyI–÷Ɖ‰¢„ �ª ,X¸àâÀéÑà¡gRé›\{Ã#ÆQ2{cœÔÇé,^RïêÒŽ}»¨y52µu›íÇ•U×âS)æ˜/ÄV4Ni EÌj[Ÿ8›(¹/«4�Ê×õ±±õIöf£½;VŸ¨¹/óí\}ÔXíÚ´Ü<šµ…à�Ó0Ñp£‹Àiò¬§�†ß\â¼Õš^2éÄNlµ´ë–¯ÞsZ/'^¯b±‰uM —€ž¹pÕ{¯’;VÝ!?ÿùÏåÁ G}txOyýâ�}AI¿¸¤Öµk×ÊÓO?†éêê’—¼ä%²â¼áƒÜØŒ!@ ~Fº&ÊôÙK †ß+-ä3“Ü6æ;=Èw´¾ÚùvMœ!Á?�©ÚþÕß�cÎþHh»òËwË�ï&ŸøÑ«Yë]‰oûÀ‹ä…·Hþð�/‘㦔~£|üK·�&ò©O\$S‚³‰õS¯Î®R¡˜‡Fñ0€@Ûèíí•ÓO?=|$mŽ×�$:è ´4·f¥c+~ÚX{m*÷ÇQ¶& �œn<‹Õ;.±…\[Ãbº>Í>vfÎ5¯B±%•9¡:¨5׬~®¿�µwǶ}“éÜÆfks³¥‡@ÝŒ¯ã£Oɺ-›ÿBÎoQËïÉÙK^ ZžI^ ’âÀ=i9thw�zÝÑ‚ïë^û:yÕ+_%ëÖ¯“§žzJ¶nÝ*è%8%<ãaîܹrì±ÇÊâE‹{ßù^wŹݟ¿ì€Àx!04éLù‡;¿.��ónYlzõ�¾(<üöGß¼K>ôÂÑS§E C‡|JÌ!�Lrxoœi}œ!@ ‰€û*íqÕGu~�Öìãl]Ÿ¤u}]½ýüõë1¯u�crË£PlqLàNü|ü¹›š«‹»ö:6»4}”�/ócºú¨±Ù«®ƒ?¶­ôì«¡Á!éꎿgU=òÈc�¡�¡ð>Y«Õ÷d{Éëµ �ŽsÏ•¸ys�[9Æ�fxÝéîé–%K–„�$æZhmTËúºÓ œÅŽu!@ ?}Ï}³üzó¹òŸ?ý7ùÙOî”'÷M–¹“÷ÉÚ ?ëÅÊ«_wž,›Ýü‹yøßÌC‡å—‘ ²¾7" äN ¬WQµ·7‚Vß²°.5víãô~,³Kêu=¿ùùùkûö:w}¢æQ>õ”ùùU½v…âªÍÑÁžiC¦±wmlì÷¶žÉmn}”¼’ÌÕûc›kï?lMzJ £³C‡Û¢P<88Þ'K?¼hõ=Ù^ò:øítœób'oîQk ƒÀx!ÀëNº#�õuÎé8c@• O9ZÎ]ù®ðQÙ @ùÈúÞ8ÿŒˆ@`܈ª[YWáDdÕ'Jn0]}’Lu¾­Íý>ÊÖb»½ù¹²¤qµöI±ê®+Ý(¦îËV½ B®¥%ù¹:wlëDÉâtfk½ÙiïÊll}”ÞtÚÛØ·Ó9 u%ÐÓÝ3z)κ.\Àbû÷ï—îîni‡=Ù^òÂÔLòb‘'oîIk¡ƒ@»àu'ÝÎúºçtœ±‚ @h~Yß7ÿÉ€@[ðë[6Oª}¹6Ád6×Þd֛Ο›Üõ‰“UëëÆ‰'Ō󩻼 ÅÕ€¬Æ6-ìJ1}½ÍµwǶ^œÌäjç�m®½ÿ°¸ô(”@oo¯ôïî/t�zïïïÝO;ìÉö’»v`’‹¤8ysOZ Ú�¯;éŽpÖ×8§ãŒ @€@óÈúÞ¸ùwH†€ZŽ€_·òkZ¶!“ëÜ||�oãÛºzÓYŒ¨Þ·�²©VVMÌjl«Í#ûV¿ôt5ÒŒ$Óù½å`r�G�ãd¾ÜæÚÛØbºóP–×}I5 I&L˜ ÏîxVfôÏ�ÉS&'™6µnßÞ}²g÷9úè£Ã<[yOî^òz-h—ã\ä“°îEæKl4;^w*¡<^wà\™3€ @ÍO �÷ÆÍ¿K2„ Ðrލ]•wà^ZZEq—£vu®�Ùû2µ×5MîÎMn½êü–¤3Û46fÛÒ}+œQXRRKÒ»:wlñ¢d¦s{ßΟ»¶:V½ÙXïËm®½6×Ç�»þ¡!? P$�ŽŽ™>mº¬]»Vô^0­Ø4ï'žxB¦OŸ.ºŸVÞ“¿—¼ŽG+3É‹ARœ¢¸'­‰íN€×�ä#œ×뜓9£… @h~y½7nþ�’! �–$`µ,·ve2ÛP�ïc¾nïÆQ¹?wmÝq”�+sÇ®ŸŽ“tiô~¼¦™·j¡¸Òñ§±�²1Y\oë˜^ç6ÖÞ›mœ�É]»:“iocÕÓ P8�É“'‡Åâû~{ŸìÙ³§ðõò\@/Ktÿoï—Óƒ3¢ƒ}XkÅ=ÅíÅö”µoE&Y÷œÆ¿hîirÀíJ€×�è#›÷뜣9#… @h~y¿7nþ“! �–"àÖ«lìÖ¯L¦›rÇþÜõ1�õ¦³ÞäÚ[3]\ovÚ›�+óÇil\Ÿjí]߆�}éé<¡¥�UÉ®’Þ?Xfo}Z½k¯cnq|�Ê][³£‡@]L�:U†‡‡å¾{ï“iӧɼ£æÉÔ¾©Ò;±Wº»ý’r�~Ëôà�ƒ²§�lݲUvíÜ%Çwœhþ~kö=U³oµÎ›�I­ûªÆ¯Ü«É[´^w$¼bGÚ»j=þp®•~€ @õ$Àßäõ¤ÍZ€r# µ+ÿrÐÜd®Þê\Q:õ1[ëUæ6“[ïê’Æ•ì+é-vZ;³�ë5Ž6ãPšÕñ§%�eÉZc¤õ‹²óeÕÌ][[¯l×›M”>NæÊ“ƪK£×3Á§�¥Öm¸Q¢A Þ´X¼uëVÙ¹s§‚éèÜ›�+‹[!Õíݱïgó¤>JçÊüq-ó(•E5ÛO”.IV«_ÓŠ’I TÒÕ#­_”�/Kš§Ñ¹66NÓ'Ù¨ÎÕ'�}]ÔÜ•Y¡xYP(¾¡ÒB�¢ „gA 5¾P¬¿uÁ݇â°žáÜÓÓSÓömOúAúˆþ–饶¦F�ºººÂ³µkÝËh ŒcÒÇ9ã^Ò¸7 ÷4¹b�v%ÀëN}Žìxã\ª¬@€ �…“g¡‡/ �ú Å—+><ÜB±&¡Ÿª»_–4wuîØ>©�ê£dæÕW’©^›ÅõÇiæQ6*‹jî:Qú8Y­~a¼æ¹Nì‘Û³Â葚Ú%nLwœ6¢ùXåçëÜyÜXã¨Îî\ÇÖLo½Éé!ÐPZÀlt3oí¸§¬Œ`’• þ€@µxÝ©–Xmöp®�^€ @€ Œ°º•öÚÜâ¥+³q”�ù¨MÔX}\�ÎÝf:ë]]¥±ëãŽ+ù¥ÑkIgÀÕÆìMVDï¯ãÏ‹X³Ð˜­xFq5@ìÉ£>•ƦOÛ»1ÍÇ•éX›¯K3�²Q™=,®k§2 @€ @€ @€êE ªve2·Ž•$³\ÍÆ�ÛX{?^%™ÙWêãâør�·Uk÷Bq=–=ÉtMwœvåãËl?&·Þäô€ @€ @€ @¨«UYﯫr_'s}£|LïëLN_%�ñ^(¶'’õ•ð™�õjïŽ]•»:wçg>®­+óÇîzŒ!@€ @€ @€ Po~ýÊ�[.Q2WgcíÕÖšùÙÜí};Õ¹2×Ö›�õ¾~\ÌÛáÅî�rfš±ë›4vc™]-2õqýܹ+×5\�­é÷Ü£ØG€ @€ @€ @ Nüú–¿¬éÝ{«Lç¾.jîúilóÕ±µ´2³�ëÝ8iÆqqZFÞêgëAʳY<¿�[#ÊÎd®�/‹›«Ê§éeÍvFq­ÀŠ>8qñ]¹?Ö¹+Ó½EÉLn}œ�êýÖq×]wù2æ€ @€ �‚ÀüùóSXa@€ @ 8›6m*.x}"ûµ°¸U]»¸3‹ÍÆ=ãÖd×ä*‹»k»6®<�±åd9ä³!1Ú¥Pœž´(Û8]”Ü—¹swlëÄɢ俣½êÝG¤ld¤åŸƒº/ @€ �ºà喙#gA@€ @À#Ð&—øõ,-^ùu°¤‚–Ùú6*O’ùz®´£dIòJ:Õ·M«w¡XF-mœJvqzWncë5wìï'J%³8ª³‡Éü˜qòŽc�=6Ê @€ Äxê©§BÍ¢E‹b,C€ @¨;£¸…ë=Q50•ù^jrß'ÉÖ=æïÊlìêll½Ú¸cóI’›MœŸé-†öQûpí’ÆºŽµ,q,Fª¾]ïQœ´y´oçêܱٹ2wlzë£t*³‡Ùù½ù™�;7[_grz@€ @€ @€ Ô›@TíÊ­q™^ó2yTŽfe%³®Î§ÕGÙ™¬­ûzŠ£Lp³®S‹”�Ê¢äºç$�ÏÄbDù˜Î÷a@€ @€ @€ �¢ øµ*·žåëârq}|›8]ÚØn¼Z|òôwc%�³æ™{Œ®Þ—ž³x“¬@¢ü£dU¤šº1ܱGå•tfc½ëï�Í&ŒÙ&×®÷÷È€ @€@aìï(ë [ˆÀ€ @€*°¿K¬¯`Þ¬j·v•tÙä°¶±‰(³�Ó™\íl:•(*F”,U°²QVÿjÖªÙ¶žgך¤‚¬GKZÇÕ¹cÍË�»c?gÓYïëݹÚÄ=|;w΀ @€ @€ @õ"à×½âê[¾]T~fc}’�ê|;wîŽý8I:ß6˼^ëÔœc+Š+m.r”<­¬ÒšIú¨5ÌÞtÖ›¼–>�µ¬‹ @€ @€ @€Œ@5+‹a½Åvû$�k—v/­L׈²M»vSصC¡¸H�îŽG­o¶ÖÇÙ¨>î¡>æïöfïêuLƒ @€ @€ @€@= TªaEé­Öåöq9»þq6*7»¤q’ÿ¸ÔµÊ=Š‹>8î“'é äÚÅ�-WÓkocÓ¥éÍÇïÍ7”·ø5ëm/ô€ @€êFÀþ޲¾n ³ @€ �€ý]b½§n•©Õ²,_�ë}ƒýÞôiz‹éÆqý,¶Êªû>nÜq5n·3ŠíIãÄ´2×'íØ�펣üMo}”M™ú[ ëÓøa@€ @€ @€ �< X­Ê­_Õß�•ÃìÔÆ'ùTÒEÅI+«»iõ­xFqÔA©°Ë�»ã¤ø®�ŽÝ¹ïg:×Ηù:›[?6¦y�•2ƒ @€ �8öw”õqvÈ!@€ MÀþ.±¾èõŠ�µ;+Ø]ÝdÖ«ÎÆÚG5‹mz�Û8ÊÞd®�;V½?7ŸZú­X(®z“ pÐ'‚6ëK³#šÞz×"Jv¤>ÍÓßõb @€ @`¼°¿£¬ï<Ø? @€ Ð8öw‰õ�Ë$ËÊijZþÕGeÖÇ­ozëãì�×@ Ý.=�„@Ÿ@iZ”�+sÇIñÌN{'Ù§ÑY,‹g}_l @€ @€ @€ �'«Uù5¬¬kX<�ckTŠéÚ¹có‹’™ÎíÓÚ¹>-9n–3Šóžw<=¸nLwìëâž棽�][“¹z[„}‹ßÜÜÝOŒ‡epP¤»{<}¢ °“Bà —žøÂ3¿á‡‚Æ�èß»fþw¨™sGO¶ äFÀþ޲>·À‚ @±†e``Dzzºb-P@ã“€ý]b}Þ¾÷½ï…!ßüæ7çÚ�g5.“ùs;sXõ6Ž:Ã8Io±­×5ÜîÜ›}Ö>ϘK››IRçŸÍR(®ç¶ ¾¿f”/:ƒß‹"oqOœräÚž?…§•y�vÝWf0uà‡Wï[ú—¥Îìš{¹¡��ðoœŠ0ÿ^ IWOOÓ¼‡�_~ï;ò«7Ë¥øGrÒ¼¾†Ã.ñŒJ£s܈_ ›}Û“/~ù:™¾ä¥rÕå+¤§#îc�(æÈ²ûûõÁà÷kJÅp#CÁßÕ=×ky^TL¤ ”÷ö-ÏÈÖm»Â¿Uzz'ÉŒY³dÆ´¾¦yÍmA¬uKùðñÛ#SfN•áýƒÒ;uªÌž;K&äôº5öw²ôoÞÀ¾Mò±K_ vzÕ'þNVž¹¨n{®i¡ò{‰dßê^C’c5@›j�‡óêê ÞWo«£Žïa«ú�öîÞ&›6m—C##Ò¼÷›6}¶Ìž=½©ÿ>´Güíoä‘ [`ä…ç¿BÍžTx¬˜'{ãgõ«¨™Ugr›ŸÊM¦y¹c�G5߯Ÿÿ_ö®0ªbk›¶é’PJ( ½ (ü(à)ŠŠ‚ŠˆŠ»ÏîS±÷®Ï÷ž`E)*V@T@z¯¡CHBê¦ífî�{gïÞݽw³¡™�ì´3çœ93sfîT9�YœYKã+\ÆwR¹�öÚQ¨…Ç ÌŸñï/ÎNcš@~_xD¸1½÷eÛ…÷…礯.Ø„ S¢|&ã’kG¢a¤ÿ,Wîã‹Ä jõò­èÚ²´$U•pU×Ð$‹“üã96±nÚ¼ » +‘UNG¢Õ…bwy¶ïÞ�ÈâÆ¨>•NJ×s~dsTèûÍ“¹\ü&9j‘4qç¢I¾°p8#m–LHeî–›y®«Ë7c_þ$4ÐjþQ“F=!_¨ÄŠo'cñî2´ès†tK÷xÒ†Ùº“ç®@ËÓ.ÂàÎJþw/û_/݃þïFÇT§WÞ«Ëöã‡i_a{y5ÅYë¼�XFϘ·;¿ý�e~jè[/{Þ<óULõ⪩]‡bxß ÏÈÊLý92x²æëD�½Ì£\•4>ôÖ—2t½ûÄ�@ÑžeuÓxÎì˜‡Þ ØÒ”q·»ŸÞw=¦nÌÇ ›ŸÂ­ÿèb wôÝX?o.–î*Æ9%7}òв< QÜß ×Ž»g÷k²…3:ÇcX°²©,>Œß–.Eüþf¸æòÓ�ë êãQîµãÉØ¾ü/3=ñÑý×cÆF'þ;åm4‰ ül½¨]¾Ž¿Ôû¶,ãw�Ç>SÖã_/=ŽÞÙMLcë�½önü�Ýó”�òKÁÏ=ƒÓ:„âÃØ&�’ýÛø"1“Âô) 0¸góã¶a:bÊãã0yù�…ÖØ² €è¨G³<Π<~0�:kÆ>‰{†u¥ïòÕ¡Žž«¢ä>xñq|½,ׄh Æ=üõisÜm`©,Þ�»¯¸;$®vëW¿P,Éã$q²µ,±(l%Kµ…7¦7úkËC |�â­Ð?f06W(ŽŸÇ’0+`ÆÏü"LvûÃ!lj´,L¸Íðð8·­¶&“9¹Ý5îj’ ÓCì7°”"Sš Áí¤»·¦EU‘¦}õ –p!³ïÅ8¯kÚq(87Â�5ŸznÝl‡›úO‰ 5ëþeS÷ôåÇ\.�R�øšü�˜8m>‘ŠÃÅ×^‰´Àßä*[¡–yÚöÈÁòy«èDq¥Dj5ÿhÈ¡žF ¸éJ*E—‰¶(ÅÉ_ƒC{öò:™žš¨ÖMöl>ÀÝΈp¯úzxû2|6ûI u-¹`ôŒy»óÝIÙ©C§?½t¬yóÌv ölÙÆË¾)�Dc%|âš`êω�Û“5_'‚ìeëËA–†™[èa›ÁoaÕÕUšÞûà™{ÐõÃ�Ñ:%Ú‹M–§JéFUE�–Æ ð(0¾¢b•/-æfÿŽ¥‘åiƇ«x'Þyá~Ìêw5^¿ï¢ãv2ߌ÷Ú†+7]n%Ê6Œf,Žu×V'Rz&k;í‹Á+£iQb�Ûc°õâD’£^kðç¬ÿ≠ßI`N4k–ŽÜ\±H³OÞsþqÝ£¸ñ‚^ÇÝâŒÄøßÎÉN€.ùì¿xfÒ?y?Œg¸ g�}· ;¥VågÖ&ãš´F'j{«ˆƒá—ým¦9~õ$ãßURA¿�tC9Ĭ…Á—Q,o…K,äQg¿¸\Œ°ìé\Cè\E{×àÚ„KBÙ°Y3“>RÂãí§ïŸ#îÁ}£X}ãK ô±snZò¶«uë¼+oB�¬ÆhÕ4ÁVY;î뎲hoÂ5%�WءƯâ3V4ágÊ„¹…R‘ÝVX1âai.æ„/P<Ãñ·6õ Åúb¬\DÅ“Ãìºe¾Ü §ˆc¶/·LÛΡ%‘AêÝL.Šlt—_©„7À¹7Þd"Ò;I ¯ N°c¤ó(\ŒáÖíP3©c6“�+\¡¦Ÿ «Û�R­xÁ»Z%ÜV­)Íë£+\�sÔ »n¢?Ý5¤‡Ô»Ž•´iE”¥b+NŽ Ý ìÝ•OˆBj¢Si)U%È-¬"w:&D’­Œ Õ%XöÓWø}k¡§1,ä§„Ø!ð붦íÎg?dcíaDLõÒ1æMÎ�Ã]Š-[�ðrnÚ(ÑPÞ2ä‰àR×í�ëÀ<êù®Àiê!B/!}Ý=�#“ 3Â>r#JSáµ�><ï¾u â¼îá§±"Ï™Hq¼Œït~„ëXÊ]ç!/üïu´ ±ÝÏD 5ÈÛ³ÿ~ìI¬-®Àž…âë%=}žà>–y¨+ÚÁÊF¤“íºâ±¯Q²Ô·ÂÓo^Ÿcþžm&÷ÏYxrÂ÷j¿‘B'‡ŸA÷¶Mùâ‹»º»6,Ó<ÃOª~?áIääLÄY9ÇãaÏšðwñm_<ÏNš«•ßÏ=…SÚg*åG‹È»Öý�=ðòI ?M| �Ò_Çå§fÕB<Þm,2ºž™õU-pͤúX¢ç·ãîQ§Ò oô¼“— G\lÉõÄ3‡£_ž€ù*Å7Þ‚%Ôÿ÷q'nÞÇ#ßaQ1jò.ߣ)�ʲ½xøÆ‡P¡rÓŸx½yÝEò¨>ÌÝ„Wx”�c~Ÿö2f´n^ËúÚÜ:Ä9Ït+n1(´ÈO`l¬V1#ìPgEàv¨ñsÖ¤,#ìÏl!W¨ gt›Á3Œ2.ÙÍâ‚1f8Ì‚Á}¦9™ŠYaú2þâB™Æ.Îx|ÈnÇì@F¤×àêxˆFçDs0¹(²Ñ]�òPUéÝ0M§séŠi\SEc 2äQv‹•—” ¼ª´U‘Nï·¾Ü ¶„¦س˜QˆILDŒI ct*é Â�šJ)"¼5ˆŒKF’G‚0š¥e.岘ÄÅŘ\!-ò¨ÛŒ}Ý'\4¶qQô¦F¤É=Ú5t­q%B +‘-ÈFPe6ç¦Ê…#$:Ô@ò‹Bl\<_|g¼š›*”¡ÔU M~E9ã‘ej*s œ©./ÊÇ‘²J*ŸDÆÄ#)>«eª“g,¨ÞÆÒ{Mì†íªû.š}‹dmÌÖ5îê‚ÈqëdmË˨×êR¸ÖÆ5 øUXëíWC^ ‡\‡·Y5é�¢âRÒUnz+ ô&Û¸anär4¯Ÿ,]%é ö¾»™žczÑEõNº6ÝŒ�uYšó(…òEa¶ƒ¹9Râ© Ó[;î²°óÄÎô,ºeŸ��RLEþ6,ÙZÀ=�:Ä€65øìËŸÉ/d¨†Üø™mCψújе^ý��_û:‰$PE}S�Ú7Q¹ÅÄÅ!ÆPvVôR@Þ<èD &6�ô+21µÑ/5¥yt=+yª±ŠÌµz'é¹]D:c‘�K5Ú·±/W‹ý³h/*_Uå%8R\Fí+I ’©­ÊõGq¹´Â[Èúv#qæ×ò@mž)n*ç¼Ã%ˆŠ‰¤HHN4Ñ9�óUSY†â¢2ê'HÛPŸo¨/¢�øÒE$Eþ„±èõ4ˆÍ>Ⱥ^¯¡¾°�Æe4.!YDPßf>. N�Ö¦]èý®›tw4¢iŒÃÚ‚±$ÌŠøïÆäÃŒ°OYˆ2¼횃÷fðºZZÀɶH#쪲"ì?T@­‰ºuC$6lˆ¸(ßÚ²ÊU‚üÃG軥Šà�ˆONFBŒ÷ؼÂUÆ¿uâbœ` '‡óòhl\…˜¤TÚäe<¿(zrÁS3þùboª–W(˹N¢áÍq \üû‰ò�ÈpßcV!¶I*1)–ÚŽ>†ŒmÛO}ø?<7æz>YüåôùÚç*éTq Šò H¯³>–¾íâéÛ‚éDÃiÎo9}CR_Còu•âÉ‘¾þШi#D©ü±IÝ#‡ q¤´ Žðp$ÐÛ‚Iq¾¯Œgð…$Û"ú¶að±1Ih�â}Õ°Uúz (®`e#Òé¶'æ@õ¨6å[rä0–�<œHJJ¢oG&¿”••Ñ·N$}ëõÕ_=MM”ßG¬AÁ¡TΣÉ÷è˜8å\�rzö$<* Q‘Þã…CßF¢Î˦‚ê~~~!*ªÝ4ŽJDz[RÀzJ‘uÏe8t �žÈb°ñˆKHB4U_]îŠË˜Nöa™?�i‚k3l>¢özD.Yf4ækØ�Þ—õÑæ­¶_2¨®ÌÇ;O¼§J©Þšô š'*:ƒË޾ç3;ô¡ð×qÝ•·óÅÆß��þ/^¡é «õΞœèž2ªWì ÝÃU}k¨?5®"좷K™®`rJ¥wx�ºJÔÑPà2´—�0ʇw¿ly „]]™‡·žýT*¿—¨üËËÏAåw*Þ�ô&î¾òV~î§Ï¾…sfõÑú<¦›­èVF@È=”uSbœºçXýéAŠp»£Ð¢i,otñ±‘Y¾eÙ07k[ÌfýPõCa4NŠ�ODR‚÷­/‚v ñŽ€óeoZô�v"÷’;žÇUgµç ¼$¨>§5o�'ß{Œ¸Ž_w>ýÍÏp^Ÿ"Á°¹°ŠôÃþêx�æêâÌÇwþÊ69= ìホäï߃²>7›ÈÆ3zÿ뮬 ¾«ß~²�·Ç¤äX𓤹ê*šç1שhÿ&/?Ê«°C�m�WØ¡Æo‚� Ä0¼‚*–N ä­à`i¬«<ɸü¥ñ'ã8îÝ¢÷Œ`PTš`>£í¤7ƒ5 óILаšŽÁa�~ m½Ó¾èJߟ`)½ó+Þ½<¸òÌ\²CCµwÅl|°‚y�×»°ýÏE˜½t£+}�¤÷Ž“…Žê|ÌxoØrF›.]phåJîf齆ᢞ�9lÑÞMøqÎÏØÏߨäAêOŽìTùãUŽ÷ç.Ã/|„MŸ3£ÎÈòÞ±`æl(¦kˆ»bô˜¾ð55a]64ø�C^îj|ñíB½8 ¾tZ6Ð  ª0_1Û+ÿÎô.¸èüÓ�a¯ˆD¶ý6sVî$¸��Ñçÿ£7Â�ø¬—©@Xzp¾šù“Vž"Ü™žƒó‡ @Ãú̯ÊÔ÷¦£DD’ëëOßç¾ô^SùûÞm\W2¯<¼ÌXÀË| •9ûÔ•ëiÏÓOGÞ’ê{¯ãè|úpôm—ê5yQ¼g¦}õ ]w(›Hœ>l\~ÃßÛmL†ðå¶ZʬƇ_.!4‘6f,G{–©»d7Þ›ô-'#Ó·ŠŸ%”åâ¯ýr"uüãp—`å‚yX´v·¥î/¦7±<ë’¥úÉ0Q�ùÁtªÇF=§�9´æGÌX´�êKŒsŠÇ•Yz1-Þ´?¯?ˆÈê<µ=íÄw_}�DÚœPQz�Cº,Áœ¹{àŒo�Ói—·Ã¡”wßsG k³Ôäo�0§=cÖîhiÉ«Ò9·¯“¾+áûÅëu4ª«Uϳ1 WkEÇ[ÒKÁñ–Ùe Î>5Û£/‘Û‘]ýÂØ/Ù¿—ç"6«5âÔrõÒ™Þ§¶rc¾!ÏáÑ-qáÈAH�6�ìËÕNÿ,ø �ÎDâk¹Ö^#éÙ�k‘ækö—çÐ*o¡ëÛ9YÃ�ÈCLF_\Ð73gühÐïq8‹Æ%m,ŽKØéÿµ,Ä/+¶(Ñ8(çÿ0äŒ`#]§C¯º 1ž:ÝA;èßûèkŽã´‹¯Aç4e,a·’ë£?½^Iã’94.Ùå5.K£±ÌPϱLzTæÃn»(Ý·3¿œ'�-˜X"qæÅ""Î{±‚ ­þç¤�@T|*hñjÎ;ÿÂi]'¡GÓDKùª¡�°¿MÿÏOúÆ þÖÇÞÀ ž-=Âk* 1ç³÷ñï©?y„3O×A×á�qCµÍUåp+MH²w;‡Œ‰¿¦NÕÞ€ì9ê1<:¢³`•¯C›ÁØ{_çÉ^ýp:]½íù-Á6�]:æ.ÿÏWÞÇém þmO5ÃaÃ#S0bì?°äõ/‘¿ñOä•]ÁßqÝ»q)^ÿ,6“ü=M }ãôj©Ó\;ç¿xð�9ˆŠï€ ÏLÄ´Y‹Õ$N¼3åSdл°¶Ð)¶»žÔd%p¦dŸŽg½MÕÅ ^¼o=½û_^ôS²‡à•§nDÃh½í[¡/ðú´mÈÆ«õ(˜òe¸§½ö(>]àÙ·dô»÷^”…;ïy†ä?Oº14A¨ž>6²'ÏF!ÉùY’3;UîiZà™?‰N™úwþÚ9ÿãåÌê¹H/ÒÈôxýœ–Õ€G‰²IÉ>£Äâ� ³DnGÅwÇëÿy†ò?@ï«ÞK﫲S�ºqâ‘W_FL-äÐÛäGÅØ¨VËŸñ-ËËL�0ùÖTâ«ÞÆD­=é9¾úÞçqñÿµ×Èe§Íx$”<{VÌç׳ Ûž}D[$–@¸32±%î'½øÀ¿¿&½ñ3òÊG  mB±”¯ õí¨[nÁo¿­½}ˉψ7_¿î�âÚ»ž6°™�·>zÍ“•™·Úâb„Žuy2˽¹KçkòQÊÏ|¶+2±9yö6\÷à›”n#¯ÝKOÐez”ߨ»î²w߯rƒn¸âÎç0âÌ^s$2?lAÒ]cñÅ®b„B„¢nËüùrWW˜4x`¡×üõyvtk¨ë¦ Ë~ƒ¬æ»¢h>ÿ ¦Þ îyÁ-¸ïÚsxß#Yïx3›m|˜Hcfâ3ÏÃ¥sÌÀh3B:îxôÜòÄû4füô-“«|„úã£ÿˆÛpÛgyð-Ê6>³.?#Ž6UÌñ 9ö¡7p~ï4|úø˜fxóù¢qã1fHÞ6V~û™ø‹–vÉ´çqÉ4ÅûÀëQ©÷­P½ãD“€qâEø­(kÎ(³tfaÆtÂoV¤‘íÚ¦—q3·ß)ªcÆ•B˜ ˜ý…ÒÂ(^ðbg&àíØ �À%»ez=y»¶cÛÖma¹[r‘»W� �ÏÂe£Æ¢kf ç�Ò÷Ä[÷~;zƬÝq¹šêû: n–f2¾Ls@IDATÿ�‰UY$“þî­þ€©_­æmÕª^2ö‘ .–ΜìѦ¤)eÀâw­˜‡É3—Â%•‡ÜŽìè…^ öíÌåùhÛº±VGE½tí_‡ùjžSÒÒµþ¶ºl;¾˜²ˆ¶ ÕN×ÛíŸ_Õe»°\m¯J>’• $I.J¸¨§vÊûj=h39t�lÝyXƒ4ïܪ†¥!3…&ú(M0}�\}éõ êãߣqÉ.u\ÆòŸ¤öñp¤±ÌûXÀ3ÿvõ¨Ì‡�vQ¾w>þ‚Æ1^²¯ÄO3>í¥^²2¬·E½';GûNX1{î?‹NS$û_S­Å}?…‰% Ù©É/»íð•œÙ�U<‹Wîô¹s%-ÄòøhŸ‘ä/ÓµâŽN¤E=Ž�n\!»üàÜøÏDZ¹Hi÷ñ­Ð:“†9L>ž¸í¬Ø]¤ÑeOh°¸Š¢µ˜ö¥à�É–ú1² ·ýŽëî¤EbžèÔ½/ZeÄó4ù~ÆM£žCa%=Sãó·ý‰+®¿O£/™�¿á{\séý8PF'®Uø@ô\0¶Q6¾qX¯GvË·¦º/Ó&ÑOݦå9+;‹»w/˜Œ;ÿù wÇ5‰çOþ0­ÔÓ|*—Ñ$çµj9GÅ¥#S-¸wà¡›¯Â’Ízÿ$䜬\ç ñb¤'ËH¤ÉßðÞx—‰‰·,©}U-Ç7þEìè¡Zž×ÏÇuÿ¤EbÕ/ÂÙØïÉ;oÅ ”ï=üèë8ïza½üß�ʇé‹É÷ߎ‰j{ŠŠk†þýºi2ú€Þÿüe¼ÈðÙm3¾dwx—Ð7�Ñ«­hóæòí0ø:Lÿl:¦OM”£ÞóEAëÛOÞ¢EbÊ+«§b§8w®¹ø"\{çÓ\6 3›iqpoÄÝ7O@‰Z·d™×WmòaÖoØ-o_åW¸OÌ.¿†m{¡³ÚÆ6oËãò“e4ñ•W±œë†IÿŸ¾ú~\}@«‹¾xq²Û+TüÂF„ªn Ba‹|øêóìêVY›æí5ù~é�û0u)Ó;ôf9µ5�sé—oãíY+4¿�ñŽÀaf×T”ãˆZ‡.½æ\Ä8<çgä4™=†b*�ɦN™D›o•ºÇøøøÞ›<ƃ¢ïdiL}7Ýû1ʤþG”mqîB¼ûñž§fÚø˜øôí¸pØå˜¶Œµ&]O~þöxüB‡îXÒS2ÌE7N²4üf5_F˜zÝÕß�ÊÖsM‹˜ö04!Ã&e¸‘ÝjPЖÀ)#0 “ã…;\ x�ǪÍð…§UÚáh…à¤3u!l3œVÂÌ`| œÁÊð²[Nã~¯ �y8îÝL.Šlt—¦œn'gŸŠ²{àÏ)ÊIã̾ÓNBqJOÁîÚ»¿í¦I82­ûÁÿun'ëŸ+òñËÌϱžN(¯™7í³FÒu5 Jàgn Ýiç¢wû ž&Œv7³Øë–«¼'cèÑ‘ 4ÓòÃÛécc6?1²)÷Z%SçÊ�À©Û,X÷ �Ú¶ÜK¶Sìnä,Cbº¾‹²¯/’èT¢ƒE~›�yköÓÎÐõX¶¥;ú·¢�dì—)°oÓÎsxt ¿üL¤¨×2ïY‰O¾ú�°nÁÖÃèÔ�ÊôÆPyh Þ£S¼@2�*‰4^7”2c<˜™º’¹�Rµ‹]ãËþ1#BNz�s)º·jÀ'³*¨NSëáòÅkÑá¢nlé�®^*¼o–¨éÙ ³‹é„íh'sdÏLþŠåW1žØE¨§m».D6@�v)øqýalZ±½[õä|)X˰õü˜Ñò «m1lVõŒàO–£Î«ˆUZc0:©Lê›’Z�ŠóÏìŠ8º9AÖ}¥»Ц£ä¤XÑK:OÂÅò[J:Ì4h7CûÓiP•ÎÒ±¿’Ž-?ð–ïÊFŸLúøãFÆXÑ/jBÒ3ÅØ¸>�×ýÆ�âymeq2ÆÈ¤v¸èÂþHa§©èÔÜæE³ñ#×õ«°ãpoʯҧ#W»ý³Ì;U<ô³‘žD“žŸ£�fÿX~ìòª¾�Ñ6Á£ÎN©Ž@Û4¥,eÝþë׿£ù˜~ü4°^""µR—©óÃ/Šxù5ïy.ÎîÕLÑÓTN©œXŸ\º{ *sh̤ëô�Ë6ã”ì^’Îtaò�\~ :öD2ÓéA÷A‚G%‡F½G)~�>ŸóÌn”9뢋Ð&�6ï‘)=´™Ÿ°.!÷ü™ó‘yÓ Ú Çò*p ›AëF„š·ÎJ»p8JðË—Ê•mÊ bQ65Ô﮳Ýïêþ}\¬,˜ö‰�sQhyŽøt<ðâ]¸æÞWˆõ•xþÃ_ðìugðl8Ùf×ýŠO—ïç0ÿ¸îA\}nz*' %ðö½wb�pšòÒóØëm~r¶²tÞ�»�KêŒQÒiá¾ü Õzbî/ÑäçRì_þ–�Ëáuzœ.÷�®êÎiðo:I¥Ã(.û|5ÆðAtnÎ|=åg\Ô?K;ñÂNÇü0åkN£ã—"�úFÅ—¼°ZPÍ!�°5øë§y<&>³’¢Ã°î«™Ü4ÆË^AÛtE'Þµw�{ˆŸòüeÅVtiÚ…“ÕiÐp…N¿ðêƒhÙ(Aí €Å æp|Qñ}ðïwïEºz=ãî5?áæ_#â¯ÜB  655Ex÷¡gUúÙxù� mcZ §o¥ÍK¾ÇÝOÿ‡ÜðéìÕ¸cXWKô}ÉGçÛºlDO›î8±U�ì•ïöÅsñK1m^%ÃNnÝsõ9ˆ£:]]ž�)ÏýK;ÝUQZÅåæ©¥y2¯zZ]sïÜþ$Á3“‚ñ¯¾ˆ­•oσۗãžÛãåüÔ]oÐf�G�¤~ÇËùV0+¿z¸ÞC°ÎÜìôç«ÏߌF´¡‚µ¯Ÿ¨}½AíËUüÖí¾§4K¢ò/¤vú²Ê;Aü&N¡�s¬üw­Y€q¾ÄPq#ãaF[ÀȶÆè°vÚL…­ò�Ôä"Z£Q�TÙŽÏ7ærûÐËÖ·-góŸw’|î¼sI�MzåKœûÉ8DÐØÑn›1æ™ùÙ)ÐU¿.å¼eôëCuL}þÄ ˜‡ÑV»(å#ŸÉŒ!;_ùª(Ý]+}{ç³ÿÆ™3ùµä‹f¼ƒ>™Ïé-ðü;OÐÆºu‰täÜ÷^àºÛUüòË«K·y« .{íÝ›vmÊ;Êpõ¿*^~Ëm”Ÿ#"í³“±’N篤1§ë‚Î4Y+¤¤`½éáW0¤O>GR@úÿUÿüþ P¯)Ù £€ankúÀ~ÀpÛ1‚'fW¨½¤1=�…¡ï=T¤a!Æ>(ÂóAëV…Fmê¦Î¥—ȃl›¥0Æ_pÝÃuî)|Ìã:²/Ýt;ºâ牓0zp'¤Ó³tvÇaftYXÉ�]ØKåÂLÛfɼþp�Ù]C­]‹Î¸¦9̵ó0�ô(39t;Ì£7 ¥·�Ãè6€"|÷Ñ+ø/õ?‡7NÇìUgb�¨gFä—¹S²/ÀkO]ÿ¹Ù ñ{o¸O»…½•|Ëegð¾¸`ïÚðô ï3ÿX¿§ç¤¢ÍY£ñùÀKðÁ­ÊÉúcŸÄ=ê˜EÐaößÕ(%¤È».dP×ø <³5,ÑíÉQr¸Xç2ƒ“Ó·œ–…ývÂÎ`m3ÚÁâ:.ÒIêü¸àçh1!*¡=_qfá¾Âäpæ¶ã7ãI„ñâúu+�pzë-œK™ÝvìI«›—®âaqYgàœ®-¦@„E5ÀÀ‹Ï§ÏJæ/¤Žì̪翌žçãŒÎÍŽpz§RĦv: —_v9]ý|)2é”§�i�…3»6å~T‹P{vX\#ôJŠâ8Öm< áfX¬_ÇýÑé=ш®IŒÙŸl,á±Èé?Dãa ]�YÅc‚)S7*éøÛܲ¥FƒùšvÆUW\Nåy%²Sô²doD Îô’!þìÐËÜ5×´ëùèÕª!ß�ÏüNª‡çžžÃùwÓûÑJΨ)Ø‹\5Wý.‰¶©qªÏ�¤¦�påà^š?Mo¿.„£eÇŽœFÅ�õ8\®×”äaM¡RÂ]Û5á0öñ{rí«ýzBé¾JªÛTnXŽ"zÛ3ØnÚm®¤�B£F 4<�G¿K®àúã²=éü ƒ²_?íòU[Yé9ãØi=zç�ëˆx´ÌLG<í0MŒú �¥"1¹!éc˘>XíËȪž±Ãa0:©¯àr‰ˆn‡ u£÷œ•þ‹é¾vÿ7íT¹²3¶Ê?ûz©›–¬QétÆù§w@¬D§£¤c×ÿ±…¦%ݶª_D wi¾ªgZ !áº�ó.ˆ¢^„Å"ûÔ3�®BVÓŽh6¹:|ÿœ‚óGž�&IѤKYŸ¯sìí²Ï[hûvoŽDHßa£��– É�ëösºqMùì.Pô¬€÷²iñw$ïGãœ^ÍUEPTNízŸªúÙD>K©ëôªÂUtÝ«> +ËÃZ¡Ó;f(ôCЙéu¦ß6s ôv)_ùŠKm‹‘÷Sc·ao¾>ž0ÁØVÛEuþ^l¼]p…T6áJ¿«–M0<Ô§91$à¦ï�ÔœÓñÏ :ñš°vÖ«øyÃ!µVxç�­Ç¯Ó¦ñøÌ~7`ܧñïé¤o„Û^xÊ(i?–¬ÝÏá"cáÝ÷ßÇ{?Äm#N…“N¬0øðˆxœuÙ5ˆæ>¶øëM¯ß¨Gpí�Þˆ§Åù[ÇiŸ¯pô9ïbN±d×÷ØKäÎê½øq—òÝ5|pW-\Äû³Ãi�Aþç®*Çòï?» ¶óð–=Ú!–¾Ù:Gòx“&¿�ìt]'6ÌìŒq´�ÎpÔÐac—ân‚—ÿóZ7J–ú7\t $‹ouZo¤Ñ›º"]fÇ�˜ÄeÿzÓ"! /Ý· Š•ü>÷îÓÈnœ¬Â‡£mŸó0~Ô@îÿiâ—8¢~Ÿ|*]oúz¬?—UÙøÂa¯Y/_С‹¦Åóœ�9÷_;ñômÍøˆˆn€+}}µñ£9wfõ”Éy1ÇâÀ�/¾Œž­©>Ò[öÀ«¯Ü£ú—aë>ïï|sJþBàÙçnCãz÷”þ±ö5ðÊqh©R©ªRÆ/¥û¶b™vû³o¡wk¥Å²>³YÇÓñöCW«±þh….Îj½°Wþžü™•O�6ž‹FvëfZžÃ£’1îÕÿñöùî®áúªvmÆ“áëÔ¥5m˜Ñ¿5YxiÞ¬]³Öäo#ŠéÊ^‘VØfùª�œŽ�³:*²§Eξç�€øJ¼âÁ{Ñ!Cñ…Ó˜ë¬+ƪqû±ç€þ- x«-®ÚäÃL.vÊ[äÁÌ30fåg„s8Ñå¬Þ¼ÜÊñÛ$d˜¾#¦·^ÛRËSBSHÿ?xÇ…ÜWUZá/§ 춪jÓæÂñëÄñvÁ0¯¿‹.†÷~\ïUÇÍúœÚêÖÚÖMcžBéoÔ} ®>¿�6®ŠNÌ ëžïVåRRã´\fæ“Çp¡ƒZ¢a¢2ó k(ÆÇ¼¦òPgü™x|Üù´é^©ÍáQ‰8÷Ú{14Sß|þñ/ü¶'OÜMðôø«µoîäÆíéöñMÔ7\~†Ö§4é„;Ô±Éê_W¨7šÑ�flñ:V™±3Åž4ê}'ªÔ,¯õ+±°åÇfiŒéìøj9�¿0g(�ˆ?)måXÅI™5K™òW!̘Á›…±´Æp3¿1ÌŒ¦Àe +v‚øJøw ×w:é.ÿ²pº­Àë~áxîRì¤ÓÄlË‹ƒN²)9B»7Yﯘ°°:Yãæ;§28vEÇÒ–v%3ŸÑ„EÓÉ8vRŽ–.]å.TTV¡ª²’Uô¾�Ø ­àQÒ œºÍÂuŸp±Ð(äôm�?g¯@Þš¿PЯ9’ôáâ.Ä_k”SZ{µE„)g,½l^Ý6‹š£a’q7-ê5ÅòEÛ5>YÚâÇTÊ‘¨v ˆîw£KôC3ˆ‹UãóPB²¦Í¯~ŒÎWÓž]‘è`'feMïìvÇòYKèÄÛºÒ­+R#‚)SâèÔ7£–·þ|š¿ §öl‡´ÔÄÅD!&!Q:a¥Ðœé¥$óåÏ-Rê¶ -BíÈ\¤Ñm†Qø€ìïzšÜ¨ A(§¨Å^êÂý»yªðè´N�¢]»žÒŽoÖ ©t"‚.›‘°ËÜ{ºƒ© ‘iÍÐŒ°ïD1¶í)@#õ”xAî&�·Œª‹Ä[0øeÎ}µ_Ï\è>G„²[Z ‰  S›aæå ÛŠp1lôï»Iï¡kßhÝ,‰ ñpFF#‘£˜a©XWd¯~ê´G¥ýc…àd©¡4wÐIŠm…‹Î¢ f¥íÖÆÊSLFÄ{µgO4‚O¹ÌT�XÁë7t:]ÏìL‹“HG:¶7,ÿæwÒ±;q¤ºRø{ð‡uý"0ÜéÄfµB¬TFgz;ú`5ä7<Y¤“pñ´ 6¹2ìöÏ:_Ù^|)yºoöúv‡» «/£mla`“¼²©¢qFVÏSé6êsÉΘnϦcüFÝGº= 4ž Ø*~ë-«O"•n3\´K‹ôQ"wUU–£´¢ ÕUU4ΩDeY�ª×Ød*KGgd5�^�-¹ùhšMך“)ÈÝBÚ�A´BFêI§ß i7¾É¸L×o­ÐÆ$ÿQé­‘½h¡'—®Ëo“ÌnH8…͸Ö�Õm'|ÖÛEÑvŽ@‘C›¦4â4ô»qÍÚhe£c×ù¨w)RÒ?Qä¡—¥h+ôóOÌ™u ;óå{Gö”WИÞõ®Ôê•’ªºªËè41«5±äåçQÔFÚJïÖQì^rmÞMß½è Mä%7¤«ÉT¸ÊPXæB%µÙòrjûù·»ãD?i¥sxæiÙœžXý±² _ñÍÛ¡a_…rü¶*­´árWýF!,‡=Ñ–® ftüÁ(×�>:üö#ªt�ïše«¡œSeÓé˜Óx>#iCí‡$˜J”Ò÷_yy*+*પ  3eœ¦ŽWoÝ)ÙЄt«'O´Ñ”Þ”eaë缉w¬ÂMc.@ËæM�œ‡DUöŒsˆ®ÝWÒ;ù‰ÙCÃé,©bس‘© Õø]("›¨Ž?Ysújb‹¥QhY— “¶H§Ûh³Y-ß*×!ü¦ž,½’&ºÙ¦m…g%CްD\:vÓ;Ž2?²Û¬žêrmxàd˜“[ÑmTTW~¥÷I—­Û‡îMYËñü§p üê1º|XŒOÉèU7œIèC'·Ó‰Fw`óZîfõû”öiª[§Ô¸Ë©h„ø©.‘F�õv Ùö†ò °vÚŒÝò4X}2+Ÿ0§SÕ=å¸ìh\~ý­è׳=Ò6@Œ3©êÍ' �^–ÖÛŒgŽŸÎ“î’á6þð.ýd©¤¹Å[érJ³|ÕFNýOkíQÜŽp®ÏÙyÁÖ™I>ã*iÁH狹€ÚâªM>Ìäb§¼5¡žyT|/oéP³tLFçœÞÎC¦,qFvg û‚‡“*ò‘ÖFÞª>UÝöʸ s+{9s±ž—IF·wŸ§óŒn AÝôâÜ<@ηp›AŠ8fŸqVwÐEš|\Ó,ÒÉnÒÉÊ8©ºªØþ8ÌŒ0… ÚºK‘¿p�àjzã}�Úw^}ÿ%´ ÎØwÆâü›Æàë½E§Š—á°k? -h²ñDzœçx&:I¹•2%»­¾hzJ‘¥5¿ÙC`µÎ¿GfNB“3¶šÅéÓ§[åpŸMÿÌü%—\b .�˜t°RÐf°,LNkô òfáfaÞ̶ o†ã„ ;™ŠYÁÖÖ„‡Ìƒ|2 sË~†K3ÆÉ´êÝu,7MQio˜�O7Ø#XUÍ&fÌš  ;Vü�ﯱ‡Ð"t|FkºðxMêîÁ®¼r$¥:Qž·‹|̤!«±r]°EtÁœéé4¡/ës%I¸Ã{•·¢¤PÅW‰93&Äm Usåj^#¼3:F£§lð ®LÓÚõEË¿>Çvš(.Þ¿s¿¥wA¹‰C{ºê¸k�Ntåµ· T �[vdˆ¸Y=RrÚj:µÀLDb]ñå�W7�dlJ×ÿ$Y1ÁÔ·;=û´ÀÎ%;°ž®üëÙŠ]‹]†5ì=L2­ûtFŒÊ[0øe¾Íä"ÇÝáÉ­qŰ*qÑÛ›™ê‚™Ê¢?2 ÿØÓç­¢•X±øGúSҦТE·>½�ÝT¹Î�…Öuý¬­,Εßâ}Û±ë-�Óçlá å[±m;ÝÖ@åV´{#*Û½·„ÁÓYM•E'%uí~k[FVõŒ.ƒégÜ´ð&ú¦uÓ€šVae: ñB—z¦vÒæÅ”Òf'Ò ÊÚ£dÖŽÌô‹’€Þ'Þ‘Ë�mÛ(ï:jˆTG  ÙêíF® –àúç½iÑË›�¾ÝM“¿¯¤7ª}ð”Ô±·¶P,@|évDÒ©ºNû/:ÑÇ6ÅÑ–v‘ÄÔ®¤…¥yßϦ� ¾¨ëÉd�¾iÙôæ×O»°iÙ&Ôò4ºR]Õé¡èƒÌê£ÐoÎôˆ2ëÛÜ´ˆ–Hc9êÛ\´X cƇY»¨t‘¼Éøâ ‘‰tM¶Ò&‰zsrK <²!ßFß2ž2ºO¼ù=Þ¾ÿ<¯¯ŒÚ Á6ì1³}îq5ýY1Åû6áµ'Ãït�«Sé±í;e0|…‡§`ÄØ³°jâ�øfÊ/¸¸+ºžÞ…ùS¾á„Ý|¿Ø7Uï˜}Vj×&ʱñ™ýðÂ3·k‹ÈìêÖß¿™ŽgÞµ6Á&pU–š·Åg�B÷©‹±œ÷m˜�ñÍW“¤à‚ËFÐs Cø-,°„nPŒ ßvƒê¶fù¢o%µUÙøÃe§Y-ßJ7é^•hÃx1æðä"µ…²‰À3T÷™ÕS!ç”ì–ôî£÷”‹ƒN6mJ»6V ¸XÑÅ:Fû®ÊRkßGe%ù¹/¾"b¢mªšA‹ËGÃØ©vÊ_æÝ¬|"c3ðð½Wâž'¨ “ß}™þ”TY9ýpù5W o‡f<@”%ƒ³Ûfd>˜[ŒæþZ¼•C: Rªiíû!'§ñÚfÚ˜CW3“l²»Ý,_ 6”rbø˜ñEK‰õþõï/NÆÊ|Ø)o™£Û_ùaÙUãk]ƃS驸©¬Y ™ÌÆjF¼VüVõA(ë¶¾:ÒÕþŒì ¶€n4ÑñIÆ zr@hg=JðìK‡Ò­frØýÅ ˜º´³³”Mu4¨ûpJÁŒw¤ä>œ;p°°MØÛÃMMe…6Lo@Oa˜˜øeƒ.‰B%ûŽ—ŒYÙŠh«õWÀ×Û'¥ÄÀ‰ÙìO®@"N„ãÍbÆ,�¯°Pà _üÓp³UªcÊ�⬎…9Zte:Ì-ûÍò­Ä‹¦eñwcr²‘Ýþd"à„-`…_ØÆpò;Ó[ MJ´öñ @˜]C;ÌÓShx Ò3›áW|êo ¶ÿ< ³é�UaÒ›6Eœ3ŽvóÇcÛŸË•ÅcZá6K,ÜÂ#¢GV~ÚZˆµëö£cÿæØ¿n-‡oЮøó�,�#p [N£†Õ”“ƒ¹�F¤6Åóñ‡�Dëœlšàò„24U´?6š ÖM&m=Ȩ¸+«ÉÁñzÄÒ›§üX§(âUÛr™²ÔQ 1øªÑ8”»“°6cý†�ê| ½�»€þVã¢1lžÚ¬ ™žp+œøÿi…-C«avdnZOdܲ[Ða¦ðjlzà°ªí Ó¬*øƒ‘“[ÒÚ´§ÇÞvÀµ5ò\ÝѤúV°‰Hä´H%úŒ‰ ëšàŸ!�ÝÌЄ!¡Q&Õ\Õ(lŸo[ж Ù°íi¸¶I6¶nÙŠ ë7bo{%“^ýÞ¿ófÑ›Ø}†Ò;Þ ´�ú)ÑÑË@AÃE¼°)P‡«m»uaå³ù‰(�b%~¥E%Os?Ï�G'‹OG³&‰^áVâÏzYÕ®Œ,ëÁ›l‹ Êa²›â-ë$‘Žá”Ý‚†/[†•Ý^„m/¬j{éXÇlf„_ñ)¿"LØjœÃ]‚M딾± ]õÉÓŠtVØ"\Ø"ÜhS¼e¹Ò™-Ûý³ =Á’fa„ßol£owÐ5õúœBŸýá3ô£U¤¨ÓchEŸñÁŒàÇ-…)1ü—uÅUôdƒ‹V¶Ñ+±Z:³JrñÞ”o•xú�LJEz|õ`Â�(Îý{Ž\I·ÊìÁw¹l1ÛI×ÛgëåË€}Á¥÷ðCÈJŽEm¸RLm¨mŒ¦�Rø”TvÕÉoŸÌ‹x��ù…Ûg¢D-:2«Æ¼ÊqÇ�ûDZ(Vx¢@¥· OmâñàïRú'OZ&!Ùí/‡NØVø…­†;"£è:cº‘üíz @ߖ滘nË8d·ªÌÇ’ 4Nq­zÆ€-á”^o]Œi 7)ycé…¸„ÍÂ…[Ø–¦:šwë l[€Ãk× èÔ¬Y«ÐìЩ ½¡vÜ–Sˆ0aËqÌ-Â…MA±‰´‘ùiª§ß™ÿ§�þd!ÞÆB¢âÞ²#Ýš¨‹f¢²Bú äôbi’š^€ ¢L5|N¤6oËÿNXƒŠ²"ìXó;~Zº• °&·€ÞfVwåIyÖä á ài…-ƒ‹0aËqÌ-Â…(LŽgnaDzaSxBãÆ„ŸhnF~e/¤OP—ÂzÓØƒ�ÏĶ.8â£[2;ÝV‚ôžPlÅNÓ™Þit £0Aá—ò«åC ¬+[жD'2!9ÝØ_oºöÞ…":e2ïÛ°ŸN¶íø�®•íBsüª_–ÈbýÔè ¯¨Š®p3 D¼° sP²”ò¡;é}½Á‘J'žæÍû�gv鋜Ѩ®)Àü_þ¢°Hôè׉átµjs~½“ž^rIüÕyY©´¬êº÷س°ô¾U;˜~†¥i@éYß´{O!ÉÏdw3=eÀ^J‹ˆP&¿}AÛèf~fD¼Ä› sàPÑ»Žpö[¢éXš°Ž¤„rÞ€ÀÉ܈0a«á5¥‡±“…Ñs â¨c”oª°Â¸„-ÂU;¹"˜þÙ@W°ãa`‚â�#´Þ·»1hÓ­‡>=*®ƒ{é:×îtzF×£ C¯J§–éÝÕ8ÜôþôºiÊf8‘–ât�^‰�û ‘H� Ðï´ÈÜ…™92Ž!è>H¢¥ñ,˜"[è7–ÿRÊ?{®C6w9ö¤„§Q2M |œ5ëzTKÇ� „¤pŽ›æÙd¹]sQZC¼iú^Iè¨(Ħ#´` ð©éd´{·�‰°O�ˆòd¼Ênòv¾àZ œö+æÑÉÔ·ù§’CvXT4ÒÈf“Š^~.êå=6Vé¿ÿœ«Ð¡ÅŽ—'1úÇZ÷„BÜóï¯=ó.hȶoX8éå.½ùß5·Þƒ’#‡±äû)xmÒ‚܇ŸVäâêm�’NeÆðÐÅÛ×�» l18�‘é w 4,^ƒµ& ¥H'Ù¶ë!³R¾á1ñhK}É>ªó?ý¾½³zjl(Žü5Ÿd(ñâáf@"NJ)䜿i-Šè=\yA��ÕÐ)k7Ñ"¥ÍɤMÙËü…Ša]è [¨{BIx,‹nÙVÓpK'wbƒ& VQ¬#,óÃŒ¸|Á°‡”æVoû�ƒzýF-ä#vêi;ÄT\ìÍá,¶8Lþß/D +F:.ìÚ°«W­ÆþbTyÄù(7 ŽTáddÒ.qÎQSˆÅ 6YÀV4-°4ç0;±ä×%ØÉÝ­Ð2•&y¤•ã}ÉF†±ãŽc¿œþVÚWäÅKUÁ>.Ï5öè;:-ð{ˆNõ`3G¬EømÎ Co‡Ä…± ‚)ÓJìßÊNunÀÁbu¡; QÑIhÛó tK¤:HtKÙÕ;}áÖOée-âÌìPËÜŒF0a±IijÝ-ÀÏ‹6�ßD­å· ý0Ï4ÿ¾h_œh }íÍ,Ä‚%¹»SÏl­m±¸àñ[+'_ù ExUñA^ß6nݯÉ9,ÜI§^ZâüsOUå\Š VYèý<[õ“ÅɈ⒠—Ès6¯Ún ¥,#�Ö2ÙmÛ¢o7q8¥G7´ÉÎA;ºa �²w´ëÔ9íÚ£9;)ÅÃÇÖ¶ªgìðŒNbiZfÇsÙlZ°y•žra}ÉWÿ›ˆ‰&bѺ¤ÚD†Vô£ÓLí×þ´˜Þ”7èØš",ÔtlÚªÀê£'/vü%ô+ƒ�mÙš(×W0r%Î5R—ýsP¼©r Ußn^.;±b+MŠÊðÀ†Õ(QÃâ£è³Â/ûÃi£‡âO¦E^ZÄ‘` 6®C�ä×ãt�¾~Ù",XF¯סO;8%øP÷A‚¾ÞWìĺ­…<3˜ÂíkÔ1�$N ¡G=;vBjºÊÏZ$£ ’<˜[.c\½?x]t<Ë.Ì‘€›ßzÞ£mÈü†G$¡ïi´ÐHõãýÇ' �Àäøšê2¬Xð æÎ™‹‡Jx\-¿*0MÑ"•N«Hõ,wñ|ì“ürœw0|1üa´éeðèᜧ/&€÷&ÁÝ—^s]ì_yóç¢Ûqi üPÕº§mçöˆ ×éTWäá÷i‘8)Þ]S��Ë–bá‚…Øu¨LMFï¹§bà%7àò·ý‰·foð“ã}¹u9¯Âü?s½Òïúk>V©t2š$óøÊr¥üJv€Ë ûÂÜMØ!ñå‹n ðôJ^áÞHÏTmóâký¯ß!?tñ¡Ä[¯Á”¿?JíâmfñÒ Ê•¨”çˆÈdduÁcOÝ­Ê…Þ§]‘zYÖ¾Í4ÈêŠÎª|ÿû¯ñØ|°Ô« ßå´qzü “x\z·�H‹¦ (Ê%Ôr²B³.`B�;åí/?im{Iå÷06ìWú9cš’ýð¯ÇßWËŒnßèDâ-”ßц eÝ>Z¼ë<[×­G‹·£A'ØñŽoaŽ$ŒþçH^7+Šæa¬¥¦õ´¦ºï=ò*\n*è @mnc|ôPǃS_|ùbSWWäãݧ?äøÒ»uäo›ñP·a58’_€¢RÏ9©ªòä*D›pÔÚ¥9¬rŽû�Ûü™¯q±Õ öçϘÁJ#ã³+§«wK /›¿� U…ñ…‡…ã̘À}… à Î,̘®Þ¯I ù‡ P\XˆBÃ_ÁáÃ( ø^j$šÑ5bÌìYúíVvy\G–¥�ÈÙŠÏf.B~-“©*/ÂÚßá›y?cáÂ…8bñÝD¦èÙœ>3;ׯC½ÿQSC§S‹öãÇ©3èMhŒ›&’ºõTvÀnÙ°…#mѧ“öÖŸ5*þdc ƒÊ‘@§Aé­Cf–Îþ+¶¦�?òÔTâÈ�͘2åK.Ï?Öà0Ö ðùû³°» œ.Œ#—ÂÏ3g`«Š K϶êõµa°[¦ì4Ñï4¡6þ||9ý,Qêã9/w-·‘‘IJ E-ÕDÄ7 w¢™)Àе¹(£Ý™ìt_`z™¦i ÂÓ§e)y<¼þGLú|>vÌÃ!Ú‰8gÊd,ÞM“'6LmêB]‹H¯†Ñ{ÑÛ‘ËßÁ¤··›èòglÔ¿�lÔ h9}¼²ú6oÎø}ý~¥�¥ªò|,[LÜ$òk`íÖOGT,Ñ[ÒÌ,ýö+l;TÌuPUy!–ÏýR«Ï@ý µ,ì„"/·Ftí¾B¤²àG'&£)¯X¦ü¸­ê;Û×I4uެÎâDÍ|þÉlì/ª ÝWé¾? +:UšIWTÙ×K2o;ñÙÔIÿÖg•Äü©Ÿi}V÷>ì)�Ú˜ÀïÛÃ.ón±ÿ>Jý3/¿ Ç¡éÛ}KrÍÜ©ø}ã~¸èZÖªª2ä®ú3Ù-'dœé}¼Þ56bª®¢}nö`óž#ÔïQ­¤ÛöoüSø›ëÆŠ_èt×�ØÁßÛMFk¶x"™P÷Aµ¬ßVÌ�¬åŸñ}hëRLžMÎÈD&uCódEw£G=;¶#¡ :©úzí¼i o\¦eصz¡V6vpÖÞøˆNi�ã##a8mø•jÜRÜ~ß°Ÿ½-N¦¼ø0¾{ï<òüKxóÍ7‘WªŒg+]bü¶®£�šÕÕô>aÖü:wð÷AUtµ²ìó%Èetê�òäo\Š¥ü]ÖÆèÝAùv0!µ©/ ­ŸÜ,øa>òKéÛ‚Ú]ÑÁxéŽÛ Ïg¦ÌN¦þï±ÇñüóÏãÎ۞îó<´o̾:è´b›Ü®(þo¾7…® TS¹ä®]D'¹žçqµý‰No��l£™©/Ý­ðÅúäŠüIßγÓìÇ¡ ¶ü}eåÐÆ_y›yfü½˜1o�²9–€ËhÎdæï©ÉÒè6›0ÈeYÛ6™‚›Ÿ¼QÅ¿w_;†ÚàFªо¬p•`Õ‚¯0âÚ»A[ë¸wãy§ËÕ`S+Ôr2%rC�;åí/{žå—�{¯»ß.Y§•kßë¨}_~ݽZùÝøäXÛïÝûã!”qÁÔm7m"_ôÙûxñÅññW¿ÓqêÔŽ¢‘y¶ª[�"{G�Tðã3æZœ:ÙjÄ�ŸÄ#oÍD^q9aÏòìݺ]9¿Ò- Ì »c¬zC†ÌÇ*ÜrÇK4þ(RÆ3y»ðÆ·hã™Ñ£z¼ÇÎÕùO NzW^uF�¼)yª,Þ�q—^Ž1׌Ƹ'f¨õ×¶ÎY¬'`EfëWfaf¸|Á™…›… œ,.&TxBÁK�â¨Ý¼]�²æy]P üþâÍâX˜¯pcF}ÁšÁÃêý^¨Ä�ŸOõ 齆ᢞþ'bÙ‡ùú;ˆ/?ù€ìd\ríHê`ÙÄhwÝ‚Ù+öÂu`%¦}´’â=M|ΙhÝ@Yü”‚=¡T}|ôîØsÖ¦“ ‹ð)ýY1´ÿ˶IÏéB+Ab¹hßÖ¿Ìø“�|à0'zŸ?›&}M'´é©ÙÙŸa±W¢Hœ5¨+;—ÐxÊe¾žú¡WšØ¬~èØD]�¢X»eÊ&æÿ˜:wªË·c椉�¦«rË•ÁŒB°ºÒ»ÐÊ–7RÑt}¦r5ì–Åßb e2³ïÅtýQšîç7ô2׉ikÕô½ 6,è±�\hÖ…ØÿÙgXO‹|®ðÍLÚÁ¯šôœîˆÛ·Z]¡þìàë‚;ªzÑ¢õÏÛ”ÉÏ»Ãxƒ2•´ýº”\üå1pœgVàZt¦ËwéyWýüýѤ´XP.m|é9¸èŠT7½Šl§~ºÝ1èñ�°�ê3«¡sf|â“I­¾#KŸXi²úÈAÞþc³šÑ©åãµx¿¢«Ò3›Xjû2z�O94tnÏ2²¦gdê�ø³«“ÙÚg;¾^²ƒë¥/>}_&ÉݬoʈcCÅ£—œéíq.õ�ßRXY¸‰ôŸ²h(p2»AÇAhŸ¥ÑŽzŸxýaŽ£‰´¸-�²IaÌäéYF ¤m¹Ñ?â‹qÞDæÉEß.¡ór.Ÿ÷–Ï3Çáœ!]=6˜å+-§3"©NVR ÿå«ÉøÅˆÆ‡ŸéôSZ%a>;ÑK&6‹tº× È>(`}¤¾b�K>RÆ%>ó?ôÒ„Š J�äCEîaÅo±zê<Ôœ7�õž“LfúŽe±EŸóqy÷ï0yù¯7hÝ÷Œèƒ—¦-¡ÅÕïqýèï½`Zžs º5S®!Ì0Nz÷ØEÓæÏ=p³¬WÕe±�ê§(K*ž±vù©#âãÒþYøß‚m<(£ß…hë¥ ¸_Û—<åD‘±�pÅñʬ5X1猡¿@Æí›dHç³q�t%1[¸G ûw>ó!*Š—cÜ5—#ŠÞn¯(¦“±šé‰!½šs_XX Æ<ñ© Qo=~ÞÒà„ɇ®-Nù£/R²­ÈÆÛõHEf¥|cuÄÛOÝŠ[þ¥Hâ£×žÄG3)=ú |üñçZwP1ø«§\ÎO?‰Ecîâ F¼ø >ðÄ@¾<6þJĨW}¦eÓiE ]E‹g½Íÿ¼’•�±­„…ÅaìK�`ÞM�pLæ|ˆÔ¡×j½°]þÊ'³Ç ’õd.ëO_{Ÿ¾FWÎÓz±º²|ý£7 …¿!l¿ÍøYf×óðÂ�E¸ïµO Ì…·¿Ç¤ *®¼÷%ôhʾúU _!•“?ZfqfaVø6IÒ|öÊ[0mn³ò{öŽ<<øútðŸ§ïÇÌAqÅ�Ïy^Om’WI=‚�íØ#RòØ×öë¶Û]й¤ÙÖòŒšŽu¾þ-(±âá´Ê¿Hä/ÁèV6‡êS_'˜õc[Íw 8Á»Ð—ÁŽwÌX �lˆ§?z·]u;¿‚š�K®¡?3“ÑïjŒ>³�Õ°Í©¸ŸÆƒÏÓx°x×B,Ôâ„£ãwã´Öô¼‚jü•­€a¶q¬ã+Ηìjj\X½h�–l_A rèöËÚ”·O -¥C)U4¦ §“Òf°ZâzDZ’@`墯“QKö0,­Y2 7† dfxD³Å˰vÝ"ÿ¾x³‹ï¨Á‡5JÇ!QX�8 ç/žÅ™Å›…ùâà Ö,ÌWú¿u¸ÃamD’Ó{"!"\9"ߪ;†ôí(¼;-ûÅðszy-^„G7Dßs.ˆ3Újo@:Â" Î5F™¾A§œú_€³éš\£9eð¥¸ôœ<ØáÉ"]µ¤4åp)ÂM×3æ4—EDb*IJ$; ÓXZ0à -üø“M úâqѨÏjíˆËÀW]‚Ž ^4¦ëž.¾ò*4³È«�ËÙ#ÇàÂÓÙ§»§i×÷\\6¨“¡ìì•)Øܪ/Fž7 Õ“=ò"qvÏ3qåuƒø¢� Î—Ï9”N);ÐYx¸º &`|Ùu!sF+">Òr=uhu˳ìÜá 8ý²Ñ¸ðìÓÐ2#M›¦#=½)µƒá¸èŒhâ´×å_"ЪK7M„]:6ÓܲÃ.þÀíWÆ ·ƒ&=¢9¢¨½Ñ»Ã“pîØËÐ'G™4db‘82©_< ½Zê“vëgb«Þ~f/¯ dvˆ‘ÃÏâíE®/ Ю,½�K•ÅÊé¥ÌæiÚÂS%{•L³¦ÊĵnêÔûª×žÕÔ¾6�Áé…¢QŽæ|Ø×IìTjF·!¸tp_~ºÞo2Nt1FRß$÷Võ’g†fÔšÓ‰#:—ð |™N vd¦_jŠ ÔÓÉô>q¬· w*=«/yŠ2’ûHÒz¶úo~Ò×fÿˆ/V.¡áM/áPôí:6Ý“AýÜ¥ƒÕÛ0ôðøF0|Ì(dÄx64³|9b20zĹÈTûJ�…m8¸tÔp´ááÞã2VVÍZ7àèÖ½¥Ö_i�ä¦ T~Î÷5#Ð5£¡LŽ»ÓZõˆkF¡Y¼g½´«GñaÖ.‘É­qý¨aÈRoc †G·¤rƒ³Ú)“;žíV@ÕÛ'¢ÂÂÅÆ§i;`yr8¢pÉý�£…šA¶€"ŒÃ‰W>ˆ¾IÛÜ â¢â›aÜÃÏã¥[i¸Ù å ï<�Ÿ’}6þûþ;èÃÃÅ6 Ҕğ�DKcAƒÙQqJ;��¾[ìò%ð±tÝþO³\6¼�Æ»€ñg[‘§gú0 ¸öQüóÊó<ƒÉ7î±WñòCcyxx”®�qìÌ3mrI‹A¸´HÌé§UßáxëéûH�(å$/Ÿwå�øxú#ê‚—’":µ þ7é?øGïñm·þÃðï÷?ઠúÎhÛ—�À ŒY#cõza· LVË·Y—A˜úþ¿1úÂóгgOäää ÿàKðΤ 8·_W�N³­ÔSÆóÄÉ0´‡÷wy‡þ—bÂäw‘“.}ËÑ¢ÿ£T.çäèý#ßO¿ù\C˜‰”ÚE ²1k+‰M»bÊÄ×Ð[=YΑÒOT|wÊï$Ü:(‡ÉtL(ì`ê…ÝòT>áΆxbÚû¸jp-Kb‘8>³+žzí]œßKh@ÚPk³ÍhH}8Ú�y&¼:m zQ€7Î9¯Mü#þϳîÊW(åÄÞÅÖt±a>È,Îofð"¯fq¡Ì£c·¼o¾ìŽg]…÷Þ|Úgù±:ôü;â²3•[2b0t¡/�ŒÕ¿ÛY€Y;æ€ô#·Ó`ô�ݺ]]^ŒÝ*ñ¡CºXè/h¨Þhc2w*ò!Û�òaW·ú“»Yý¼ø‹0¾m=ßrnï¯|4ÎQzB}ÌìxÇŒ6 s&·Ä;Ó>ÄèA§øiŒûž~oß±¶�L C?¾úØ­üfÏÄ)¸‹Æ4Ï^w†Çibe«ô‡±i‰^c9.Bé2–Ç©Œ¶¡`Àð!*K-�•®Ü¤’Ð4GwOk'Í©û‚õÌO½ïK@댘…鱞.3Xf.Rú‹c0�â­âp'�mU0þ2l‡?8³8c˜ì—ÝŒ7Ù/ÜVm‘^†gnÙ/È8Ù/Ãúr³&qŒ†€a6Ó”Ù?ÌùÁ{1ƒ¬7¡—]+Æ®I¤žf‹¼5UpUVÒuDš„�4�òœ6´ÉR�ʤµ‡» îˆÆ÷6‘™€WåaæÄéü:׎ç\Žþ­Ä§„ l  @² ”ÞG|U¥ •ê�Ì‘NH×J¢tÅe%]™ÇˆÑÞµp 2 ¢LužÃétR]ñ‘95¸†® SªL„½úRG2÷Ï­¿Ø”Ñ›\ô1ž�Dƒ6lÕAL�8“Ψý‡_�Ž©úä‘ÒÔ«Ë•-¬Ô¾.‰(Xœ¾@IDATÔ5~#½�ùYu‘Þ!„a‘pFÊKrÞTô|Z¨Ÿt}z¹‹ô¡±#s�†½tÞÜž˜!¶õŒšM‡£³þ3…_ í³�¡“èî~TRáýigŒþ¡êKÂÁé%…Sd¤Ö,ÑñEß^¼}1>¡+~c³bÔ l{ºÒˆÌÌoW®uÝ?Ë<Úæ-„};ñ‘·ú'L§ë¥#“zbôelSœRÎÕî¸iSžÕI#9KÌ]é¢ýõ¬®T;­,Žad¿àtŸÂ7œë±ùJ�«Û>HðRCã<åI ªäNÒ¹ÆÎN@ªv�zԀŒW“)½Ù匉};±Äʼn´k×.Îpß¾}O,ÆCÄ­»šúyºNW|»Äè\e´‘‹ª<»e5!.&D\x£±Ë×Úïÿ‡ø•»�ñáŒ'<U½±‡.ÄM×:–³7òè�aDÆ!†½Ó^KSAW}+ß>aˆ¢Š"ÃÙô€o£Ã Qшâ'(}Ã1vëQ ò­r!ÿH9ÝØ‹Ô}áVäuÅ—¯ã:Ÿy!&¾uµvXÄ[±«©�TT³²VtL€sWY ½MÍ…æµ++ô}Áh²$bq q¶õ>;öé½×cêF'þ;åí OãûâÏ,\ã9Dz„ë‹röÄŠò-ãô?¦m›©A)}ÿ––•Ò÷û¦CbƒT$‰·sÌ`1,Ôr²H6ä`¡Î‡ÝòöŸ!¥üŠ©ü*yùqI Ð Ñ[�øÇs|ÄZ©ÛE¹Ë0ê–ñݯ~ø1Z§(›Ò�UìêÖcÅg]ѵ;Þ ÄGEY ŠEON•#&>É) úz¢ªLý6#ÝCc¼Ú�hq[ïK‹/æQ™™™¾@j>}ºr£Â%—\R+<¾Ÿ=èì[)n#ýÓëžÙ”"³™~füóg„õåg4|űpfd[ÀŠp'üvl–¹™1çÄxÆù ³'`˜-Ó”Ã-¹ýÏ([BqÌ�ü=…†½£A#§2šÛ¡íÆ ”¼>¾Ö “Æ‘†ÓÆ8Ã#M!3‘QˆæèüìE�®òزtQýqÐù vÍ“ä[Ðì£ $ûy 6áAb™ 'dJYDD™Úå9<2RÝ{j3›u$s›\hàw1¾›«£6®X´•O:k±­HœÛ¢!¥;Yœ¶õ e¼ª² »w`¯ÚFXû0m#Aè$ÚC“ÍôgCÀÁé%…#Cߦ!45Ø¿s—GvÛ&^;”CBÈ®\ë²6fÈo¡îÛ‰Q5[­OF6íúÙ3VªJea.¾_´™ó’Ù·ùÌ…6æxêºâDè'œ*·rNÄ çYóé+_Žˆ(ÄÒŸU«ÜÞP×ÓÊvø*Ü·/¼ó ׯ^ŠQGozÃå„2L �DœÑ±^'½ý•�]x¸ŽVœ�zd¥|wü>w¿4“³ÿð«Чuº–•ƒÛ—ãÕ÷~âõ#¹e:"i³w0í=‚mþÕ°vDÇÆ#tµÂ7=M–ASÆ›ZOãϺ6Ï!"Äõ…�“½f$BÛfÂGÏ”±¿P›PË)ÔüYÅê|Ø-oÿ|Ö]ùù§[7±Vêö‘ü}\FÅ÷A£dgPú0”ÜÛÕ­¡¤}<à²3ޱ¯36�èϾ §9%q÷¥ýÔõ)B+1Nvh±+ß÷ g]á—ø•Ì]«L o°Î£ÁÃÑ lþ-¥³3Þµ„ð’+®?ö­ÂùÃaÇðúÂmçë¶x]­áú°¿£ª°fît,PßùcÈì;©ô–é±VÙÇâ8‰òì¦Ë­úöh‚Yôîué®ßñáG㬶Ht”cãÖ\-§ì]ÔLº¢³^wi"©wüÝ%@·;L§ÛØi{Å4G³Îú6¢JÃá>‚µëòøWEcºvª^wˆz"Ûu×·WÑI9&söÇÞ›:šÕ[0A}WÉm2NÉidZêû ¹>Ô»­J@èa[MWwì%P´gF©ï´*Ü4¦kB;šê‡cÏm=v%`§|›w?Éîü-á§îK'‡[¡§lìX½ëv±Ã,Ì8qǵgó>¬¾½+a¿Lù»‹µ>¾^6ºlê]õ8%p`Û&ÞÞÛýãTÄÓÆ�ú62–r}žNt ˆv)ìPçGàv¨ñð±5,yµA¬iÉa"‰¿8¬mäëp¾ÒŸðáGs¾çx–¨Œ�x´ çO(p0ü¡Âã�×ú¸“NÕ(Î+Õr•ÕõlœÞÕó%-²ÞQ/›hÒkÎ�\„o¯ç)÷чÈ> G»¾Cзk‹úkl$™Ô;ë%à�@2�ø-(Cóœ®èK'&ÔÓøõÒ¡¯ Gìÿ³w/pQ•yÀÀpQT´0o™…Zh¥™…º•fÑMk7mW·–r×7±vóÅÝÜ^Ý7Ûò²•FÛ¶^m7Ù\ÝJ%­°‹VPi*™¤¤¢ 0ÊÀ Ìû<À�a朙37˜�ßñsœsyÎsžó=—Îÿ<çÁ¸›§ÀX‰¾víàÒGðßw{tÏsu ½û÷ðìíJ=øl°˜l–JÀ 3nB‚“V ødÃÅA tr�úÚ36[8�?»ýc}øf'›Ü9ØþîìßpѶö³/<‰¥™øÆXã‘ï°EôJ'ÛýŸÅ¿Å°>W»U²êtŸ!¢ ‰Û–<†±ÕaèѶ]ÕN·±Ü P@¼*]¼^Xt7\~!5(@ øSÀW1+™�ZPÙ�²ëÍCo:wÖti}±ãôæá,�Ú<ûi¶ãî +i�}ªÍ³�&‡•^îdeXùT›¦Ì³ÿ”/ÌS¦ÉålÇåteÜÙ<™F¶Q<ŒmK&vîXDûzVÑ,@ƒhiÐeÛzîdÌ´P,â5ºUFÑÆ¶hÏ[´mÇZ\ÏžˆvÕ–£²jyì´®^£Ø;ÝÓ<ärî,«šöĉ{p±` (@ P€ Q ""¢±X{öì Äâ±L (@ P€ @Pþ>édñÓÒ[ÃW‰éMo{t¸³Ûål‡}‘‡m~A5ÜÕÅAµ³š «œ0�£Aü*‚`´g™)@ P€ (@ P€ (@ P€ ÔºtÐU�$°§¶ :zXT½y8K§6Ï~ší¸«ae¾;Ÿjiå4Ûéʸý§¤³Ÿ¦5._÷­6OkºLk;OË>VôÃD x•ødG P€ (@ P€ (@ P€ (@�v yP¬ð€è�¢ohîeí`ÙËqeØþSkžÖtûåå¸ìÔ¦+Óìç+ãʧmÊ4w>mÓ:¶Ÿ'Çe§¬¿i¬íÿÎæÙ¦Ô›Îv™–apdç?äõ¦óvyoÖÍe)@ P€ (@ P€ (@ P€ (à�€·±.o—÷¦ì�~YŠÕw±/:™—Ò«¯ÍùT_–Åùš8— (@ P€ (@ P€ (@ P€¾ð4Æ¥ÄÕ<]^­ô¾ÌK-ÿ œÆ@±önóÇãmžÞ.¯½µœC P€ (@ P€ (@ P€ (@ï¼�ey»¼Zéý‘§Úz‚nÅúvY @�Z.}ªLE P€ (@ P€ (@ P€ (Ì�« ÔrÔ¾f Xÿîð×%óõWÞú·Ž))@ P€ (@ P€ (@ P€ (Ð>þŒ�1î¦s2P¬ª9,÷¼˜š (@ P€ (@ P€ (@ P€í%ÀXžÒ7Ò2iû(OP8;��ÍkŸRr- (@ P€ (@ P€ (@ P€hp»²�g%Xà°Fqàì g%±=�œ¥ã< P€ (@ P€ (@ P€ (@ t´c[½t¬Ÿ�bH:’ȃÝß¼’¿ò©£XLB P€ (@ P€ (@ P€ (@�vPbXʧ¿V*ó÷÷:üUö€Ê—�bßõdn (@ P€ (@ P€ (@ P€�ŒÃùø8` ØÇ ÍÙµÇ�Ê'%ü³ï˜+(@ P€ (@ P€ (@ P€ €~ǬÚ#î¦k;QJŠ;ÑÎä¦P€ (@ P€ (@ P€ (@ P€Ð#À@±%¦¡(@ P€ (@ P€ (@ P€ (Љ �h[‚eS”êñÊg°”›å¤(@ P€ (@ P€ (@ P€ €/ì_[mõeæÌ˹k;÷á\ P€ (@ P€ (@ P€ (@ P€�N€�âÀÙ¥¬a8û‚%¡(@ P€ (@ P€ (@ P€ð½ãa¾7õ8GŠ=¦k—y²´ 3WB P€ (@ P€ (@ P€ (àcƹ| êëì(öµ¨ó“'; P€ (@ P€ (@ P€ (@ ¢cY�¸W4ÊÄ@±L�LæÉ$;ŠÅ¤(@ P€ (@ P€ (@ P€�P€±ª Þ© ñÎcÑ)@ P€ (@ P€ (@ P€ (@ x"À@±'j\† (@ P€ (@ P€ (@ P€ @ 0PÄ;�E§(@ P€ (@ P€ (@ P€ (à‰Åž¨q P€ (@ P€ (@ P€ (@ P€A,À@qï<� (@ P€ (@ P€ (@ P€ €' {¢Æe(@ P€ (@ P€ (@ P€ (@ ±ÅA¼óXt P€ (@ P€ (@ P€ (@ P€ž0P쉗¡(@ P€ (@ P€ (@ P€ (Ä çÎ Îb³Ô (@ P€ (@ P€ (@ P€�P€±« Ü© áNc‘)@ P€ (@ P€ (@ P€ (@ x#À@±7z\– (@ P€ (@ P€ (@ P€ @ 0P„;�E¦(@ P€ (@ P€ (@ P€ (à�ÅÞèqY P€ (@ P€ (@ P€ (@ P€A(À@qî4™ (@ P€ (@ P€ (@ P€ €7 {£Çe)@ P€ (@ P€ (@ P€ (@ ¡ÅA¸ÓXd P€ (@ P€ (@ P€ (@ P€Þ0Pì�—¥(@ P€ (@ P€ (@ P€ („ áNc‘)@ P€ (@ P€ (@ P€ (@ x#À@±7z\– (@ P€ (@ P€ (@ P€ @ 0P„;�E¦(@ P€ (@ P€ (@ P€ (à�ÅÞèqY P€ (@ P€ (@ P€ (@ P€A(À@qî4™ (@ P€ (@ P€ (@ P€ €7oæ² (@ P€ (@ P€ (@ P Š^)GÊcõm‹’�Š—bÛv*Ç(Ða¦o�è>µÆnýaø¸°Rx Ú¹pÔ߬QìoaæO P€ (@ P€ (@ P€ €ÿjUV±·f»É¥Û«pëŒS¢¯Ä>“ÝLwGMf<1¯ü²Ï}`qwé–ôÅÿ¨l*Ó¼*”xžMK~Þ øÔÇ›‚øbYS–6îëSXµÝþHðÅ ÜÏÃr¶Ae!«Ãqª’ˆ“(àsŠ}NÊ )@ P€ (@ P€ (@ P€è8�üíÍž8œßÅy±ˆ·+ȱ¯ÍØ´»AôTz”µ4àÃ×ãÅüz¼þ…]mf»õ:={ÊÒT¦›ñ£·Ákg+Ò1ϧ>:Öç×$+v7îëüókµ­_×®šylrlã±yøãžøû!-iÂ[†8@�öà«§ÛÏšk¢(@ P€ (@ P€ (@ PÀï¡HŽÄ(õ…Gú28gEeójÊk­ê+Ô5Õ—eÒµBÍD¾õÑ\MûÌQ°îÍkêÑ>kt½C(6Õã¼(Y|¾éù®WÆp.À@±sÎ¥(@ P€ (@ P€ (@ P ¨DÀÖÛšÂz·7*ÿýx4NÕÆGè]Šé(Ð$ öºtÚP (nGl®Š (@ P€ (@ P€ (@�À°mµÖ"^S,;ƒ¡µv¯Ë’ÂpÃOc]&³Oд®±.û9�5îµO{oŽØ‡òÛ}XÝÞeàú(Dl£8ˆv‹Ú$ÐÐЀêj#Nž,GEÅi˜jùÈ � P€ (@ P€ (@ P€pW 1¨ÇÎW*1q\¢/<ÙØ�šqÛJ´Û³-ûü –>^‰'ž´éÅø†Ï]¿B¸x{5nmYWFM)ǢaVÞ�¬µ & òž>�‰ç—!¼¥?‰ž<ƒ¿µiì™�Ü„Ra´è—'mÊÚ´­¯}bz¶ÝØ^ƒçž<�[§´]nâŒr¬z½Îj‰ÍxîÑr„7ïÃðóOâžG�(®°âÛÕ¨ {lkÁk�ŸÆ¢G+ðÜvQ8‹ž®h<–”}4qF6|â¬àjâ4 ´Ÿ€�ÅhJoÎҩͳŸf;îjX™ïΧmZ9¬6®5MI¯çSçÕÒ©M·Ÿ¦Œ‡‰<º‰þB«ÕºB|v™®ôÇcx%w¾üòT��[�›Ø×^u%n½u*¢¢���åÐPIÇŽ (@ P€ (@ P€ :«@ÑóåHÉ’ÁÚP|\Ø)}[Ó‰¤ýD\M$oæ÷FÚ@%,КfÏ“'qå3Ží_ý›îØþ°ã=ê¦%­Øùt9&=¥€nJçXvcñ̺î,6µÁn( ÿù0“Îu,«]B]£Þù4à?�W঴·sÚC±Ø0/¶•©�ŸW!þ•Âú…£h{O$Ù[~¬ÁôñF'>M›=í¡8¼5/²��W¶ÆZÜ:²ªq½ÓfF`È{uxZíXê‰qˆo³æ¦‘VkÇý®’< '…„„dˆ‚íýÑËPžò�ŸJo?®–ÆYZežžO±Ú–õ*éí§ÙŽ+Þ|Ú.ãlØ~ž—�,ŸVçlží2zÓÙ.Ó2ÌèY ]à‹/ ñ‹{ÿ [·ˆÊª3 1ÀlnÀ÷‡ŽâÅ¿ýŸ˜—�¯÷Êk‘8³¬ÖÆ>з‰å£(@ P€ (@ P€ (@�h ì…âÉU±Øöb4~ÚR+}¾¦eÌv`È 1x:3 Ï?&ú‡Â[fõˆÔÔV|PÕ&H~²m�øw™1ø8/o?ÖÚ~󦧌XüŽV-ÛÜ;3_‹�ߌÃþ…iÊæ7#ùѳÊXóg=–ßn$¾Ð€7_�Ãk¢pµ]J‡QomE¤[©¾i]k�ø§÷‰òÿ%OÞ†+å –€í�U2–†6uuuâ5Oã¬ñ,î¸&•5 øèÑ΀¨[Ý#Ú‚SÕa8uªyj ]”�ÁƒÎk¬El6›qøðœwÞ¹ªµ�mVÁA P€ (@ P€ (@ P€èra¢öq¯–ÚÇ ¨YÝXKô›÷Ì(Y ´3‰¿$÷_Ò<ÑR‹­O™ñº]š¶£ Ø¸²®eÒâ5=ñèõMæä'"1,¾7hÔÀݹú >h^ò§¢&îó¢&®R¡6åŠhŒR,ûŒ¬¬)•"øúøõ¾û¸áSVƒôƲÈ‹ZÎù¢–³R#û’HÔ\×Zó÷‰Î`Þw=�ؼm±ƒ£ðæªL˜…xÛM¸,“Ò"±àÂJ<-Ó¾iBÑÒ$7#¿:‹EJ-Þ #P¼¥GóþŠÄö ˜(j+~Í«jùð½m¶‰šÝljv?ø Û¾°¶”[VÎ ˆkÈŽ`1œ |¸E_‹ÈpýiÌ™ƒoï�‘˜’Rƒ¿Î­Ç¨§PkªÁ÷ß—à÷xO?»+þúÉ\*†_tž9çR€ (@ P€ (@ P€ @—˜÷—î-AâF€Ø(<|_sMÝãühtÁ¢U1Öv1“[w7Oè�yÍAâ¦)!˜ô`·ÖZ³m–«EÎ Ê[eÑm$nYv~l˲OäÕBOqlWájØŸ¢·j îâ7vóÖĵ‰›§Î�ÆÒLÙ²¦ìêðQ±²mb4>i7Ù‰Ó‰ÿ ¸¿e9+ÎÚlä¡‚Ö6�ÿClÛ ¾Xß“i„ÁL¾·}~sÛ qcñcÃ1éêˆ6¯ÙV6‹ŸÛç2¡<,Tú'ž‹§‹þƒ­ˆ‹íŽÐ°,¼»/NUÖ OïHÜ:¶ï}~ZÔŽAÉ‘”¬ÿA¼z¢ ã0<‘ý"#Û¶; ºN¤ô XŒ(Þ{ö/yq½p8Ζ„å‘G× 0(@ PÀ÷üó½)s¤:DÀXQ�ÖÛ¢ÍEïŽøXÞêé�•R€ @Ð ¢.[7¡g‚ .ʦVCワVÓQKK�ãi3E0´uUMC±˜:ؤ“•ùÕ 8¢ ‹oþ™¿,G�j›àjó¼CJšã 0‰a�¦™•Tn}ºãsºLÖlnêž~à4NŠWcWW+Sš?mÊ_Z%·Ey}¶œoEÉç&¼õ¶}Z�J1¥Gw9ß*lZ·»õeßV|û¥²ÎP\s©ã¾¼0U¼òú)©b×ùÚV<0í"Ûm±[G) >¸Äè–±X�J [·n(;cÀ�eW !æ$.8Ç‚1ÃcQ['.òÖ³=T|5˜+¿ abX\�­ V˜¬õ8ZZŠ+BR:•7†)`,| ŒžïQ² ÊñÈX‡ŸÂåÅ…(@ P€žð{Ì5.C œ€inî5ùöK]�êíøôæ°ý*8N P€è\!¸ä<�§�Ú¶öª§Ûn©R‚™À¡ÚÖ€§m~jU�ŒGÌm^›üA¾ ^;鎨çíd ³Üñ©Ç7;l×oÅëù¶ãj«²™o¬Å¢éUxb¿}:›4�³lƒ±Vœ:®Ì·¢Îá):û¼ZÇ}n;<Œ¯—nååP 0PD;««5¹Žw«GÏÈrA!¾6E•áHC-`1!*´{žÅ>ÑAXx¸˜%¾DÓ´ë1mêõ]–Îb2¢ºÆÙ·c8âã½|¾LøWTרw��ç+5Te‚|b¸x@ÃÃ.ÊóE=\# 4‹±U‰W>¸_²ððDÇE#®{æZ\ž: #¯¼ûýˆS•hhpã)­Nä¡úŒy›-œ±ü=¸ó U›…Gœ=²®õ¼˜c.œDfñ¸; x( çº¤+ë¢<¬X<·\3½ÄM Vå¡T¥¹]y1(à�€=ßù=æ—ýÍL)@ P€ (@m�ØÁ¢ýÚæÙ¯˜›Pl“ÚbÁ—öí‹QýÃ[—˯ƒ±ÍB�6‚‹F)�íz|´Ï½{òJSÆÓ~í$–íE¿ÿ/µ×n‡bô8%ÌU�݇k[ݯ~�:¸lm_³<�I@ëaŠÎ´�Ü–N"{ᵨ4£â^¾y ?ž< ÓÙzQ¡¸^ÔEtL¾>TŠC†Á¨ëݧö×¢æìI„Ô}‰Á}»aü¥àòQ!$Dù²ê$0ÞnÆŠGðÞï~‚)‰¼xKÙU–�1;¶^¢ñŠ—¦WÁ|ž3ós»Š·3VÌ¿+æ§aÝîpwJB ‰e ü$àíùÎï1?ífK P€ (@ 4¶˜¨Ê†ñý€M¢éDä›ðþ�Ýpù­÷©K·ÕàiµEÓ[SG‹åd9¿/}�¯V¯‘\Vb†!Q45Ø�·yÏ#k<7=É?ï·Fܾ%ªwiLõ(> è¸-‡ÊÌe1O%�.ÉÎ.7¸©bËòÜÌ^#'7wf¼ö„Z€YÌ2[e‹øI_ tà%Ã×›Âüº‚@Xd,Λôk@ö¢k°˜Q¹iΖ|€OÏ EEbúFôÄ9ƒG *B´UÜPsm *«Ê±vëAän|¿ž1I#Ft.�ÛX„G^Ü�)�NÒ™žÉº¼@T"&LJtÊ�P< Èe¤Ø)gúA 3G÷ÅWë÷âñéI~ÈŸYR€�#àÅùÎï±ÀÙ�, (@ P€ ‚Q@9KN(Á̪,8Ò¼›¾4£¤L?kšj¶¢ HL�anŸ†E‹dÐÒŠ›ÆWàíw{à†¡¡(Þ^�¤´Þà†™ŒÂ¼´¦àëÃ?/Ç¡ÌnX0= ‰ÝCP]Q�C_Õbë5x"ߊÇ_ï…ß]á|m/æøËºáùÑ&üJuEE®Äqb;Ÿ�Åø$ ¦”·à#&ËŒúEâDAâ› ×½ùó›ŒX”$Ú(¾1R4yÜ€Ýÿ6âêßjù c£q¯¿(–ÿfÝÜ#^½ê�ht¯6ãÙ‡Oc‰ ΫvÁe«º œH0PìDfÑq¡†p”]0ÿ. Á±„[�Ðg(Ž)Fue,ÝâD#÷á0DuG÷Èn°ºá›OŽàð{™¸ r$pþíK‰�ÐŽûâì8¹¶k.Z¼;çMÂå[¹ílŽQÀm3_ì¶ð�@ÖŒáXX�’ÙFºïT™SÀ_ç;¿Çs³T (@ P€Ð/ ‚³N£­¯(V1qëšìç½P�”§Z—oM)†þ]ƒ¡¢oéD0´BC务?�Ãã/W`Ñ~9·7]'šWÔèl×{Iw|ü˜W>ÖT3öé¬3�½»Öí³-‹Ú:ÛÎÅìœ8ì]Õ¸… ß”vZm±¶Ó¢"ñÈcax½yŸøm5d¯ÕµY§!‹_ŒÀ‹÷6“_ÊÙëé¼¶m:j—RO DšH�阌~P^Þî§ì™-ü+P[[‹çÿõŽ'ÜŠ„#ЭGÄŸ3'K¿Ã¾@é÷ûPvü(*OŸ†±ò¢jK0j@BÏì>Ë€å‹U�µŽý[Ê`È=‹Ÿß e)@�Î*�š�Ã5fTWW;ö55¨©©Æ‰£±cãjÌJv�0wär”¸NÆ @Gð|ïu®“ (@ P€]L ûöšQ*^Ç\¢ò*ã˜ÞJh$á*2á-Á»ÄØœcݨx4<Ô&^mÀïÞŽÇów´¾rZYõ´û¢ñæCJ¾¡èa·Î”Ÿ÷Bi^ î½PYÂîSÔ¢�÷›hÜ>BÙ.»ùnŽzãƒøH¬ÙßËf{W~uª{"º¥6±L‘üóx|ð˜ÚÞæeÆbÛãÊ<Ç}–8±¿…«VŠç×·æéçôq´÷ÊÖ‚sšóîÞrÌ8Âq‚¥¡ñØ,-3ãÛ"¥vºc2N¡@{Ø]nÚc•\|'ðŸ÷?C™ÑŠáÃú#2&æ†PÄõꇨ˜8ñÚ�c(?V‚c%ß"44TŒ—áÁ¡è#ž¼µˆC£C`=ö&ÌEшõ€ï ¤9å/Ì®_oÄXVÀ Ò=ÈbS ÈââÐK´ ÛøŒ­ú¶D%Æ"!m(&¤Ý‡ßoywN��"õ¤bêb,Ïû–§ ÔLÁ @ ð|ï x®– (@ P€]IÀŠ_ÜÑ\“ÕîÇRaèíñ0ß®í‘$³æŸ«Ïwµ¬úRÍS Ì~¢¦?dÆ¡S2@‚ý ˜Ðà5ÏÓ^:á’nX³¥²~4ãHã²oÔ Eï¾aHˆ÷M€XY»«mtæÓ˜‡! ió„á}¢-âÜ•U€ÃEÐ=: ýDyc£”5Ù~†àÊŸ÷„ùN±ÌA±Œ\Dl_¿A¢ÝåÆôÑ0ÿÔ6}ÛáÄ«»cûþ7­/<:ç‰ecElöw®mò6cÛFE`Íw Nón³¢æc‘ƒî¨u˜Õ¦¦´Ã\N €(ö�+sm�³¢†Ùû_FT¬|_²øR­¯‡!,õÖ0DDÅ Gïþ0„G#<2 ÇK ì‡ýØ1 ÆôBXå'‹¬GH„!‡×ÁÜ'áý¯h‡Rò*ò�•[„�訪È›Á²Q€Á)PåN± Hšò ˯Æý½F#GcÑx‹ÒA‚Æ|N¦:H€ç{Ásµ (@ P€èjµ:E­^¥.j ÄžŽäs=+M¼X6ÞÃe=[£KE…aèEJMi�ùÈe.qs%k v{}ʲ⳽l 1j�}ÇšÒ6Eã ü& v4úme̘¾ضë„ÄôCtlOœ.?sÝ„ZÍ0ˆ£:4ÌÐ,Ž‹ï‹¾.ÄyŒDÿa—áýýf÷�ƒ�q«aO†µÖ‚°ˆÔùj½nMÀ—›çǼZÁ­CM«Ë›» El[Ö�öÌšð©@| Vî]§�eQ.v—ŠÆbØQ€Á/Àó=ø÷!·€ (@ P€í �,k‹žmú—œ½¿¬ ÅUPÀN ê¢Ø¶Çhã1Û )|Û§�GÛC€�âöPæ:|.PQY��ïíB­x‹t}ˆ‡¿/Ʊ¾GMu¬u0„È×vaáሌŽE\ïsÑoÀ0ô8w(^È݈Ð^Ã>á)Q“øV4˜ê^÷j¿zÍçå Ì å‹ZS‘–š¬òÊÖ\,ûǾÀ,¶(•Åb‚±¢eee�}E…&Kû�Ëa¬@EKYİÑ(ʰt�³˜Œ¢ÌMve¢ìF£ ^dŸ‚ÊñãÓ�bfˆJº3ì{Q`Šðé¾ʈǟ<çõÐY`×AÛkŒ¼.šLw• ¶s¾«_£õeíq¾ë)G{§ ÖkP{9™äo²æß†ò÷MGü6ôd[ÛóœW®‡ò·³Qx5þìÀë³'^í¶Œø{£íoüöÿ½lû}*Ëbä¾j·ÝÏQ€ (@ P + ðÕÓ]q¯w‚mŽ ;�Ÿ%}€~{eõçÂxº c®½{÷âÜÁÃѽBE¹¡¯£�ŒFT·è.ÆŸ}Œ¢¯¿Å¨äáˆ3¦ÝQý.õÖ£nÈõˆè5¤¹Ú„ ñÛ'¯Ã¡Ñ3‚Ź3ŸÃcw.ÇÐ@¸:XŒ(.üïnú6oÛŠ¼|õÖH“Sgá¦Û¦"íúTŒIJ„O‹.ÊPrp?¾Øó v½ÿ! ¾D~‘z9¤zrš(Ëäɘ:q.>´± W{ÃÝùÆÒ}øªä4"Ä¿:¹p„ø¿.C/MA‚]û–Šb¼·ñM¬û[.rUý’‘–~îºm:¦þ$ñ>ÅswË|œ¾ÝŽ#öíù §›vFÓF4î“n¸hl2äËñ½îŒ¥ØõU‰È&Â&+±ÂˆŒIêÛcÞf Á1hÀõ¿ü5°b®jq·}u �NJT�§:‘ç¼*‹ãDJö|„m|ˆ­[·!7/ß1‰2%Y\gFMÆøñ—cÜWâ’C›ÛRøè³ÝÎyçåå5Ú¹�ws}|¾{Wÿ,Ý!× `û³ˆëϼµá ¼�•ãð[Vî˜Ô´tÜvÏ,L¿i[~YPVrUv�~…ÇõíÁyþØ~`žóâ]ôþ½ù=lÞü¶æohñÃ3&ã†ë®ÇÕc’¼þÝj©(ÁÞ#•vçF8ΖäðÕ.‘êhYñ>klÌÎfvx Kˆ–Ýj3Ë~ÐTVŒ/ŠË~3¼$‰¶»\üÎÚ¶eÞxõŸÈQý>KFzæ}¸mú­øIÊ@?üî² ´hòÞúÞX¿Bü­a¿%òoŒtÜçpL;¦ã P€ (@ P€!"Vª§—µ—µzùÂyû^†+l{ÙŒ€ÒË;åJ/[Pzù÷¢ì£›ûñ)ûnͽüsPöÝ›û8ñ)û¢ïÙÜË{ú½Dß»¹ï#>eó†}E߯¹?G|ÊVä�çþ¢?OôD?PôƒD?Xô2Úx¾è‡ŠþÑý…¢OýpÑ�ýÅ¢¿Dô²*Ô(Ñ_*úËDŸ"úÑ¢¿\ô²áÜ+E?VôW‰~¼è¯ýTÑÏ·vÁ®¡ÞbmØ»ÄÚðáuÖÊM­¯>–f}é�MV‹Åb}vÝëoŸ}Ϻ|ó�Öå[�Öeïžµþù?ÕÖÿùg©õá÷Xg>úšuüZùã²¹†úzkÕGµž~érë©e´Lï …«gYÅq¢Òϲšk¬ëg©Íƒ5cãaÝ›¯½XWî.×�O›„æÖ­k3­âÄP)»‹i©éÖ�…'ÚdçöHM¹µpëzë’Œ4÷×ߦÌÉÖÌÕ›­'Ìn—Àé»W¦ª–+»ÀÆ»ú°uý­ý¯e˜lÍ^¿ÛZãtíúfjúVÛ”ª½�ŸšÝÖÔ6û½Õ·Í>qgìÒ\§µ/3­GíÒú¨Ö±�ÔÕÖjO _¾Cs¤­Üí:Wžó®�lR֚ܺ¦q̫紞Êü´ŒlëÖ½6×,›üÝlïsÞEƒáíb|6; Ïw�[§Uv¿|�uô5(ˆ¾ÇÊ÷n¶¦‹Öc”k‰žÏÌu»­�?Åj Ô¿+’WZ½¹Ö9o¶n^©¾�.¯ÛÉÖ%ë ¼ú¨ËBç9h¿ VªîëTk�Î ®ËSnݼ2íã iÙÖ½:ׯgS=:¦×4Ó»Õ¿�½ùM¥§ÐLC P€ (@;ñ·Ù|Ñ˘•Œ]É–Œeɘ–ŒmÉ—Œuɘ—Œ}ɘŒ…ɘ˜Œ�É™Œ•ɘ™Œ�ÉšŒ¥É˜šŒ­É›ŒµÉ˜Û`ѽŒÅ ½ŒÍÉ�ŒÕɘ�ŒÝ)q<Ó“±=ãSâ}2ö'c€JœÚ k�¡âõi7ß<sî¼QÔÃ/n»Qu§P]q\¼“º õu0×Ö ¶æ jÏV£¶Î„Hsö¿ò~üá‡Æí E÷qó22gî@EÁËhi:wW³% ·þ~­êf®¸e JTçø¢qßÜÞ“çd©ÖqY‚üÜ2²/îY³Ó³×*›ŠpOt/Œœ<‹Wä¹\�óEÈš;}ÃïÁ¶“ó¤nÌ ��ߎ]”ü�qߌì>3ç6MÐýÎx_u/p ;äø‰‰…™ò7�c·píVÏŽÃ6Y•áÍ?«ïËYkÞø+¨Mò®8Ý­ñW¡G›Îs^ÿ9o)ÅšûGâ‚ÉsàíÕ1oÅBL¾ó x{¹é�sÞÅ�Æk´ og{s¾{»n,×  ù+Î[Š^ç"§È½‘5s4®[¶KüyÞSý»bHDã_ñîåÚš:`Îyy�¾'#§ÎG~kñÜ*Ââ™ã=q)öyxqveáFa“ÆÉÛ@]\›÷«8̶™ ]yo§Ë&öÂÔù+l–Ð1˜·ûß�=Ù®aŸ§ÇôœqHY´CLã-Û<9L P€ (@ PÀ]ŠÝcú°šÊÑpà%Xw?œØkML?žA¥xà$ö’›[ʉÛ']в#߉öŠËQ{¦ g*O¢ªüÊOǹû>ÄϾ؈‘U¥ØšûJËrr ûe?E�ëÿŒ“¯à`ÎÏQ¹_ÜPêÄ�ˆ³Ã�4«Eµ0Ç. k¶”:Nöó”’mËÐ]ÜT‰¹·òܹ×ລ[à~xÖìÞŠt¥ÎÅäAW`ƒ§wÝt­C$ 7½*¶áæáޝ×›…|€ª9Þ¬‘IÙqÇ�©?H]!çT¨ÏÒ;ÕTü.ªÞOÅœiIz³a:MžóúÎù ¬¹£?溡Ñt3䳜^twÎ{Xè.~�öP­ ,× Àÿ+Ù²ܲØãã!á8,ÊÝ…µçºª<ÎÖù‚íyÎ[бô:q�ÎUýÁ༜ösó7BwyùûÅ>Û@� ?� ÷ÂÂ|OK•ƒÑ7¯B™§‹‹åŠóa¸ÇtQÖTüæ©wšê_xQ.J P€ (@ P€�b-`­7Ãrà°n¿WÔ$�âÊS¨-«Áé£ÀÙ>·£ï­O",B>ÞÔ…ŠÚÁ#EÛ‡áõ•8&‚ÅeGpüø¨9ð%¦mz÷¾�†zQÃÓ€ýñºjeQÈšÅq#®Ãàô è5önœ,Úñ…–ù�m )0‹Y\©ºiY�äzuóC5S'å ÀA“:IÑ:+99©¢ÍKW]þ⩸k•þÉ¢²wÝaÆð™ØVÖz̹^ƽqø/ÏžŒ|÷ë©;úø‰Jš†lÕà ¹[‹½2þôÍçÕ—Oÿ ®’/Oaˆ‡‡üuŸßž·«žóEkÄ\=ÕˆÅõ05U\£SUO{N�Ç;úœ÷¤à]ù퉗æ2íx¾k–¡gøëÈßcÆ¢—1hªÎ ±“KOÖœ9�µ‘�$ñéžm¿s¾ «î¸‹ó}YüŒëµûÜâÒ—…ð[^Oͼ 3r¼Ì>>–o)ñ(“Š=kăY-ÛºP2r·|6 ½ŽéÖusˆ (@ P€èL w¦½Ù‰¶ÅÚÐÓÁ­¨Üð3Tçÿ §<Žªº!¨‰¿ÖËW Ç϶ Ïu ÞM¾J¾m'_A=rh?Ú_„ª¯wáê·ŸÂÞÎÂTãQôŽk| |}pætÄzì»ðØ^è3: CïX„�ù øÎÝŦü +SU¶±h!Öîôæ9y•<5&鹘ž½…‡O ÆlEaávl/,„Õ\�Ã…[±d–ö푼ùã°j�ªD$§!såZl-(Äá£å¨®17>HP(Ê!{s�,ˬΜ¥±•rržxÕê ðAiTÖ‘Œ.[ˆ9�œYéK°vÝFì((ÀîÝ»±cÇV¬_»³RUò ®I�qü$àŽÿNW…ËyæMϺ°ìC®Fu—ì9“ÄP]i›h:ò…ׯBv ã9ßJR±ÎÕ~×Cò¬L¬ßQˆÕ5°Šëáöíâ½]\£ÅÃVòí‡÷îÆÆu+‘n<–-ÀxÐÆ9ïnÁ»î5Ú])Wéýr¾»ZiGÌo÷kP€~�‰š²�Žœãtd¬\�½Í¿­…Öæßd[‘�žªºœêܪæÛvbû�ó{Ö܇ù¿ÿË”š�u[w7]£ÅuY^›ÍâÚ¼·`£ÓßÐÀ ϯ7n»a�b¬¨¨H<èi»)iX½¹GËk`6›ûê±yu†m"‡á¬ì·Üÿ]oÚ‡ÿ=×!¯Ö ÉX²n+ž¨†h[»å»tïŽ�Èhó&¨Ö#¹u¨5Q€ (@ P€hO½�)Ë ´V¯Ö€³A¤·ím€–•!•^6­ôQbXö²Š©ì•F¦•F§•F¨»‹y²W©î!†•Æ«eCÖ½Dß»¹ï#>e�-ÙðµÒö9bX6Œ-Èî/úóD/Î(zÙ�ö`Ñýù¢*ú D?LôŠ^¾'t¸èeÃÜ‹^6Ô-ÿL%úKE™èSD?Zô²�oÙзlð{¬è¯ýxÑ_#ú©¢Ÿo×fx§­«:a=òÖ/~?ÂZòÊlëéÏ^³Ö–—ˆÊŵº·ï»­O�gÝ;üÖÇzÇX³~9ÛZ__¯;Ï`LX¸z–¬­Ò§YwW·nщÙ*iÄr©+­å­ÉT‡´×ëÊÝ®––Y¶fª–±¹Ü©K¬»OÔ¨®ÛvâÞÍÛИ÷ëQÛÄΆ«w[Å=˜�ŒìuÖÂÃz¶£5Óš£»­KÒZó°ßëöºÞžÖ܇͓[Ê+nzµ ‹K‹5{c�µÜÅêjÊ[7®Ìh^.ÍZ`sl8®]ßÇ26•Kß1¡oM©èø)/hsìØî÷u]ì�M.×:7‘a=(îc§ul uµÕ³CÏlÝœ™jsÜÛž°f¸8yλ<ç�nÎÔô]¹C÷Õµñp-?\h]»¤ù»)ÙõwŒã1@ç¼cá§8ã�w�Ö(ºÏ';Z4ŸŸu¾»±…Ze÷ù÷X ]ƒð{lïºtÍë�n-8áüËðàÆ%N–÷öxl: �•v<竵{Èß!é« ¬Î…¬VWFë»Ê¡õÄr´h2ö켩¶®Uý=Ýöï˜Öµ;i•GüñÝr\$g¬³:;ŒjoÖü}'kotÃG–pïZ­¿ÏD™Äß={�þ2[ V;;'|sL;Jr (@ P€ œ ˆ¿?æ‹^ƬdìJưd,KÆ´dlKƸd¬KƼdìKÆÀd,LÆÄdlLÆÈd¬LÆÌdìLÆÐd,MÆÔdlMÆØd¬MÆÜ‹~�èe,NÆädlNÆèd¬NÆìdìN‰ãɘžŒíÉŸ?Tâ�26¨Ä eÌPöJQ‰+*qÆh1OöJR‰KÊO%^)?mc™¶1N9¬ ÕŠ›Êé!«kºø@IDAT:{‘ÌóN®ˆFÀ$ÚþúÙ{ñç;QÎdô¿;=Fÿ ñj�瘾îøþ…Ô‡0(,Ñy.U¢q™¥ÇÅSâe¢�Þ¾Ež¡<¤M„YX"/Éö�x¥Ú«¾¨�kŸ¯Íxñ†ÿE–͸í`rÆzTo) òÚë¼Kšòª ×i$ZŒ§õ¶¹lˆiü6ÉX»">�å�Ü�ä�ò»C•˜‚G7†€«vÏ¿ó�êtÏ'µ,**H4uÉØ]^ˆGÒÆ"Þ_Tü@¤=¸5G DM…‹ÑM~eIPÇOüÜ›¡v"Ï¿ù©¢&Ñ–úBÕåÒVÞƒ¡A´ŸT7ÂG-ÅoajV¾FnÉHJ”¿ïœt<ç]œóîx[pÖÚB<8Aþ×ßÅLÆìG_×›ÝØüÌõ�¿¾õ/-Út ´ï ]…W.Ì@W»Fëâq#‘×ç»ëj·¤�t ¸ï±¼23GcW¤aGùs›àüËphÚ£(\›®‘‡¿&·ß9¿oÃ3šoÔH[Y€çÛøäµ³-•F7jýj–¬Ùálñ œ§ì¡Ô%›±gùÝpvE œ‚�G7k¼Þ¹ë·Ôo jÈ?7'W#}: 7?Š$yKJ³3`ìÏakvªf Π(@ P€ (ணdîŠ1½_N؃~çbØ/ŸÅ¨žDh˜|ø¢m'ž]A]]�êk£eʲCÅøñ¯O¡xÂEŒX¾fZ‰Oš-8R[‡#uf”š°ãíM¨ª¨h›y—KĽËÔoÍÿŸ�0úÍ¥Ok5–¶ï/ŸÞøøŽÞÕÇ&ß�ƒëÕoêns9* ωclùìIПvR´�X°c‰êüüùÏaŸ_ßã—‰½Ÿ,GŠ{ñmD%ŽÅò��#ÙE`Yu£:db ?Lºçתù sÝßçŸâÕûãɸwúHÕõt¹‰âõ�‹o›ád³'ãâDçAðœwqΛðý×Ê-u[êd̸^>äéY'¨™2!Ée£mî�vη-�þ±®r�Ö/¢+¥/Îw]+jçDu ¬ï1ãž·4&ÌÞñ&èü�“<ûÏX-^Óq�¿ÎùR¬× :¦®Ä ʇ÷õuCÓ–`£ÆÃnEYk±Ç è+ ?R%gãÿ�¢ï{(q –iøänÝ¥ûo¥ŠÏ6‰z«w«w?éâû¸u¹I�üMý!ßÖ$¢(@ P€ ( [€�bÝTLØý¯¼ç^1½“®@˜Á1H,Ë Ųí`µöƒ-"€¼ëO‹Å{ ,è.Ú*–/ß:#Ú!–A⣢/5‰‹MXBBqò›¯ðÒŸþ§1èÜÛèëHœò€z ؼ9ذÏä—â—í|SãfI²hì�Æw@¸»â¡ÓÿÕð¬hsùï~®m_Ö„ ¿@¦jÓc8íRQ„d¬?¼IAìµWÓ?ˆÇOlJšúñ‡¬/(Ó¿q"eñÖ\ä«-‘ö&¹ ~ª-èÓäK^ÜèJw½†[¢‡#K-†ÙœOÚêö­yÝYÏyõËÉ( éå"ïÆþÔ“4Ïy=ån›¦ë\£Ûn·ÝX'8ßí¶( F}q œï1 >Øð‚º«‚þj‚|{˜Þ.we®Ô›ØÇéüwΛö½ƒÅ¥]™uOãûÕ4f«L6àÆR™.'åbÓ'¥ó‚wò’³Ü2ºZãa@1Á¬‹Á‚�ó´ŽéÕ¸+ÅiUb»5 Ô|È×.!G)@ P€ (@ ¸` Ø%¢@˜«Š÷nyÑù[Ñ×`€¡1HlÅ)ñºéR$®5‹ q*­!èa@߈l{áy¼þÌ_ƒÏ�¸�í[&qÃa}†ê*çüïÛð}\Ó„÷s´^«›ƒ)î½ÍԦ܉ø…Æëó¶~rÄ&]{ öÂ…CÔס>Ùë©ÉË0}`ûo¼.´Gêñ“ˆkg©nÑâœwÝ8�Êð¦zubdνޭšöª… ĉUu¨‘岈‡yìûÆòZ`ª(CÑÎ XtËHô7Sóu›M›—Žìûd³'íÙu¥sþK*÷ë«ìv\ žóvÅt1Úu®Ñ. :Åùîb;d¶/®Aò=f9Œÿh< ”þ«in?L?æz¨¿sÆ¿;ÊŸçü�][5 Ÿ�ictV·¶ÉÁ0pV¦ÚL°\ÿ¯BñngêfáÖ«Üûc#vÄx¨þ¾¨?Þlçåì˜þÍunÓ‰WOG‡V”·Û<ŽR€ (@ P€Á+À@qðî»NWòÓ'Oaÿ?_íDýŸeÿÖ¡êÔ)‡íÔªM\Yv»ÿôG 4„"L‰�¢&ñ)løAˆ¿â¦Z”Ö‹VÊÅ+©»‡)j%‡‹¿ê{DšUƒÎ+î†Þz¿úM´Üx»ØÇ¡b˼›«Žz×´1ê3tN8a*RUÒæ}þ­�:• Üž…^ç¨U)v³*•ë}èþT7RqÒ>~’¦ÍQ=þ�û<>ÒY©ØRü>æ«íŸYøYª{76Õr Èi¢Mô¾òmâÂnß7¾E"ѽúbä53�•ç¤qóÆeïø’Úý™‰ÎxΛaªR;bаüÅj3ü3-€Ïyw6¸Ë\£]¡tŠóÝÕFvÄ|ß\ƒâ{ìĨ‡A“1-u�û¸† p]DŠýwΛP$Þ<¢Ö%gÞŒ¡}ÿÅcâ/TC¡(úb?ªÕV¤ÓR—ÌÑýšç–M´˜¡úu˜÷-Žè‰¢WÆ-™Ùˆcú*ŽéØ q›úî²ÍœÃ (@ P€ \ xô'¤Ë\™€n ûêK¼ÿtÆÄW¢_L>ùö{”oÉÅw¹+0îÅùcƶä¨V“X¾Žzã²?ÃzôÔˆåËD€¸VL;n®Ç~$þÖdÆ¡°HÀ\‹0ñÚi³x'uuX?&ÅoFÕ¶³ˆq'Â.rhYyÕuK:ó€! Ö¥#g¦cè3ž~æåiúÚñÒad9ü­x¯Fg>�2ñ†»qÓET×îd­C‡¹¢6¹ÙŒó¦‹ ûOª¤WKè|šÅdDuu ªkª V¥Ù…G‹'z÷V™ÿ%Žˆšx)±Î6Ne1—“–àú®ðÎiáÐÇOÂUø�¸�ïp€çcí¦}˜4;ÉåžüìÍWUÓ$/IwÿƦjN�{â¬ÕxÄ­×’:÷èÚç|<.ž”*è|¤üÅ“± a+yݦ»CÖúœw(­Ö„®s�ÖðÇt_Ÿïþ(£·y¶û5(¾ÇŒÇ¾‡ê#A©¿Æ�š_0àÚYÙ€ÆÛl¼ÝGêËûóœ/Ç‘#êk½/í2õ:¦Ÿ4C4b’ëh/ÞØtÈø âÝy;²ŽõuT’¸=Ý_uìŒOòòíý®©I6Æcûá°¨Ì*õ>�éXLš‘)Þ že_ ŽS€ (@ P€pKÀ×Q ·VÎÄ�Õ'NàÐ+Á¹=ÏbÀEçc_}FÇ÷ƒ±h•–bã#³ñóuÛÑûÜs5ÁL55øü“�]g�Ìô2„Á"Å?Šñ¯jj‘pã-øß‡‡ÇS'ËP_oÅÌ9pËM‰5�*ßCÍ»ïàLìH†ÏÇà‡JQRR‚“'O¢¸¸™™™ˆŒÁæNÞ%Ý~¿x­ZޏEd×­øÞûÝ�â•о¹l”Øc·‚ÖÑ™Ãû·Žør(ÿs£“ÕÜÔ\“©¬ŸìDþölÛšƒ|Õ;—š‹«Ì(Â÷¥¢^Æ@÷_ ¨’YˤÔ%ãÑIëš¶l£2ØÇO&ÏY)nFÏWŠÛò™ûT²E Øé~²ã�…y-ËØü÷Ý—ÛŽrXE {óA<2e¨Êý“xηµzù81!¿íÄæ±s'cÅ\ }ÉZ̹ûz\:4n^bUóµŸØç¼}iÕÇ»Ò5Z]À÷S}q¾û¾TÞçØñ× Žÿ;Tø¡d�Ætד£{úï�.jk÷ë9o<†óÕÖ Äõ*zØúÁ(±¬ãOÝ<|wÜ$rôÇÞÃÂz±X\„'FÑè«z�ƒn:þ<:²[똎ðxKú¹Ðãe¹ (@ P€ (@E€¯žV$øÙa…o½‰ÄøÄÅXf9ƒ*£Ç*ªðʼn5‰šÁÆãÈÿûKN˃DzîÀÄôÁØÛ7ÿ©:ƒ�ÕgñÉÙZ®º¿}þ%Œs9þ¼i ‡ ÃÍ· DÚ„ÞùÃҀЈPt늘š/ÑP^;Æ¡C‡ðÄË�ûê«xò/Á§Ÿ~ê´ �ffT ¬NSÙœ"<ò´ï^3zrÿ×*ë¬I¦Ò=XuÿDD÷½×Ü2‹Wø"HÜ´�qÝ<¹AåÜç¼ Ît¢¹�~üÄ��Õ¿‹â�}F§{¢â³MX¡–"u%®Ú9nЪmž·ÓÒ2Vco¹Ù« 1Ïyõ½�8e–¨½Eß&yÎâ9wAD‡ŒÄ= –bÍ˰mç—–A~ÕzÛú9¯gûºÒ5Z�‡7i|q¾{³~-H× ÿÓhñ$uÒ%n·åÚ²¿œ¼¦%�üz΋À¤jÌR<î9r°‹ª­Î¶QëõÊb™ÒÊgKÕ¼ñW ñay�ጎï9³Æ1�ýÐíÔèV�CÇk`µÔ㜘0l-©FlX*jêѧÿùˆˆpþ¬vH|ê �mC´O\_qQ}•æÃ"»!¬ß0Dо‡HWUUaÕªU¨««C¤Xo¨P———w*wW3vΣH�â|»„ù ³°ë×1Ö‹·ÚÙei7šŠÕë ¼¸kb—£2Z‡~¸ÈE¹÷½<_W�8-=“/»ƒ{‰c�ÇŠ²åSN/\÷,Ìm¯[’Êš»ògÇ?m䝯‹»w3îÞåâïùÙHž’Ø&¹)Þú‡s®1QƽãâØuÈ,Ø& …Ô±cýÒ¾­3 žóÎtÚ΋OžŽí5‡ñÚ’ÿÂÌ,O£EXxËH䦯ÅÖçfû –|�óm¹8æL ƒÎwgEê¨y} êtßcZµp;jï{±^ß·`âEa¸¨7y‡¼yk•Ö£uÞ”ˆËR€ (@ P€]M€�â®¶Çp{‡ÿä&¼ÿÔvŒŽw�1¬g„¨IlÅÀØp|q¬Êë°jÎý.KÚc,!½D X¼Ù „ÔVÂ\y‘¢ö€;�¬µÜ³gO̘1Ï?ÿ<, ÂÃÃÑ¥jK°„Ix43ùYöAÎìœ÷l#¸TW†kP }�U•�ñøp1û^ý­çØq *¯öy L‡°ÙÓFø¼0]%CÏ«‡ûíä]…žÛI P€ (@ 4 0PÌ¡ÃÂDvÖÿ<�³³Úçbìúø¬"!ƒ¯Äýϼ�ß>ñ”î2†ô‹ú³"øRß ^ œ-ýV÷²ö {ôè�ËRRPRR‚ÊÊJôíÛ×>IçO¼ÊP»áŸ‹e¯ïójûÍuU^-ïû…Kñnn¾j¶i+ ðøt5Õäm&Fµ㈯ïøÑØ2Cæ¬LS™Y„Õy{ÛLÿì­WÛŒ+#³ÖÞ Ç—T+sùé¹ÏyÏíì–4Ä"q`&L™Ž}¯n/DMùal]—�T»¤ö£Y/BO¨8hÎyû ä84‚ä`ßcùÛ>G…¦©‹žÇã\dܳµ_9\§=KWAÅó7ê]�úd¿MµÇþN´ÖúËû°HÝ~”åá“C‡�`¦â’¡ñNæ7ÍŠ‰‹ÑHãÁ^3Uâk�Ü‚qò€Ë4þö©ê Çe0î1–™ (@ P€]G€�⮳¯ƒbK#£¢ÐûœsÐ'!²­`w»°Ø>¨  ‹©¾ñuÑæ3×9h\õE]„»ï¾ÙÙÙ2dˆ»Åéé CoºYj›’ƒ·ˆ0—æ !µeZ§Å©úZk ‡«[Óµ×�|¡jœ8=×%7ãÃüöÚ‚`Y�7 U6-ÐŽ•"¶L2 œ„ժϼdáßEM7s+>ÛÕÖ‰gý W%´dÅ ðœ÷!¦³¬ ñ˜0ûqÝš­‘ªߟt}Ѧs^cC9¹Óøæ{,˜®Añ=uÎ…ê¿óßphºAß¡eÁÎt¢æ@¢†`|ªú–;Q®>CÇÔŠ/>€ºÒ…Hèî:ƒÊ“¢ñy•Ît¦Feª‹I†phÖnv±h Îîž ñ…|HÖÃïß¾ÙÃ%¹(@ P€ (@�VŠ[-8Ô d;Åô˜ú\…†÷ÂtÎX,®k*imzDD~øaÌ�;²Ýâ®ÙEáö߯UÝô¬ì¿aÏIÕY®'&ÃdÕTùØü±ž‘ª.ìùD�û¾i—]O_]²å ¨Õõ¼�Á¿d¥'7 Õ6;ÐŽµ2¶L‹EÚ\õ•ϾôAcª�o¼Ð’Úv ;ý:��?Û|8¬"Às^Å“'=ˆõé^äTç¼ÛÉE^ÀgßcAu jÿï1CßÁ§z4äã?V�ãt¢å ¶¯P}$Ðéb�;³;_ªþÆ‘¬ÕÛ`ò°à_½ûOõ%S/Ã?ˆ‡\¡þë~óç?¨çëdªñÀn� µ“…xVÔà‘P}n­ºWü2¼÷ÿÒpÏŒ©)@ P€ (@5ŠÕT8-(Ä»¦E×mÔ „\ñB“îFØyWâÔ)OŸÑJ¿:*i:ÖªÝÙÈ_Œ™ós<\çPÜœ©qƒ+;Ïóöç<,�öbž6ôV†×—¨ÖÕ^U'š3d¼úëõ¶È–û¢ –ã§i[SµŠùE+þ‰=%»°^õæuîÇêľ8ZÜ˃ç¼{^zSGá’qjg�Þåƒëœ×»UL¸þÿÓÚöÀ¼µû÷˜áÜ–¡þ;qÅ3ïºý;ÑXøŽú›;´vCÀO7`Øxõ ,òþ‰/›µ›÷¹½e»ÞÔ ¦ß5õ}ùi�7óóP¢/‡¦T¦"¬ÕZ»“M`¥�ÇÄ_¨?0•7ÿ ¸û(åž /ª7›XÍÒP€ (@ P€A À@qì$ѹ@}}=ÊÊʰ}Û6deeá©¿ük×¾„­[·!ç¹¼ûÎ;�í;Ï…s] Ħ܅•©mSy�Jº«íòTÖ0wô£hn¾U™äñgéž-ØVä<>˜Ás^'¢©wöï�ð‰ °aW±GoX�kÚ¹ì¿D˜@­KÇèaúÁvΫm-§‘€Ÿ¿Ç‚ñÔîßc†¡¸­z L ÅÈ©K±ÏÅÏIJ]k0èõ«O�E�Å´ùK4æåášÛ—é¬ÅkÄk¿¹@ã ÌZû3 ÔX‹ýdCâHÌÐxãÐüÙ�£XÇÏ¿’-K1®³A'i÷sçŒÄË{tD÷-%X:e*òíñ9N P€ (@ PÀCŠ=„ãb�!�1>þºjŠ‹‹Qsö,ÊNžDñwßaÿþýøú›oðí·ßbçÎ��¯¤fç½@ü„YÈÖ¸ùãiîñ)éX§uPܼ¦4½¼ e.n6­_Ô|+)†5K11$Œ»YyMOç‰Òj3­¹äâfä m&‹j¸êþ5ØWáìî–%»^ÃÄ^£5_Ûç©Qp.'n^þVëÁ‚\Lev¡Ôh„Éd„Q|:ô&gÞM*süèÚIñ¸u�Vݨ¶d,¸Q„ÁÙùU€ç¼nÞódÊü˜1îD‡LÄ¢5PTR¦«–±¥¢//šˆkjÔ|JŸ†áQº‹‚à:çõoS¢€Ÿ¿Ç‚òÔþßcI³~�t­Ã#1†GOĪÆßm3ËöaòûÑwÜ\­¥;Åô„I¿@¦Ö–ä/Ä ‰‹°«TûqGKÅ>¬ºç*ÌÌÑÊ$ ¿™îÎ�ÿDLûµF5ç¢,\�²;K4~Ô[*°sÍ šºX«0�`z,nù£ÖC²ÀœÑ×bÕ6í‡[M¥{°èºAXìFåãN€ÆM (@ P€ ü,ÀêJ~föþ¸ïW¿Â²e˰O„ Å{�ÃÂÂ…Þ½{£gÏžqñŸòÊ+Ñ£Gÿ¤Ë䞈Y+–`ád_ÞÀ‰ÂÝ«wcsîhÍWÌeÍ™Œ¬9@Zz&¦^;' ABLŒP?‹³§OãÈwÅøòÓl[‘ãÕÓõ?yàO@Ö-ª{³(g.†‹>}ÉZ̺u,†öŽ,œ:yß~R€WŸ]ˆæ˜´êò]qb‚x°`IòB�›YEX8c´^rØè•ºÕÛ€óº†�süèÙÇ'݃4ñ(�FȬ9‹4Ü3IoÝ=ke-žóZ2Φç#k®è“¤"=s*®M‰óÏï�ñ]-~ZZjPrðkìø×‹X¸ÂùѾî‘ëáÞ�Ñà:ç�Ir^à øû{,¯Aíþ=fHŸw¯FŽx‰z—�ùâ÷Ä|1395C΋CÕ—yÈï2�´�ø]A6²´^�Ÿ…qý³�š¾¿º-Ƀ#~?—•~+®Ñ¯º¼F§¯ËÆXç?ÄvËÈïÓ4®ýE+pÍ ˜•¹3§^�¾Ý€ÓGŽà«]ïâ…¬õ6weœºíÏø”_Їdçk¼½ó'_€ù©éXù«Ûpuò`ôò”Þ¯ë;Õagp(@ P€ (@îݛӑ!“P =n»í6L�:gEmâššš–@qtt4"""ÒžÅéëJl¬¹°Xóõt!ĦàÕÕ>4ƒÅ2ß¼œ,Ñ{´] ¦aÇ’T\³8_3}Îâ9ÈÑ'OËÆú©Å˜1×�…Ö,i ÌHÄ‚ÿ[‡ÅÃgzV‹×ÕÈñ£·¬óEÍõ¼,'w<3æb¤›7eu­›‰xÎ;�¸9!9YÿÏÞ™ÀGUÝ}ÿ‡$!`”%€Á•I%QQ:€ TZ«,´ŠP} ¸@áy¡Ÿ ¶BЈ Z–ê.¤(´ L\‚šD–HD"D!@ d �yÏ�íÞ;sg¿“L’ßÍçfξ|Ϲgûßs®¸ôåpž¹ª&°�Øá±)=óŽ4ó·‰o?Ö$Û ñü5t?Ö1m*®?€¾ã—y­GE&“Wyböæ�øzôØ Û,¯‘7¢eÇA³P�S„ôik<¦Â$¯¦kÜ�È~0Åc˜ž,¢ﲞäí»ÐkÍÀ'‚çä`ôÉ—0;עÉS""Ú<¾\ˆ¯Iõ\EaÍ´À":ÏL � � � � �@$àÑÓ‘\:L›_¤Ä�:uBwñ Å«®ºÊº“¸M›6ûE/G‰˜ºÑ¿ãs =aVWb�1 _~;>d¾à—ÛÛç­Åb]Ò�‰‚·f¡ì9¿âm®ŽâRÄñüœà²W€·©?þ¤øÖ‡žðê,{âÀwXz Ž–>ð™÷HœæÈ£è#4§µqÁf¼<)�ãL�^mŠ&ôÌ»¤œÚ&F ÜýXSlƒ£K·ûÖ{::òq¸}êRÔ�:ˆ�9 ` jñĀ̬X»¹G«ë°qå< O DøÖó6âø¾ÍÈ D^lÈDŽˆ³¶p!œ²>e;Îp„DIâ%6ñv,Ý^‡£ûò±*{23Äwò|‹ÀkP$Ô_ëˆÞ7iç>#;C,Œ6ï+:þí Šòn¼‹Ï¼Gö±)Xi©Ãñƒ…ظ*SijÔ%ÚÇì�ù8eÙˆIÓ‚ BÛS>óªrHí¾væ#Þ42Ÿ÷à°…·‹ð6È Yãõc iã°ÚR‹ƒù±`J†Ç±„Á(Úœµ[q´Ö‚y !±tUŸÆ›JýßßO]¨}ɺzæSFÍ²Ž¡×/ÎòÈFN¸Z•)Žz.8Z‹¥“ér²IlR>¾®º1ýûÝ‚!·¥ãzÑ>6LÍŽÀgÞNZ“€+�ˆoƒ"ª«GMe%ªjû'£ß©#â4‚5{–£}ú WÜÈÈ;Ž§Û…Én¶MØ ÞŒ²ƒ_âË=_â«â(ùþ[Ø›iëXöª+{âÆŸ¤¡zô¿> qal¤k*Jñé¿wâã=_¡äk‘;Öø«®�áÆ[0xØm¸Å�úIM¸¸Ä–w”}†]çã³/ÄœãG'%\uM²`dÄíƒoAR‚‡7štÞ™x    �¦N U«VÒ®²qŸ÷Eq[Ä}Éþ+©µôžÌ¼™;Âòõ+¢´Æ©tçj¦Ô;ÔÁü*ýxS»ÚIzé’Òèéòf§ôã¯;¥§Ú!øt¡ð7 oî´ì\Í”z_j‡} ¿J·’ZKïÉÌáÞŸ_‡°×Õ­–¹«™COAq•^H€H ”n˜‰¾ã5Þñ1æàÔö©dï{$ä‡i  hYšj?f.zmS'»V³»å”$@$@$@$@$@$«„½J¡­R-ÁwÕ{2s”–{‡�ò×_wJ?Nµ$xäE$@$@$Ð ʱn�†�XÄ=göÏ($n�2`$$@$@ÁhºýØ7[5³=d@Ms’ � � � � � �@K @AqK(eæ‘H€H "Tì|ó‹´’’‰ŒÍýëÄZù¦ � �@S"Ðtû±r¼7y�jRÛk˜ÓˆH€H€H€H€H€H€Z Š[F93—$@$@�N  +›¯™ ãâÇ`à'ç4ÙÐ�H€H R4Ý~¬fÏhöÀƇ‘Þ-Œç�”¢c:H€H€H€H€H€H€HÀ Š=€¡1 � � èI`ÏŠÿö°›Ø€Ù™7ëÃ"  Ý 4^?V‰m6 ¨Ü\žÌû1/}†¦ß¬ÇîF‚¦ I€H€H€H€H€H€H e  ¸e”3sI$@$Ðhj°sÅL¤OÓ:òR$jÊ|ÜÁÝL�V:Œ˜H€HÀ�FîÇjàÙñã‘Ú½-†=ú,¶ì.EM½¯4Ûìë+vcæ€ë±LÓy&~3&IÓ††$@$@$@$@$@$@$ÐR𜭖RÒÌ' � �@˜ ÔcOÞì;žbì1]¨:€wg/ƒÉKÌkgŽ;c/€hE$@$Ð@"´‹ŠA;Sî|H7`@æœLŒ¿c(nLIB×N틨úz˜Í•8zh?v¾·“ççzd—¹ö¿ùÙ�thA$@$@$@$@$@$ÐRpmº¥”4óI$@$ff|ºt2f˜ü�Æ0g+îKáljý'F—$@$@á#Дú±"¬Y4[ÜAÒÈÈÁòS‚ôLo$@$@$@$@$@$@$Ð|ðèéæS–Ì � �@#ˆ� †Åزp8w€ŒNI€H€ÂK EôcÙ8ºq*:†%C'      �&A€‚â&QLL$ � �@³"�±?�…nÍ*SÌ � �@‹!Ð�ýXýÑ læâͨÞ8�ý¯N< � � � � � �@Ó'@AqÓ/Cæ€H€H BTò‘ã¬Úºµg!‰'Nû€Ek  �†&‘ýX\?,ߺ‹³2Å—‰ƒ»2¦,ÆŽƒ§°zÖ(Ä}‘ � � � � � �@³$ÐJ‡\ù†7wZv®fJ½/µÃ>�_¥[I­¥÷dæpïϯ$œ×r§eîjæÐ·a\.îd‹Å²Lüò" htõ(Ýý¾> ĸ¤åò+º£WR$&pyÚ µ$@$@C )ôcõ¨,/ǡ҃Ø_ZŒÒ’C8òý üXuUUv�ññH¾êF$õoJƒ¡__$ÄEE e&„H€H€H€H€H€š�V­Ze‰<•ˆû¬¸/ŠÛ"îKö_I­¥÷dæÍÜ–¯_¥5N¥;W3¥Þ¡æWéÇ›ÚÕNÒK—”FO—7;¥Ý)ý8ÕÁ§Ó …¿axs§eçj¦ÔûR;ìùUº•ÔZzOf÷þü:„½®nµÌ]Íz Šƒ¨¨ôB$@$@$@$@$@$@$@$@$@$@$@$  ŠUÂ^¥ÐV©–€»ê=™9 G˽ÃNùë¯;¥§Z<ò"             hA((nA…ͬ’ � � � � � � � � � � � � �€D€‚bÖ             ha((naÎì’ � � � � � � � � � � � � �Ŭ$@$@$@$@$@$@$@$@$@$@$@$@$@$ÐÂPPÜ œÙ%              ŠYH€H€H€H€H€H€H€H€H€H€H€H€H€H …  ¸…8³K$@$@$@$@$@$@$@$@$@$@$@$@$@³� � � � � � � � � � � � � �@ #@Aq +pf—H€H€H€H€H€H€H€H€H€H€H€H€H€((f              �F€‚âVàÌ. � � � � � � � � � � � � � PPÌ:@$@$@$@$@$@$@$@$@$@$@$@$@$@-ŒÅ-¬À™]               ˜u€H€H€H€H€H€H€H€H€H€H€H€H€H€Z Š[X�3»$@$@$@$@$@$@$@$@$@$@$@$@$@$@A1ë � � � � � � � � � � � � � ´0·°gvI€H€H€H€H€H€H€H€H€H€H€H€H€H€‚bÖ             ha((naÎì’ � � � � � � � � � � � � �Ŭ$@$@$@$@$@$@$@$@$@$@$@$@$@$ÐÂPPÜ œÙ%              ŠYH€H€H€H€H€H€H€H€H€H€H€H€H€H …  ¸…8³K$@$@$@$@$@$@$@$@$@$@$@$@$@³� � � � � � � � � � � � � �@ #@Aq +pf—H€H€H€H€H€H€H€H€H€H€H€H€H€((f              �F€‚âVàÌ. � � � � � � � � � � � � � PPÌ:@$@$@$@$@$@$@$@$@$@$@$@$@$@-ŒÅ-¬À™]               ˜u€H€H€H€H€H€H€H€H€H€H€H€H€H€Z Š[X�3»$@$@$@$@$@$@$@$@$@$@$@$@$@$@A1ë � � � � � � � � � � � � � ´0·°gvI€H€H€H€H€H€H€H€H€H€H€H€H€H€‚bÖ             ha((naÎì’ � � � � � � � � � � � � �Ŭ$@$@$@$@$@$@$@$@$@$@$@$@$@$ÐÂPPÜ œÙ%              ŠYH€H€H€H€H€H€H€H€H€H€H€H€H€H …  ¸…8³K$@$@$@$@$@$@$@$@$@$@$@$@$@³� � � � � � � � � � � � � �@ #@Aq +pf—H€H€H€H€H€H€H€H€H€H€H€H€H€((f              �F€‚âVàÌ. � � � � � � � � � � � � � PPÌ:@$@$@$@$@$@$@$@$@$@$@$@$@$@-ŒÅ-¬À™]               ˜u€H€H€H€H€H€H€H€H€H€H€H€H€H€Z Š[X�3»$@$@$@$@$@$@$@$@$@$@$@$@$@$@A1ë � � � � � � � � � � � � � ´0·°gvI@MÀŒ-Ï>б'bâØ±X’Wª¶¦®hìº!Å?©Ã†aXj+Ì\WÔ‚Ë"Ò³nÁ†§Oâ'£N`Øà˜ûÎ…HOpØÒW_v¿ † ?\‰"sØ¢ -`ó%TüP‡ý.`ñy_@YÅEÔj½=¬ReX?–3zsfŠç>55UÜâ÷Ñu¨qZ6/…¹l‹µÿ�(úá±— 4RëLóÂî%7fl˜éè{R1wÃ~/nÝ­/OÑ×͕㛹.°øÜSì_7­Zµòx?ªCZñÒ, ˜�àO×,Áx�÷ßÙþDx2y$@2öu2‹HR>©7ïÇL/ã–V­fbãcÖ�HªL ØÔ‹9ïX1·&Ö÷RSg†m�$¨6ˆ…D$à$åTQAá$ -úHÅÖÎFtö;ž“0��ÂO—Âë·': ˆ@=¾Û–‹<“Í“qÄ0+ ÿtÜ| 4vÝñž‡"“�pü‰ºÈ@m¾€™Ãª°­ƒHÎ †Ï耥÷ÇxL›¹ô,FßY $§J€Ù›;áÁëšÛ;ZœüîöŠüIW‡r‹MÑÿ›O^ÄûÇDþ�I™¿„sÁH^½p3WœÇ›/ŸÃ{_Xо=P]} C逧ïŠöâËfU_S�S-Þ|ç<^4y(£®—á/ÿ‡)cÚÀs·kAé®sxÇlÛ!ò[â!,´ÂÂ…—ãáûÛ¢£ÏÔ¹:¨Ã·âÝ�"ñg½:W!BZׄ†¬¯?ñÖäåÙÃÉÀœ )äP@ðêqâ[EßS~.  /OÑ×}­ˆïD`ñi%î܉oµŒ�f?ê‡3°TÛ¾Z|m»ÙÚ»Úês¸ö�_àw÷ôðœŠúðÊ”<|�h´­­HJ:þðìÍhãÙG󵩿`ëš<æ° U:÷Y£j*æÃøÓ°·°¯C;´õ’æN}¯Bú¨qÛ×£«çÎÓK´j,õey¸·×ÿC•±3NšNbÌÆw±0£záú2,ì¿°õ\<â­™¯Â‘ª›‘óÖ<¤x©Ce[–à׋?F�ñ¨:L|åeŒKò⡱À6@¼Íµ¯kta�"ðq�HNý9x¹|‹ÓôO¬a-bNA0‹9o^‘cóG<ÎðLaPmP Ð- 4s7óŽœì9}M&©OØ:�Òl�ÇÚf§Öü)”Í6¿Áflÿëqýä56ï«P½qâ‚ ¬‰ø µn„Ê,"—=ê-8$�{­‚@ Ï OB2[!××^Â.7v!ê‰sÞÝ7‘ªá–Ìf³èn>�‰7TáM{_ÌëŒGû Øw‘׺hݸùkPSvk_¨Áão_róræ§—„ ØÍXm ò59UΗÚR¡;v ON¯Â“ÿ…]yW``B+…¥CiÁûOŸÃ“ögÀaêþkÁܹ5â®Å&SGŒLÔ ËÝ—Ãĵ?Ò‹¥#üˆùuɘç×N"&ÅÍ>!!õ=A”gHñi”Æ•ÉC`4ñö‡HˆÄË& —M˨âëÃ8RrÆÙŸJ©?R°#3&"ÉÓŒÖ\‹¯Mg ä)¶«ú4¤MIͦÏräËŸßØ¶¸ÑØN¼ad¯¤íÅï¾8¢hË]ª¯?¡6s7qLð9wì¼½Âq²ä[|óÁ·bìð [8¿½ÿš–YÇš`m0Ÿ(‡xU0Ùßù;ÑÆ4Äe>�­¹y"n啇¥ïŒÇÊS”†*õ‰ï>†É$ûqf¹°×»QE±šæÚ×E,pæÒ‘ø5®�í€!™F Ê1p¿_­B%9R¿Â±;gÝ�¹QEº›¿&¶M…}E9…Õ˜j`E4˜¶!˜Ä7T<Á¤�~H  ð4­nIg›×E_ÿÒÈ?gt4�*âCb·$/muÊ㎪ÌÍvw›2÷¡Ö�fÉLôšb#'¯fL Z‘·óu�+د(­ÅëKÏbîžÓ!mnþj…Û’�]®»‚�Õã¶�§±¿¤£¦&^ÚÀ§.Xãï*‰q 1ÆX‰={;ñt­‚ªSö»UPê´œÓ, D@y&Žš…í£”œÌ1¶-&˲¥e“QGµqYù±¦ü!ÿ¸çjí|ˆ>»­‹M‹�üF]�‡_{\Eãü���9z�ÊŒ5×ú£¶u×mŸ»Ÿ|}^}ö&´ØºæŽ%rM\š•àÖ+‚Èž ´øW@IDAT¨ZqåNX‰Y÷-Õ{I±Dkú "þfॹöuM¾h‚E%aÖêíª¬›÷AÛë§©ÌüÕ°nøKŠîH uâÕSùºP¡ç}ÓÉÙ¢ŠZ<Î_Z|h$SVa߬Û�KÚáÚ^Rj¤Ü4áhãðÀÿ`ÀiÛÒôI75á¼4lÒ]Ö6ò‰MÿºÑü™5HÁ0’0ˆ˜Ä.àûî¬;Òõ¹œðäÖxù‰v¸ë–téx™m!»þöäUcàSJ1e=ήÅö'Ý—ÉÏKIJo�h‹ŸÞ�]Z#.Ö¾cXìº/Ý}O>T‹÷�I¿ˆÌÿ=‡‚gÛqáÜÉĦˆ»a òØÄ1 ¸‰cBMK™åYoÝEÛ´HúŸÚâ§>ÆÑ{Æ¡»ÿ^èÒN >B×ø"¶€îŠe³ÄÛUµE[‹û^Œ¿=Uˆ“ŠDŸ[û/¬¿§/èÏ]�…J¿,ËÌÄÒŒD¿\Ó‘’@óîë”9�dµ^ã }û'Ö�H®3L[Ó! õ‚S¤¥^¯6(ÒòÅô�@C  ¸¡H3�ŒþéHIj€ïÿ¨b¥F‹@BJ´,hæ™@S!yN½ß6ºÖ�ÂÌo¸tØDv\²Þ™’6î*¯ß>ÖO�¿ OkBX¥ Ïê>B@üöŸã‘ÑOcèuÒîé€ã}ªÑå^ùø„]=�2!(V/W^†Gÿ~%�òÀF˜'݇÷>i�aeA÷Þ�êQù,Øß¸Ql7¤ êæjJ}S%¡åÙ¼&ýoý랸«SS­5Lw!Ð#ùjtOPÖ³NèžØ·f¤ã�VaS�œ‘w cýOq¹lD øE`ÙØ70Ó2Ïeìå—×ï¨y÷uM¤x9j"Åd’@¨"tH„¶A¡Ò¦h(«… 5ãiÑ.û »xÐ,õ>6Ö÷t Þl†ÃGTT,¢\k}½SÜÒ%³Z›+±o1JŽT.àBLWô| ’|ǧ*W)œ/¿áœbbDP×é¤HE·8ׄ¨|ºhä|«òP_ƒÒ}ÅøæÐqën¤˜¸ŽèÝ7)‰ÞD¿R^Ýã–¸±qI…¤­¯<­AÄ"VS^´Ÿ‹øEÑã¦�HKìhõU_Y†üO¾De�įn½k8ºùƒ/DfryG!VJ t™+Pôe¯±—g'ô¿}(’:ºs°yùTÖÎÙ*ÅA+B]%ÄJ,¬¿Š8Uæ:h”õT«ûŒB®CRAÇj¶µ`ÝBò»n4³Š²"í=QµpAüë”2CÓ5jµ[V"Þ ¦²GŽÖ£¼ü’ÈŸí¸á6W´F¯ÄhôMlPëÅÎNë³*rëØí)Ô5?Ôáëýu8vV ¿:v�BÊõ1ðÕ¼U”žÇž}õ�v¦Æ]{Gã'ý¢Å—ÑZÁºÃT˜k_ÑnÛl¬é¨©Ç'Ÿ]°ÆßæŠ( Ô¶GÑ‚²b3¾üî’(W S¿6®%Ôt‰$4frÚ œQÕ—äoYŠxΟ•¾ ÜÊ™~GÔQ’[Ï͇Ù|D½ù"Š /ˆ6H„'ÕÛ˜ËÐH¬hƒ<[¥Dù±‡ô¸ØÛ )­•eûñÅÞœu)&FŒ/‡k’S‘šÒ- ö±¢t ¾yñK]úÜ€› ‰"_Qï¾Õ£<¥¼©®z1~,,Æwb*�¥qT¿› ¥[ƒ>@ª$I½ø»¢AþvàØ]¿@×Ãqx?SvDô“?⌨gÑ1õ¢-�EÏk‘r]'ÿëY}-Ž•ŸDyY%ªOŸ·Ÿ…ÎÝ®Dbï«Ñ9NÚ‘êÿU_­ƒÎÖh+û=ûÃ(Ù 'ÏÚÚ�ݯÄ5×÷@gÆÜþGïÓepÌ.â¼èm—:_Þ"<ïüTŽÿ~¼…ç·ÝyGZ]|D%à×/�FþÀÍòÎbñìŠê£-(Žðºq¶¢%ŽâÇãfQÿÅ`GÜ®ˆG—ž]Ðýê8ÿŸ;¦àê† cñ G]i#�ÁËÃû¿ÇáïlŸnˆ¹ürt}TRbhæp�=¬zƒ]ñ-V`>ÞØö[ÌÞM—hõj·k*ËqäHÊ�žã©ÿU£côゾbíÁ�a±3?á8×A,39_Šu%_éë Žå-Õ:�/~ÚkŽýôku¦LŸc­ÌÅXÆA.q4 ­ŽuG=ŸM1u®·ªêcPëŽR©é< q­0,õH°)/?‚²Ãå8]YcE÷ÞHêÓWÌ}}·ŽšÏió:}Û ¹.ˆ…r±NrÖ¹6!q4Ÿ•ÖGc�õÅÁVUo†¿¶^DX‘O×àBoƒä¼*ӯǺ£uÎù…˜sŠ…õœÓ– )íÒåÏÚ’Í%ÿ“@x øn±Â?C'�€˜‹^AÛTù[%Æ[ñá¼á'&å[žE÷Ñó�q³ °}zšS/ \^¿·½ó»m™« ðLâ.ô1CáFVf.ÞŒœY£Ä²¤¯«Û^_ˆ“yt8%{+þ2}¸a‰¹ãŠÉH�¶ÆVÆ*Ônœ„½–`ÒøÙêy¥#6còÿï9 JP?âæý¯‹o½Lv¸rûÍ\UˆÕ“¤Ùª‡Ë\„ÉmSaO ŒF˜òL*ÇÃÅ©Ÿ¢{º\N6™È?µƒlrd•›&tfêüe¢°öeœ}sO^¦0gm>¨¬6gêp4¼šf£{ôl » ÓÓ|×MÏ^ ·ÍOÈEöU„)ëQ·rœÇz¯Lù–ùâYpÔÇ98\·‰Šêá+Ͼê†/ÿ•Y|;ÔWìÆÓ÷ Æ2“F�sPðÎB¤y¬_~"Ũ¦^?‹5këðþ1o‰j……ËÛcæ˜6¾Ë^'ßP…7íÁ½¸YìírÏ=Y�¹&»àÎ%ªÇŸi�粿,£´3×aùïÎàIM—áí¼x´÷²:_ô·J¤=c_\ízn;vÉå8åÖøä“ö(œ}�˜”ŸÃýsÚcõ#«Ýº0³`ÝoNàת8•ñsªÄ\µ‘M—‹Ê-í}´ß­Ð.Ê‚Oþv·=cŸ¨ÂªÁÓ ã±ð~ܸüåÕ8\y‹ØÑëÒ¤´W…£§¦5n}P å%‚å]á„—‰<,¬ë™l·°j°{ÝK˜2ÁCiwo}å²WžÅð$ÀnáéePƒuÛc‚£u Vê·Vûü–³º½ ¾¯s‹ÞjP�ý[^ÁìÑÓ�§í@˜0'g Ÿ4Êó `æ=b¼�î/äì«ÅÔ®{±dú$Ì^£ZwÆ’µ*ÏM¤Ù¾Õ”nÃÂ'F`‘§D‰²Ü,Êr”¯²4—bù#¿Ä Í4d`cáóˆ¿Ê™$ }ÊSI¼8}£tÛrüRŒCµ(e,X�Wæ�kð�ùºñWf6$u4?Ñ_=ÿ­8üW\ÇJðö®3ø�ô¡ô®³¥EXùûÍÈ/ðHrOü×_�¡IîGò;|Þµo¿ùò?8ã0Òüíü³T<þ‡;Ñ/Aúj:” Íßbþ ð�ÝÁ=›³ð@—#xåÉ�ø§IûåÛôg~�§JÖ|ž<Æ„E(ÌJÿö~ÿÌ {¬â…¨OÇ­ÞÞu.¿ów<õÔ÷v?Ñxôãé¸ãj?‘·€¼$ôÅ�éÀ›ŽºsìÊ…¤¸«¢{‰ôºq¾¬¯>ó/l7YŸ*Ù�Fúw`æãx½8ý…R7œ�Øû_~óÙëJú@¬»µ¿ygž{j¯­ põ žÕ¹«ïCž/W¿ ­�½!sÆc=æÛû¦ùYk0µpVHm½.ívM)6¼ö*V¿²yZ�’“•‹7.ÇßmŽÎãgtP„ÄÌe�İ` çÝî=Uõ¥˜ÝÎ•Š¬Í°,åÝO ¶[�Öe´s<±þ`-Æ%iÌ«<†Y†¹Ñ½àXAÈÚxØåXtýÇA“Òä-t^w dz)ëµî(­³ê; }­Pï*Tºs^]³‹r=MNl1§dã/ÿó;¤¹¬Í:Ò£Û¼N×6È,æ¬m½ÌY�ÙC»CsEÔ˜ƒêíS}¬“Äãò(3v¿øZ­ƒ›íW�6H�׌UûðöݧC_w¬Ù�åÓîó<çÜ÷.¬ƒñËl�«¯õVu¾©#�ð�Vðx‘@“!k˜„Ís Îôšæ‹EÃmåN½JQ¾ Bb 9S4„‚ Ok&§{KÎÖÌ�öW BáÇMYY„¹©í½ ‰%?¹3F ý°%(Ó’¸ª0ˆ7ã_+&"Ý“�XrjZ†¥Õ O6eý¹*73¥AU•öb“즶leà*$–ÜI Ý…ÄV žôºõíz9<»J'fõuò‘©﻽6çW…ÄRÌ‹&¤câëî³^_œÜÒ¯2ðÅPåØoM·~ƒe·¹{à¡ÖËn\Tû?Ë—M2’ÑI!$–,|åÙWÝðå_Ž\Kå›YUþJÜÛŃ�X Ò´é�E‘² hE�f5ßÔâ�ç} ‰¥„[0wzÒç� pÇ›ØñûÍ9LM¯ò($–BqÝënaIí¼*͘xÃiBbÉÕ%Ü›q¿þÀéÃ]aß{ƒdã&$f]/bà@W!±-˜7Uce±´«W}éÃìª}�œÉ°È»…�f®ŠKxmÞ)Bb›ÛçæVaâß<íÇAs»Æ¢¯Þ‚CEjÞ¾ŸNO)¸ˆÿC)$–çžÜú0èèz1a|´=ûK1‰¾òÙ·‹}D®¯uÕoáUÁº)Лa§W_çM}–OŒÆõ^…Ä’¯",š6k¾§®øup¡dí”îQH,³ì�OÝÛ a^´a.Ú÷õ"$–<‹²Ý·=–l)“tÚWånLlÛ×Ä]ò’‡±©}1!WÛ»–©å© ×1u™Ø\åÍ�.ÁŒ•‘¨Ö�€ñzw^‡^Æ!¸×(»Úþ?ùð.š•Ýj©ö¿³“îô"$–<•|�î|¯üËÓL ¦§wøKA�ü ˜ƒ�J�{*$c?®h\øfþ˜¾Á£�X ¤`Ý·8ëGh¡8 •Y/£ud`OÂ9lÚìµ�îÎÀ”ë m×kÑ?„Ä ª_´Šìºq¶x2�ïùK­CÁóÿÆ^i»´—+Ôºá%h }v¾üþèIH,yÏjÁ¡Z¯ÁD’e’ðëYOÈI*š�U»ýíceo•^ívMÉû?×�XŠÕ„ÙcS‘6wK€s”ÐÆŽüêñ2³Øk1>K^§*š¿Æç¼´òó·e!±ÈÄ‚{ÒõÈŠFûÞP¬ `Ï7Ò)p\¡XAÀu}:¹yÖ{äA32P.S8Æ{ž²çkÝ1üϦHYÐëŽ:ÏÅtZ+ôÄ:8óJ¼ÿØxŸBb)lSî ¤w¹y¥Ê ǪۼN×6¨ÞŸm9ýîª ~¬“¿VëŸ÷tú3·®‡êðH=ÖÅœóÑö×{Ÿs^ßË)$–òäk½Õ5ßÔ“@¸»d®ô0ÜBÀv8T0™�Ũïb΢¾Î7ç�˜€!Ç·c¸ê ôr,™0BLYäkýÁEHÑx�RÃÈê)cN6¦ÝѧŠÿ� 3œïy Iè4ŒHNoˆ—w¨Ìû1³SªjÀ/í¼ÉZü; K톚ï¾ÂËÓæËé»,{Mî�ÚÕúuŒ£5ÿØ5ŽůÁˆ¬1ƒÑ¶ö$ò·æÂd_]Œ�Q¸±+£®LÆ”ŒLàªvv“‘ëã 8×Plëõò悵›‘Tšƒ óó\œf`Õæi8¾v´X¶[彋’šIPm¸ 3i’fÂ2g±± ç\ÿ4Ê�Dk&/Á¬ûÕ;¸b{À‚)Y8Õ¹-l{Fj‘¿h™\n¢L§ÌƒÎ.9E€ä+=ï2qq�¶wš4Ís¬^çã X£ôz¸*ô o39M2F§»½ájÝ73S®³0aœ²�Üy=NìÙˆ‹•KÊ^.–¼9SìŠOqæ5Ü Ÿ‹ÒuÚ»wUéŠV?|›±5~–�>Ý.CŒÄ~µí<| ‡³wíYdÝ…÷k<䪀 žœ®Þr›1 ƒ»·Â©ýõxµÀv{u:¤£§žûYµsW²-´Ë°pa¬Ê½\‹ç~QyùÝë°K�Á¦GZ#gj­í;»Š]Ôw?ÜÓR.bÌSòÂùf±[êQq µêÒ…Ùe¸éÁüVF;Ù�æ®G¿¨`�ôÖx:EýN]­ùÚöж· ªT)4K ^|ÛQn­0N,®o ³ÏãMEžß|æ,fÝׯç.REàaT^ÄW»iÑt�BOÅn(ÿ#–vRŸÁã ÷Šü{êpάJqÄê¥Ù!&œ6åÛº ú2ç,ÆèA©èSƒÅQÊù[× ×±5F«³TÆ­«: ½GOAF�s¢¶õÃ?–äBy0‡¿Oµ-Y¡õuꬉqSZ/Ì–»w«µ­½ý â»òýÅxkö"g_è?º"Ì;^�13 ƒ{¶ÅɯóEY˜lvñî¹ß¿îQ¤ºHn YøÝÄaè&ÒôÕû/c~®Ý¿eöè^貯“R\+®ÈßO;w8Û"ÌÀ⵿ÅÍ�.ࣜb·²Kæm޼ü×»<ÕQedeã·?â�Ä8Ô±ŸG¸‘ÆŽO§ ni†ï�[ê ÖéÇ?à¨}z¸ FacžHÅjS¡ÍmI!Þûâ6üº¿kÙû ¥o®Æ¼¹?¨¶Kï‰Q\‹„3J¶|‰íÈýè?§®BÇÍÿ…{¯sóµF\Œ£�ïÚýîè�~7^‰âèÁ3ßÁ‡Ï—ÈÇ‹½�+ï| }öN„ÿ›¼ê°iúUZ;{"¹{4ªÅqÙÅöt¶�R¹Ñ[£³¨Ä~¸'}Þ±÷ßä|Žcõðx„x}é>l*‘sÒïét·±¸lÛЪ‹¸P­ŽSý¢U$×�Sx#ã?êÄw½#“Œä¾q8{ì Ž~]†�k°ïÞU‹ÀÕÅ©º=O®!Ûõ¦=XiR؉ç,ýŽ«c®EÉ®pÒþüE{O¦"€P¹€.†qÈ1NÆ4{ÞfÏy �ˆ]YLž®ív´º_6fNÁè[ãšn�Äå¾úð U\´h4fôÛ‡•ú; ~| ¯Îõa‹áo½Í°Ç•‹÷þó<!nÆÖUÊýxY?Xµ å5Í~YÆöÆOÅÒO®}º¼é³ÃX8*Ñ/¯’£ÊÒÏ�c> ®uí_Ã;ò;¡MÄ¡§iPPëŽa6Ô ×u�‹…e­P� �ø>"ÇÔA¬ÉN3ƒû]ƒNâT°SbÝ÷�Šu_ñ$�í;ûjWj®IÛRê¼NÏ6¨=núõL¹é:·µ�ukOæc™bÎ…Œ)˜scgÌZ± Ú¶O?ë$¡æS¥>m�òÙ }ݱÂ:çt¬Ü:ÊvAÎ| IŽÁço-Ål%Gev¨&�fB@Z õç–VZ=ÝÒyQ®·4»UÞÒPßqK#VÇ-­;néù–n©%“niNº/·ßÒÈFºÛÛoIæ%ÝÄ}…ý–ÆâÒ«rR‹'ÝWŠ[±uwWû}•ø½ZÜÝÄÝ]ÜÒ’@OqK£®^âî-n©Û¸FÜIâî+îkÅ�,îq_/îÄ}£¸û‰[j)"î›ÄÝ_ÜiâN÷-â î�â$î[Å=DÜCÅ=ZÜ3,Måª-°ˆ1ª´ú,߃P{»a1d­·Ôjä±îðF‹€&‡e̶W¸Û±8C¶î²ÖTØ*•Õ–UŠpìafï8ªtd©=¼Ù’¡ŒFËVe„v×;Uñ"3ÇrÐ5u‡-«¦Hù–ãÍ.8¥ŠÏUS˜“iso�ýHì²7ï³Ô¹8>¾o«eŠ;§°ÚÅFK[«ÊFv�–#ÙÌ¥§¬Ýg·«µ¬WåÉ`YО²º}Öô8òëš.=™Uæ(¸Ú¦¬²UA:eYŸ¥æ¿`«º¼å ˪}«ìe •[Æ*Íz)»ƒª¶Põ -Îר€ž¢­ÎWÕßœ‚0Ô �¸CcæòlZë¾Á²*_]V§ תÛÃb‹Ú…FÂB1ª5[2û·D)ïABï~§ZÍÕn³÷Ô»Å^]Teõ¿âµ–ãµ—Üì%ƒêƒg-cUqžöžO­t ÿ©��±ì;åGm½ekîIKÔ¸*‹²fßyZ�Ï‘§]Ú³K–Ý’?eº„zì fU UnNYö9š†ƒÕj¿�Õ8Û³}W„ë’.+�p0“®S—ïŠ"Vªœ¹kleé(s©NHÌ«\Ú zËú§lvv ¶©)÷€•&.eëÊ[é4PõáœR•IêÿžóDí© –Â"³óÞúv•åÑ‘Žß Ñg²ڲ¯ ß’Ÿo» öùûTK}‘²ŸÌ´ìPwÎüTßgY5'Ó²`£§ñ�ÓiXuûV)ú­ ‹?Ís8úº}k§(Ò!1̰lܧ56©µnζº]œ¯eoÇå2^pŒ S²Eä20ª=nÙš#âÏÈQµA–S;,FÅXI #{«{yÝ‘£îŒ9ה߱X�?ã—ö¬Î’ïk)âô9.r©�—§K_g�{ñÖê�ëŽnUõã‹�‡ým7Ôqø�'ù«2¤f_î«–q};ï×÷HíSµå呲ٸqZj”á×–Zæ(üŒéb/¹=µ×ò¨Ò�P¿¾­\ŠUýãÎ-)݉°N»¹:gY'ÒóÐSZö<íìÓÔÎÎYþýçÎ|HyúË?Oª�¸ê\óaOÇC�m¶ÿƒÏ{Ÿç-¯ÿó{·´žØ_hyF<#ë¼Ô%GØêþ¿ÛGGÁþºö‘¢ß’¿S.}•ëœÍ¹&`ï+ÜÖtn·m|Œ–œ�ùbŽ¢ÝçTtY'1,ð1GÑXù h| É=úºÃ–9ö²±Ž{2½¬¸”•qq¾f®B5TÍÇ]ÖÌ|…]�­XSs£yðø8H; õ³éßøX;$É4Ⱥá9À lÔi°ÖQW‚]w ˳)rålc‚^wÔw.¦çZa…æÅKµ%Ç(­WçXòwë‡l«-›]Ö¥çlvŸÓªëz¨k˜alƒêÔë‘9…žÚØôͧv’iàm�˳⺣ۜÓ0Çâº4_¸6K=/mAƒ�?<£ÓÍF´oÒS’ÌJ’]I2,I–%É´$Ù–$ã’d]’ÌK’}I20I&ÉÄ$Ù˜$#“de’ÌL’�I24I–&ÉÔ$Ùš$c“dm’Ì­·¸{‰[’ÅI29I6'Éè$Y�$³“dw9ž$Ó“d{’ŒÏ!ï“d’ Ð!”dƒ9¡Cnè�#:äŠ9c[áVºrH‡\RúuÈ+¥_‡SúUÊ8%µ«TÒ{’›Jæ­ü¼…³à/)"^$Ð8ŠŠD¼Þnaûå Ôj¤.*1›6Ša¸ã2ÍÀÃËw[u•»—cèì<‡ ¾çºhœÔ–øwIߘ~»Ô®ÈWlâ(¬ÍÏ– `Â[îWè…²f7þ<Û$›³q|õT÷Q‰˜´r+KM ýš±t³Ç4I¸¬þŒØ|øSL•â¶›$!e8VZ,˜j�Ú3_W½ñzfpšÔKW,ú –ÚuÇ5zIힸ¢z`°�²;® uue˜™I°æ`ÓÊIèfOŠ-âŽ÷ì_a”S�mÅ?*tÚJÕ©ÖUfÍz©íS'ÓØ>¡àøñ§ßûpÍ¡/ßšÌÀMÉá¯Râte&ŠsÎÆM˜4Hýlv4<ˆÜÅ 0E£¬Æo4ú8<æ6ÎáZ°×jî;Џ~q¨ýV|CxL,ì;[]}Å%µÃKË¥±…ý:V�ïÌçm_Ž‚ã‘ÒQ_(®ØÖþH'Ô­W~s÷Þí‚ÂÑeØö÷.íY+ |¤#Þø™Â™/¥1½MƒØýt¿Âýã£bœíYï~мVKª¯°13«ã9_wIm�NªÑøÇ‹í]Ú Ö÷‡Ëq›"¬m_+�hVX4¤R3>}z½"ÆË�;]ûz¿ö®=ƒ´Œ*ç=ò)3^-‘ýÜ��m¦ÎâÔ—z';ÑPÅ!%m ²Ýi)êç^Ãݨ'ÍyFÎ,Ü®îœ^ãR0i¡ØE˜áÿøÀéYG…YÕP°}�ø¦ÕRÕ®Ý ì8¾)Ò¼ÉõŠ…aÔtÔ=ˆÌ~Zö®îe½qÁfìY9]´AÒ|JqÅ&`øÔ•Bò©þžÕžÕ£-ùZ¼ã8¦w/¯n·OÅÖ‹e‡¦iظ_Ù@ÖàýÜÙ²=DþÞ™çÒžEaÐÔ—±vŠÂYÊÐËSˆès 0k¸4ß•¯¨nñ¶0G6ª¥ï}®Òë­Ñ�¿Þ)s„'µ›qøåÿKvˆó–÷`K±ÖÌAvâª*^»C±Ãù·GñëaÒÚ‚úêzÛxþoÒš…ý*Ùƒ�¸ÆÕã7=‰7ž»ý“:8û4‡Ûo[ }òÕq %%'ÔNüÐu~ø.¼úâ($uŒQ»Ží€[™ˆõëï°¾)­¶ÔG§'³®Co±®ü8R–÷ÖA‡Rý[ÿþù×3²Ù½éèX$û VÕÆ…µ=œ“Å»ñÿîÝ£ µÝ-Ý­«P²aäÖ�ú*e{Ù>|½Çº›4ì§X¸þèåÒŒ;ò©gÝp„©ú=&t]%“vø/Ócøõ]=ÜÒÚù:þðí,<ÐÏ÷Æm€©]Ī$„K#�u;Þ>YµF0í�´?Ûä!z·Ûq†‡QgÙŽ©ƒÄE5¡v¦ .ir”ë2EŸ< t|àŒ\…¾ÌñÀªL9Ukž‡©BÖ*U¥[ß�IaðØý7+tú){¤‘3mE©òq—m4T5(Ü*¯©eŒàv"™†'è1Ò ·9š½î(`„ýÙ”¦A­;ê8kˆõÕ +Vþ°…K§bPR‚[?d 6£f½ V$å+¿¤LÖhªB�×…± 2«Wd.Ô¹Ž�53äÁ0Ô|zV‡Ü‰¤¿îXƒUsN#¶n]×¥yÃÏa£âSžsChx7÷e*öû7üU!Œ3`ãÚéÖ×UNÊd.Q Ö¼åó[ONÏ¢ãÊ\µ£=ÌÐ�ýSJR{ÈGÕ$$#Qñ Ü8$ÝlT$F…›Y檇¬¯)"·)ãúãW Ùb¼›ßr.|»ÕÇEÒGˉÎÛZ¨Z8(Ë›‹V­ZYïÔ™yâÐ`ù:Rð…¬1ŽÀur±Éæªàë†F`Â(4fSðÀ]ê…sG,ýF�v(›èo+“ uvºÝ‹»�F—ðÉ7�[cùíüŠÇ…˜¼grFÜÛƒ5d[!ã·ÒKsþ]wŽ–ÛãØhŒH—ý¥ôníÔÄŠ#�osèÚkÕ�01Ó^s¤$àßûŸiç¡ jƒûyïpÈz{¸ˆ•SªmG�Ûƒ~üÏñèG[ÝÆ»8ó‘Ëq{¢w7zçÆÞ¡‡Tm¡Ã¼¹ý†Ú×UîÝîü°�Ä&sÕÿàvé}[/Wl·$tó£~ÈAdbùÓ£hƒ„ðz†¼@iÈÚŒY^•pûýª1Ú»&ÅÛ æ¼»FN ²¦yhÏb‘ñh¶Âac(�˜qošfÄq†{UÓ»_ªÆšž‚5”^Ћ°iðÓ_çÛ†b˜Updóðæó8ï§_˜cÝó²ð±Ý½wááÛ<·È�o¨ðîÚñƒ[LQQr_æfé4HÀ]OÈñœüwY€ß¾YOÜäÿóäŒW…ÞÌb{aÌÃÒËù¶ëÜÚϰßå¥-ÉæÌž¯P`w#ýŒGÛêÜe+B×Vym'ò6íFÞ›»�÷ŽøýÛGøÓo– !ÚõçĈ÷·¿S¼T`.bë†j€~ß d|©`¥wÝP­R añµÏüCC—êÆõ¹I¼:$_#ô‘5 ¬²ƒX#X¶@Ž9o26h=² Y–v;ʯç¬Û] Žyø´¤RN—OU€ãŸáà Ì wO¶É׬É(ÂÚ÷Åâ�Û%¾oú×e²©1#ÃÓ¢Åõ *›/)$Åõ¥˜›j[?hÕ*yeŠÆ×|ùò0 �ùlÈ š“*øuG…x6uXw e.îµÂPkST”?Ïl"Æe˽Œi«ï±{¨óº°µAþd7¨¡æ3€¨tº£˜s¾µF]ÖL ÕœSGaøo~§pH% D�õÈÉSá²ÖãðÜ[�Z¥8Ë=ÍQí»xys1 .ß+ž=~‚*ëw‰©åÆ_Âó™Ddˆ�‹‹”»•±©7‰¶5+pJH ÃmÙul,ªò7ÉzTá¬ôB–_‹®L¾[[˜­°q•Uêè¯Hèá4Øúi ¦§ÙAÃÍì–T9^gì •4FµBâê4bô}Œi±ÏØòòqÈ<Éþ]S3v­_äLgѲ÷qð¹ ¤Xë¾Åù¹N;ãèëÊé¹1Æþè£*4O‰‰·žóáÉVoóîm‡Ì‚ÒZi÷¨Ë}ÎäW#í)õÛ—.®TZse¾úò¾;L«ÄJw§ ¶Úœ¯S òT}hn˜Ð6°oàV_‚¼tÌÛÆãBQܵ1B€}Þ¿´yY½?¯üžsûˬçÆX³UP'¾m.Î¥ñÐ>†‹™¤~YßbðÜ9‹V I¥ñ+hYðÏy•êï ÿ¬-Ýã_»Øîj!ÔO®G�n’0Ø‚BÓ%쵦®nèjÁÜ©§±F„gz1®AÚe3Q´l¬xÇaþ0u,Ò5ßtБcãj_wäÓ­ŠÄÃ2Æ0Ì §ÊÂQĨ­T·›EËrðú-?Â,NôкĨ ªQUÕYÙYõYa+_ îI÷Üž%ÛTí=­ì©¡TbÚ_sAAJ@†>,›\ÓÇ(1OEZ@\ý͈Žüý�2hw�pï¯Áö©ßÚB0ýÿ,å˜ä�I-;÷ö'x;ýŒøÖ¬:ÿŽ¤ÅˆQýW�ø­•:j�×-þûŠËpô¨¨·mäþ F¨oRô²Õ襖vnñò�;� ÒÉBfé¿'νò{úNàƒ§�rW'Ez/⳿*ô×àŽ ¾E­ 8å±ï±zú÷>ý[q?†^íí…�ȪQª�ùÖáµ;_Á¹w⎡נC@í‹þuCv4ƈïÑërµ�±ž1¨KX:Òmø¯Å‹Oó±ÈÞ䥛pÿJ^|W·[!õ›y1W–áË/¾Ä—¢]“ºb±œa¿bÄ÷¡¿pÌP†~ÿ>>ð;h?†�Y­˜Ÿ Œ_c‹~Íóïañ$ƒõLG‚ê˶b†É¡»×fÿ,|cä¸>m+öø>.8"NžK±Fn>ü  a í*Âû»¾C†ýûÒõG(^"4¢ÿuÍwí Р¿!¬;º¦3\Ϧ´¥8˜uGgÓ Ê\,Ük…®ƒ×›QV$ÚFqwDÌ8äÆ1118ð®bV!¬Õ­Ž{¬¡Îëim�{­&!çÓC¸!‡²îX}Z5ç\|Ï`ÏsÎkyÎ2(Ð\ È3ÖæšCæ+" d\wü=JÒK¢’°àðFlê5ÖzˆµÒ¥ø.1Æ%)‡)J[mµá¦ÞÖXkÛŠ�]w’_ÇeÚŒ5⨫ð¢Ûgv{Óìiªã„Þ´M(=Y#vðx�„(=2a𸈨t¡ê Žt…ŸY·~6q| ×inÜß8Õv.͆Aªãæo°Ù^ý¤WŠÄ´n÷¾¿ ÅzÆÉqì‘åÄ=8©q3lìÉWzd©ƒ£ï¼ú$G‰¶Ìs=3'K …¾ëW�xƒ;gI æ~ !pö�ŸøvþïÒ7ÒŸs9¢š#uØ%kÑå /qÅEaH2ð~‰Âƒ®J‹&Áp3Ó# Ýâ½pSFàMÖ tõ'/WbÌZE½KŽÁa!Ôõ·÷LÓÛÇ(fAÙçðß÷žÃ›b×�tíý Æy—¡àÙvµÛ¼ø?w?µX¬†ÍvúË[4yÒj«!SÆÜŒþý~‚S’Ñ/5=?ºNÿMAz_§ÛˆOõ ÃZàøÑ�½àVóM!ìÝš½ò0y‚b¡ÅGÁ˜Š¾·¾¨'Õãšï¿P�Ç®hëÙw\"†åUÏÃeãõô ±Þ¤¸ªpÁûû– ·�)õäXÌÁ¹îz×ñ¡«o�;NW/-ÄÏ^¼Q>øœ=ø=¾QEyoÎýDeâMsòë“ÖÝËêw}jñÅ;[±ò©½ª#­½…ƒn±~·¹R8GjŸ°â5�,ÃÁ¬M’c’ÿƒMöqDþËE8{×O壳+Kñþrz̹Åú2Ù$2TíŒÉÈzf$ú'zjc"³n´¹î&Œìú þyÌÁQ<S7àM¡íl¼©i‰H¾± ú¤ôDÒÕžçªá¨Ž©~»^‹ëtœ 7ìÌA•šDLݘ…Ecí;NsÇcÓ×aœ�§áj·kÊvã¥ÿ�ƒÙ¹&éu7Žoç߈’Ï@Çî±of±ñØb`�},Z4yE3UŸûü½ÕŠDgbœ1œmzGÜôKñ’™É6†Z“_Œ—'¥Xûœïvn¶¥Ã Æhâ³p¹oíÆ_„ XzÊË¿Þ#§Ñ0Z|6DÖR:�à×å¸Ãýl"¨uG½æbá_+”I«ªÁî /aÎøÙªy†×ÐzÄ[?jêÍMèóºHkƒ´sz>µÃ Ù4„uÇšï‹Uu!örOãA‘JñiAéÀÈ<ÿ§·!g��€?xô´?”èF: æ¤ïçf¹$Qßólß%vøîs]¯Â¨Ó%_9œZ•ëuæg™Uç| “¬‘öñ=¸P%2‚5áe–‰kºû+êˆ`HʤÅ%a„Q6Øóõq«¦æ›�� ꎗ‚ßýؾÚV±W±Ëʈ›St\Y‘“vUFÿëZD {‚øðùX£¶†Rñi5:«K«Î)„{Žôxøíp¹ŸK‡ÿhµûÃÞ⺠íÃóëºÜÔÌBÏIkÑ©9†¦¾!ì§·-RîŠBÑ{T»�±û_ŽÕ%W`~WÙ÷Þµç°õoõHvŠ*áö'°#;Ó=ˆ¢<ä.š�iÆbhúõè= +¶•º»kr&¡÷uGä\g\qò»îWoeÍØ´wk:Õ2üꄼC3Z9ZÊ*jµ|ØÍâ¡|'ЋðXeüÒû7{&߬ŠW�3•Uˆù‡˜ÿ¼_�þÜSvúÁN˜~ZQ—½•¶?/rÉ�j¨öÕÈõÌj}ÿ"$–ü•›µO ÒˆR2ºüò𕼇(Æ~ÎW>TJ7f’mÜñ¸¢üÄ·¦ ~�û¦£Û G;Gã—¿è¥ ²á4WbÌœ4Œy"Õ~߀‘O¤aâòŸãÏŸüÞxí^„Ä‘\7:`Ò;£Uߊv0=)¤íÏ‚•¿ý~?ä%L}ü#§¼h_á¨1õìÅ �FѪÅWv𲨫ðneâχrycüÒ�üˆRÿv»b÷ ´ï58 !±”P¿×5„ÛÀÇ~ ðÛ‰þ̤¨;ºWU~/ý}—œ"qÜó[Ž“A„©´£:<'ƒÈQ^7`ˆ¬ÉÝû v;¾Ë!„ÄÖ+o«õ'I}ð«|›™øo?ØË'՜Ψ€@(ëŽR4 ñl"ÈuG½æbá]+  °4�V`ÅØöˆ�X Gì8ö>. }^'Eim�”&õ¥O>Õaê£ iÝÑeÎékžQuHŸ43Г@–‚ôLÃ"?Tî†ò/V¦ixiç½^¿gçGÈîNü�;æ`ß֧ѹNˆ‰\%n¡Ö¡®.�ºùùšfˆi·è#Å@wf”?RºHÉ¿_éH@éì(“ÉêzÓW±P|ºdûf7ßyoíBåÔ4`¡¼ÛÞ0MTN èør‰¬Æ4¨9�'îwY¤H�Â�´Å@ƒX¼RôÒQâˆË{î<«ÚéëÒÃ/ ó?-!ºl0f!¦SÃÉmPÙ¿ÎÀ𔲑l�]õ;Î4*3_ŠÅ‚{õÛ‚5^ÀȇÔ{ïB¥ìî? ·O_�ãwMÆŠ¥ÙXŸ›'·�*Ç&LÑ_¬ß‡•ãRT6MKz_§¦„ë«Ðs6îÃÓ·w¶~±D�^÷Òª««CtÛNþ}ÍÃÝ{#›\ðh½íÕ²)ðï•q;ú=µÅÖœÔaõKûpdzí}îÜPf|ðòñÛ!íaM£¢ûU:qªëë/"*6NÞõ*lö¿ü6Þ)p:Šh¤?q FÞ™„ÄNíœQm[ãëå¯cé+çlfâe+_ñ9=[²UmÞðºP™9RÜݘ.>9ñ½] \‡w7ÁÐG$�p >ÊýÞá 0Þ‚��ôÎc�9wá×�ô�Ó€*ÒëFÔÕ,,IÄÖmÇúu‡p¤D»µ9ùÁ<õAþ´÷ø:¸K¯ºá†¹ÚÍ$xƒØk19{zþ(½T’ˆ�‘ò’±85íѵS°lB®-oËfaÛüQè@r»]³O ž¦f›‘…µÓ~…�©IˆwvÆâ[©UŸàž¾£aR»öS§]×üô¬«³�™9S“„‰â»¤Ëìá¢Ek±gî(ëgt*?ö½âV×O<4Àé+\ŠŽ× †Qn²F��ƒ@bÛb(OĵZ‰WÏ?*^Ž´Aõø|›Íµd>~H=‘Ì–©¦ùßÛºcC=›A¯;†a.¦ûZahÕ¢hŘ–§ À¬ìßãWw DRgù¤¦¨¶Qøbé=1ßds,¬œM§Ò»Sú¼ÎTdµAÎì9zåÓ ~Š[wk}}D²;}ôËC"��6' )*z&�p¨ÄŠIƒ�»)•1Ìú0ß(ŽsVšzWç}q@¼Ñoð¸sñŠž?È-¹r9/V}’Ñ#¡c]¤ôÎHO[2 œfÊÍÃ…'“ÕcÑúbÔÌ€]ŽYžøöwÁ°=H»H8yÌÓqù;#1Œ¹]œ:*"�@ùj­Gû9ÒòÛgâ±Â£ ­w§º¬ÙôJð÷%(7$:ò®ßˆe® ‡!ÜŠO«�4UÙƒµÂ¦�;b Ÿï+ù›¤¸ëcp¿èUß´{¨zÁÁßew )Ã1o¥t×£²¼‡J÷b׿µ˜±h�ìH¨rÇÿ/¯]à÷sUA4yÍ ÁGÞW8&„dâDùF½¢¢Õ«á‰}z cÇ ¿síÒž%&x[}«ÂñF|»;ïÝ/Q3}�ÇñãÉ’ÏUå¢|ŠU!jtåbZüöÕ™Ï\‰ß?sÂêåÜÚøÏ¤a^?¯þ6+puïÎèб­ØßÌU�Ùâ¶ùî‰?<€~ÚÕhå;3z ¾‚Iz~ôe¦ˆXœšóË Ñxa­í�=²è3‚âîeÅÎ#©%×Ã~cðZ¦ŠõWžö‰k"u#ªn}èâï¹ÕÔàØÑã(ý¢[² ñÍ1%ÎïñêÿÆÂ‡$A¾|…­nÈQ„A‹áÓBš]EÚ•rÏãÈŸ²�ZŠðìê�øË•ò '®éÕ»Ý.ßµAµÆ2eU!VŠoíj_1ÚÆnª73evÓÆMƒAŠm+Gk°a×b¤�ê‚�«fÈÎ ‹qwŠtÐs˜¯ŽI�¾b²&ƄϿ¯Á­øÔþ]iÖä¢8}°õ»Ø›wÀ¬›cð±É‘&nIá ‚ƒ†^¿¡¬;6•g3Ô¹Xä®–áïÓ”óÉ,œZŠ4Æ{ 8ލ6H¯§‰…íåµ€úc(Ëkbbr[=Ý"йùfr÷òIª7¹Œ™âû½Îìæaè}K ^˜ôÿ*)÷zÈéï�ÈaGã:ç¸>éC2e»CÇU±—-¨’ �™ÌÂU‚Ṏ}†âÒO±Õdó?eØ­H<Ș ;>+BÑ×òècÌ ܱâºè28?–(v%·Á"�Bb±§Æå»ÁÁÅ蟯¸ÞѸ[áôxÅ%…ÎEYS��U ˆ.ö:k#•™ÎÙ [p•ÅÕèv¿òÌôVøû‡�1òjo/„-9 p:vKDÚí£0}ájÔ�Ú‡Åâ{@òµÛ÷VÊÚ¯ÚŠoŽ Iq#_±½SŹ|UT¿²×ç&(‹ÜkX5eøX~PN@ƒ©.x‡žUa¸ —‡I ¯'ÿC'"JºÏ¨8>÷ Ö¯(Äù®žSЦWO…{ Òë±äžÃ±ÚÔT‹ý°ò5òÍŸ{K»d÷~hßM,{i*]™©rÜ•¦0ù»Ô¢ôŸ_)Ì®ÆÈAÁ‰ñ�4¼² Ö�¨¸8t¿î ½æ?‰?-¿AÅí›ußàŒÊ_Ýp‰¨¥hc ˜•#÷„¦ƆÏÄÖg—Þíö�%_Ë1³ñ'�BbÑ¢¹|—QöÙ*½™©rÛí6<¡|,Ê1¡Æ\ˆWseWS~ŸÑ@G:wÃÍcŒÎˆ‹ ‹ñÙ®­výÜ–6C³l«h¦ÍŸbÿ¾B»Yr27t Ó`Ù¢¨zÝhzÏf0s±^+¬9EëˆÅùó= ‰ÅÈ_l65N�¨6¨q4t¬q}¨æœxY$«.‡|ÀC§”ñ‘€g{fC›'P¹{9Û�ó±&5s->\½ïŠcšœ—i6î[²Ó©õ©»0¿ð¸^\†ÍŽ#C4ŠŽU¼á[4öxü€“†ï–iÔ”˜Õ]P¬ÎÆ7by%Ü€1η!¾ÂªW9ß¾ûæn@ÂÍX`·ßœûÞrŽ> t“°oÀ+b˜5`ž�*º�B8×¾•×£ˆ>~'Ø�,�¦J¸o«H—Ð.xû¼ÇS”+÷žÇûAD¬—°2ò1õÆ.5‡`Ó)þÌΘaV%çå¼N—ž|š^pî&VEÚˆš¨Ž)˜õú1 ‘uŸ·(’T„œ¼B…¾±”ê7°ç?›'DkA^mÕ;�æ¿õ¹çö¬x‡bq4ÈøBñfzßp,LJkòäÐ�ýÑG½ñZ¶sQ©ŸzKM­Žü5Óaì5xð ‡ 1GÞþÖºR1Bw‰¸µJ¿}ñœU™ ëèʽꗷS‡­ 釃ØV¢2‰�Ëæ{iRç+$f.1´égÀH…`ÿÃÞÇ«¯ÉâÈÎ�‰#›¢¼¢É×�ÖH3ss<[¢àÚk—¾ºáRUZŒÖ�ù˜¼èlÈâeŠ>À�‚¾ívtŒbÂãu޲kÃ+n©i ƒÈêëâp÷Œ2†¼—1oÁRÅÈÌÑ)²}˜U)C;cøêÝUȵŸHfÈ)]R>Þf/ÖÃV¾ø®Ó-²¡aW䨕ªPgÁ�× eìaP‡²îØŸM%Açb»V(útEëˆøËÕm¯2¯(ÿ¯˜T& ¨Ñ¹ ë$ŠQ‘/ùnÀ\FTTâÓ[W)´ì¯ŠW´¯òO6ÛωԶ§) 4 Š‹|K�7&ÄN¥r'& ž¡ ˜‰‚œ­»%“ü ÖÊ/ßÂ4{(–ìô¸ê¦CRš�ýÖ3›¶rç›Öãx–™�ÑÑ¡¿)ã&Ë9¡Ÿñäk~íf®¯©@¥ô1´FºsÐÜ”˜]•|£\By›QôеLpªn:Â& 6ˆÃ¬r—­�u‹±a<$91ÄTΘi´mZ³ ybg”ÍõÜàÛÀ¡Ö�ÈafÅùÿŽ\r|ËI®/=‹YkÅ7oêŠ�AæÏ‘}P‹šÍè%l\êÔ]O J½™Å]†tÅ"õ»7bÞüe¡<¾Ô‹Ÿú²s=úö*ܼøv'LêØPÐ\Q‡Ò êb=^xJÝŠ þþzúÓÚ³8©àIÊÆ¨qq©w!K!oÚ“ØRæ}\b./Ey8ûA±“j¦ø¾Ÿó2MÃK~�åêQQQ©ÇÞ€‰Šw‘»ÔC{Vƒ��íŒREàå)õ«vkF]³'ó»�35ÄãÕ®(åÉy¯¼�rW®z=ù»†f}¿ ÃÄ·n¥K{zÜ»ÛK!X^Jöàï»dÁ¤5Íq²¢F]ÏÄ#S«pûC¹R§°À|ôüvxL“Òi˜ÕQªE¾3ØþŸS¾cÔ“™[l�p猫í¦Ñ8ù�MÐïp6v|’CÙ´~#¾n\ÄyïM¾•wíiù™Bu½ºþK.ÂZ7ÂSäE[ðúºuX縷¹ç+Táe޲³):'oi ³]¤õu CÇC~˜°Lúü‰mbL™‰ÁÊŤ0³é’:ȵXAÈGš›lŽÿyªUÑ­¿F«J¤3W¼�`Oç”!7†t"Yàã [º¢TƒËCÞ.Ÿ#›Gÿ®ÂÑÏ8øuGU"ðÙÔk.±k…¢¿T LËŽ*uÊÒ1#ï¹YŠ*íF­kw%nv´_"ùïî*n˜L„K°mPPÑŠ~xòb£ìUÌ__Þ¦Õv•âÅY‹dwT‘@lu0‚Τ4m‡@yeÊÅw}Ý•êuf‘ñ ,¿g¨âmL §`9ÒÇ@?˜S :²pöÐû°MSÈáÂQt|yÓÒñì–R•EÍþ<Ü3T¹xhÄ×7@¥‰œªS˜�.ÞÅîr· Xî,+º%3ݾ ~š[¨Š¯á4ê!8Bàšð&ĬS÷dEîò0åÉ×Q*ŽÜmø+ 7 a�Ö9% cæ�η}ûÝñKU²¬î¦ A÷€d4¡×�Èa¦ÂQÕ7 �]ÀìkÅ]ÕWEñYÜy§ZÀ§v]+ŒPƒmÁÈŒÓ(R †,Øö—J‡™£*1·D!ZcÄ êÝFJ[}Ô5xet4R]‚mEenÏ’5ŽšR,™6Z1i7¢_Ï\©sÉh¬Ë·xcj§] V•‚Ç×ËK™ÒKs£{݉u»µ&¶fmY޶ÝûbM±§w¤ƒMˆÚ_Úħ싖6óÙC»`îºÝÚåj®DѶu˜9,]ºÜƒÏUmU,FLÎVnˆs]Ú33¶-™€Ék΂PêQžy³cnÞ~UìæÒ-øyú4…™îU¬Ö(lÜ•q>Qñ*@Ñ|L˜»†§NïúñwÙ0ŠŽÉxð1y±¬Ò޾߄¡è¬°úç1Mrà@IDATC+ñü›%PÐï´6×`ÿö]øÓ¨¿`êÀ×Õu(ªµjGqþÔ÷ðÙ.ËSõg°y^.V¾-n]�¡6š¢MJ2Ò±çO]‡¼/| ‹uc¦ˆÛ¡ì5òf{yHBIÅ‹ÅÉi¸51Ü}ˆ#:ÿFxÝ8[ü!2“—â•7‹p´Ò¥ÎÚQÞ¾ K×ʯ7´ÚKó[Þá¬:—Š5¸ï·/Æä 0ÁqÏÚîr²L8b ,ÌA޾PšÐ¼·ûz¶Ûªá‰è7f/ßéÖÿVmÀ�}Ç+ÆT�åM_ר׉ñ•Rh`->ëÄÈž|{HØ@ÙEu¹.+"ˆ ûw³Õ±~eT„jOçOûwWúVê1’b‰½þvÕKŒ‹FOÀº=ZãRßi‚x­.˜q�?!í&„uÇÈ~6uœ‹EêZ¡Ø5¯(øE£gc§ë º¾æŽÆØeâAòÞl+B ƒR×6¨zö‘Óhš1+v–6ê:‰œY¥W$‡˜êæûgª<ÌÑK¶ì—9Ikcû"BÞ¯R¥•�4ÆrɓЖ�G÷eþ�0f`ûô4§ãÝËÆ “S‹Œì|LMsYä�KÂã¬q.ªI‹‚Kp´p–S˜&‡ PY'`ÿŸ½·��ª:÷…ÿ´I "Q‚4`ƒ,ƒ|I¡àØCŽv¢^+ §Pk4Ú Áž�÷šöÆhèi!ž¶Ñhߨ—`kñKúï±Á)jc­MÐD$©äÕ�†#I;w­™Ù³×Ú³gfÏÌžÉNòìüvf}>ëyþë{=k­ ”LÃ�¢rÜ5'—»csYµˆ)å*ʱD“$°ð¡§Pº�5úJhWM,ƒ�ÓZ”�ž.6ù>wõ¿Ù —ð̓ ý­ÓôߎvâTµ SÕŒb{áø†Qå©+^‡õ‡o‚xÌ¡§gŠÿ£+sÅ}˜JŒø­Œ™(�2YQŠmKõFLc¯ÝîðbÚÃïÁ½¿ü5Öæv-ˆ$L3çÌ^Ìh)œøÈÞù7ègݸ̻QB\ï.ºe¦´/7˜U6¬„™(¯•Ìù_‰/|§7 ÀûSLþbï%ü ø LÉðà­n”ÿŽ+âøÕÀ>…Ü�ÌôN„ÈZ0?˜þ ¾yÔŸØG}˜;ë4ʺã¯ð �]Gý#Å/ ü(I$³OaùÝlhÔ¤lñàÿ|ß`øß6�åÁy°oò±|°�į¿?Úði>…÷¨ÝŸàKŸë ”½øï°…Ûañ–‡ÙÎN ÿëuA½÷Äå ëÁ_ÙÑ‹ñ�ÎJ�²ÏíŒÖ&�Vê|�áßX9ýÄûòP7NÿfåŒÀh¦‘y÷wÓå÷��6tùh'â:ëãZª·a{ùÌÜY²7ß”‡Ö,wú6ï�ûs8ïÅç³Á‰†f?›n|ˆ-¦ �0X/ü–ÈO6ܵ‹Xu9¾£lŨܺ2d®I)&kÞêï¢Ò^-Œ¯\X·h"¾ç(ÁwÞ࿼�z†ŸËŸ»x ±OÖ<µ¿Ó ÕþnǺEرÎ�òÊö]¿v6“u½®ÇîZ—ÀK&´¬e-\ÏäÛ¬Êײ³Æ42:w!;í2Þ}v3v‹$jºÆççŽÂhTÆ¡=lºM,'¬d—ïÆÊ(Êmîí_cã‚ÝPÆ®l®©ÿΪfì¹_XÍ2] èxó?ß‚Q?®÷Ö#µ.…H0kJ{ÿ²é/��ÿ �_‰eå±ÛƒÜÞröÿ:�&—H-UTczOS®a êí?VœÆÎÅ»qýºYXò¹qè;ñ~÷ãÞÛ F1%ñÅ�É œ!å3¸ã;ãÐô�Ó~.bϪ§°Gâh¾Ýü5̇¶fa&¥ã·0EÿêU©>eºp*|Þ7nÒULê‘°œ;ikí²Á—„úð®÷¾£¦�ÃçnÍÁ5Ç"õò9~¦GŽÊ¨®Z5EvPl‰,J&þ¦¦ »9Ý«Ã_±lbÒÆI±¶ø‘r;\e.6Àô(˜Ønç±ÍZµ�>¿vóRÔ>åDåC…lŽro½ø$ʪO^-ˆ�/ÞƒDàP�kÓܬØ×ÍÿʃÀ6—WF5ûJqÇB�Å$Ó�Ð!”2ËŠlì´°�CŽÌ °‘…Å_u²½‚ÊH�Ó(Â܉!Ö€<BJ¾VÃF.�|l\:o"ÖI¢±[Ïï14¿ˆ©lHi™láÙÀ*L,ëŽV¯›fÎÅ,¹VÈN�>ÈÕúë5X;¹tb-œ¥•(\8—O¼…'7—yÛN¾9D­÷&—!ƒäÌkƒü.ê”yY Š—NC1ë)6ye ¢=8Ì.ïw­Nü:I¢Û ƒøjƒ¥ä:ÐÈn?“¹­`¶Ùì¬ÊÌʃ¦¿èŽS+Ù‡=|V@!�¼Š´R—T»_Ö|—Ø^‰§6-Ô¥š1÷~4UÖcžòcöÝàu�ÎÇ‹�,¿CÂ?vvUû:÷ âE{ñ_[—9{Ø€vû¥c˜p×4(Érw/-y�OŠ\{„Pò ¶ð=öÑ>§�¾ŠºººÑZP+Nü¡W”~ϧ(fº1ùm¨Ç0� Ä,QBζÕäáვؽT¼òœå­KÆô΋†%]D÷”œ™Þk¬Ô"U„e7fyl±òz°¹=ËK•Ô¢¹š…Õ ¦” �^À'fQç‘?ápùà-Ãù8âE͉§þÝ�üa•Ky>ú¾ùe¡Yqôà+ëRq~o_�ÂO ¡ý�ŸÏOcÓs™8>«? ÷ ü‡±æL€HÀ {bËï+ò/ÕªbÆ“Îýòüàçgñͦ›ÌàÁo›|ŠzŸëß…åk1œl–ø–½ôO«iÂð­§WjÝ Ø¯Ð†Iå Ìyú>ù{¡wŽþï r8Üó�1øþíÂɰ€�ù†±“bË•µl'·¸ä%§X‚föÙŠK`rÐxmî¿âUö}Y¹Ç&ÚRW¼Èj_�ï…Q‡kóŒ×Öllzñ2ÿu%6òÝïþ§…-‡`Ú.a_Ê …`”¿yŽ]8VÿLc»õÕ‡]Á,²T¿É§@–�³°é×Í8>f–°ÍÊÅè¸ä`Fm&æg¨< 9uÖ ��e£zØ¢ÖcM{ñÖ¼uÁåËO¨çrp‹eþQq"p0!Ù6Ü·î÷ìdp¡· DŸ|ûÝø÷´ßà_î'àÆ·½ôÃC‚]kì êæl¾‹~ü … ïímÆ{{f¼ˆqX¶ê"^úOµ¯×ãKŒuI´˜hÎÿçÿë_{~Œ•/™`9¹»Y˜‹òi,ZkcŠbû+ñ�ö(vF�ÙÅ,Ü-]6úäÒwñèi¼ÄÞPÏÌíwÁqÃÈPÞ ,j’2Ǫû 11¢é#—ß³ ¶2WÈö[”Û´v›+�÷±ÍZk¥K¥¥›Š;%Õ¦ )EÏŽÇ8JŒhdWâúµ`_—’»UHc)Gåjïw� ÉdZ t|ö–E€°Öã¼Ó.)s®_RÀRFÍÎ[0%Ô ÙÄqP(mÃÞÆ·°NàY«7Þ“Cl1–�@üDüÃí�ã½PëŽ ¬›Z1C� ´áD»©s±®мÅYŠÒžß`ÿV =„€…ø”…x!V†4òõш:aœri\vIJ:~¹‰�( ýÌÝô”w`®„p••àwa¾»ç¬i±ƒUÞ}±Jñ·¤ê .=±Vú6±èï5§çaÓþ>4×WIß, ÇìÎÔìoDæYzÞ·Ôtæ4)S>ÁÞ0jÜ„ðÂøfŽõ/ð³kVT*0ZØj’"Þ�£åQ˜`¨ù)$hf)£Æ y|¢HM1ã&ð­[¾'3M1…ÿÍ^² —N5£¦¼;ßü¤¥&A’2·0E°òØŠnÅõÆLSŒ·•*Þì׉ySÄ£ ‚3šR6d’[ì˜Ï£”Q™�ôÀNëÌN!NtFµcĤuȤhtWhì§ØþØ•Øóèh¡þ1Iuh‰$D>#…ãIæŒ+°ëèX<¹*„¢ñšOãÿ¸²ðsÁ_‹Iê•¢ÖoŒà—9JNCõ�QB[é% 3§)Ø´o=žŽoØ?…/\#óå Øӫé)#?~âÛ÷ŒÐ £ø]-ФÙõ“`r‹ùèw�ø£-gø"ÆhËÎtG~ô`*nc'â"=·­º¯¸®Æãÿœ~ƒV$B†ýÓñÅm5(q²¹°� ¥U èêÛ[è¦1,…¨=¥þ3ÊØ“ÆIe)a}]J6ìjfã ½pÚÂñhGùÞƒØ8_Ø \/ðöJ¯ÆEÒuÈ[¹}]ͨ*‰�¯l§vIE [‰ùzùša¨)±ë¦[NžÂ¾UøÌÌ|›–Ÿr_WĔЧšjØÞ|ý§¨²ç÷l;öÕ� dÍ]‹CgZQSêÔ¿d†øüˆiø‡bÌ ûÈ«å7-U½5A�Ä‚–±3ûš''5d[4ù‹·ãçº _^a{Î5£0ïÁÏááúõÁíGÊ$ ›×R5³ ÊakÝ—ØZ·o¾m×ûëÏ„;À…éršÖÉs±pkÃÆ×Ó±ò‘ýlNÍÚ.mÓÅæ«å5L¯°§ 33II( d° :«ŸQóf”F¸pz~Z7ÑɬøGó+†åf={(7%¼‘_®œ× §ç®uSì|ed4{§{<a‹'s¡'Jzñtálôoôq°k®÷ók®û{ÑÑz'Ï¥1 Ï±ÅäQ¸qÎ|äfE»ÜξûØÞŠö÷NáBÚXŒÕ‡ ŒbvÎL?éÑÒ‹R¼Aœ0”ÙFL›€û¶ë»—ÑvòïË®ñ=×íAvn*®ÏÓ|/Ú„”b!Ñ˾µx¸…�Èþ4Ò.ü£>“†yŸ¹èKÑDZ6fÑË3¸b¸{ÿ†.vþôÇÃ…Ëìêé4ºÏcY¹îúTdg(æ�«ß�î®SøðÃnœ»ÀúòÔ èb‡÷ÆçLÆôi¹È î7B¦°o_wCÛ±lÜÂÆ/LKuárrr§brNÖ€ÕûþÞN´iÇ©.ÆÕÔñè;ÇFUc³1aÂ$ŒÏÎ0ÌWog7Ÿ`b…ž´Ñȼ|—Fg"wÊgpMVÊFË ̈˜)Tÿúú øúWš+nÿÅøê½Ý� ƒÊ`å²ñÉÙ¿âîs8ÓÍ:̱W ¿³‡ýf!‡µ·YÙ�å1³lÄ’þp�cN»íF'ë“ÚNœÃ؉£Ø¥Ù“óØ%'´"qof gñز«ÔO_°ñμ´)üÁ%*ý!µîhẙ�¹˜õÖ Ýg;ñΑ6œK‹±}çpat6ò¦^�œ³«•‡Ú ‹�1¹{{ÙN6‡s÷#=Ã?—cWgoI�¸éª²é 6i?©90ìÆ�êˆ#J‘£ì½ÀÞ¿±—_Íǯ¥ã¿Ê«µë… Vñ3òË’ ¤«„׺‰vÅ˯'œYëÇíüáü…zÂù‰qŒ†ãÌf¬à¥.œžŸÖM´G2+þÑüŠa¹YÏÊM oäWQöjÃê¹kÝ;)ŠE8^Cˆ[¼d)>!@„!@„!@„@\®ùü¢I‰rv¿¿+ý„!0ˆèmycf8.Ù»¹;† ´î8\rÚjrRdµññÓßñR'¯ 0GŠb¯‚TOyÌ•ž¡Ü¹Ÿ‘—㬠§uíŠ9–_1N8³Ö�ÛùÃù õ„óã 'Æ ˜¹â‘B€ B€ B€ B€  ��_i”ÄÀõß¹™”Ä–”0!@ć@7~²IUóÏA}틤$ŽSŠMÆ 6È8V&†tw£½�] òqãW»Êß",›î“NBP2 F€.ÞK0ÀDž B€ B€ B€ 4¸ÿŠöcçÙ‡ÿ†�þt»¾ÃoªSž+±æË“ ý„!`yÎv´ávs;.žÀ¯þwÊ\*ËöÊaØ/H¨Ì�‰ †$Ô |¶ö¾ósL›·6G *¾ ËçÝ€ñYYHOéÇÙŽf<ù?7`[­ú}b{å}° �/¬ |q!@Šâ¸à£È„!@„!@„!@„!-Zñ­Uê÷ˆÅø“JoÅZ8!!3!@X�^ì¹}6«ëÿ·Nüàk ; B€0jƒÌF4&z©iÞh-u»±‘½áŸR<õÀÜðAÈ—H"tõtÁ¦¤¬‰€»Gå«Ç­šÉD„!@„!@„!�\®þúr|÷Þë’›(¥F„@œ¤]­GÀ�ýǪ0—6¾è�3lÜhÝqØdõ€ JmЀÂïOü²!&ì%58Ù·yt„Ó^(9PqLΔŠeHÇ‚+Q^àÆŸ|‚I‹&X–SbŒ B€ B€ �¡‚À®Ã?~�íԽ·,‘š=óì313—4*C%�IB`ø �ŽÙ÷ú×–¸Ð陸næ¬X:Y´ò:|Š�®¤´î¨ 9šŒµA&¹ Û8sê6iþþ-y=ì€Zÿ‡LÌ^^€/¯Y…%ùÙ1ѧH„@"aq£4Â…ÓóÓº‰öHfÅ?š_1,7ëÙC¹)á�üòSÜzáôܵnŠýÓŒÆhöN÷x<‘î1`Áè!B€ B€ B€ B€ B€ B€ ÌE`Ĉ%ŒâQö^`ïߨëaïßý¿Ü¬gåÎ]¡é—%éMS §uíŠ9–_1N8³Ö�ÛùÃy õ„óã 'Æ ˜¹â‘B€ B€ B€ B€ B€ B€ B€ �a„)ЇQf“¨„!@„!@„!@„!@„!@„!@„!@pHQLå€ B€ B€ B€ B€ B€ B€ �a†@Ê0“—Ä%B€ Š@oG Ÿ<çMclÞØr2š'B€ B` èn;„¶nö ²> gÎ"äeÑòÂ@ä¥I„!@„!@„@<ÐL.ô(.!@„! "Ð߆oNž…j¿[IýIì"E±ˆ™ B€ B`ˆ Ð^÷M,ÝæòIã¨Áùý@Ûã†Hæ’„!@„!@„!0l «§‡MV“ Ã�þŽP8k–-[†Y³¶ Å=œÑ Ù“�€/ IJñÐSÛJbØ«P¶27æ”ݬÞr¼Ö3Ü ×ïDû ¯·mÏlÁˆ#B¾÷=Ó3VɈènËFøÛÑe£-ªü>u y‘œ4Xž=\ˆY¬ß\ÆúÏ- *ŸC­ž''o(B€°  7=†"…™º�Øõr·b¿ݧóô•þiëŸZ†0Ö$Ú�AÀ݆-aæ#Fl‰rl�hdºž‡“Ïʼ…ã›ü†/Tf£Ï{Â,zÌ(!@Ä‹�(ŽAŠO ܧO ®EYDÈÄ…þAÀ4±8„èljÕ¨sùD²¯ø6¶!é¢ô¾†ÿ]\°Vî¸ Y[ô†~Vokëz”VyÑ“±LŒ‹§ßˡ§/†õhÏþ‹§ákG]œ“Lœ‹ª&u` 3ÉÔôYž½]‡—�hf‚ÊçP«ç¦f#�„"ÐßQ‡U“ÿzìWãc×Ǹ}ÿóØîˆr¤‘nÖ'ª7Özy-{°÷4oENB9hâݧ³ôßû'vï7=„€Õ迈ð3�÷£['Zà�®çáä³2oáø&¿á‹•Ùèóž0‹3ŠAñ"@'ŠãE�âIB íéõêI¼Â§ÑMº©rà4ÙJ¶ÁŒ€»ë…ÝÙ�·DU2’&yz¦š”`T#™�œ-µ?†¢Ö…­w/ŒGMÌbõvÜôŰÛp8|¯Óa�”ë–ö�¶�»X�¡É\z2Äbõ<�Q„!`îÓ�lÜÒ—‹oƒjA㉿ÆD8õƒp(1[¶¡vœ*Ž·O�k^ǰNJÿ¤ä©E~ãÅÌ"b _6Ò¯Äb§=0p8�pØd8¢[˱ͷÅ[ÏÍçH¥heÞT.ÉD¨P™U±0j²fƒ`=Î(®Ž B#@'ŠCcC>„€¥è¯9íqƒöŽ[*{�™>ô©_î³fÉè9®2yÜ}Yµ6Y\NömâûNÓp‘ŠÊV!Û°l!ö‰8õ@´…ˆaiçÜ•[ñÒJ‘E7VŽÄÆ€v]ôzæøëÀÐÄ$b ±zNyJƒÍF•˜6òqq3棸Ԇº¾Û‹¶ýûoñÀ’¡ý­âxûtš×E_O³è1³TŒ”‚•y Ï9ùW¨ÌFŸóÖÆÌJëqÑcK1B@RëãB®¦"ÀN�¹ûýS�žn¬Ø¹ÝÊY³qÜgÑòæa¼ûþdLÈ@ï‡g�6á:Ìž3¹YƒW ÑÏä Æ0»Ð#\0ÌÌ=Ì3½_ ã8Vþ\\aëîfصàxû®íå˸œvæ,Yм,cyÄÉõs¼ŒÊi÷v¶ãHÛ{èêå©¥!kÒäߘ�ìYr¶£‡ß|,7qûó‡—ÓpÝ ³1Û–ò{\*V2~q#ÿ0”"š’žãÒG&­¢÷l'>ø �§Î¡—áΟ´¬ñ˜29Ór³#¤/Ô§Æëù ø@HÄ}�—“t¡Îù‹œL̳‡ñ³ZUøÒuö�eU ¥oÒÇGËy/æy7«W-ïgå�UuöïªüX:7W'‡ô©Š®nV~ß9ÒŒ÷ÿÂÚ�Œ4V»Yý?y7\�œAÜæzedmâ¡?7áý�z‘–Æ$Ë�m¬/a WpiQÑ3ëç›~ëÅgµ(Ðm› í6¸œdrž –ÓÇ ç�?ÑKí‹ãÿþ^tv~€Ž“�8w¶×š> ã'NAÞÔiÈÎÇ�Úf¤³v½�xíõfo”–5Ÿ[dƒ¯këGGK#Þ<~ÖWlŸÇr[Žq†ûÏ¢­ùN|ÀâûûÍ™ó ?Çø‘ý2 _^Œ0ÖÝ~M‡ßG//³ìoüÔ¥>“§Çcm¯/¬YÿcéÓÍJ;<�^VŽà�ã]Þv‘AÇê{Æçä`ê¤ÉÈ [ÖÂSŽË×Ôº©Ö ±?«gí­Gð“��@¸ÜS¦å#Ÿ�?B>qÕMa¬ÈÆ"|ÐÙòÞ`éóñá¤ÙŸÃÜ\ßîªþ³hüÓ›8Ëú)>&ýü—#G3n Œ;M $oœrÊôLÄßO¸·»ƒ�­ßÁþ>ŠuTÈ;9¹S19'+Ù-¶,.òðår;v—¹¼î®muè`Šâ\M¨„XY#çö7tRY7œ˜šW¼¡L×m,õÛhýö<8aµ?gm±Éó:153Æ{Vi·“…™ˆ_|f7:Yýl>ÊúcÖ¸úÆ‘Y˜Èæw×çåŸļ¶¡–cÓÆAbÝRæÈŒ¿¶wŽà(ùÖ®ÁœE7#/Ò$?>pCÇ6¹ÝÖû­ç>&Õ|Û£øëf|mçM­SÃd^Á…޹>ñÈ⣟¯1�©D²f˜M;2†LÄ̲õÉlÌÌÈG/�øë9_‡SÖßãkƒT:làbþº£iåÌ4ð½„â[«5—¢F VF0Æ�¼ŸbáB½Ÿf~Ú—¯Š/ß®¢¼l9‡­,øÞ+دòò¥þŽô¿£Ø/Gû_¾ŠÇß1þ—ïEåï•ìëùJÅUì½ÚÿŽc¿|åd<{¯ñ¿ØïgØËW'²w{¯e/Ÿ OfïöNeïuìå÷�Ncïõì�ÎÞ|öÎ`ï�ìý,{g²×ÆÞ›ØËïc�ÃÞ¹ì�ÇÞ›Ù»€½Ÿc/ß’ýyö.fïRö°w³g<­5NãÕÿÚ= ]‘™>¶¯Dˆcóì?Õ§©ÏÓ´¯ÜÃÀÂÊfGù>�nÔµKž½EjGeSÀGk¸ÔºWHÇái:¯ ažýRk��–ÊŸŠch·JÆÎ7W ôœžæK—<�5"Æ2½Ò½¡q�¤¼Ôäq øWµ^òxÎ4y*œ6!=™vIM£G77»š<åaâNÏÞ¦SRò^KW½Töc þ:Àj»Ô˜×n‡—³ÞsRêëŠ ”;9wb±;¸ÏSZ¾lñü°Uzšºôz�§YkػЮûò²ˆÅ=é©ÑiC�U�:lËåÓYÓä9Ö®ŒìóDÞ˜QÏVÏ·z*Cö›ÏþÖ“ž}%j¬ßö&¦>õÅÚ§ âwiÚ¾0c9ë ÷V„¬ëJ½·ÙK< Ç’Õkú„6»n6W ãoG Axظ9ŒìLæFMý2£nz.5KcE»ÃÔ�ðúuªI«*}ƒÓÓ(öSfÒÊš)r ô¸Ñ ü’—N6²1r0nJyõýÚ<%• Þ|VâEú•çðï‡õ)Ÿi”ÇCûOê·×ú±cwm(UÛ9í 1†MÿT}©P&K=Z¶åþX)›ê¯~Ûª¦)¾œ�*]î®7¯ãí˜4~2i¼g¥vÛ|ÌÔü0ßÔçi­¯ò8‚Æb^Ú<¥UõžSaÇòñ­m$kª¼:+꣞kÊmPø±µ6ßÌn·#•¹HõÜÇŸf¯ì¡iqN㯌†´ÁÇœv;9#—;1ob1ŸñTFÜ@#¶{vÏ~� AÊNȾ$BÁm¿\> •{E�‚AFÄŒzî§x¦QêûŒð§_W̯Oqõé`rWçŒÊÀõÂæÀH˜Ù+4ã �7³�‰¨›J�ðÊé¬òìÇ!Úð I+kNÝô°±¢O�btÜ.ÖwffJî@÷g&­@&š$g€žÏ?þ>:ç›Å�ªl‚òÑn`¬ 2*×±øÅ͘º¼ÁèÆ1•§XL­{Å>œ)z£$ÒPnWÇbyóÓ‰·O�?\[¤7¯Ó*ŠÍïY­Ý6³( …Ñà}'Ù†­HõRõ—ÛX1‘ø×6”6ÇÌq�¸N®œüX_yÓœ*·Ü…ëçÕ8>“ùív¤2§?†Òò%�G̨›<3x“±Êó ŽXüõ‰S¥~Å>¦©™c6wìh.ff”YÞ׉m�õÉ\ÌÌÉG…е0KÔzœ¹åLÁ.ÞßHØú8ÿ¸[­6^.†N|†)ŠUe±¨ËÔê9õt¡át§Fõ¯, b8“ô E %wX�â:_2µ?܇Р�x·xè%Üßþlv©>Ee«‚¾mzàÑXWÝ¢b&gy% ošÂî³{ åÅeP}«±hüÕ8éÙ®{ýß]`µ'ýÚ(/*Á™«Gz·¨—иc7\Fm(*½Ý» &àÄ —>f[mÆñ}¡6udTvïVüí(¯º32Ocÿ÷6£V µwbëWöÀf l.\£öþÚ�%XtíH|üv#ªë\>¿L¾ÏCxºà–y…üb~6'*¿Uˆ)—ñÖ¾ï¡L`¬zã"\=á$¶¯ä›†Ø“>·°cÍÕµ>ëoþ,øùœÂþ?Ûþ†€« ®çûIð¤ÊrÛ�E(¸y®Ë¹Šm7:ƒ·^üʪ]�„[v`óÌV<±6?àÆ/C˜ýÕrÍ>ƒ«GúòùÒÇ�Ø-ă£¥Ÿ½ZˆÃÊ+#§Îô—%É+!–”qÓQä`™2�ïÕáχ¨®ö7>‡ÿ‡œ>!zÑÜ Èæ¸ ×ÄÔ³¦`JA“.2Ø|¸}x´JµáiÉ%HB±ººªö¢rÜ{ë œ>´›wø+‹—D5vþb ölË™L»óÀNL^±Mvk;*ïÅMÓùuÿ�8Òð,vÔº|a¦¦y·Íi"˜j北p÷Ë�b^qµDÆ^R�-_š�ËGÏú“rû$…Ô·Ä_Dºæ´ÛÝ/ï ’Óæ,GÙºÅHûð ìÚ¸Mh Õô�”;5t,¦TdNeñ”þÇfGÑíX4ó:\Å®6?sâ-üls™À› …Ó6£õÒÈ×) 8ÊQ_œ‡ª‚uðÖЀ˜×^ÏøkÔr]ÿÒQÜo›kHGI%îùÒLôù=ÖmÞ¡ÆqmÃäÍGß.Gˆ+`Í©ç@7vÞ²r©µ±þ¼ ‹§§á�gwa›Ø/¨êšt`Ô gÈ1Þ>ÝP"Á�ŒÈÐy`;;Êq�¥(X8 W¥±O]°ëBjÙxÅ_XÒ_ú97I©›µÅ(›~VÏJn_„‘l|ÐØP —®ÈæÕM¾3W­ä@ùÞzäµWa]™ÐzÃ8PS_Œ®½ئð[÷<ŽönÀ\ÿðÌLZÞ$Y�ef䣩ùþœF'vÍZ'ccäŠ 0k:û@ˇâý#�¨ÝQíoB}èÈ’h“ãÝòïò'yàHYÎ7õ'ö™2wK@©Ü�8ÖÍŽð3†žn9à „tÌó^?p`†xûôÄÍë|\Æ=Þ³`»�hÌÄü�Ý܉�s'c›0¾à´|cî›Ø×YØç4ÚŽàÙm;c˜PÝŠ™kvL…ê[¥•(þ‡™8sä×l¤Î7ÀÚºÓ§£ù‘å±Ãj(¦ùív¼õ\a[Ä,îºé'jo>rC}^˜YŸ”|•~cîÓ%*qYÌ;š�™YeÖÌúd6fqe Ndka–˜õ8³Ë™Œ±9™²V[Ò‹ŠÕh‡ÓŠëiÑùR»øŠZx¾r£¼t¢xl<‘¯ô‚§&Ì©ÍÆ ñtžÃsP{ü”íVgÃ[uç7lìJbM óÍžRÍé¡Òz½]íò‰¡p;Eå]˜Ñìx5'ƒ¤+¼ýW¥,óî;Ña+ªÑ\Ë}Fº¢’Õ1Oē҉b5OlìzÐÖ3š»µ.uyø©=‡|rC¹|ÂÄV²7èÄqó>ñJ8žN©GÌM vr6š�ÌÒiP oFñ5ΗvOÕþFO×%ý#§ç�ÕË'@må’œºéôÉW:VE¾ŸX—Lb/ÉWä>9*peY9Oy*„¶ÆQÕ$0Ÿ±OºzØH›#·gìâVWlžšF±¶°üìt’Ô†²[äß}ò‰}Þ.ðk˜5-®7Â¥®fÿ©Š ]�ªß(ó®ý•ã�'·}zvIùçm÷ö“’ëë:(]›ÊÃ0Uc”Ÿˆ¾ȼÇÛnËYºOs<ûl@‰Ô·Æ"§�A Û-n‡ÇVRåi<ÖâÊÐóžzil�¶O—vú£ÄÓêofûŽiNã ×’J§Ð‚N‘ÉåÌ—ïðT4ÈgÕúN5Èí6Ã0šëV£¯ç위tÝ=Ë'[©G;¬jÞüy ý:&˩Ɨ•r™Ô¯fôéJÁ1’žŸ3}Ì%Ï>é4±Ós0ÄgÎwµzjJ�žrM[ ðeîoâêf N}ï*ëÙg 4Btµ6xO¨Ë'ëÍ©›üD1Û:·íUnây"Žmž}Ê•š¾'À—™´˜$g€žÏ?þìÇ4·2U Ê;_jç=­ 5§£Ü£sႆ3Õ*×1Nk®DÖŽùÕ”M6i®$¯hŒb&p¾Qjët>áÌmô}º–†4w‰r^§=QïxÏºí¶ŒZ|˜É´Ì°IcoÇ?ù ;Bö4³Ï›ðq„î‰b“Ö6mŽ——Ä�ƒ*ʳ†K'5óWûÔϹ ÒWèçUbÚm9­Xê¹<¦Š·nÊüˆ¶èy“±Âó “꓈67êWÌc*-Åxì&�„™,aôeÖܾÎdÌdádhÌ4bÅ»—”r¦áÙ Õ×>&`­Ö`úC-ïЉbUg)ê2E'7ëéBÃéN�ê_éØÎ=„@Â鱧 ¶Hx~øó×fÉÐßÎvÝ § JîÁ"~¸ðúÏšÀÁ#î\ÞðÖÎÕʰaûÂ!ÄÛQñ;ƒ3xŸ>·À{�›�1ŽõáûŒKñ›'6 ‡7M�' «ý1ì;Û�yäCÁfÌh/¯Ç¡'6!?KÜÿÇâ¦gcùýO°ôûÕ�ú½¯¡²,°ï™­_Và…]k½ S³­Þ¶�@pÚ�Ú×ÔÜœ4�öÀÿ¸ÐÞ«X"ýʧA+¨¼EŠ¥†íëèó¼„û ‘�. ”‘·UûÙ“•§å tD’Åݧ„öþ^dH„LµôC,¾1‘¶ªœ½âU¡ãrLÒéFrK•^7HxGÆWéþß`ÃBù4O–m-ªÅúÔòjÈrÖöË]�3:<1GÅAìÄTG¹_z¶ ›ö\±cuýy«=½-¿•N‚°«fñˆ#Ob3%{ žlÝ+¹Eo‰·Ä×n÷¶iä,?ˆí«ù‰áÉš‹ïŸÜïý0Œàšc¾þbšwÝ�…yÙ!Nâf`åÖÿ`=—ú4íP-Z“ófLñ7³)mÒø£ä¶�4¦Øæ¨1Y¿*·¦ª—bbA°u¹ÿ6 ¿cJÎrìm®R‚xwýê ÉÎ}=ïÅ‹ÕÛ’v44l‡Ms†mí÷±¿D“ÇB¬„MêÓÂúqZÒ8ª¶b‰< $›‘�� Û÷µ�&’R7yóá- vÔŸ|›Væê€"Jvþr<áñ°SõbAJ@Ýd .š;ÉŸl:f.ºIa�ýÞŽ“•Š; ‹„aßå>ýÚi­ÄÈ,fü�þ¿ž�a=0¶- Ê;_€ ä/߀=ûAžfø-6ja5á½4Þë N2!.éS±B(/¯¾þÃÉôÓwë„7†³ÙM)‘Ÿxût@âÅ5¯cÜÆ3Þ³t»-ç„©˜É¤£·¹[°Kº¢Â�ƒ]ûáÈ׬Ix)§Ã¶r.�:çÌ`ÿ„¬m$hÄ>M…MKäyEzîJìm¬0táÙÛ{"Œ n·½,Ç_Ï㪛aa‹—·¡;¯HH}ó"Ž>]$�Ùì±cÂ1ó o™eDâèëÌÆ,žü3w`1 â3Îõ¸ä”³ ® 9$l­ÖPꈰ¤(¶V~ ]nÒmØXnÈײƒ){¥•Ÿ×Ù7~ áò"T®×.ˆôâõúÚ kC]i–µÅìXqà‰J�ˆeYß–ëã¬ùgÝk¸‘1w -™Q'àÄcÿº2Ä"V01yq†åæw¿òJò…ÎbI�!.eL] l ¨Ã›Çí*Û|ðð¬1‚¿³P×!<÷q4 ûV,à÷Ÿ&êI1„KÎ’,¯=ž!}�sø8àͺ¥.{V•“ñ}=Ñ•0ŽE¸û‹²RKIdfA�b ó{ÿýdµàïÄw7-ìzÆtä1eß`yŽ¿ú¼Àª [œó»jLÏ/;õ×oˆ§Ý>îÒÈùU~Mgð“’» }@pˆÄ¸¤¤©à¹X]©2çjxBK/1æXœ�Þ S¯ „MŸ0]ÝÅ*rø~ÕŽÍ«æ⊆ Û*°›�ëùмÅjpųµBä’-Xª[åR°üko4«OO<§Àñw�3ÕñÀ?I«›lqÍYóVæj†!áÍ®›\Ù9k’ªˆ“6ú9rqU )È@Þ|»À£^í4�–ùr ¬scŒøË�Òq¼ÊÜR›1u¶0æÌGWÂ48ÅlÍÀ¼µ¨kh–ú‡Žº‡ý󀘵¥Nªû4VSµ¯À jñTÝuLfË©WÂu’ áûxo0µÛZáãÃLK-:ûÙw^’6R:k¾‹%º}±J7='9Aå+1k‰ ƒU4d,¼CÚÌWý¤ f°BìØŒ o·[ñ×óØëf$TâåmhÎ+SŸ‚ò"Ö>=ˆPl掓„5Þ2 Ä^ŸÌÅ,¶|‹%Ö@bÄo`ŒäcÀ!yåÌ3:A´V«“9VG ®ªnuáˆ?k!ðùµ÷e.?Sµø¹«‚í®w¤öãåšÍÓ¥¸C{R¸ÿ#¼+(öìå_†|öKˆÎŒó Ø9æÊÉ›:´1âBé´„~¸Ønž¥œæ–XŒ¤E7·•nŒâ›ÆÀGÇß°ãK‹ô•ZÞ@9óà´Û\¾(unc‹@s}'€3¦¢€ùÕùý^mú€�ŠÉ÷tŸüv°Á¼ïiÁo_9‡ÿ»¿ý§Þ&ùv̹!x—·ÓÌ_÷Ù¼yøM¼yäØ!¤@OCšû°p²ÁÌT‰Ö°CÀ>Se+œô™úß?î=Ž—ÏV]ýVcZ×t®§GeŽ}÷qQˆ†`g¤ÜÉ¡]B¤ÆLŠ)žvû\· §�É™jøç_l¯(9Ýèham#{O|ÀxVG¤¥¥áÝ羘·ö0\ #.LAéd☱ô†u¯²ï ÞøjPDû�˜r8K¿ÎÊÇf?.FËÍhªA)…w8LôÀSñåE!7!e\ïÛD% ˆ—ƒi}z"˜c4ÅìhÙ]ˆU#kðíû 1779}¿žXÉ«›lÃæmú üz|»™T7ƒ «.bÁf®c³µ ¯Ŧ¹sÕ°‘L1ÓJ”œ±áŸ’*•Z¬™¶Š}ÃùÛ(´Ï…öâžH�èú�L³ðf7]ŽC:N]°‚ùù[»ºFwoðÏIÜxeŸú-ù–ݿűï;�ïíÝ8Ò¨nˆ³,47¢H@Ä1Þ³z»-Éi!˯7ÜØco_µ¶‘ q�Î�h?¹ìÖ![vñ×A�ÄÕn›ÀyuÓ„ÔÃ’’óŠDÕ§ $cëÓƒÈÄè`êØ1i˜Å(¬-Žúd*f"OV7Ç�™©¢ ¢rFkµ¦æ<„„Z)„¢ËVG =ïVTÚÙ:ªËÇ鎪ÿÆÃ+7¨Wýž}?Uçêì³VwŸzuÿï ‚ff�lÁÆ‘cÙ!áé qu�dXs®4Xõ/‡\†×ÅiMAt‹�í”rcGê’õ;ŽD¦˜�L‰ r—…Ù‚§¶ñžÜà;Qvâåz_|ã­¥ÕϾ†0E1ßÐÝùö!5A[».[µ&ÂÔÛñ~òo¥ØVí2L>sTtÊzÄ) 9ôCRÚ˜CÔ$*ÓÇ…T É)hVÔOÖLˆUnŌɊÏù=‹·ë]ª,SÇ#\tíœÅ,ì@,€ùXŒ½Ýfräd i89'ÍÛUtlêÅkÏý¥k¶Aà4|š“ÂË>²žoO„›ãÓäÃ}L�-<Œkñôþ刄Qúè0¹ÉNSóCvÉÒû›×§'¹ Üö/ eó 3îØÈ^––Í�¢ÛçcÎÌ›ðÙüé˜9+Y‡IñqšÄºÉ6ÂØBnt'…ê&ã/ŒÒ#÷º~º´,gŒø§çßæ½­`[`Ãc6øú!»³Ëo^„›fæazþLäçÄ6ˆ 1ЅΈ£po�<ˆ09Ž0ÓÅ�1Õx÷T%lün÷{P.£â³6Àk­?@¾wãp sÏ‚Eá¶ÇÁ\¢£Æ1Þ³v»�hàâ¡/Ž�gcrlÕ�•O+­m„ÙfOÁ˜0��/`âªÇ»lóÝ ÔaDí•àv;j~t"ÄQ7u¨™ê4$çɪO1öéæd ÉcÇdaf†ð1×'“13C–dш3“åŒÖjMÎs"7h «§mÖ FƳqÇ–•ñºâ•Nu%µ£áYa Þ†âU:JG�â"ÒÂQú¨qÒuÅjâÃÙäÄuÅ æaqe¸k�dR%5T¤uÀä\'— Q…zîÄñ?Õ‡Ðå5² äóµ>G¦$ö>u ìÔ˜Ïxì­FŸ�ý·­Y„˜ÖPº_{c&/ŠJIÌ)ö\TÕááS ßA ýJ|VL8ÊSøbT³ÍŽ97H'袦¦ ‘n¸áÁ6Œ©HÖ´Pw4ì·ßµ�’‹@<í¶FΈZi™? bvãñÂ1X�’˜sÅ6 ]2™;I׫¡í¸3ü7ì¯�._[Ž–†ttÖT-åð}DÏñèÈÇÚÌ>=>BÅÍ^òV:ƒ½[êP½£ Åë ±tÞ \•º �hgºKëæÔX6VX§nš½D0 rÆ„?g2½Ð }g]aÝU[�²ÍQ¸b)fL¼ Ëî{í¡îãW"ýʵvÜ•a6žÅÕw�f=—…M�úáMsÍÈà »JíÐÛþ™À{¯Â?à7€{Ÿç_=ê3t¿ƒßøÝÀ>D0??‘3�@B¦âïÉ% ¾¹˜é‚Y˜`w·0BvÜ€kRbd–Ň¢½¶¡aˆRM½ajØ ¨ç޾%׿­H �% ív<ìùãÆS7MH> ‰!:¯HV}йO“%†½L;& 3Ãò…{}2³Ð,ZÎ'vÌLÅâåŒÖjMÎo"7¨ Eñ Î¾ÁÇ|îò»„oaµ ª®Õ/ÄYüêÇÂ׉�߂݄¹:WC+‹ƒ­DqÌ´ª~ÞäDÂ/XÇ›Øå‹¡)dݰHýÖ$q¬›…í=ñ¦R_ìZüþÿjR7ÞNÙ­YœÀS½‡ðТb™yG öÖ3>Ou¡«KyÏà̱zA9 Ù,ˆ@Ê5Èu¨|Õ~ÉV³©©kLQÞ ‰Í>Øn¹((ôpˆ�úR}ÀM1Ô=ûŠ÷û©gÛšÕy¢m9©ž˜iw“×%¿ÝVrÍZ¿òøCÚ‘PF-½¶‘ÄatRÚm3r2‰u3:vY§”°õ ™“¸Æ.2)Óm1×§8útÓ…ˆ@ÐlücÆ,Ÿ†¼“TŸÌÆÌ�l‰ ”$ÌÌf?©åŒÖjÍÎ>¢7È`û:è!’ˆ@Æ|—ÚØU>õm]ñÏÑq¿ ¹ �+©97åE·êŸ„c=†4.‹ Çè¿x:¢pÒzŠ…NFd|è“s3ÂÎã~ô~(«ý¥e‘¬<ð›¯]Þ .¼ñ—^|¯ûO©Û°·©Gæ-¿e²þà»Ø:? ¯ºm¸9¼b1ý·ó•ç§8ñ¢šf<±!Ôb_„Bm:wD0>2ðÙùvv‡©ËG¦±Õ{š=Ì×¶ãK.™±Åï·²t¿û;zŸÐ;ä KgV»-Ñq\öJæžn¾ûd<ôÀgŽw$QÈü¼¸VH¯Mgvanˆ+S¯‚JƒÁ=AƺçžLå@IDATßD礪êç24é||ô É%¼ZY —%-U^®–ˆ1¥MG�ä¢k‘êAã Sûô NYÁ5iÖ’�¿�<Áß~œíìÄñöwðJý^lÞ!–E zÍ¿á—öø¿sÄ�ùT7ÍÇ4"ÅAÒ¥dcù†G¼oïYt~pïz{¿·µÒÐx7þí_Þ�cL- éX¾i;–k�cµŸïÄ›BÜÙ×å¶ÄóçsI\Þ„ZöAï# ðвc´dš–¼B6p=�wÝ›0úð«¦l·ßŒÄÍÉXÎ0XÚm«'~Cuoá#¶F‘K•€µ�DaåÛ kÓ_£a‰Ž½ö&ö_m�7$ív¢2Âjt­4vDõÉ´lŒÂ,(+’;J~h:X¸œÑZíÐ,r$Uì|*ö¨“ˆ�Øï~Hˆ¸ÚzÑö»=‚[Ö, qœXsÍëñîsB¼`ã¥sòJrð÷^3°`…#1ÜiÀXæ~ÂdÐE`\ŽxioÎ…½G´]âšìû”òòxæßn¤ÓÒ|~¥Áo_�/Ì]ˆ¥%>嬫þu´µ6 W�ߎs—Ã};Àì•ø^˜<í÷'Õˆd²*yì��§åNòëCði<ôžE¤2«ÝÎÀl¡ýÇñ.ÍÖYÜ�ÈŠ@Ù×ʶ Ì+pª Ö½ë]ÐTdSg›z%¿ì“[ïi­#*ËB*‰Áήw%€ £$/‡½êú‚4ܘ€Ñ êR2¦ú¾Ã©pý.ßÀêaJ›È¹iV}ÌíÓÙ¢ûÔÙÂ-4µh;!©´CI…{ ²rr1wÉJlÚ¾}gZQ¡ �Z¼ôN"tª›QdVb‚ª6ÈAJFróçbåÚMØÓ܇Öý6µ?{Õ{ZVrL’¥÷øa¿šÖ—àÍ3'&)e_2Ù¶›؆Ùògi .Ÿ_ѲÏc~~\8øç´¼­î¤¹}á�fíEñ§18~_»mE\ð^[�å1}m#& Æ9Úvtî/¨„ì¸!Q{Ka»­3L» ¦úsQ0Â,('’:J}ˆ:X¸œÑZí-s$VÌ�¢8fè(b¬¤Û¾ˆŠÀ,øÙ®íø·Ÿ¨u{ÅFä‡Z`Õ\óÚRök´‡œ—õ£é¿j6˜5)xÆ’š&lÃ;z:ä-<ï5©»Î¢I3ö]V¡–“Æ@ºjªxîÒ…gÿ曀�o`›ºIŽ›óƒNvå/Uvo=_ƒjÿ)[É?‚§4ëKk|R°“OüèyU¢’…H䙩Œe¦iÜ*ÜôÊsOÉ‘l¬ü %ƒ…–Õç‘¢ Ë™3k©º0É–H]G†ÈÉÓô©XlWKHËŽ*Šúû‡j|=S¬j©NÅÑn�ð·lÃ;Bu(gÕSIz‚XÜ-5}”Àánü¶9”ò«uÛ\BØY_/vg™£Ã´_�ÂSId-Hr×Sh Yµ;ñb­:Ž�}¦&ê&Ê”TL˜ÛýãC*…:ÿT/)m„h’ѬúdvŸŽ”4©|œ¾¢~º�¢A€_. KJV>¶>}ö(âÄ”êf¼Æ0µAº¢¦ ß±�âÖ¨†iIu©˜åx4°A“S,ÂÜi‰jCpœ}#nÌ1ßBÍ�j7 Ý6Ÿ�ô³ç£Üï__ýÿâÙÀNÎNäL ˜_«ÌëS»mÌxnN]p³�©üsZÍ‚= cÖ6¢H=º lþ|8Ôð¨/sEGO'ôe· §AßnI4è¬;v‘? eÆZ¡3ÇTüSGf˜ŠY| ê¨ñ¬ÇY¸œIó`³×ju†óÃRלP¹s°ê[E~lì›Z;¤kÓüÊü0Üe`±x2 »ñÓßuè‡ï>ˆŠÝ‚f‘íl�¬'†4étÕ㈞"¤¿ ?Ú(*�õ“L¤ë„éÂéÛº|&’�Ðæ'£œÝêòŸ²i¦þsà§»$� ‚?¼8~ÖB¿ÂΆ–ºjÔº|QÖ|i–×�3Ç»×äÂîj¶ªì_,*ZüÙä�"8Þ­QìúxäÿûÛŸÃVÿµìªkSÆ8Ì,ŠÏ¿r$B„�ñŽU!àÖÊræÌÃ×íN±ï¿šBn8QCEo2´x=Ù01²pëƒ%‚¾¹ë…²¹ÑÞÞ)Ä o—�ëžú-ŒÆ4«Ý¾þÖõƒ?þY`ÕXrïmÙ/}Aò4h‰»LG/X~¡Óßöù|7óI]¬;ê~佞_�FBÜ4ÎŽS=!’q£îû[… CK¨3[®yM7…ÞCu(†λmdÒ�¨ã±ž§Û°±Â®ÆtãÉz5§?ÚºC ÆdV}2»Oç��X"Bõoíÿõ„ôy‡P¢ö»ÁHÏ¥ ø8Rý©nšf,¤4eÌzmP?ŒÛ‹â J=—!}š% .Ý-/àégžÁ3ÊûBK„>> 1Ö«üþ)6¶ö?¶Ò;CoüU™þ›ƒ¥+|ƒb6@õn6wãVÛp=1ضP»ÓÎ pÕîFk·}¡Wà³QÞ,oŸn•y�ÕÛmofùÿY3ÎNƬ/B!/„ÜlèÀÝَΠuó×6üp%àÇ…ÊgéÒ=ûò/¤ñ£ó^»¡ï“§HYסî½ñŒ&É$¶ÛñÖs ç¦Z’7ËŽ]ØèÛìµBS3Í$bæâŸ<̨ÌF_³ nãZ�K^9 â;³×j£I›ÂAàSáƒØfä1e¯Ý+3_YõMѽV{Vä²m¢aÛª�b ì(œŒÇ_“'ýݯá¾ñ+àè”nsèNX&ÌÓu(úæÓ� ¹Ûñت¨h „ñª‰Ó…d}|¶÷XôbYΘ1Eåv•­–˜¼þqtJbõãµ§ïÊ2—åX½0ø#–)ã?‹ÞPŠ=»¸Ò>Ç»:dÍÄ]v�Œ?Ø-s{5^ª¨ k)öÇ^†vÐ×Ýòn�¶&EÈU¸VЙ»6áñ—ÛãXèð1Í(/ ¦o`ZYÎlÜ&(T[vïE«6ƒcÀ2]*8@Zø¦1†"GÉ»ã> Á\e¸uË3èÔ‘ÏÝÝ‚ÇÖ�Ä´iµ!O8 ¤˜1Ë× Ël¬n¬{ø9]Úr<À¬v;=o*í*uWÙRlyNl?wÇ X7k£(&“u ¦„}‘²a‹5\Û0±ð1´�UÛövb2ÿvc2v:Vc‰¤pßQ°Ïê �û$­ÝŽ¿ž‡$ßæÍªcé ©Oñd¿Éø'3*³ÑgùcÄp|ëqÉ)gALGt�–ÜL_«�˜< ,‡@TS"ËqO ^¼ƒvšØ{â×;E÷ÊR²åŸ"/nd/Ç�Ùiš¥Û\ù‹MD}I nÈÄåžw±yÛ×`+Ç7Vú•…²r>;ÕZ8�ÒR½㫟GyU²­Ÿ0Z-ÞHŸ|-RåXC,�Ve"¥HÆùœÆ^»Ý�L¶Òî=us¼÷þò×X›¯st:�¼ÅCzÉýå°3åŒK!R[Œ‰µõ¨`ø³ÜÄ»õ›±[= à UÞpO`ÁG‰æýM™ˆeE6vZXÈ!GæÖy³°ø«N~Œ@ˆÆ®Æ›(jr/“Œù…ElcDm@ÆÚÍKQû”•bJÆe¼õâ“(«v±ÔÔÒ¥š"1áW¶ÕJŠ—NC1KÑáðŒ°�;Ï.ïw­Žù”[$.ÿ¦lúU-Þ2©¸�b¥“àVžºâuXø&à¢âÂÊoÏ(ÿG%Væ†Ê kÉ©rî3å­¼‹mI`§S¼ÖZüü�°-×os´qÙQrìÜøkWD•Cí-¦üĆ�?fßjäͦ�áì5$o0v:öAÖŸ×úóZ,�X gi% NÁåoáÉÍeÞ¶3Ù¬…mGá 4²òq—·|fã ±ž2Ëwce¶NlëyJ®�•,Ú¬6¬Û f`›ÍÎz‘�YjÆ+:óê`jŸÎzú5±ZàF—lœ7Ï—”£à¦+ñnÃSØ]ë¡(¿é¬ýl©Þ†ìåý­³d n¾)9lÈÔyèؼCÎK8ïÅçõòR'{cw¢º;v&Ä´|”Æ„lÁ¶u+à-µv'ÖÜŒk'å ír'þð³Íð(¾µfŽ` oLM›$¸:üçQäÀ²í�ÿ|Vu`ó.‡m`æ"9³3>”1±�¥;ÿá†oY7.óÞf$Ín™r•¨>ÝJó:+·Û�Œc+aÆùÊ[ý]¶Ù°Z¸qÆ…ulMâ{Ž˾–½ü3¨“Ù;…½SÙ{{óØ;�½×³w:{óÙ;ƒ½7²÷³ì�É^¾„w{g³—Ïîç²w{ofïö~޽ ÙûyöòÙïRö°w³g?盪L›§r¼`¬Ì„_g�§+”à¦Õs%�Kžúòí­³ÔSê°…ÀE¡ãû5³>™Ù§{.µzŠ”2òW•‘瓜ÿŠœç=•v!¯BÒR”xš]öÖØo"ê¦X' ©/BÒ¡�&ÕM�Töåz&µsEþyj&-Er³äTèùEþcŸÑ9ßyÜ/¶MEÆÈ=�¼N°<ˆ©Ø3 ÅzZ²ï˜6©äÙ5¼°o%{š¥�þ%;h9~5­¡¥6«O× Öy+†çkRƒ\ÿDž¬Ùn‹ú̱cLË—¾Sžš¹ë¤Ö\r®ÿÚ†XŸm¦WH¹¼D3ª‰4¿Ôö¥E{…y‰Q„Ïxö…ÃP§ÜšÜn›WÏe¬å|�ñ0Z7ÍâÍhzÑ´/‰»È(Åj‹¿>iSëW¬}º–f¼vsñ73³Êl4eÑhù6³xsP�oeÌT.¹)Þõ8óÊ™ÌW|¶Ä®ÕÆÇÛ`ŒÍÆ>ü×YqÝ×aq]×iqÝ×qq]×yqÝ×�q]׉qÝבq]×™qÝסq]שqÝ×±q]×¹Maïdör]×ÉqÝ×Ñq]×ÙqÝ�¢Çã:=®Ûã:>EßÇu\¨è¹nPÑ*zCE�¨è=ãH–¿ŠRÑKòß4áUô˜üWÔqr³VÊí¡ô¦Ü}„Á—‹ýá ÑC 7.`'ð„§èÌçUÐГ…ÕÛ_Bk}%ìaÂUìGWó.ÌåU?Ì“¿ö ´î/†ŠýÇðÇßì÷¶Z¾@™Þš"Bœ³—lÂ¥Sͨ)/�ÃÎO?i©¼ý‘Ÿ”Qã„°áxOÁ¸ *ÕLÞ¼…}R½-¯$S'mÅ/ÜoFþj¼t¦•EöÐÁlEØßÜ…]kUþôOœ{‹àlCá’)‚�µây_@©@ÂɾeÆ[öD?y«wáTã^ï)ý´ì¬œµbÏö{bÀ4›ö_Bs} Jœìªm~ôNûd¦>å©��}Ô8ÞÇödŽ .»2%ëÈ)óå³-¹g‹ZÏêŠQ×îÖ ìÆ®P‹µIã„|5^SFññ�ò„k|a²n@óùcØ[îT"éþÚ‹*ÐðË»#ß !ÄΚ»‡Xý¯)uªø þ™!®*7³Ý¶­eõó`MÈþ¤¨ò Nµîø›€Ñ|h§ó˜UÑn§ç®Ä~–�kícg§CN¾ŽòU7K·f\Ö4ÛÎN­oï;¶lÙ‹*Ñúú¬]Ìçþg’|r=5“�Ù}Of¦Ü–ð[7”'s”è'^}­ÍS¹>1 N5…+# 8¿gƒwö¡¤%ýšVϪéXùÈ~cåÖ©mòmv”×Ä¥=e˜™Ù¢Dûkf}2³OGz>ž8ߌriÀ¨ŠbsV õüÙ­2*úc—t|q›¯�Tcë™l(­j@Wß.$ó@d"êfjºZ' ©/z’¹™T7ù5¡j'׳ñ¾7-�ÂàlÂ8¿,fÒR6KN…žÿ7nü�ô©ËPSÁÆüjñÖ¤â³Ú¥¨oíÂÆÈA‘Œ½~l¬ËÓùûÿOøDO¯á Г2·©iÛŠnÅõ’XéXpÛžxœ˜7%ôÔ¬>=�œ`ˆu^Ç×™ŒÎ׌Ž÷¬Ùn `ù�±cLË—”lØÕÌúb6Ç [OY¿¼÷ 6ε(ÿÚ†ùã !gM“³J Ëþ%UlÜñÄÚ¨æ> YXûÄ!¶®ÃÆ3v=uæ)&·ÛæÕsóë¦Y¼ ›y…·PÅ_ŸäÒÍN,Å;¦Ò4ÁnîØÑ<ÌÌ*³‰èëÌÅÌ„Lô“°2f²”ñ®Ç™WÎd¾â³%v­6>Þ(6!�l¸6:ÞÇ(�páôü´n¢=’Yñ�æW ËÍzöPnJx#¿ŸòÓÖ†Õs׺)v¾Ë€ïf˜Îv—ìf¿ƒò9ûÚc¸J¸î“�&Ä&�ïÎF®¿í­GðÞñs;i<.~ð;ÿ=ù3g°ëC¬ä‡"ÚÛ‰×^oÆÅQã1ªïÒ²'cú´\DK&yr�Œ@ow;Ž´¼‡.¶©gÒ¨‹øàÛ*t}>fäåx·ßD¦`õnt¶½ƒ¶¬¼N…sÝ}Èžœ‡ë™|Ò:–ÕÅ þtèÇ ÏE�òaТýè{Â1DÊ­*no7ŽmÉ.`4ksS/ð¶2S'MFÖ@4–f¶Û¬?ik>Œ]l+âøTœ»<ÚÛ—d„\*ä‰1õ»Á?y9†u“ý¬õI÷7@íÏmÁ´5þ¡…½ g^º?†E¿ØXvŸíÄ;GÚp.u,Æö�Ã…ÑÙÈ›z=r²¬Ô:ºÑÁÚð“Ý| vŽ)GáÆ9³‘;À<º{{™V‰áäf¹™áÇ‹]w½%uZàVvŠ›"íœ3³>±b`^ŸÞÏúÎ7Ð|â"Æ�… Ò09:r³C+xB–BVö»»NáûqŽÑ�z]ÙÐ1Ç"c>ª›!³.ÑVnƒÜg»qê£ÑÝÍÆcG£ïë¨ÆNÄ伩±ÕÓÀìÄ£³&¢Ì¿'¥ho+SXç›F�%K¶Ûɇ!†ûÑÝq mÇNà›ÇŽ \¸œ†œÜ©˜œ“e|>`æÚF R¨Qzñtál¬ó¹°Ó±Ø¿‰þaüu°µ—“çXÿÍgã (×]Ô„â2Y¹ÝŽK°ÁÙ‚c/„–©O ÎP3ñ'Ìl.œàRb-ò–,g´VkF!1bD £s”½Øû7öò›|þîÿUnõÑÚõ„ «øùeIË· qöˆqE»bŽåWŒάõãvþpžB=áüÄ8FÉqfEñpˆÁ`”F¸pz~Z7ÑɬøGó+†åf={(7%¼‘_EÙ« «ç®uSìC@Q,O<€Rœôl÷ÞC¤(„!@X�³/cÙUê7·«šÏà~[¨ÓÖ`™¸ TúQwß\*ßy·W2Eñ¦¤)ŠU>ÈdýÏ!uòš)CŠâ@h2X ª›ÖÊâFA ý¹ûØ‚jµßJó9ú%?òzM@Q<ø# ’†�]’µnB„¿.,a ³°ð�'!`RKÊ^Qi+š9’Z{(7u½ðŠŸøk4œ'`˜m�äÉ0\è~ù'�Ý©gÍݤ$®…�ä&†YKð³†üìÕ.\�O�yᓎÅC)‹³,Ýííì¨t²CÐu·ý ÿKQ3A�_]F¥×ªîîFû)ö‘ž<þ©½Ç�_í*<аl:µE –2RÝ´Tv3Q p‘}F¬¼¢W|ò ò×l¡ù\ØQPB€ 34vØÜ#ü£ÇŸ0‹3ŠAà ~B•B ñ°Ͷ–6´µµàÀÓ�büÒmBš<¸Zï{4B2„!0HÈ]¾�<²[ykæ ®‰Í¡�@/~~ç4Œ9 [v>�×Z:p¶×÷í~÷YªÛ‰‘3Öß'¦¾ÙÊe¢÷�ŸcÚ´ñ˜U¸O¿ð:ºÏò[§ÙÓ�³‡°sý¬Ù­~ŸØ^y_R¿¹keì¬ÇÕMëå qdÛêMxd«oÌãÈ�á*x£ Q8B€  !@c—�Í Â?zü ³è1£„!0Üà×Çû¥.œžŸÖM´G2+þÑüŠa¹YÏÊM oäW¹>ZVÏ]ë¦ØÝÕÓ½‡Øy›uËš£Š}ïæ~ö½zB€ B AÈWFJ¤dÿ1ìräE Fþ„@oËã3«Ø`ê¥8Ö·yt��A¼’Œêf²§ôB€ "! ÷Mtõt$¼†›¿\>"IOóŠHEëOøG‹@˜E�Å ¢G€®ž–®”¯�ÍX­=”›’ zá?ñ×h81NÀÌ�ô†€½|?ö’’xÀð§„ B€ †î#²ÚQsð$)‰�@5 a.JÝ^Rƒ“¤$6„Õ@¢º9�èSÚ„!@zˆ}S�ï½`ä6LËGhh^›ø|ÿèñ#̢njb„ÀðB@9!�ÔFi„ §ç§uí‘ÌŠ4¿bXnÖ³‡rSÂùUNkÃê¹kÝû ;QÜßù~øÓ�+®ð–µôñ×á ËW`n.}//žÊGq B€ £ô÷žÅÉ£Gð§×ñçÃ-xÿÃôôø´Ç™“f£ ðËXuÇdÓÉS£�`8vÅtçIiþþ-yŸå%üù™‰ÙË ðå5«°$?Ô7Œ�uJ:ª›A��!@„À€"Ð�CÏý¿}ßíýù$û=X»„>©3 Yb±Äiì2°BøG�?a=fƒˆ:Q,�O÷Šf«ÖÊMÉ½ðŠŸøk4œ'`VŸ‡ Fi„ §ç§uí‘ÌŠ4¿bXnÖ³‡rSÂùU”½Ú°zîZ7Å>èÅ1”+ŠB„!@„!@„!@„!@„!@„!`aHQ,)€E¥­hæ9¨µ‡rSr[/¼â'þ 'Æ ˜¹â‘B€ B€ B€ B€ B€ B€ B€ �a„)ЇQf“¨„!@„!@„!@„!@„!@„!@„!@pHQLå€ B€ B€ B€ B€ B€ B€ �a†)ЇY†“¸„!@„!@„!@„!@„!@„!@„!@�¢˜Ê!@„!@„!@„!@„!@„!@„!@à R³ 'qup·aˈòÝ‚6·N<='Fëáe³°lÙ2̱ Ï´õê…²�›/�Ú:ENJ«€¼�R33ëæ0ƒÎ*âò‰âŒu °Û¯ÆÇ®�álx[—çDf¯ó '– ‡Å>ÆÇÓ¿…?>±‘cRB w{îšV¥¥ €Óˆ¦·<ív?N¿_‡—OâÌ΋Á¢[ØÅÍúǺ–?‡™¸`t,fa™Ö:<†âG�9)ÓëÔÓó毯Â#«ó• Á¿ýíØ¹ñ!¼ŠLdöôŸ½Onw =8äÐw¡ñÁÐÏc’�&¸?þ~û‘øˆ üw\B}Ý0ÉB“ .ž¿ºúáéÁ5D##!@CRù,&#"�~%;í@�o±™ì÷­Z¶8©ÆLS�áM¬Fù©„g!ßt�aÁ8 vØVIìc.5*­(§W�†Ëš"½»ëGÎB­ß^Õ|÷Û†ˆ:Í̺©àE¿IE`Ú–Á†Ýp¹|Én[ñ}¬êÛ…¼°£�~Ô}…O©ç�WòàçHIœÔœJ‰uâûw†SûdÕ4ÅáÐŽºÝOÝTßU"ÆÛ? "œ£Í´�4°MzòÖ…ºº]XÓ÷òCµ�î¿âÕÚ:uÃCOc hG+¸Yái|`’C›N¼mÐÐF‡¤³ š¾Ncµ —Ä!@†7}1Û$ÎÖEý‹‹™èa#\†âR B€ ��E ÔRÄÀrE©ÉD %[÷¼$¥èn[Œ‘3Š%·¡jé9®JvÜ}Yµ ˜É�kÊ„Ôí¨9øVß<™-†ö³?þ¤ ==ºæËzrúEì1ï�hó‡ˆðÓdžÞês¹/šsqjxR|»Ðþ–šPÑÞ§°a‰¢$J‰n1?@ÆŠrú˜Ë¸q5šøÄiÙ˜Ãa`íÂq@ì!h>usèdÞ¢)Š«ý"Õn܆WïÇBݲ~OoÛ( _µ÷dK.d!Œ#pæÄ_„ÀE¨úþ†À‰ö””؆Áf´ÛSCÚ8œú'32²zÍOñ?=Û‘k±aFƒÆÃ,à ŠKm�A (!@„!�úáN]"J„!`6±­�™ÍÑ#�C ;®µ”0½§ñ†púkŽíS°±œœŠTé9˜»0G±™ð;lÏ™€‘Hé6|»¾Õ;üäëPú“—ñÒÖ%AÉ�}ùIÿ_ö¾¾ªâÊÿ‹†0 ‰l@þÄ`}QA©©•}ÀÏ–ìö÷è*ô�„]Øn£hÚ­4|~Íö—vMCw QÛh´�®�Õ…n7韸íS´êЄ’ˆA$…HhÈ3‰Þß™÷Þ}wæ¾{ï»ï½û’2&oî½sgÎùΙ3gæÌ�˯6.¨Æß].[©‡p+/Œgß{C+Æ“ƒ9NX¾Žëm�ÄË;&û§ðõ[‚§^þ [í¤]¾T™B"0>�:h|Ô³äR" �H �qù™”DªI‹D@" °‰€Óe6‹’É$<ýho>Šc';ÑO/³&Óþ’SÓ�ž‘�sæ!-uˆ&myé l{É�IJ‰pëKΈâl«ÍP|)ö_®"ڽܖ��ìºÚ›Ñ|줯N©b§g-Ãò%s Jã Öò"�4pQØJ¹÷ÛX9%XžÿI;[OÇÎç°×ºÕµ· Ío6ãdg?08ˆÁäé¸ýžåÈL Å”ç’�cmL/ÿœ?®Ã«ï"Ns‰¼�ðbuKØÚ$±§½GŽG7±˜œL<Ò×aoX”�쬌0uÉ’àÑ’Õ#o¾�nâm:úqv07ÜtnsÍ�ü{�Þ’‰#xû]ÊmV*úÏv#yÖ ¸íöÛ0—¶· {pº ¨(ÏÖcGqütO@ήÃí9w"s¦�üÂ8ò 2VoC™»[ëýe×o/çÆê ^(;ðä#Û9âܨÛá±%sŽÖ'GA"F½=8v´ ïþ�hj2Ø¿´ôÙȼéFdØ‘7bªŸò8}ºg.�¾¦N˜Žä´tÌŸ—‰…sgÚÀ\ÓC¼n‰®ðïØMo³~5 ƒL%ªGo'zIÕ¦ «ºÝƒçAMªÿ�Mo³Üâ‡Y׉Ãhüý»¤Éüò�¾àæ€.Káü�¾þÜáþÉ/©¥ý0«‘DíëJý¾²ú›pÊUìŸÃýèè8�öS¸ÐÓØ%é³ç#sÁBÌŒÐnfmÐgFŠö\Ç m}�lpÀtÛœùȺ9 #ÝõE‡'ÿ¤Eí~"ÅK¶¦ÿ°ÿLà�˜~ú»Ú ëc8ý>iß@Œðž–ŽŒ¹ 0/#Í¢pžOMosDÕÎ9Ú˜Ý뤊© ptQ­¥Ð˜/Ü¡a™ ._;÷£— îíZ}²6u”Æ=Ô´Ùñº¬Ûqç’̈mîèÚ¦×^tP;h:N}(ÑÆÚ›“˜MöÐ�™ÓgU’Ý{Á�ͼ¢¹i�Æœhô?ù Ü~w �9'ØÍÊ—®§}GZ‡ã:–ÕÜpc2²oŠl§®áa% ·™ k4ôÿq¿§üß¿¨Py�6; Y‹“Ãëm⯕ø;~šø£¹ fŽN¡ñ´ëÎdd¤jùGÄì('öm¤ØW²:šá šïb ιíãX27ÍGápO;~÷&zHèØ\Â'>µáÕÙ?1Ž9ƒøh:I°�IÏ�h9Šwˆfª_[˜¿0 Y46{°±+�‡�Ÿîf ‰ê“f¦ß€ìeÙTŸüx/lNŽ'ˆNoh1‚œÖÛ±ŒÅâ!gñÔÛŽVh‚Ê™o,v„úÖ‡Ð?m,æçÞoóÚ™oÕäΉ¶™8r¦ñåkKý8ôz“ÏÞON[€�ç¸àŸN&?AÞ<Ù㳦»>�•®Œ°" Ÿú̃íKgËG?F‘¾=ÆòüòG€Yqv”Î,\I÷ô�Y|`K€Õ@¦$3'}á*úU3¯X˜“é—…«�mtÉ”@`»Q±p …i�À¬·éfµôË,£t ìÕFfQø3 Lcͦ0‡ÂõØNqó(̧°€Â Øž¹ )ÜHa…, ‹)ÜLácn¡à¢p+¶ïïí–PXJáN Ë(|œÂ]>Aán Ë)äRتŒ¹£OiØSªÃl$a\­Ï�»�–=Üs¥Ñ8=; ìÉÓÊð”5ægt±¯©Üfº§•<ޝ²Æn]ÿéЙ:ÅÃ¥cXT¶˜2b˜G4Z*9¾4lԺȫl²‘­×Êe¨³A)p‡æçË×]¨˜À@e‰y©tØù-3¯xÅ >Å<ò”¦�¥¡²À¿Â=vä«O�ÉP>Y9VU=^p—+á$¬¯­N)ô˜Ô#“Wj—µ&íÒŠj'ïEÝ6D u6*Åy.Ózò”=�gl’<¤4î+¶Ôgžâ}Ê™!«ìú”Jó¼ÊF¥­®Ì”¾¼ÒÚ°õhUÚhÞÛÉSþ>…‡æÔ>±}啇×G±×'µ©|Mæ­ú û}O|PênRÊ <¦²Áô‰+¯P©n2‘ß¾6e_Y¡âqiü†ê vÏ­”V7 u#r$ê!OL}€˜s¬g!2Æô–�`©cÕÛŒ«8a6Ц”™ê3ÉB›mùŽ{=�¶pWëÆQß;Õ+J"ôuMåyœlº”Bj›¼m\|°3´Jt6f¸~Ý >ÛîS ó­õ«kw~™ÒØÉkôPòƒWt|”·�áÓݨ”šÊ2”‚Ê �äÏY”«ñA�’�H,˜µTòuêVê ªP_`›Ðï¹”jkƒAÿxTç§Èrsòg¤']JAYi®ÐÃi>E½K;õ¬:ˆqïDÆ•Ô^Šë,åùLm±P?îư¡5fÿJ¬²ÁJhâÇšùJ㙋~*O©¶9þ�¥m#0¤´Ô–‡ŒÇE¹!Ý\^«œ1jÆ™Fuµ¯¹WIZÐçi,ø‘rèùnîšzÏÿ[ø¯^[åôµ]R ׊ÏjåÐõOw+/·}h+/eÀ«äiìTžjýˆô¶WÙ¹©Ë”΂çLäüC¥îùÓç�>qiì�wš„y ·'TϲqÞ™F~žIÕ¿yJƒñ´Q ~œsjU-Ø žJŸ®oÜg1GGs ¦}|ŸRWY(è,±Aɧþ$Ü<„F�s±XôF\ô¶c±8ÈY¼ô¶V“â|‡Õx[{FKP9ë³êãh,ÖrJÙW Í=…›ou¤m& œ5ñ6²Ë£¸Õ1`ð—ì…ÎSJ%7¯ê‘¼ò½0øÏ�àSŸ³£c”Ø}zòÆÊ9ÕÝV ÌgÅ|ẆÅ|Y̧Å|[ÌÇÅ|]ÌçÅ|_ÌÆ|aÌ'Æ|cÌGÆ|eÌgÆ|ġÆ|i̧Æ|kÌÇÆ|mÌç6ŸÂ< ÌÇ|rÌ7Ç|tÌWÇ|vÌw§úñ˜O�ùö˜�Oõ÷1ßóªþ@æTý„S(΂êGTýŠªŸqÝcAõCª~Iö«ú+Ù¯êÇd¿¼�“Åõ~Pvnæ7e×'Ø ”lt»„Z1kŽ@\t¾2Ô R+L­@µBÕ V+\& ª`HGqÜ´M¶rò„¹¥Aé.5îìOõ)åœ&ƒÄ~:°t‹‘£xàTmHÇXZ{J—Q|NûÍP¬>ìa$âêÎ/3ÈfõœoâíVÊÝÖr`&'Fت¨9Á§(n¥ Œƒ†ÑÎð£éé0üz”ËQTôxÁ]¦X�?›öYðøz)yUë“ÿë%²‰àîÆJa"žçIϧIi룓ô™fôëŸÏó-×¼žŸ3iyåŠ�ùgkòGåî�RÍ ”¯•M�§Ao>�kü(ma|ÎÔ§¨Ï¬t`,²+ܧ,h˜ðs·õpzQŸ�«°ÖÐIàÓc\ß[+2âó‘òäÙR?ƪ·�¢œ9‚Ywƒ0!äEhG|›²ÛÇ‹˜Ú?s¾Ûœ3ýp¢ôuÂD�O’SŸŸ1’I��iå(v†Ïn¥,ìÂ^ÆÜJu› �ŠÀ‡K)«Þ§Óÿ|ž�¸:áå%2û€e+fC§öq}³ [têO;•27Ç««4î}{_¿Ø–+ÛPo¸ mR§ùë-–vî¼"O˜Cm`@©-mÆâ:“E]´˜Ø-ÔG�ÂÖRÄûpB6�b}†“1ÿýòk«6Ö¶‚ÝÐ)r^Û£�õ­¥Ö¼�ì#½ :Š»”‚¿?géDeŽÔ¼ç­�ÅM?±vÄòã�ÿ9ždÁQÜ¥”ý¬_y�sóùãŸþSèØ“œË…wY8¯ùý9’9ƒzì²éFqù—±xê9Tw+ª¸Ê¬Ú´�~á¸x€4²(–„ù¹ùð̹DU௃³Ç+PS¯%²–ú(ñ"À&-¸Å·ÜI+I‹µî}ÙºÆéòàá +�Amó­_<ƒ"®N¶çÎCzK6f±µ7cäè:€?_ºIh{på¡ìk0?uoíû.Š¸Ê¬Ø”ƒ³Ná±ÕlqZèqàÛ«HŸq•OIòŠË°æÖù´ÏØ[(Þ\Ä•U�œô8¥<æ[ê¦ÏÍL\<…eØü¿nA÷ÑŸaýÖ U›±jÑ"4}s¥>«?O‚§èpï^N-ÊlÚòc¬}e NVü_ÒÚQ|p2­,ëÓ �šÑ�u؉y«¶ëˆ =TöeܺˆmuÞ�£u/¡¤ªÞŸfA²oÙ¢îZË(jw^>rïÌÁ ÓiÉc7ÞúõóB;o.ÉÅÖ[Zðôz½í_6©æ[ æâÌoÊõËPœ_€î“ún %»ƒòÆ©æ~Æ·„T-q Œ~Œ]oûKâå,vÌ:°óÏsÀ÷²€¥{¾„;¦â¿Ê‹Q¢ÚR*£qÿ�Oÿä'Û™~8‘û:/-~þ£e¤ßÙ¸šŽú­xáðlYÂÖ¯Fv8ÇçDL]@e«]�Ë�üÏä"ç–0�¶½ï~ï-<¿µˆk_õX³p+ZžF/ð–ä7cëšuB w^r®Ÿ„ó¿o 1A½ÿÞTQ 8pâfIsW�~asÀ¬®úþ>”n4ßB|øÄo‚Ÿc`,äÝï[æî;&Yt`WözñÙA¥ç"{}„ãìY¼{´U%�*gë©C�øñk;�‡rª ¤`uñOQX²%H‹V­ÇÝ�¯`%{·!x�n_¿ŠkSÀ¾¶’ÚS0£#ÎȆu¡”QuËô~ê£ÖS¥¥Þœó9, ÁÂ߉¶©•Äb„ñ’yØ®êµÀMÿöVú¢m³ßz/m/ ÖƒS" ¦glþOÁ“?aóè였¢Â,žòªË>À‹ïû¯²¿/~ë"ýÜU†cÎÖ»±dLJZbŠÝ¼4 1–¬à­—½(þ¥Z°ã¡ ˜Y;obs“v_ÛrIHøIwrfO@wë0~ÔÈ{ ã‡;¼ƒØ¶´Or—�_yä*¬p]�þSÃx¦d¯©÷�"3¿}?N•-ÀU2"ùõkMM¸Š÷Ô"óD9ÖqïËЃÊÚÍèÜ“‹íª1WóSï߈%ºáµ“cNC^h\¹F¥�% ¾¾à39˜DöqC]êì„´o+¶MÏ7Be£ ôa¬ÈÎ@?ÙÏÐx¸žåÉŽú혷i^x îõéŒÞˆƒÞvh,9óW’þotz[ŸKLç +g]¾±?Á俸¼w/JÆ/íÂvnþ,* ¢m› ,gAíè)FíæL”箇O;oЈ¶x6/>�ÜuÚüGí+Çñ�k‰£C|Š™ògÑ�QFÃ÷ÁS.ã�ÑFÀ®GÛÊ+näEO"ÆøÀ{áÙl�äÅcbyÉ€²Ox›8O9h²½Z_g‹RY˜§W·r&®x³zc ú•köËБ(¬@‚¿õÊVjÓˆ°‚*Ü j]îq8¶½ ·ÂÍO€ˆ+ÙCÄ“K©lWÆwëù¥7%Ä&ì ‰Û6•[ïÅl’‰þrä|Š2à_ìʯÔm#Ü-l%CzI1}C@ORà|HØÜJžÍ2ˆ¯îƒº7HnëBÛÞ™ƒå¢üÒV¡Vo(›Póe±^ìãUW,®îvì ¡?tåq¡±ÌvÖ‰X�üïÑï¯ÞºÂº°Ö¨èÚS@GÐ+¶Í?súÃÞ¶–B& r"l=D<–—‰¼™®¨×p®>Eü­t`´²§QEl¨%d¥²§¸:DvYÎ�M�7dJ ïûéw+åÕ Jç€ñ+}m:9s´3Çû€(`²zDØ&5°½žUz;÷"×ÛÎbÖy°”Ó¤ÜÅŠø"ç�Ò`ðvˆ•|Ûá;â41öçb›‹±N°¾N]YÏìüŸÓèVJÝœž÷è>¡³1 ß(v”OÿÛô®‚r¥¡­Ód Ñ>¥¶TÜšÚ¸¯ã¤GÏGm_ÝÒ­{ur S©+ÏW Ç‚ËN�Šòbß>PÄìL­¸;Kp× •Hî·AÀÍ£Œ³Q5Ц{ã¹ì i�¶ÔU*y½^шw’O±Þblç‰þXŒ:È·µI§ÚÀЩjÑ~¤7åùwi 2A[®ï µÇõ,:qî¤lˆõÐgž2Ýøi@©Óñê*>ÊŠƒmSͼeé“€Îñÿ²­A�߀ÒTë߉ËðMJ5C~õo³7r³éÕa6¬ìû{q›çâ¶\÷%ÅÍ¿•Kñ²¡o ŸyµWÉæÓ}º×Ðv ²'¼Q¬½œýÈŸHoÓ6Ôü10¬ÔUœW’Öö oÈü'‘þ¤M½:Û…2T*Ó•æsOܸ®oËߣî*ÁæÁøq¨KÙ§n›¤³óCÞšstÌ©A´A„·øh‡�Zú¤˜–Ìël©ó�Eô´,u‹m‰ÞLmQzœÞÞ¯xçÇtE9sê°ÞpRoûõcŒc±8È™£zÛ°ÅqP$ã‘D•³�±˜«PÑ¿ôÚ´Gü¬ësÂñîDÛLD9 òåëi§”€¢jÓítÃ}šLè¯ æ‡áS/¯ºö¥Ú ‘�Qœó}èÉ+ç„›|£XóYò¾LÞÇÉâF¾P+ß©]ÿ+e=º‡]B­˜5G ®ê$f¿ÒQ<&´…¸í¢ÇÆ·'ÍØ «‰ è ûeè¨Ôu,ª£˜m‘J²Êr,5 JuùÅýTW/¶¾�%âÊø*¬6Þ:[? f½­r€Ù>{ßyŽ šÈùe€Õ]¡bÈeŸèh�ô;bb9VòlÂqŒx5–‰¼¥FßE ­7ˆGâ»Úz®£Â«¯AtDZ,Ze–m7ÇOáù©iÔ9`LÐ@Upîê&ý¹…¶'³-ÌûÄ­ãµ =J‰~Þ¦ú�×�Pö…ÛgÎÑúñ·¼E%{1V…0@"Ì<¥©BJ9tŒ�¡�É£tgªyG‡Ñvø"fŽ÷FDÅpM˜:´À%rYp3ÊKØ2ÓÌÁ$~›Õ“•|DZù£1öO"αõÉÖ× rIu£Ú‹�Åo“ ŽF��iä(všÏ¡!ý”±QuŸR 9�î. óé=ô¬»¸Ö–~2*]½&Ê‹}{ÊQÌtßt֩䉿Cº~° :fþÅBÏú„ïb>:Ÿ|èWäS¬·ØÚyÅ1ê –ŸÓmà”ÐÇ2½ìo/Ý:4YK…`aqÁIÙ­OöÝi£Âi«pî3FŸ)r´m2B>sBý§™É yàL›rÆx?`#¦¢º&:Š™¶ÇdÌ):�ÝO„n?Ýø„¸mõÎWÍ�¬�¯^¶¸®lµø^±�£Øý�íë­¾e�à˜þ“°HBnXÙÉoO½©oÄÚ‚HG„gº¾�' ‹ÙœB°kíCÕPKvvÌ©æªÛÞÖç,v+µ§ ªöÓ�ŠǸê�J)ï�ÎÛ×út\oÎémÆbq�3'õ¶Zëâ¯(ç¶Ç# +g´­°03[ÀúÙ­p¼ ãƒhÚ¦øÄ“3�/^èìÉn^YøN¸áÞ>EA%;Aœ‹fãçÈÇ(º¹çò&})—ý9á&ÅcØQlwªgyHœCàäÛ'1ì\v ›ÓÔÉ“Ðø)L§-oµÃ…}-ÿ�\‘o'¨åá\ÌöEæã‹Ÿ2Þž÷–Ü\Ó§Lo°%"q8bå3¯ò¯ · Fêíøå¡MŒÕ£¯'e÷jÑqúe«Gÿˆ3ïqüTPA›‘chN¤Àó me<š‡uSŽ˜²¨ûá1Ô×ͼçK(満M;kോTøLJ²S‰s±¶LÓõuo"lW'ð”‡Ç¿¾Ú–~sâÄiÌR\ØTìRÖ\R‰fƒ ìyãÂv�eî‰?ÿ‚ò;‰wÏÄ0‹#ŸQ·ó ê\ÄŽørÉ�¢N·�¹´Ýb5gÖlÍÁÎý{ñ�6§¦hùÁÚ¸oϪ–&~¯"FÙfê�¸K1ÜHƒg3?ª¨À+Ç8{Ãé¶Iäô{EøÌI^åw`1ìñ1�’‘‰ ÝVÀ:?ý·&›Œ9¯Â–jÅ]£Eý1ïØõý�‚Wo¾ÿj|ý“ì} ãcæ''ãëÜ­ÿ88Ä�…‹^‰ÇM†Ó@IDAT¿:Ù¶Þjý÷KøE0Ë øIåT‹­ö¯ÄúÿÇ)¬úp,²N%XÒèE<Èž£ Μ¥wk¤xæbzP7¥"ó·vOhŒñsŠ¥-_ó*Çê¹ögKZ÷ÿ€[»P½g‹E}ÎDÞN®­W½¿úŒƒÞ`(9§·�‹9!gœø¢QëíЬbº’¸rv/Uq¬lÃrÃáwVþíÃ\£Q´M ‰-gž»³4û&eViCÜ´`z¤”Y‹àVÏh’•ëW�æS-Œÿ�}Œ2^|¶š(c› IýX@€7=›w¯Áý“*ñ­Á’¹†3œc�¥°4>¿«ßç¾á˾[Q}êux"0ÄÃ2Ú Ü·c_¹¦ôLõíoz;ÁoÜ™=Ç”B�ýäPÆôÁQ¿!N4ï.Çswž…·×`V“hMA/~ÎÑÜÛ{‘;KÜèû'ßæˆsãç/lð%ÊXŠ<7°½ÞÿHÍÿ´Ò„÷‡úÃïãmÍ·N;¾Þ‡LRÿKsó€õû*5h=Ù�»\ÁÜBŸqÿn1U‰sá)õPv¡9Œ‰+3ïy•yÛ±‰d!ÿ¼-œ#p´>­þ“¨«×to2™lÕÒØ�y{Úñæ‘7ñæÑ÷Àš{JP‰%#Ù{„›ü±‘ã8él a?I,˜õ]$M¬Å÷-5�¨M]´ÌçôûÃÏoôýðXêë2ð%šP-Ê |É´j=þý[÷á�Ì`#Õ*?$O>½ho&�Aá½Ó$�šÒ@rr2Þþ)'et[¤$„Pá‚«Ð9Ý&dlëD¤Ô ;è|(ª”^…­/…k5¿ l¯VòNÁB|6ŠoQÛb�K”4‘—¡f¬[x?}#󰯽iü-î«h¼øŒ¾�[QëÄ=§Ú@}Oü^ñöuë}ß%ÁY§eƒg&wùMü©Ïøx.Mkßnê´ˆmóôëu\nlúKnUwg´£wºÌ+Ÿm¥<„“àÕ`äØOðÜÒñA_ð’¹ qÎ[àO½š“YHhpróúIÙ¤Cð™(ص·Ý4ñ/\V“_½¯ó Y\ ›Ã'õÑ1ñK}$L›©Í1Ô½~[–,ñߎ÷˜3H-pа- S´ð¼ê)_} —ÕüÉ^èmfâXŸÎ÷é~6œ×ÛŽŽÅT¬ù_»rÆ?ˆG¯· 2‹áRÂÊYßa,Vz_ŽùXìÆXÆb‘·M=Ü )gƒz*µóÁ!® O™† v¬ù-}Ãý¡�o¸«OÆ‹ÏhÇ(¼Y=^|j]Èß±�€¹:öy“$©øË¿§7ÈjT‡ EK6Q "]äæÜ~Ë­øXÖ"Ü’�…´ËD2ë'1«�fô_â> UIѳèZSÃHÌPg­Š7þ,ã›B9È7 ÎUÿ;M¨h¬Á¦õ5«“úæ?øÞtâ !«ô£uïOïrEOÅ´IÜiHt¦ÒÄEð  q¡F½‚�ÛÌ«ƒI�"“¦ñ™ÑÄoü<àºm>¦\W/]�ÎåW_‹·É`¾kLNœ¤bí¶rroVYƒ§l›©ñLDGë“Ï8Ñâ¤r¸ÚƪÅób¦°¿ý~ø�…Ø^Qo;¯©“Ã,~'}€mÀì$Œ³þ?_{3­Zê\Üí&{‹À} š&Ú~x¬õu«¿„ržìÔÃú�¿Âçžö )Œù>ûqhÿQ¸n» w–"2g*,»YÝÃërGÏYÌR2ïE™›ö\«÷3ZRþ+ìX½Qóqô¼�q›ExÊ¿hüö §XOS²þ´ý'¶Ó*þƒl¾\¿ÍçÎËÇÊ;spë-™X”u ²2LW¬©#^|FÛ΃„9‰CHÊDñ©jü|ÞŠ}—km- Ÿ‹åÌiÙÐhqᆠm0‰›¦‡ê^;IN2¿ìÅ£mŠVÕm˜^Ì5VF0–1•}ÙÍÆ¡ó²ö· âEá±�ð冮;!•zòÚï?´=®[ûiö8»ÇGhløPHüÚ¼xM¸bu¢àD÷Gôö÷8Ø ‘w ÄyÌDÜ•—áÛ�ÁºH?+Î ÔoßlßF ”'Î÷S}:?€��Þ°ï�ÞŽËXLWCaOy9 I½ÞÉ*¦ ,g8*È{ÊÕý½1›ë¡±˜ý)6 µˆÛ¦öhâË™F«½X/ŒÄ6Þ|F7FŸ¾{õ(S�hR�ø!0a‚��Ns *(DwÔ`éePæ5[—b¿€ßv�ö˰“åúÅS°Þ"aOO¦M›f‘"±nyn¿IÛ:$±Hs�š<Ü0;ÑݡѰkòÀ0÷·Î�‰-ä' î6™Iȸ�MZkSw‚›Lç¼ “R&_ëÛÊZËM+É(¶à¦– /.Kx,’iáÁD8€µO�£õi¿Ø‘OÙ݉Ó\©7Ýtwy´ëÐSHÏÙñƒ½—„¥!Ï��> „í˜.Ä„ÙD±Õ·wY½f3üÚ’˜ˆõ‡cé‡ÇZ_—‰¯ì+ÀîuWqÅÿÅ/ÿ�¶„ŸN‹�,ëÁi>»ðÔštlŽÔD§VL*íZM×XM°YòëÄM§1c4ÍÄg·�£8P5ßÇkyX�áv·×½ÄíÚàÂæûGÊQ>_}¹ͳWé õU¾ "êÎ/dzÿü2-çñãÁg,í\¥ÞÉßøµ�¤¹T91ñQí.Ç·×ZíSã$o|^Nˆš÷­¸!ÝB t…È¢ú$ìoº¯=ÂÇ Æ(]]œUå¹ ×ù›$ÿTį¤1§½¹ ljmùÈö¸îš«#£Ñì­f»<ô^Rì&½|Ò‘|ò F�s�ZÙâ.öœ×Ú fm 7¶0{.üõxôéZ©±êíx�Å4 �ˆÅ¢·�(_Ë#aåL7 ·�NïI�§ˆbQ´M–ÿØ�³ˆ�ð%GÀ#Ãg´c”™÷|Ëš±|k•ÈhˆïÃ�òºgñÐÊѰýDÒä™D@E !Íc•8ù+�ŒÆÐ´Ñ£I£¡0oòDŸwâœ+’éșӲa�¨‰¶S:Ñ6E½d!Øöˆ�S*rˆ:Ô×}ýñkðõ»¯´7®V01åÊÆu18n¯›ˆæš)˜Áø ;©`hx¦ÿ™ù·–ãTc.ۨǜ1:}á*DKÝ×1cˆ(™†Cšˆé6v­0x8âKNè ¡ÐXôv<Çb‘ñ>±¯·¥$�åÌšOZâ¾€R›[Ö�FÓ6/9³†#Æg´c”$ܳåt~jžÚU†}5&"P�Í«âȾ<½6+ Óò¶D`dkš� ²”ËE±D £§£'OÃkµ{°µD·Ú†¾WÙ4ðBÈ÷oú›ŸÂ”lõ­¨<4Rš%†c½~<·f 6ÕøÑõ”5¢zË[P‹exÐØWmkKTxcä¥ÚêhO)Ú~ò(2“zðøŠéÁmèlk±]£²jÜ2Ñ8@@ü&0wÁ¤¥¥"Awb‹ºF†tï`éW#Š£ÿ¬hÉ æ!��›Ý:3 _:'fæ¬æÈÛô…ËôM¬i×ßJ9hômÁ¦ˆ1ÛÑú$4„µç‰ô�qþ»‰c‡_ÞïnE•f^P™»ñ�/þ-^0í+(I"ó3jñl=xjcŽÐ/«än_þwÈ鬦mYÕ+#øë¤løÈ~ ïžñb‰ÙVÚ´õ´hÕj¼Æ£mòß‚EÍ[xŸlúÔËh6,I礛7?‰ÆuW$ĸîª)ZÝbΕ˜33§4÷ìxŠÆyÌ ”)ÚZ1`Á"ªÏ´ÄR²õ³ñÐZ‰±éí±3‹^okX9KT9Ós—:‘ØeƒÑÝŒw}ŸG0ᡯKøÄƪeìµ+ÿ¿¶©–P‡w:Éw)ó’ñŽŸÎ®�¸³ÑŒ^�¥9ÜÁ§?Ý:AÚ°]ôBGWÙE|qkíåD±qÍ#ÞcΨ‰OÅÒ»¹„“�Î×g”´ÅSoĪ·ÇÎX,z½eµ™<–¸r–º`7 ¼Ís›}h0»‡ëcGÎbc~ìñ�ï#6”äÓ�è�Žâèp“OÅ�¤´,<úÜAÁ™jXLR²°õÞ¹K&ƒ<ïqÔ9´z+Ú·ö‡8�ÔÌ•ØSW̱Ԍu ‹ÑÎ]‘Q‰@Ä�ø‹®HÁ­&;1mÑ·k0Ö\ˆvÚæôs9êñÒoNpçºhÇØÎ9V{6f§§#�_ü>ŠÒnNiˆ÷˜3&'¦pû›4oÇþh(1Ð`ü¨ózƒ•ã„ÞKc±èõ¶q­°«Ñ¼“°rFÛ7ÌâXÝýƒ_›.ªëø]­ØÏqÏÅ#:–ä,þÇ:Ÿ¶}±€$Ÿ•D‰€tG œ|,r†½¦Þ-³�‹8¯�ÇtƒþŸ¾f<=ñïOnéeœ©x5IØ®5¯uˆ ¢<ËXYˆZÚŠN;Jð™/k§£‹Æh2c.r¬ðiob“ƒ#õZÜÁ‰”Y{àžÐ¢).nš.û¾�fç†aZ­ÝcêœÐ p>MÛd«>ó8R*Šdº@ãÀ�vq)þíÿ�TÜ�Ëç¶?ú¥Ér�®ƒ(ÝÍy�é àaüÄT ({é°@ƒzÒóê‹(QOè7ïËî0ÛÉñÓü܃c<êl}CƒÜR‹úZ5šTnÅ“�-`G¾4ÜûHW\ ¾¶ëå0í΋'ÂôW'»t‹K´"†OìÇ£�­Rµ«2�ˆõv¸ ­î§ÜŒ ù\‚Š]8h¨¶ûQýƒí\ÂQˆÆÒ?9IîìëTö—l( ¼µ õ%ZLMøu’O�­Ý~†Ó“B±^Ô|ïQîƒÂÍ=‰Æ>€“˜…p›�û¿¡6Vê+üŽ~5Ù#_¸C�ŽÐï0ì Å.ñ;¡ôB·Û½­‰Æ'Gb,:(m çUlÌÙÊHŸP*À÷™ÖÌþ{8ó²~ûrì|ÕP¹sÏ;�—l�U[Taâ¬ëÂþ]¼U›�7s¿‰CÛLÍþ«jó×ðr;U´Åáí8�#»Ðâ™Q»•r¶}•›Þ;îEùkÚ G¡q݇aìKÙX$ɺo2þ’»ÿµÂ~[oÍ÷ˆ¯Õ§Ì™NLærW£SatU½›ø¿ñsF�@ÖÚM•[¿öc›õÙEõiÝæ¢§ŠžŒƒÞ@<ôv‚�Å¢ÖÛ•Ç)°æÙ_ Ã"­z+‘ålS©[%Ó7‡öÌ#ŽNàÉGù~N{dDb .gŽa�€|:æûp $™‘DÀ>œ%iÿ!™R"9ýx6w"²܉ÍíÆ+ÊúO`çæ\n²É�[®çŒj¡©³ÇXýÖ|°ÛVL¤ÕÚ÷á�Q˜8‰ªm¦.A~1Çes æmx Â8u‡ž{«Šê94бö®P亓 ZJÖÌÃS‡Dý0Üu¦¯Ÿ[ávOÇ.M:«fóR|ûeñ­çþÖÜ·œwú¸‘Ÿ›ÅÑ:Ž¢×ç¬[øÉúäí9q²Ã{�߿ԣŒø‘ùÙ‘Ï•Z_”‹{·íE‡ÁÊoW3ß0 V…¬jÔLs¶?þjHïjÞ�{®ãú`®`ˆ]o ÙEx’‚U›Ê¸gê±jÕ4 úØ‹;×cÄ×6pTù£±õO!ÙÅpa¬õuAVÓîÂßs“QáÌZÇø¤·%ø¥F%¹Ûñª^ñ “£gG.Ö°Qá 2¿HTö‘ãf¬eÒÂ2·ï:sïs ¹Ë±jnÄŸA ö/õ7ÿ“&fcçÞhï1èD(+6~ZURÌÔµòöðv ¥N$>ƒÄû"1è ÇÛ@¿o¹°ËCyããX\@˜ŠÊ……�Û—Ä!®ÈžCgñ” ÚÀ9ÿ{'į-õ£fÇç„ïu»KiûmqHä|Û¤o¿eŸ`U!w޽ث³áý°zÑüòã˜4{!ªŽšnõãP 8—Í’õ“ñI.»Ý�/zCl>_ï‡h~¥ÛVŸCÆÇ{Ð(Ø\&NDSSPøÈ-§ã cõŸð»?;�{Ú?ÀÞîÁ¤ìn¸ŸÑåx� ‹ë˜3þRïB!g›ÐÒW|‡ôvB Œžöfìݹ §¤ãÏ+âû&¿³}ºsz{l�Å¢×ÛÆb•Š•¸e:4]¿c¿áxVx>�åìú< l_5;_nÕæàØÜöš…éõ×cKÎx#‹'6Ÿú>"ƒE¦–8‚ÀÈŽP!Yf2VH¡§æŠíXE�M–ä¬Ã�·f"ƒÈ‡ƒ­%ºiø¼/㆟îÊÀº¯æ¡(8ÚŒMKÓñÓ‚bäÞz Þ®{»«š}Ó1;yš˜ñE"@.)[™‡ÝÁ2ê±~él¬² Uà}/p|á¦ù å]Ò²»k¹­Z�»;_ÁJC~ͳŠäNûË;ñÊ›1•›ù›Lï•UÔh¹Ôl^� Gn.i×z{'cóeX=W7z×’$T,aù&cqÓWÉ ÃU¨Þâå¾?¿9”D«‚^LvmFÙ£«…÷Ü5ІwÍîÀ¥fl^¾›ijÒ㡌è% ^œn+ÂÏv­·QfO¤Ýƒg« °p�ú‡‚Åe¹˜IO³áùÉÿ©¥vUÏž£´J;ʶyÏCÅp-×·U›1»ª¥å¹T#ƒx»v+vsm�1Y\÷%d¨ìò¿´�ühp¼|{}ðêæœÙ¨-(EîM”[ïÛØº]ÃÓ—ÈUŒ¯¬6Ì-˜‡/˜K.Ê]ˆùÅøüí31Øu[é� þp—ãžP6Ÿä²Ž;YŸŸø,MÌw h®Ø„ôŠŸ¢˜dc&Õå©.=ŠS6ÕϪiDšÔüÎÁ2T,×Þ@ªß½³w¥㦔A’^/~_WKº¼ÞOµ{qã5 kM>i„ª üWm]ŽªgóPöÕ5˜Ÿ:ˆ·~ý Š*ØówZÌŸí¸ü7½šiwm@™{«6ÉN‹_²§4�Îþ{‰ôY}le8ótŒý“3Døsk}Çû=›¾ õ7Lï„Õ=NñIo别”–ƒmô6±ow­ö ¶ý…-¬sà°œ’)4cûúUð�ÄÜyX—{'®Ÿ“�äÁüæù­ðu\¡ßXw;wfM(>y:cÐA·�C�ÿ�¦³‰DOYZ¢3äh!\yc9ª–n0ÁíÄ™¦G�íQžÕ˜âq” Fm¥½pRm°�:B}”(knùžPœÒg\Ιk¿CýgW4Æ'þ»ž<üW7¡·“F=~�Zš—¨<—Âà+GÚ$<û¸Y[†ƒoG¾·ã"оšŒt|„èÎÉÃCx²žwÒN±ƒ8ùøÖkðõ\À÷ÔüŽâ“wŸÃ'ÿ‚¾­¼ì ôv=>Ä/ÿk¯qŸüäÖC«O†üê–„ïSmŽí#žcΑ¹ë«Ï¢p;9ÂÔ|ê‹�3»n6~Í¡_[:‰ÚŸïF½ÖýÁN}ªYFõë ÞpRo�¹±X´zÛ¤Òæ~æoi¼½;8Þ®/Y‡ÙAáñ?”WÞ„b#PíHT9K¢o‘5ÐçaøOIlÏ]Œí.7�¦ÏÓô³_èƒãé`Dã-±1'gQ‚�è|:çûˆ ù˜D`”`Kí„+(�Y¸’îésbó�Í{ª�™ëj¸Šâj`ž,&ûx W[³Ë”@`®¡0-؈m:…�p-ý2÷]:…ëaýþ6ë?›Â ×S`œGa>fÝ@!“ÂB 7RXD!‹Âb 7Sø…[(°nƒ¼s¸�‘/¡°”û�Î2 §p…OP¸›Âr ¹¶*cæèSÊÜ`£›¡@iê³`n EÉ›—K(ËSÖh‘¡Ñ­neO¾˜‡H¿GiÐӨ׍x8ºÊ»�2ö]kªÌ胻Lé4Mû�Æ2�XG§ÈWh•5ð|ô)å-�®}Må\™x±†F�;ŧ}Úmâ¡ã+æÂ}’ ¾Bù>£��Êamw—[æÑV[jý|ˆ¼¸Cå?”°8]‰¢m%}-ûwXQš‚=MahïVöºíaæ*PÌUAŸR®îô4çﱬK•ð¦r�Ž äc¥—ÔgGâWlcP¬t‰=NÖgËžü°uIÎ.�M}fDx×:*2¸ò-â.c}Ѷ¯ÀÖóy……aú1›:�øëxd1SaÚA=¨>üuLodz¾&¥À®LÒEÚÆ‚8ĉ¾²/?öñM”¾®©\´ÉÂéåºB{ÔBžás¨E)´#c®<¥¸€ë-èò‰Ò€}[9rÑ‹Î>`å8‚™Á}�¼-Ìt÷èè¾Æ2[}€j懵ƒDf£å3í\¤,z¤8Ô:ê°3æÓ�eÜÅuÊ�È”£gNʆXŸ¶ §[*Í�dŸŽ·Í¡3Je��NåhRÛû-ÆÁŽBïˬ¯¹WIZÐç”Cúù…`‘*O­UÓu*kžðïè#mÿy�ËS{F+G­Ë¢\Ê}À«¬ ÒØ©”Öiï|`P)ãx0§G£/ûŸÌùT 5¶qó•–5Åü 6£¨ç…v¡ë#y;ÕØNsjÌ©aÀ— =Z*±�¶ðsºvå*�tNÎIbÕñÐÛÆrª'-Çbq�3A>uõÅëB>NoT‰ÒݸÇr9æ›c>:æ«c>;æ»Sýx̧Ç|{Ìǧúû˜ï�ùU ó ª~BÕo¨úU¿¢êgœDiYPý�ª_’ýªþJö«ú1Ù/ïãdq½”�›ùMÙõ 6%‹þ`ÉC"0¤àSÛ+Q�GnTËÃ…Âò:tí‚‹5G³#% O÷5¡Ø$;W^)Zúþ›ÞðczÆLeM4¢# <}-µ•ÈskùhY¼QIÛ”1M¤É™.0>\Gyw�¶ìÙÇ-¨'_ËSÆ•k#:uÏG®�¥áa…kÒd¦cÕÃ/õÿ†ücjÜ)>“&_ëë¥üùZÑn_*½¶~ç\f•w¶T ‰d•µ17{½GLM±Ì#sõ£êlBy�I£Rós¹éMÆJ4´üî°j£jú¸üFÑ6‰ŽÔ¬µx¥»eùnsª\ù¨nêÄ® 0žJÃÚÇ^!ýP‹Ü�_Z�Φ]п4"dÅ�äU6¢í`9'{ÜMŠ”ÄÀÓØ{‰™,ÇT ½d�ÿõH¸I/ŽüzwHy{¶!Ëd,’؉ ‚Í8 W³)àÀ‘Äï“:G×Gr4�…œsNLámc=*Ñv~S2ibˆæ ÊÅ~ÎàYw^*«P·%Ûà®ó—bÓñÑÛŽŒÅâ&gj8£·ÕÜøß´%à0ÍÅTÒ§ø�øT³Ïà%¬œ¥`õ7«©/¡ùb=C4gV\Ió6/á–©ÍÜ_r¢m&¢œñãñ©ºñ(¿ãåÔÉüX•ÿ ލSzŽðR NŒQö}„Ð(/Hâ‹@”ž@”Ý<¬ÒÝÓ_ãÏÃÅÕû‘üòiYÜèÜìššÞÎ/³Ö�Ò]×_SÏÙ*¶ša- µŠéFBÃ^tužÁÙ³]¸p1WO¼ˆÎKôÊvÆ<,Z8©œQž�at´¾�¦÷.Ñ7S'ã"å7/kæÎ 3Ò Ÿ±L!· ÷w åè œé¼ˆi Ò1tá"®ž6³fÍA:µ­ˆšh‚¢ØßuG›ßA'-›3ùN_ %i7faqfFäü ÷ãDËQ¼sò¦ÍIÇ¥Ó§I¡-@Ö-‹ikýphõã¹5S°©Æ­°DõZXGy¶Sž§.�ŽÄZ<37ß~榅Ë/A�3YŽÕ'Éþ¡×›pir:&]DòÌhú¥ø2;Üß…¶ã­xï4µK’·‰�X0gÒÂÊ£ÍKýæ1´¾Gò:{2.t aæ¼LÜH²ÏÍUÅ— ™»£ôw´âHÓ{¤wüòpuÓe3#×eŽR•ø™�‡¾ŽÕ‚|z{:pìh+.Lœ†iCpñê™È\p#2Ò.O­áfj è9ô8¦çlUOA»ô`Ë]ñu< 3‰x{ºpæý³èê"ãgÚÕ:ÓI¿³1/sAÔc¨DäÓ„ý¨.�—6«lô7?…)Ù›{Ð8P�%¤&ú»Úq´õ’IÞ.�¼MžŸ�;²"·¹�l›~"‡ÑÕÞ†Ö¶÷@£¤O.&#cîÌËH»,úÑáþa´BG§‚ió¯Äà…�h\w%f]—Dãº+F‘G'qâć¸4ñ ̼Z¡: ßYWbNú•HMQ§ÞÂ4ÙáVl›¸˜6µå�|´ =�¬ËmØÓ˜“Ç'qš—;Ñ‚ïœÁÅdjK“‡¨>¯ÆÌŒYTŸéTŸ£WÎë�XñK¬±X¼õv¬h‰Ï'®œyûéCï)Ôáy‡‘Bße÷ô£mõ½¡Š-aG‰üÆr–Xr 'ÖÏ&0ŸŽú>¬QH¤»&L( zŽS¸HáC lW£�¿êGús£4ViÕ{v~©è�Ýô×øs5Í/ÿŒU\��³ƒñcvXÝ㟱›Ž&·i}ÓEìæa•Îèžþ.®Þ�ä—OËâFçf×Ôôv~Ug¯>­Ñuý5õ|l;Š�¤H^“H$ãGñ¸ÄB2-�H$�Ë ±� qJyÌ·?ÚåÄ%¹…Eo—/Ÿ—W­Åƒ›‡C9Šåúíx@-ó 0|b/&.\/à‘¿¯ O¯Í®É‰€DÀ©·�qqâêpû~Lœ·.˜ÕÈ:ŠƒÅʈD`D�ŽbÁÙË;mù8«ý¹Ù5µþŒÒ«÷ø_»éøg‚qæx”‡D@" �H$‰€D@" �H$!Ðõêƒ;†°,ó*¿x:‰�ñ§Cb!³‘HDàÔï~£Ë­�~V:‰u ÈS‰€DÀi¼]´#B—E®^üÇ®bî~>V,Ýe8bdT" �" ņ°È‹‰€D@" �H$‰€D@" °‰M¶6·¢µµžû6Ò—oçôà‘µú�Øq·ÇRt¼ð9–êDÒ*—xñ»Ú �ó‚êmȽ]ŽZä‰D@"pù"Ðì_±pa:²×lÃs/B{WÛušŽaô´ÆÎ ˰n·ö}bwÙƒpÉ6._��œI.¤ u™T¤dC" �H$‰€D@" �HF6i¸x©ö=bž Où?à®Ëd‚p¼ðÉןŒK$ ˆÀðüOOW!¶yæòd\" �Ä�‰É¾|›kvÓî1âWÒC ,ij/ ½,¯H$�C@:ЬB$9‰€D@"0¾ðöjüözµ¸ŒI$‰€D@"0öpWcÏC—ÿáxásìKd9ä2ïÆÝ�Q‰€3$e¢¤û ¶õI4³9qR:f:“³ÌE"0~�z;ʺ¶×ù *ñü÷6b®ô¾D‰³|L" I¤ªI´eY‰€D@" HÁ²GÊPœëÅU|€99³„»òD" �H$�±�@ʬe(-¦ïÑ]u•�à”ôðÉ•«°dîåõMºñÂçØ�ºÄ¢2åúO¢ŒÚ€—ÚYµÈHI,ú$5—)i¸ÌTìåWI’£„F@êíèª'Õõ0ºÏü%Ž6ý ÿÍx½ô@/ûƒ©¸me.î[w?îÉ’ËW¢CX>%�Œ(ÔnVéŒîé¯ñçáâêýH~ù´,ntnvMMoç—}Ú(�Ñuý5õüJÊãj ‹E ·Ç%“‡D@" �H$‰€D@" �H$‰€D@" �H$‰€DÀY&L˜P@9§p‘‡ ~YÜèÜìšÕu5¯p¿T¤¯L>�þ®Æ£ù埱Šëï±sv0Í«{ü3vÓñÏãÌñ(‰€D@" �H$‰€D@" �H$‰€D@" �H$‰€D@" GHGñ8ªlɪD@" �H$‰€D@" �H$‰€D@" �H$‰€D@" `HG±”‰€D@" �H$‰€D@" �H$‰€D@" �H$‰€D@"0Î�ŽâqVá’]‰€D@" �H$‰€D@" �H$‰€D@" �H$‰€D@" ÅR$‰€D@" �H$‰€D@" �H$‰€D@" �H$‰À8C@:ŠÇY…�»Ãí—ðÙœsX±únÍéA³w´(‘åJ^ìß¶Ù+V`Ev6vìoC°xñò·UÚ'`ÛÞæ8ÑÎÊyk6lÀ†5k°³æDœÊ‘ÙŽÞÖýX1!+Hæ³Wì@«ÔÁ–°·î݆ „W6éö»·µß2½¼)°F`{³úI<”³ß}ñ”uryW"@ «ùvnÛà³U˜þVCö„R/%¨”øû� Ôw‡÷ÆnszÛ_öÙfÈF[³a'NØéÓ½­Ø±"`Hù±-=#QŸ¶‰‘ Ç9cyüz9T�Ä4jÑQ;h¸ öî¤þ“ÆÃÙšMµ‚õ�ÛöCŽöF£†G¿Ì¨l*ÛdK½a*™P" H’‚ IÄe�€÷ü‡øÅû ð>cõ#\¾ìY– &4Ã8÷n šëýDNí¸”ÐÔŠÄ ã½78ÚÏ ‰·;£rT ¦ÞŸ¡{Õ?àQÇò–�4ÃCçPZTPÏJžŠ R[VÁPï»t¿Í�uç.Å«�Y’!o^6|ˆ3Gþ„KÇÖÛL:÷áeÃÙxe¤uÿ6,.®ƒ{Æ {œ?¬*ÂÏv­Eª­'úQóíõXSTcšZê%ShFõÆ¥s¬ÿ0?Ξ‹Ýæ>÷ªjTÙð °È4/Ògø~_ßì7芔Ÿp€ùï�D}Ú£D¦’ŒåñëåP{ÿ‘­Egí ï‰|~á¨=g(/ç G{¡¨Œ‡+QÙT¶�‘zÃ6T2¡D@"�HGqBTÃ8 b¢È£îT¼)Ï$#€@Ê”aZ„·&e£*� ¼©¹ìM³GFŠö”©\T»(cc�ä1K¹á1¶'ƒé’”xc\äÕh¸¬Ú\´ \FÏ 1g ­$©�„§ö'!»ì²tû‹•Öt$ð�TÚkÝ ·›z‘@72½äÔ­w¶x]ÕÛÒ/4ê—=[äÕ0"õ9Yò‰qŠÀH�Ç)¼aÙ¾œðo}no ÌFx*ÑW½ÑæB¶°09’ÀY;¨ßû++'±Ÿd]×ê2“1€€®âmÙT°u9é�Ø–I%�1Š€t�ÑŠ“dK$c�!š6ÔŽÁ¡Ä\¿Ú{R£ñ¤wP;‘±±‡À_½àÏÆ3zŠÇF{ÒS-Ï%�±‹ÀÐ ß‹Ûäã¼]Íëů+‹¸Lݨ<ø,ÖÞ9�Š Ó?v$!%Eã8�&:wõ£xe5OŽ«ÖLÂ&óטøÄöâ—uŸn‚‘J5"õ9RÌÈr$‰@�!þ“½Þ{›ÖY;ÈÛú+q_ërTâÙk1/�¬ªá€U•”B–•<Æ%Ò¦—Õ.™–HŒ�}¡1.òªD@" ˆ+‰ÿVG*¾øo�XvÁ?±=-ó¶¸â!3�/©7-M+€‰lÉìT,´ÿ{| s(÷ÄoO1*³‘H�›7<�¦—ü*•(š8± ;.GG]ùÁÜ;�ÉWZ6yÒ¸ûæÑNœxK»›¿çYl¼GÝX8INdjÐŒ‘Ø0øùx'ˆN½y-–ù}%ÏÄm—YŸîFñËÃùúŒ­2g‰€D@"`ÝK•öŠ[*gí î÷þÀQš�òïmDf`&<)IN‰sàŒË¨´©ÆeµK¦%d¯hŒ¼,�HF�Äš©|ÏÌZšã–Çå€@ÊLd¹ÆKm&f{ºÄHò �øHI› —àõ��P|k4ËîÌBf4ûÍõŸÃÜ›/·»®“°�q¢K–S2°ä® Ë$òfüp¼>ãGªÌY" �„G ÑVÜ:l�}ï OæÈYp £ïºI›JŠ�D@" P�]¤Š„üQ‚íz?DsÓ Nv~¶,~0ù Ü~w 2Ó&DDOOû Ž´¡»H¦�J bn¸1Ù7EöæÅð°BÛÏø‹NIÑhèÿã~Où¿Q¡›�6; Y‹“13ÜLñ×Jü?Mü1ºˆÇ)iIpÝ™ŒŒT-ÿˆ˜M°Äý=8}ºg. Ÿ1HGrZ:æÏËĹ3m¼ùB+ó½Ü–?­ÔÕÞŒæc')OÂ�þLÏZ†åKæÚÈO¨ëÄa4þþ]ôøì_ú‚›q›k.mݘäøÛZ©F1�G°m�ú.â4—Ì{‘ma™ÄA½•ÄÒF ¥cÇŒÕCh�¬MDB‡J?ùöæ£8v²ÓW�¬m&§¦!=# æÌCZjhYÚ³Lj ¯ºµTJ`k)oZ�¥öÙãkœƒÉ×áöœ;‘¶aó´iu+Ô×p?N´Å;Ä;kŒïù ³�Em"ÜÑC²äÍ·ÑM_ŠšNžLÆ 7Ý�ÝpOûï{½�íI ÒSe¦DW¡èioÅ‘cǺv�xKÅ ‹²‘�•a 9eë.yI;Ú„wÿ@Ê;ÕßNÓÒg#ó¦‘AÛ�æñlOÆeGz5�ÚGúð0ɇOíŠÛ×öwœÀÑÖwÐÉ/éÌ´9ó‘us–�¾ŽÚÒ›G¨-uÓcÉÔבdL¿Ù˲©¯ ßÎ5yÕèa²v”d­'Ð\—u;î\’Ù7Ú©�7]o¿K­iV*úÏv#yÖ ¸íöÛ0×T¾8 F z¾ýÞníÂ%âs¨×Ü”‰e·Ûé;EâþÔ~šì”³ø5¥‰ÉÃôk ®¿q.²nšQÛć>Ù¸W¥\,äâÿˆã­ïãüE?qÍìkqÃâ9˜aÖLÕ'½¤ ›Nâäé‹$IÆÕd#ÜDÛ(_—ªå¯&»¿>Ð8ò©_×_âîŠQ�N¸(|ž¢÷‚‘� µ1/§Î8šH‚ìnsí¥¾Ç„Ɖ¾Î)nÇB>ƶ˜¿=:N?g3±¼“T»É¢ §í‹¢¬oq´évÄÞ³.6¢»d#vtœFû©\èé÷Ù‰¬ïLŸ=™ bf˜~SëÃíÕ��6ê÷Ã-²é-ÆÞ.þïF¼Kƒêd¢)957»¨Ï ÚÆªb ß·3%h4ÆC´6rBõ鯼Å>œ¿&¦ûüIWp¬Ãõ7$¿Ío6ÓÜCd‹&OÇí÷,§¹%;òêoÅÎâ‘f°‘8úúÔðbz# {™m8(ÞKM;…�Ôk¾_[áºÓ'Z{ò�íb´ƒô¼ _ éí4äÕR/:ÍnÜòó¢£õšŽÓü�+ü:< ³i^îÆÌ ûc¨u­†?'?´M[W;�U�áôûþ>Šõ�iÓÒ‘1wæe¤Ùó8mS9­7œ²©4{�« †c´cþ¸É®ÌX" ¸œ`Þ.;á JgØL‘>0kŽì!5°ïË«á*Š«�MW±0)&Ó/ WÛ˜‹…)�ÀÖαp …i�ÀÞ˜NaF \K¿lf?�[ÒÏÂ, F!ƒÂl s(\Oa.…yæSX@á ™R¸‘Â" YS¸™ÂÇ(ÜBÁEáV lo×Û),¡°”Â�–Qø8…»(|‚ÂÝ–SÈ¥°U#G_s¯’´ 3Î+M)‡žï殩÷ü¿…ÿêµÅY_Û%¥p­ø¬V]ÿt·òrÛ‡¶òR¼J^�ÆNå©Ö�¥Û«ìÜÔeJgÁóÊ�aî*uÏ÷˜>Çh|ð‰KJŸá³càb_›²¯¬Pñ¸À<çÁ­”V7™`ÄøPöäiÏ{*[”¡Î¥À­]òw*�Ý6ðhSÊò\&ty”ê¦6eO¾V†§¬ÑF¦Ñ&yø±ÄŽès—ÈHŸRéáhw³�–J¼üeåU6E@ŸÒ°§T!Åf™§Ë] Ôµ�D+1Ë«lTÚêÊLiË+­5Àݘý¦ò<-O%I´¢4î³à�xnè4ÖC��J±©Ü2,ó”=�gŒ á®ö5•k4ÖAžÒÈ�àèk«S 9¹ ‘câ«6‚ºênRÊ <–tºò ©­êùuº=ƒ Ô+aXfKñðy%ZàhhTò8¹(o!aènTJ-d¯ ²ÁD�÷)u•…–õ˜_VgÙžšxÝ“¯4ži±ÐßyJu‹�1Dí°ØRyŠ÷)gŒ›"–SÑKÊþµ¥ÊÚþPðü¨¯{[)ù´vM½çûýô>¥ÙN_Gäõ·5)ÿÌå-äÃÊûô^å7d+Ù:N(…Y>{[? Ù8¡<³éûAÚõù—<ÿ¶‰l\R~ûü>ÓçX>ßz¢Ié·EØXH$ö3€Gi´#ª:;(D·rmU¯Ì^Q�×RÉõmp+u�á³iÛWÀé—RmÒÀbï먰ià ´ìáh²['áy�,…(‘Ûœ}‚­¬—f4ÙéÓuºß¬_:S§xtrWi¡w�¶"ÃVŸZÄÚI{O+I,#’úl;¸O)Ì·¶}XýºóË”F[QhúpWñA�4³ØP›RÀ×iA­aʶÚ2Ó~ÓS\«œÚS~X¹l©˜ld'út'õ†h‹&æø5íPÇæhA·28 4Tò}�8-Ücc¬ŸPóú&[}Šx‰Ø„ö)â}c[#~í)=ü}#Ú¢æÕpÞE_‰z>¤´Ô–‡ôÝù-q½"OÄ÷vôbÿ|À_ ‰7ÿû¤ÝÛ�ï5†ÜÒ.Ægî=�ïýjH»f+6¼s -íÅŽzf�OîDŸþVÏØ‘sŸþ–u™?ú~?ÒVÿ íæ0èsN˜óþã¿Àº­%¨iGR=¶¯ÉÆ’/›¼Á; a1kÃÓ¸?=»ëMò­/ÁÒé¢ÙkrŸ]î9„ “bk•q5X“½ë+,òpôÖzOG›á`àÛ†æÏ÷:�e?|©×¼ºÓÛk-ÏÚÃýØûàä¬ß³PÓ6×ïÆ·rT=�ë//2U›–bá*f»UÛs1eÃSè2¾m~uª¿zj–®³à�x>x"Dk çðsX’¾E¦rËŠ­Âú¥³ñàs‡Ìi`w†­ïÓ»jôRŸí£yÿLY¸ %5�_¹ §`çËí‰ü·Ú<މӳ±y·U†@sU Ö¬ß�!Çø¶'¡¨¨O³ ³ãÂàñŸãÁéK±ÝBöv?ÿºA_׌ÙS°jS‰qÖ�«[WaÊŠ�¦}½CÀ=_�¥³[èï*¬Y<O²j�]¤ƒ–P;,²ÔA5Eë0{âƒ8ÔAcà(�%:ðú«øúÇÿ�ÇMr¡7þßÒÐÊCc�´õß÷cã½µh°´ƒþ€'î}ÏþÊ 3ƒÌiL3øÎa¢c?þ³Þ\ÿ7î}õ�÷œÂ÷sžÀ®o½«¿#œý~-6®þ9ÎŒ|tŒîI,:ͼ^båiáÊ5\õ¨üE+wníÂ/~°[»áÊCNÿЇ3}ÙŽgÅ|ÍΆ‡¬m³çíºµÙ ß‹þím÷Î^¾w.­=…�YlŽ$ôpÚ>-!ò+¼ÚŒ›½9YôD~ñÈ:”hûÓ›æR_±KÓïEÍ ž›@ò”±®€Í£ù�æ¢*ëq%ëyã'àZ'Šï[ª>ü=üÔƒX˜»Õ´ß¬)ÊżÅëƒé�³‘É]Ô6²S}º“z#Ñǯ‰i‡:7@ãÖ!¾mœÆ� ?�œM¼”s¢JÑ’õK±á9‹‘iÂÍðôÇ^ŸáÆù|i¡q#[ÃÉöä¬=¯áç]B±I€+Ãíx|ÃD,ÎÝ,ôÝ¡”5£ds.ªÞGÖZ:gt­ãm“ìoÞ‹Iórhž¤^#×0ÖŒÝ[¿�7iC«Ã1›Êa½_›*†1¿˜òžD@"pÙ!:‚¿ìX” %l„‚'¢:_' ¨0‹§|„ê²ðâûµ/~ë"ýÜUp±õº£õÅnr>~(\½yiþb2þ,YÁ[/{QüKµ `ÇC0³v6Þdwm„‚¯m¹$äÿIwrfO@wë0~ÔÈ{ ã‡;¼ƒØFÎå'¹KlÑÇW¹ +\W ÿÔ0ž)ÄkêýãƒÈÌïGß�Sío£>;š¿ÙÂípçå#÷ÎÜ�1�–Îtã­_?�¢Šú`‚æ’\l½¥O?�¼¦Føê­¯Ðxîüb|ùÞÅ8w¸[KªÔäô[��/nà Có:°óÏsÈ�Æ”îùî˜>ˆÿ*/&g—Å ‘̱øÜö7ÅÈ¿­3&±GÀÀùìæð�'…›!”80p“Üâ[¢$ÜÐ�ÄŽ™?äk!ß“Gk®Ø)vœE…�É,ZíoÇ�ÇBœðy…¥È½+Ó“ier€4ÔUÑwõ�"ÊÖåÌ7@IDAT’–“³1^Îøœ=…eØü¿nA÷ÑŸaýVMþPµ«-BÓ7WòÉ­ãôÌ^ø\n|&“¨.ê*PoÆr×üùÒMâäM²—}c æ§â­}ßÈ›r0cÖ)<¶š-œ =RfÝ‚Âü ̘”Ÿó¿ÿ¹†9=bõÖ½"[·ªÂå)ÀÃV ƒêó­_<#´õí¹ó�ÞÒg:©Üq`'æ­Ú®#Ú�â²/ãÖElkà­{ %ê@pA²o žö@|Û“ZÎÐài5êû%ÕnûHÔ6`Ì@3¶®Y'Ürç çúI8ÿû’™zÿ½©:‰ñ¶b9û¹Cé\((}+²3ÐÿÞ[xfsOõÛ1oÓ ¼ð@}�e¤»o™ÞOº{½°PasÎç°¨ó¬dkBuÇ�o¯"$êù¼â2¬¹u>uo¡˜èÒîV '}N)�ù–¡ê²ŠÛéù_þ!˜÷Œ¿X„¿X9 =GŽáç{ίĿüÛi<ö×s¸kZôÄ‹/à›;þ¨] Øä¥×cõoÄÌd/Ž¿ü&^ù¥fÇüçC•H«ý?¸ÿ&?$n;H¶uÏA“­'û:[”ÊÂ<¥¸º-´hǯè0 Ô;M€ % œÒɬ�í6ƒÛê Û°»”²ZÚF]È�ä³¥Nɧ²Ë›ÄýHëŠÅmÒ]{BtUÓ>ýö¾…†m@WdðtHØ¢Íæö›Ý7ßž(^VZ_g–‹í“¶î2ÔµC->þù6ê)®6L;ÐÙDÛ³¶\jx?È‹ÄÔž„œ‚'}´ýqCCƒÒØØ@¿�a¶é >F‘Dm�ºm¨ÔúpÑV—-ݺk S©+ÏWà·Á?XêÖô,“‘¼r�®¥ò†N)•ù¢lmuj¸Uº§Lg (u¥âv�†ÛmvÖ‰²HýÉý¶á}MJ¡Ð^¡ÖŠº€CË¡¨¸õôڻؖÓßWöÿî¼�ÿ…æW•¿æ¶~^{×Ï”³BŠÀI÷1åA>ÅŸ;Ð’òì«¿óûô¯• !©¸ º­§Õm¦ÿú‘Z¥­›¶¡æ�� Êo+þEY»ö×ÂöѯÿÓâvÓ›~­¼§+Úw[Ùÿˆ¸�õs‡E½È56âú~Ʀž5b.:ͨ˜p×ÎÔŠýN¥®ïâŸoÚ§G9hÐ 8×׉X[Ù'¢~‰¡Nxf#ŽÛ§×nÖQõé:ÝÏëã>½�Íl•‹ýÆ�¶ì26�ˆµÚ¿9aïiE‹eXÉŸö ‹õ)ån(®‚r¥¡­3ÄFô§íSj…¶dÖ?�R Yß«†<ÿ§OüyèþêêÊ]Ú KЩ”êûÄ}ºÏÍÐç) Ô²‚¿áÛSÌ6²£}ºýz ¯7ļküš¸v¨sóÔš„ÏìømMW~¥ÎvìVöˆvhq]¨½—Øóñ«Oá�­áuÊÁâTlVzP¬«ðzÃW¨ÃvPl¼ZÀ0Ê·ZöÐ-¨“YŸ@ŸXk10Àh|ÚDŸ`iK î;¨kÅúŽ­m2xÚö <æ•4í?[ê*•<�~þ/|%EcS9ª7tý4«§˜æ\T–uvŸ*+‘ŒùÕ¬ä¯D HÖØjÆ\ rëé1¸õ4Õ[̇tËo‡Õ¢£˜}S¸G9eôTŸèv?ú­âÆ'Î ßþÝùª¹“µóÕ BÚÊV‹ï8Šÿ?{o_Uq÷ÿ”$$!,!„%„5”E U0Bµ 6X�ǨÅV”ê«ÿ©b+b[YZ R*öaQ+.D+V«FDQ4 „Í@À@B„���ä"¿9¹Ë™sî¹û¹É½ás^¯äÎ>ßyÏÌ9sæ{f&óU."Ÿ«¹8A£˜.¿èzŠÅrñé‘ÒÙÊÓÏy8Kà ¿&uª÷ŠËñÍò$cÖÅíNóÀÚ— q7º8³a˸¨Ÿ„4LK:ïX(MT*Šùl;%Ow/7AÁ|N{F¨ ¼è¹¾ÃèsÔ¾´y÷’ž·\«˜[²Õu~ú—%£ó õ/³YK<�«Wsñ�˜LõxÔŸ<¦îc€PíR1 ^3ÅÙƒú¤Z£¾Íf.wó¬ÓM@OÝàô¬Ó¶Me’ÃÕÙPg4÷$Àù|Ä<݇@F‚ …/äb±¤:ñà¶ ÚâûgÓ)Š…b÷Ïo·í�Z%)ZW]4ÒŸæÿE³äâßÅXÇÕõýÇoJé-¹¸é€›óŠ Å÷ýa—m㛋ٲû'[.~ïJ0¡²þ{ƒÂÜvNóô�/:�ø\FAýsÆ»û¬aAB垦? uþû†â^t:ÿt³s›Ñß7\|ð§dàùY§eín|¢½¿P'Æ%÷ÒÕ{y½LP§$ñ²\º{¿}ìy&O>'^¹/ŠlvL$K™=>�’Шe­ŒñÍï©‚ióp×þÔ8VS}½7OZ­8s¹^±kMk·æñô‹[Œ)µg‡ãâ+EZÎi>$ç#»8ó¸¾h³îC,Ïí.Ð1²¹ÏtïëÍó}C›Vh½¿†ò8Ô¬ù½¢X¹oÍw1·¤ýè5s¹þ¬bQ—!=¼úÔôOWùêob»¶¸»zîOŽDUƒÉã ÀʪŠR&1FS>@Wî?Ö?1÷åâ9`—»æø¡‹Ç�æã.^4ó^«­ï@ú¦Uêsy+5eÌóašÅ^nO¿Z™=?Û»˜xßÚ˜J7îSÚ‰OïüžÀÑŸ\m�Šbuq«¼èU^ «˜�ͺZ`«¸{«Aý¿”Œx‘@£¸ã±XãmãZ⎡ª8ÊRoÍU{KŸùÁá4`b+<|­Ò·Œ¯Äkcñ°äõÆV£3V¤c ¬˜Û°¬]ãìÂràµjüÛáw^]ÛÆyÛ=‡ Ly\¹_Ø®ÜóØçá, {ÐÐø�ðŠKÒ�Y“ñ¶+; Êì¿3pç�ÆÛé¯|�äæª-Àëë%ÿì™ÈPöpº¢‘ußr'×FuP ¦]0ó C [Jùæ,òho±Ýße;$ç+nä­«4×ê¿çêÎÈux9ĶOS×®À¸îÞ“«<ò•æ<¡ìßßárkÏ‘Sg ]´z}²CݾVu5ÉT›�¥³ÕS Ó³·à‘QÚ­ åœGÝ¡áözn�ì-Ìex÷ïò¶†SñûY£taôÖh¤¤¸ÎÓÚÔþäHÕCèö¹xS±âáq^ÝÓ•X6=+µÙtlÞ0Ëͳ.SŸ–zÔú—=>ë2—<`°- ’s<²fJi‰c>Ü'?S*±c‹æ!€»\mÅ? 3ŲbÇ•û> õÜ7ýظm§þ$Å!–¡¡¶Ÿ)wxÅN¼¿ºÖi´äðO¸v26`ÛVívÕ’—�±²ç^åuÛ(|mŠ©D⾵㜶1tx£-~úxoÕš»µÔ¬CÎ*÷´ètL_”éÀ“¿x­áY¨e_þ[³ ýòi£œÚLÈ>륻ô mbcP¹sÚ‹£/Ô+¯ìÿw¥ ­ÁL¨¹›o ÒxÏOA#"¼éÜÝ1i¹úö”ûþW0º5¦ß<]æcÿu{�6È(ÎE–ÏÏ\‰±Ýµ2É}]*M:æÜ-?1T¯ˆîc0WKõðÖäó9œžé¼‹ùý5´Æ¡Áš?PÞ¿~îbni0n—Úm}{ 2}v�ÚƒYŸÒÌT b_{› <=] !UV�lÞZËö}(Þ„ÔkêÚßÃÍ«zCÀè¤$){lj®àÞkýî›v5•u‡�‡Àì’™÷�FSùöÎo¯þ’ \Z‚ü¾´`²´Þ¸:ÝuÓSöw\‹ÃÕaØ÷j ^zçÏ9œ4†–øARÞ媒YÐÀ2`JŒ‹ÉjƒÀ©þ¼ì~K7žÃñ6¢q¶åªØ!r.¢ªFx: ÜìB÷·¶ì(¾Úõ¾Úó-*jÅÞïY¢jwI /Ê�9½ñÝ…oã|Û¹*THQÝ6Ôi¢Òî—:¼A�­ªÁì>aø³ W®¾üe01f-~wÿ éîfÒ1r¸M2ógèRœîÈZ’…ÅóüibRýfIùäV«çÉ#ßH¡2ñÓ ã%% ÅÔL`^®5JÎÄäá� Ý6´Õä/[‰®þµJ'7¸¢Eï{Kr¯¨¨’lÂXyïçªNé‹Ä§ÜXT¯°7ÉÅ Ù> QNŸï[]Ôkš€ø `ýª†g�ÆÙž¾x Tl×´ �Ϻñ£ûÙc;ý&��L¨çliXNâ©Ûf.º îT®CÇO…èè¶$rpàH%F¦7ÒC8µ ºÉ ESÙ©;£[ñ» @õ«ŸãÕ¡å¨;§í³ö@Qâ|ʯíñ[Sa8*‘B¨ÆØ)WëÎÆTýŒLÚqP=6mü/ÊÅ8¨Î(pËHTi>v©GM˜ŽƒŒŠ×\Ü~t×½ÀÂ\[qÖãÅÜ%H—$Ï‚�×Ζìóqëçlè>ë$Ñ/1ã?—ÎÇ3«{ŠÒ‹Šv ËãÇnÚ{MÀãƒ`rÚx/P¡kq4_¼;‰¿o‹ÅÛ‹úò„¨¨(|óºô0ÞZâ¶¼„…â16y½Õ¾þ™7Ä9âéš� -Gßל>ÞMâ“+íu¶Td`¿2§"C§H¶{)/©CÇ �[Ž$›êé…ÉÇ1r8=Óy Âû«<¼Õq¨©ó¢õ]=(Ùe”y J£u‚Àߥ ~zÈò‡j}úY4F €@ñŽ÷¥Ø™>ÏA8"ù^ëwß´ ©é˜Üg"Önù&dA¼ìå(P#L½ohŸðÁSùúÎß$™ �@p­­ Aa)Ró!�ÔFY1ïÅ¥›Ï¬‹ü+�~†¿ýa>æ­Îõº”mbu/gú˜©\*wµA¥I ›Gå±]È•%¶SŽ)wqÅuÇ5™b®#×…89ÀÌübÆáæß,`íÊa\<]ü‰œÒ³0ã–a<ðJ\‘–Š�ƒÒßDO ô«z6Rïªü­:Jß›çnÁ7•÷c¤7ú£ô©H7^$è*+”—–üÚÀ]³bÐF brQûj!% ±òànØæm)å`úï'só�iïµ¢®eÑÇöï „¡=<ú€Loòx_>n¨DÞ'Ú–‘;o¦æÞ+§ílÎEáéJñ¬sÕ¡ÒÑ;Éͽ;¦ä©À÷·Á,»Rª¶šÞ”ØÊ9{É%¦�Ü"ÅÇ[õÁêMR¦vcŸ8/ŸuÎ2U:†ƒöt~ËñÒ‚Ï5.î,§÷žnø€ÍÃwx IŒø‰›Wœ2©ÁÞíßk\O?»S7fÓxë,Õ8z¦W'º©] ZƒO :å,Ïû‡åZóZ¼ò],÷ õ¥²/ñiIKÖÊ; Wu…ê³.øC7‡\�’X‘3•Õ�›>>ð˜£ÿ‚6Þó[¤J|¶éo˜?yž÷ÏÍä6bôgtEcìK€õ¶1wþBääÏÁýÒO_¾±NŠ8“2õ÷ô2ìý W #™ÆyYƒ$_5V¼ ª “¯cäpz¦ð.fþûkh�Cƒ2 šWR[/_*ë´ã*óùkZ½ –ЮO È$ü& ¿Ç\…ú¯€¼M7È÷Zû¦]üè´›±D¼ªÎ»RX/1'1ÞúÊœ:c®ÎÀ•S�š6iIþB°§íݯ™÷�ÆSùöÎï †"h~ÂG+ÕüØ_Â%j�Þ]½T›Miÿ^o…Û¶•o2ºZÕìm*ª•ã7Âã*ýlZ÷ÈðII¬”¬¢Zûr¦/mÖà~ðûÃÀH­bÿh©²4ÉÕÕ².ÐU¨ppˆY ˜8j.¶.Ÿêœr~V/^ˆ™S&`ôÐþhy=V}Pè®\zõëåVIs¶àk�Ú–¥ñÒZz¹Ÿ`Ó¶Ú"5êS+ï#�Ô[«Ôóðé…#¦ïï?À1Lûëïµ÷Ú3§¤-i�~ý:FkŽáÐdÎm[¹›–CZ͵Îßé8rãâþ9p%zwtó¨)Õ}À e¤ûÁx«>:¶ƒ´m§êÞ¦ä+»ÀE­±,Æq$×ý•Ú¾)yé�­Zy}÷kˆZçbw}º®ì•ÕÚî\…£{cHÄ­s²Õ sžÁ¶U™xôý—%µQ:fNÔ>£ìC÷Yg—�¿ �)ý2Ü^\KÇäñ�6qSmAïù%e)VMh� _”ÄJ>â£@Wo4ñ#'Bê�øÛ‹ÛTÉ,…xY>BDì2Äéñ‰hY×àñù@Ýû:F£gz@ïbAx Õqh°æÄÆÓbnÉ©q«}Á�)üÝeç�_¨Ö§?eaó”–«‰eõC'qÏôë ê½6€¾é(L"æ¾ó¾èåÎWîúÕX8{:&Œ�þ]ÛãúûV5ÎQB¦Þ7x®*Hôs.Θ.¾¾ó;"Ò@$pIð÷qrIAbaÍ& ¢êS@‰?¼¢-¾¦jDzž&õ–‹ˆŒn¡®‚ð˜sŠÛN‘ÈÏi�¥œ{ÙEÔ[.Cû.-ævq\Ç2›B8+söcÜýŠB¸ oÈçŸN}™>îªáª,Mõ¬s%O³uÏœ�å{1{±uuĉ‡ƒf߀šç&yýáfÀユ„ëïxÏ™óWÍÅL;æ†øéÈ^þ(n¿qRTmmDLv-½ cæZs^ŽW+§|S0Mœg¼Ì¦Î_¼;ŒÃq+ÕŸ>÷çÃ�bûêÙJ•Ó׸šó�|Žì9B“>Óù.湂‚9 4.¥4Û+ÜÞ+šmE„TÁ´Ï??”ð£D¾ÝkÍé›Ic°®þ¦‹ãŽ–ÿó±+ ñ\îê™è³úì¯YêÓÑ9~`Z”àŽ©xçZ‰™0 �@¨ð4§jòRžKœ@„vD„=#¹ÓyKM�©ek)×äHNôE)-Å qcɶMš]3ÖîÆsâL,ãË·ÕHÆixéª÷tw»}eNñ2]ó‹@bÚüö9åÏ‚²’)܇m[6ˆÉÈõšôVOþ¬YרçÕæìúFl‹œîr´]·+…Œê ˆáùššRøo©×Íœ¹ï1T~§Ê¥äªköþ ¢‹©=èÞ+YÜkãü¿×¶Ön¼ë›“bÂæ­ å> «nŸ¬šÕG½Rų.^ûQ€O©é�ÃÇk1$ÅÅ„‡ØzZÛ;¥øbæBLG¨—ûÎKµv›d5bh›""µ¡.=Ð6>mC@ì(Í8(�ÅãÞ+¥C Á˜@Ü0ÌœŸ.Ž‘°>rf¾ˆ£BQÜ]wþé¢7¸|®šý¬Ó¬¿ÐŸ9i\ ºê d-Á¡WAJD°½½c{q¬žŒù7ÂÒIƧ¼›>>ÐËe¢=tÆ{GñâLyü›�¼3Ka?9A_äHyË ÍƒM2i&Ò…¢ØÚ;×cÓ¶%2®£öìðô%¸9Í‹1—=ð™#G�–Kžé!yßÐ äÍ| ¥q(çï(¡TŸJiB²?Ž9lRh—˜¬Êšó5NŠ{fœ?³ûA¸×ª‚™hŠHĘ_ü¶áÏRY†’â#Ø·s6<5ë5Ó#Ëð‡—îÁ:—ó“&Èdâ};œÆT&�c$@a@€[O‡A%QD•@t�(Ü¡ZqªôÉÖ”ÆË14CZ\üƒvÂÚ Ñ,µ( ·’ÒR”* f1¹ÓÈ×w{Õ3—ã)7ƒ°Êc{¼_M¬¦ê—)®×UbÅ‹z•–º™Y©<ŠO4J5Mfs$uÇ�Qã0ëÉu¨?³K䊟|¸¯‘ÛqA‰Ëmü”ÒŸ=V¬BÈ�~^Ì­©|3uHºBŠP�³®öl¥ûÀAœ[§UIIhŒî9H³Å“ÛþäG^Ûwô#V¸F Á>à7Ê8 ½fªûÈ)“Ÿuù8ìîØ€s¥š-ÌÇï¥ÊÝro:RzVõ30ÕœÕ>#ÚÄ«7d€SËÝÐWŠ_掗.øÆ\‘ÑAͦø*U[à¦Ú|Ì4×_½ô'ìs6i'+ω)8ˆ@æ�s%×Åøà@%¼½Nr›�É®—›û¬‹Ãð±ê@ª ”D‘ŒþÌ™JÑ›µqåïg %±RÄxÌú×ûÈ”J»lòϰ©P£pø{|àÈÈ C¨Œ÷*¿‡ôö„%ÛºT++õwmÉõ¾ôI×b®Ú°xe.*kwkΟñhŒ{§x¦�—žé9ß4(\e^r`»+/óÝM¦‡æ}£qÞ_›~Êù3»HÓ×§PI^šÏá™�snMïãà)¡ñõç2ý^ë�¾Å‰ˆ‹G÷´!w×,¬Û]�ý›—hXÿÏOÄ“4x—™÷í°S)S&!T‡PePß ,ZRcîD¤ï"8bh¾þ>Y‡M»ÌUbWî^�Ž]»¢kÇŽè¨ü5˜oÃg¦ÎÄ:ŠãÒÕFõkåVQµmÓ5l°M1Úåc _þÒå.Te{¶Jgê[0ƒôÅ8^«¢…AI|vŠˆOÃ#/lÕLHúœH r_Ç.—oG±ean 9x¿}¯îRØ\¼üQ¡d×K¾Ä<釬«ÓL\É©ËK׳>‘ؽ6º®ÉTóÈ_¼;ͺw…Y ‰> V…ϦÈèX5Nþrss¥?aÿê{·þø˜ ƒ» �~#–H›Çüs铸Ãßr¡3—LGš­¬ÙÏ:ÍX´à{—㽃yŸ8dlJƒ±Êµ)%êê¥þ™8Þ_$ ”�É}á¨ä¢¥~.¨ ›o ÒxÏçú}Cz{B›VZ†š‚—|Ž5¹–8Ü<[ª»œ¿ã·‹–Jï9™˜:Þõ/šgºØbþß»] �K�3Ï'Á<ÈíÁ;Ïô�¼o4ÁûkSŒC5ì9à¡ñûæío}Ö×I³ò ÊËì5uÏa/‹å6X¨ÌÇ)Bö~µ$«r,ÈnÉîƒ1÷Zr7!hÒ²Ávy%‚hÏnž²�çiê}[+iH�©'ÇH€€Àåa #E$•@tKÌ™+5Û‚Z¬ÜæÍzÅ*\qžš’馴Ûbq³”êCó+Q*Ù]-•PVëÅyȆg|¶�<²À_§Ë„¸1¨žòfú9kþ /žl>ÉcÆIcæc‹Øb\½ã–ï¨V»Éôñ�=á`üg¼çs}ŠGŸ¤’ÁÑã²M.w-rþøˆtø‰ìçÚœ8z2ì½ÈÅ2å˜{UΘƒ ùQ©K&mÂTdJn³ú»aû<šóWÍøXŠ$£ùÏô�¼oáý5äÇ¡œ?ð©Ï«>;§^¡Ê‘ãâ9ª†p2…dr’Òd‡š�‹t#4oÖ3Â;GÝ¿gÕ–¢Äi¼dþ½Ö\êxñúˆjy§¨Šº€Žçò8¦2ó¾Vc*sk–©‘ „&IãšR*Ð2%×JŽ ~~ ^ª5ÞzPL<æX‰9ã¾GÒˆ2ä9 Œ¤„5ÆEcþ—©©œGÒ¸r|~ÂX \vô<6þ¹ 1ƒÎ s�Çሚn›"åÙ‘ü…˜·âc'ö¥ù›pCŸÉ>OtV´hŒ�¾\J"cÇ.@¾¦ÎkñÁÓSÐôó†íÑMÚ15wö ¬ú¸0¨ø/�Ú³½:°kÆGbÐ}Oãƒü£Ní¢!ãÊB<=s¼Ô621°››,/¥õ)˜˜<Ë™9O¼£]½[y ·�–?"ÈÄ 7«0|ÊÓUà¸!˜±(SõÍ_ŒÓV¡DóžgÁg/܇± sÕpX„I#ƒËmÈ´ßh&ç�îˆ?3®×Ú2ä°s®�;܆/5ýÎ*vÊ­÷I™b*sáxÜ0g#J ¾H¨-ÍÇŠi1èÓg½[G…R “> µ$Ÿ�q#1I¦-w6:^ÿ>3ªHªìh>6>=‘­;âºÕÞ|í¾?}Ú]O+‘³àÔ34Eº™K¦:�mž>qºcn\pñ„Xõ™V%c)ý ÷u+¦ÒÕkþ¼¬ ~¢ædŽià”ÑH�’úÏÏŸÃ3/à¼äæ0ÖŠ-‚?܆§Æý÷�xA÷Lt„2Ç—ŠŸ? ­8/Ø�ûǽ�]'ŒÇ8åG‹�óçqç ç0kM‘924R*qÏ+Qޱý••AAŽœ¹8oû`‰õ˜{¸2ƒ›�%ÄÍ)âCŒÌ•�,ìZ(aÌ\‰±Ý=hÅM~Öu8¬Aë¿Ìxèí+µ…X1±?VK¡šÎ‡1Ó¤é\1vž²`“á³Ï[£5ƒq Ê~ïÒ�À¸E¯k&žó�Çhï¡JZf�¼“Ï�PAïùQŸ‘šÅ‹ÇÏÃÇúg¦E| µ`<&(1IÝË«RG¤aºô\NWâÛ¾…Z>}”ûoVâ30GjžÈ�‡®Và@™:-|çiô˜ ¨å•T2û™š÷ ³ß_Csª¹eqþÀ‡¾¼úlß5U’Ãú-¬Tû½äih Íþd(jót÷ý_™!•-ã{Ü€�º÷k€Z俳1]û`ýç]#̾×JBl¬Ìÿb"áé�਋qtáOcìâ\G^écûô^çû˜ÊÜûvØŒ©„i hÎLy­l΀X¶$ƒ5+j‘6KÈþqÁ9üqAÎ�BGüÐ0Yzdg=þš++i/ î$ÕˆÙmñð³gñG;¶‚:\{Í÷¸ö&q¶òðËQQ*ä9{oÿׂm'í�ÄÖ1ªÑ¥I§¶s„3ž~ux›nH›0CL®wL²¯Ÿ=ë×LÅò¹Ð3®_¿÷w,\�+òUg)T“éâhŒ9 Ë3g«Ê¡tÔz;-¿‰QuøæåÙX¦ˆÖä—m’)g™M’|ÌÝ3Ù¬,± I,4¨Àઅxsé¤ n/lÍþ¨˜úß•ùh#-׊¬–&½sfNÁ´]WÕ*¼ŠŠXÌüËrŒë®~=-ÒÈ_=cÅŸÒ¦fOÆÕW¦ I¬Ö+Ùùf/ÖMÛN½?2>8MÍÈl“mŽ{áø>ø`Æ"Ü>8u¥»0[¬d”¯Ì%‹0*¸ºØ†ìFÝ¿™ G;úÖÏD×õ[°dåx1±(ÚíÑn¥ºP"-zÿ—H’… †9~ÖlÎFŸ öv*oS2Ä_–èSãÅywB:àÈ[°l}®$�‹�Ä íï·.Çêѳas—MA×eO!{ɯÑ/ºN¤W‹½ïomÏ–žèžW †V ‹>à¨ÿ #ç®Áüy}ÔÕE¹ ‘Ñu!2•þ$Î)­8%ZÆÙ#ØòÖ2äÚ&«•œ¼yÖ5H$&ªûÄlqÜ»w‰{wÃcÅ!n&Ý;ÊasÄö©ÏŠÉòÑórN33ºbKöŒï'zSÅ7˜=OmÏ �ÒáÁqAïMyL1Ä÷Çü_á7³Ž9’Û¾à l_Ð×ÏM“#µ }óÄÎo‘—+Ý´EoòÜŸIúe<{"2ž]‡íöØxòš$Ü”Šë†Ç¡ªTŒÝΖáËÿÃiiÔÞ>L~w¯¾ Cg纑VlÝ;¨«Ö?}9ÎìžåÓä•6�&¶5(”Äjâ†ÕøjÇΞs“We2óY—ô£[Ån ÅhÔzå¯žŽŽ«_Ç"ñÜLýüo¢Ÿç7Á8ÔU u¿å!ï2‡¼¹‹'£«Nï6uån¬»_§!´ˆ�ë¦Ïe‘h#´¯WKYåà·OC†¢öö ĦÏÄòGÆi?ú“b#R°xÿ,ë?Åá½pì\sêCŒ‘Çjf�¹™lÒxÏçú+†ϦõŽgÓzŒîºSç/Ç„‘=Q÷í×øûì… ã@EÉ+vÙ÷ùvÇ€-}5þ|Üêñ£Âd-ØŠ¬e£Õíªsf£ûÙÈÌLÇéÓùVyüÌç’HL~¦‡ê}Ãì÷×P‡rþ@j×>ƒUŸÑýG5|d+ÏÑ>â/33«aN@LGˆ—¼ Üû¯7qWšó¶;¡ÚŸ|ÄëSðP™�³ �2é÷bîkµ:÷%ž"SÄ{ÏSYÙøõÏúÙÞÇöb‹˜ɵEŠŽ²Ç–~M¾×J)›`TÎǼ)cÑ0»”9“Ç_�nÉIˆª+ÁGÿÔ¿#�Nlœ¯‰c*SïÛá2¦2¦JW �fF€ŠâfV¡áRœz7‚®ˆÑ…O¹%¢Ê‘v¿¢¦°_?`Ñ3îVk\ô¸É9{RþþŠ/ÆŸÜ×�§�ÅCyj"Ûޮö·U»ÞtÄ‹Bÿæk}4aïŒv�Ý‹•�Ì+By4ÙþZ!ÄÈ_�ÙNËtóÅÈ|T,^¬N<”À]�w8É5ïpS•³ÞÜ�#­‰é8û•‹…n'síá÷·û¤‡±Ö¯vž¹;ÿ)�¢¸¢á­Ò]ÄÊö‰\»«ú›�Ý+ïòmS�˜ÉV”ÜÕÖ‰9§ÄflÀk�(¢œjÜÝÛ´!%[â(¼¹ÿü´ÿdÇKœXóŒy3�ë${ÃnüvLã(¶R²–âЖ.è#V¿¨WŽèSƲYÃXÈjxÕ”8jNmoƒ±ÓÅ+ŸýÊDzy3ííïï¶Ž ¤?i3 Ü}@ÓMý)²P&³S²ë�õ†Ï9T�lñÇÑs÷MÃ?§­Ã[Ò8èôÛxÍÍ8èŒã WíÖ#Ä÷6NdT²·AÕp F³sª·Ã$té®ÊêÓ$†±2ö×À2ù~�…ÛÇt÷N3ŸuBñöÿm˜�õSäŽx6iž›BUlSºÙŸ7þöCï è&”�wEÞ|=tŠôìÓ†¯¨3hɵåød}ŽñýKŠžŸ³Þ9Ý̱xJV{Ù®¢ÓîÂîµ[0È1®;ôüÏ œúp–ø@L½Ì¨)›l ÆxÏ�ú9w¥øÀª¿ú�•(æúų�ÆÈâí ‹²‹±pY®„AËpøÙ ÝÇbe w�¬å“àUï}óå¢-¸½ÇxM[Ë͵÷‘‹0Î_’�·>°çêÛ¯7åЧhê3ÝÄû†OéPÆ÷ sß_Crjòü�„´ÁhÌÕÊs]™Ë_/[ ö Õ§Ë/ð.“>àUdÍÍÕ¾ãý¬ÚEÏ5±?91òòyåÏK%ò;dæã’&bÖ{ÇÑæáq˜.©“/#ÈÏGpa¨uÑYL½×JºÈ®!„ç¾)‚ÕkSÈÏãñçêš!æIŒ>l°fhâ˜ÊäyÇ`�©Bó}ÂUíÑ�H \ BP†æO "ær pÓÝÊÞË�Ðé2GÈÖ-F'CÊ�mQóyüu¢‡f,Ò{ð�hlÛ�¡ÎCjÒí,ÙÚDªrHΞ�Ñ‘˜õJì\­9³Ø(âµ™øûŠÖøïž&k±ë=UõiOkê†9HSsÚ�ƒþ›2i)Žoß ¦2\]™X²y?Ö=ùK¡ÊV¯6‘úµLèÐYÌâÙ®6n0DÄÊ«)\¬XTÒ‰KÇÒú"¬Í䥪ûIŸ�÷‹Žã•l)ß6z¹tq‚bM¬Í5ؽe-²§f!³aŸ8]Fm¢ V™Ï,¶ƒ\K:ú´@»Nê½2ÆÍØ&"F~¨»_ÜãÆ[ðâç·ã¶‰mÝËÓ)C�[¦y¸ç 9¥”â"[H6ŒÑ]p÷+á‰UC4g¥��Ù w¬¸Ï<ÐÃÈ[rÓnÝêðH6zN:|ƒfÐÜû½ÍÅ[YÅG‡òS9Êiìäm†æ‡‹0\ÛßgüÒíý^/�™Ïº´»žÃþÍ‹ôYØìébzŸ¾µYzÖ»;ºHÅLçø!wa§xί�/¶Í7H¸�Ѻ¶`͵SríR—–»v•þ‹X)?¢ÅK ¶ 6{|àº0þù˜9ÞÓKàs}Š]Už¬?îvì“9c9öïX‡»®IU³ózl�kÆjÇiÓnõôÌU³‰î>›ÅØLiŸúKÙ-äý¢X4ñjÍ Úé{},@sŸôºútÌ}¦›sß0ÿ]̼÷×Їš7DÄv�î£îîí^ÖUÈη>•xkŽïÆÚEÙÈÊÌ”˜ªýÐݳœþ¤æå0ùð¼rÄqcˆl#¿¯û;n ­ù8Gq#’ð‹¥»Å܆˜›3\8ŠÝ˜6lÅôa®Þ¡Ì¹×šÝ7£{]�µâ#¥,·eÓ$Yó±eÿ)<çnžD×®h¼1èÇTJ“ïæ�©´ïÎs±ÞœaH€.5~jÂ4˜¼MÃ]8#?½›l÷d¶ûûò+‡UÌFvWnöðÞü*ZM£pFîz7»]™¹k%þR/^¼è¬=—Úeç©ìßW�’SÑ®g Ô�ý­Úµ@çNè˜x¹û³™‚ ë"J ëPXxÕ‘—#±ÕETAüvn�äŽ-moR„°ÀœÈþÒ*Y%ü ì¯iâÕ»%öáÀ·gÑ®k,ΖÖ#±G ú¦$5Í*Q]Y+K`×îo!MEdUZ%¥¡Jb¶�€ÍÙj©Eé©ãøî»Rœ­ŠB«È*œªU‘Ô©}º#®QÛm%^˜ÐÓmHg-ÏÃæYCK%Žî߃¢³B>œŠëX < ÝãU8§VPYZˆ=ùqJ¨l’c«Q|VlÙÛWi»I~·ÝÊ�+Ðz¨}Ëç,l?·#Ý(s�„²9X*K°O!ŽŸªB»^QVô«v‰èÜ9YÜkã|–ÏRYŠCðm±H'ÙÚO£“Ð+¹â·‘¸*²ÿî!Õü/†w1-âY·…�£*ª:ÆÖ‹g]+$&uϺŽâYçºOUæ¯BëAöŠYȫٌ!BWZYz{!ª�è�ÇO!¶ç Kó±ˆ>^(úøÁ#â%ÚWuq±¸ õBÚÀþb;|×2yWæÐ e©<ƒCûNâÔ©óhݳ ,gÏ#¦]k$vJ@BbŒÏ}Ó¼Ò]ÀÉÂb-,CMd,Ú·º€´DûÎb÷•ŽmÑ*ÚOe´y2%”}¶í3ìÏ`ùö3˜åqk[ã L{Ö‰çÒg;v£:¶#bë«•Øã ã2^J®f�ücã½Ú²ìÛsg#Û¡]ýYTµJDJ¯¾HŠ—?ò•@V\ß^Ý‚4Slu/V�»R ¸M]Œ_”£ [‹Ç¤E¼ÑEÛÄ*Ü4GÝQJœM~æÃûýKßmæn<Í|¦‡ð}ô÷×�‡rþÀM+wí²õ)Dáþä¨�>!;'—Âң‡pàзâ=L¼�‰¯?«ê¢�Ô½z$Å{ÿ.`æ½V/@smY)ŽŸü¥¥brD¼Ö‹÷C1 ‰)½Ð]ÌC4åeÚ}ÛVˆÐS5%QæÎ.»ì²l!�ø«ÄŸr&è¶_ÅldwåæÎÝž–§_‘eCžr8½›l·›ýù•ã¸3ëý»r)2ººÜùÉq¼ 'Çq˜½ÔR9¼MÃ]8#?½›l÷d¶ûûò+‡UÌFvWnöðÞüÚ•½ú°Fîz7»�Šb£–ØŒÝ,…ÙgЦ„3^9„ç&¥hÜh!0"àbâÐ(h3uË_5ƒì{P2yØLù°XMGÀIQ,>bÒ´ïúMƒ9“@HÐ>KÅF´(ºø¤w[Û†t¹(\ó! m£Ž›O]–Dû,²7ai–WO»LSëaAÎ}C0Á~ Ç’Z<´‘ 4kœ�kÖÕË‘ ˜H€Šb�²WVÚÊf…¸ÞîÊÍ^;Fáí~ò¯·áä8³¢xäE$âŠ>ÿH'a6¹•JbZI€Œˆ/ Ÿ·+‰ü£´ÛQÅ¡ � � HJ?þ›cgÅyêÚ;©$–øÐHMG ›eß™C‘b*î¹Ñ7%qia!JÅ*bWWí�7ðÿÛ•ÄJw_߸«‰] Fw hœ�kÈÌ‚H€H É 4¯}÷š' �`¨Åç[VkÎÞ<)ì½&´� ¥…ù8V.Î…³‡Z_uÏ͘ù2ã�À›l-$@$@n Ô–âÀÁÓâ�"Žvùì Œ�¾P ž…&y80N M# �€¹ÊŽ@±8ÒÕßâ�ÇÇca®š~æò�îÓ.Ö•xñg}0;?ÙKæâöñcÐO/ Kmv¿ûw �0OÍ@œTÎþ/á ‘H ™à|\3¯`�H€HÀF€ª&6u–ãøb½,ä|Ì1u+19mšI€—€2Ñ7HLô¹+w#pG‡~$@$@V•û^DÇÙöZ*Y+ç×9÷ÚTh#ð�@%ÖÝÒßÅxo*þ|ÏHŸ“mÓKDÉÏDzyÓÅŸûèÙ›Ÿaÿw�ˆ¾$@͉çãšSm²,$@$@nPQì½H $D¤`ñ™ã˜sˆ=62¦#CB0 AáC ¶B•µÂÍÖzj¨ð4E%¸‘;s>òþµˆ»¸AD¯& P_'eZÙ&yÐH$"2mƆû‡„ˆ4ƒ´.íñ^6Z‰!~l#sÓ•m™X»õŸøÅ(ß¶µ–S ™H€ÂŽçã®Ê(0 � �€¨(ö�c‘@£ˆŽOB÷øFÍ’™‘@3"�á,Ç¢ñµhyþ<’3:7£²ÉE‰ÆU÷ÚÊép>�óh‹+3nÄ�£ÒàÓN„Ž4h �àˆîv-–/Z„Ú–-E[MFið`3eð�@tçáX"ú&DßT®è޽q혱©´q \¢ã½è6è=p8ÆŽ‚x¿fwâð«7Ïà†‚=ø|Çv|±+‡¿«@E…õ+Ë6ÉWaü„Û0ñÖQHô+ýÆmÌ�H€Ì&Àù8³‰2=  �P$p™ By›†»pF~z7ÙîÉl÷÷åW«˜�ì®Üìá½ù½Ü–¶>¬‘»ÞÍno!Òh%þR/^¼¸Lüò"            �F%pÙe—e‹ Ä_•ø» þ.Š¿l¿ŠÙÈîÊÍ�»=-O¿"ˆ<åpz7Ùn7ûó+ÇqgÖû)våRdtu¹ó“ãxNŽã0+ŠG^$@$@$@$@$@$@$@$@$@$@$@$@$@$@—*Š/¡ÊfQI€H€H€H€H€H€H€H€H€H€H€H€H€H@!@E1Û � � � � � � � � � � � � � \b¨(¾Ä*œÅ%             *ŠÙH€H€H€H€H€H€H€H€H€H€H€H€H€Hà#q‰•—Å E–r|ºéc¼õê·8^ Ä´µ Y¤gàωVv§`üÖã©‘ç2ínxjß�H‰v@õ03-5Õ°1�?úès u$jÐÙ»=¼á6%¤ $žØ7óÞ(5 � � � � � � � � � “ÅÁ¤Ë´=8_ø%½áý°ãª>é0 C%,²5fK4Y:åQ� o…03-'9BßÁrú{Ì+· Z�3‚[�Л’@³'À¾Ù”U\‹wÜŽñoU 3á4Nc2^ï·Há¬)+…y“ � � � � � � � � œ¦d3hBgð�©Z%±‘0Ao¤Ñ1¸"38iÍ^¬†ÅþïQ,i�m>FâiÝÌLK›rxØt tÖð(¥$ þßóxô±ï­±†ŽÀ ¯\Ü]|”¯!¸®3ê¬^¥hf9ÍLË+á›4�ßîÍò�Ü9z¡´H‰kR¡˜9 � � � � � � � � � PQÌ6ÐtΓ�%elÂĘÿÈpt��ÂË…ÁZDD¿‘FtÁ¯žPâü7ÿÅÔñ;5n^YÌLË« C,P½¼ôºbóp^$Ðì ÔŸ—Šx®>ø» HÙym4¡ošYN3ÓòšAÔïÀÕ„²0k         °úbM{Fü%=�³Ee’S<¼ø:ô°µÈˆˆ’_ã-&j8ÍL«ñIø–c«þÃñ»—z[Ä‘­1€+æ|ÈÐÍ‚@(>XƒÑ7Í,§™i5‹FÄB� � � � � � � � � �@#àÜl#@fÆJ‹¤åÄC»£3[£1¨pr�n��ÃÛ‡“Ä”•Ì%ÐÚÜäLKÍì¾if9ÍLË4`LˆH€H€H€H€H€H€H€H€H€š?ªæš‡L -µu°n( ´ˆn�ú I´sçP)v-niQÃ(¾ [O{j¥µ•8°ûŽ®B«NѨ:Y‰ÈNÑÿªž ÛXK¹„·Ñ�rªÌ[ ¥`îó%êã¼m7éÑÆÛ€[„„S)5ím~p¾VÚjÜ–Öé£Eøæ@)ªë€zÑ8ÚöKÁðÁ‰>mE~ºð0ö~} UQˆ1zvÅ€�‰hi¡È®\Îò[ÝÍúoQÚµ’—ØJ½¥(ßÉ=ÈÿVéè<¨v·.½¶”•b×E(å­�j…!?N‡hÒž/Ñ6 •>P\ˆ²Ö×YÐ*¾#ú]Ý�â¼­ÏÙøÂ�6«Í#xmC›�o6µ_Yïe5Òçj ïeJÐôA±½þyy‹}§>äI&• Ä - va´ošRN[1ÌLË�ŒI}ÀÑWuõUuâ œÄéª†ŽŒ¶]; wÿd$xÓ? ¦# � � � � � � � � � 4=Ÿ§¦›^dJŽÎó‘8ó÷s×¢ìéûœýS‡à…w~ŒVÎ>Âåö¼ö&þø›TúÉ¿�G‰NaÝÒý,géWøåˆwlîy/ãS|9³Ϥ®ÅvÛ¡+¦ãÑ[%Ò5ȹç/X—+9iŒðľ{�æV‘R'ÒXæH#ù±»ðÇñÕøÓ´7�W ILX¶©½ñ»'a`¼ÞOg¯,Æ?g½‚·r%ž#H[Ü·å6Ô¯Y�ç_µú÷}ìv<ùóަj‹˜EXì@IDAT°pÀË8hK4ah,NçÉ-ö]ô}lf§ƃµçb?�/° ï vYÞ|úÿÆÒÇ»yàÜñøÍƒé.ú�ËhzøÙf5¹©mhòðÝâ÷½LduË«ÿ‹»Ç4dúéã+°tƒ­}Þ4/þu¤OAœ|÷uh£ %±ºÏ�_ëP+.5Ál`mý‘JV:%qƒ>¶ÉIIlõùOÎøb�°óUV„g2þâVI¬DÚóÌübÜ[8î±.œ³ðÏ%€6«É0mC“¾ÿïeJ~j;ëtEU€·‹!mįº»1~ù�ê;4íJb«s }Ó¬r*Ò˜™–Zha jˆDÝÁ�â~³É¥’X‘%oãaãþ©”         Mº©åÐ’R…?�–ɽqýMe¨ˆ�„uMk= 6ÃiGÑ"1pJ7ÈGUÖÕÖ ªGW-HýôÉç±îmíjѾ¿„Qƒ„òåD1^Z,¯2>�'G¼Že‡ÅŠ;G~áa¨œÑ18S( s­eýúËï�åÁî”)’ê§ÒûXWBª±Z ë ]�œT�v±V%èÙC'P,i—­®j #“¼ÆùôÛÇAnJÅMc:£l×>¼µAÈî¸NàÿþU,V';\TC9ÖÜôö¨Â‰ëçgàª>Ø÷êgøÏÛòj^MÀ Y¬äÔözý“7"ùðçX·F¯¼o‹;V�@ÙKï å”Mœ¼8RyÊzúÚb<5ôeäi$ŽÄÐÒ1,½ª‹Šñ¶èŽþ%VìgÏh‡õÏ_ëØv[ÕDK@mV'‡¹mC—¸ŸVîeJVue@¯µDɃ» ×6)¾CQ)ÐÕëîYŽƒ[Õvœ|cOÝŠñÀû¦YåT hfZ6`@Ðû@=Þš%v1�®„ÌnHí‰s¾Ãû®­9Œ’ÑH$@$@$@$@$@$@$@$@$f8Ãf®âF$¦â×MÕˆ_Ø÷y<ú˜M8t}â:ï”X¥ùxn�ªtS�Ó^½Yƒíš´a§XmyÃËØîX¦w/¿{sol¯‘!¤-—3 Wd Åy®•qõV¡ø]Ð ^úØŽãjÈ¡ÝÑËIc…ÑMÃh5,b‹ñ;Ým1.…54v®'#qÇKwcâp[]Ý6·Þ¾ ³²>ul£}påW8)ÅJpù:½ícüÇQç§So<ñÞ$¤ÙšÆ�®†k_z¿] *¤åø�aøä]øõŠ’{"KžÅóŽ"qÏ{¿Ûƒ‹3…ÇtÀñÔ�6…w¹8ϸªŠú/ž«®ea3‡àOû1z8êh²¦—âÕìõxÉž~î§xi×Ubëc{?‘0Ép›u#G€mÃMÊ>y™u/kÙ£'úâsÛ6ÇÕØw¤?Jlë�,•'ñ•ôAÆðauñï›f•SÌÌ´ìmÌ>{Ó ,|b RâUE?jËñéº,}W9iœ � � � � � � � � � „'n=žõÖ,¤®?/ã\=Üí&,…Äž7¾p( ÷ëÿq·¤$¶…Œë�¹oÿòšÓíÏìPWXÊ †¨ÙŒrv¢¬Z´]E8Zi·xú­Á7©«]“¯ë­[±hÿ|½¬À7ãÖU(y3VLU•ĶÀm^‹ì$%ÚÉã(q*K >y~Ÿ”|,æä¨Jb»GÚÿƒû&z³ÖÙÃÜß�ƒíªú(¤—Ê„nÔC(‰•+"‡Z�ÊÿºzuËbT`ã³êjR¤ªçe%±-^D"&þõüDÒ¦¿õ—¯ w;5sLf´Y—’Ô6\¦jЇ_÷2±â¨TÇ{w8Ö{”©êÛ£(v„j‹´¾êGg�!à¾)Òó«œ:9ìÖ€ÒjÄ>�ð«ñ�¿ŽÓ*‰•BD·Å�î�†W^ù±W÷Fíó­�I€H€H€H€H€H€H€H€H€H I PQܤø™¹LÀ»UY5È׺BÖ·n¾ÞÅ*áøþøÙI!è“¢T–¬)Ìæ”³UÏÞ’²¼ÄÊTÇe9!θ}“{+Kñߣu/Ôž[«ªÖ«†ëW,ª~暺à¦ï¿›ú“÷YÕžÀ‡¹R�‰#1Ü0©ȸ;] ؘƶè×UUêiùCÛIçÌÆ ûàXI0›Y¸¾¶MRFâ¾µãܬo‹Ÿ>.�T�»�ìR6Íi³®E m¸N4(>ÞÝËbpÅ�ê‡ÅÓœu{ü­M¶¾ù4î~øKÍYíßí´oY-ÄOí�ÞA\$î�wåt—‚êçKZ�×: {îU&¬ŽÃUc³ÔÂf]ƒÔ&ª3UšH€H€H€H€H€H€H€H€H€H€;&² „ËYI Ì„_]…nÊpÅOúì«LËqX(JK[øº‰Ú´^f•3®#†‹¿íççï<�;Z×YŸ/*”¶æ®Ç'ŸžÂ�»[ý,ÇOHçüÆb@ßFÒj¤vA7ÇöÉîª Rl8®»ÎUARƒã'úºTð´ê£(ÐwJ W]ZMa=§Í´u¢¢(¶®þêËbËh«ÂW³õØ´ñ¿( %5¿šPËHTí8¦ÚEøR0ªÓ¬6+I«1Ò64 …Ž¥Û0åîµÛ*PÞQËNÓÚò^;ì´úÕý(Z< ) ÚÔ:ìPÅ 7ô†ªnvDiÖ†Æê±S®¶ÕGà8[EI«ˆ+O�)� � � � � � � � � �€|YÄcF~Lƒ#P[±­ãŠIlé0¢ÛiµŽ•ò¾FBÅÍ´rÆ!í¡Fzƺ�ôÁÅ8/ÎöU¨b;ä´“P¹ž¬ÇžW Q%ÎÎm%üNî/VItê‰Þñª5¨¦>q.•»Ú|�·¸®*>®ÙZ<²•tž¨6²Ø6V(ÐŶ¿ÅÒGú !ewì]ƒ½Û¿×ˆvúÙ�xIãâÎR�£gjpu¢ºªÙ]hŸüLk³.r  m¸H±É�[õU>XØmû`ᎯCZŠh·buüg¹Vñ¬Ÿ œÀWj�Òð‘K9ö¿­Š>l„´·¸êÜŒM�×FüDÚºßd¢Îw0“3`r$@$@$@$@$@$@$@$@$@$àn=í$ !âÓ�ŠË¡@3–±eLä |�C… «‰åì=¼«ZÀ·‹aU3Öà«7m G¡$n¸ò qĶ-qÑîïqbšâfkcG0S ÉWviPbû•X¤þ»é\_ƒ«$]¸�wÈ:ÕéVû*heµ{.¾¦çob›u¤)jR:!eŒë„«ÄŠûµ¿õƒŽªCqÐæh]SlÛn[E\z_Û#ˆ»Û€~—Úzb±z¾‘ú@+w›8êÀ;C¤üÍRjísÌ»$ŠH€H€H€H€H€H€H€H€H€L' ×¬˜ž$�¦$ ¨Ä슖¦”#Øy»+gÛ¾Š¢wŸmµíw(*ºÆÃ6§Õ´ßã³}•8üömU©�Èhċ烤Ätª€h¥ì²-/Ow �z㩜qhgÜ<ÞÍ/Àbi�v]‚±ï´ï¬ÜµYÃÔ­mæ$ǶpC,Þ*°ö·¯•4nIÄ‘ÜB§üŠ_-@ù½bûñoŠÕ{Z§d¤žÃí½ù:µ˜w?ê9f:ægw_:Õ óèÁ�õÆÍ·rX2         �P'àQµê |— 4çÐzZ~j©±-‘ 7Lf–3¾† ]ï”¢ÕØW\ƒ¡8lÛî6Ó^½‡&¾�í‚Ñ——àWC"°×¶+5ÄIÀÓÂsÅbTd ×µ.ÎÓ=á¤(w<”|¢ZKÒ$'¢sb\Ãvá’kÓÍl³MS‚&ɵ÷å‹k‡«~ó8ªôAÞ[֕Ř8¿»®�ÏçÂaq†qÌWÇrÆþ¸g£­öwd†�ínØDwƒ'—Žq‚^$@$@$@$@$@$@$@$@$@$Ðø¸õtã3gŽ�ˆŽ�X“å¸Î”V9ÌF†Ú³B³"]q±n”‡R¸&7šZÎöðcuîÃùǰû“"[;cèàT ›(Î)×é÷£ðÀ1›Yq醔.áÁ¬UOå¼Wõ**8«Zô¦sgmª9½G¨ÛcpEFUÈâs™O!Lm³j›»)a`Ou{ü“%((<„¯lj ¼.Gô´!¨FÞ—E(8`S" ×+Gtõ¼�¼Ù á>ÐìX³@$@$@$@$@$@$@$@$@$@Í�Åͽ†›[ù"Ú¡ËPµPÕkö H¬d4¾.`ïfûIŸJˆ¶è×Us±q4WÛ)¾>¾;y•–ÉåLÕÙ!èñ7?Çë¶‹±û£«ðéwS/«¿XµøÊªް˜Ø�¸ñ´š¯?¦±­²/oõ^¨*5ÉCO~±×¶·Ö=l‘-­JýYOîÃ;»jBCl“ÛlhÊ;),ç¥^-¯øö&zbW\éèdåÈYõ…cµÿ5CÛ‰½q½ÍÿËç?Ňޕð‘4Hø7âP9ur’VÈö]i%         �P'@Eq¨×åÓˆÁॕ8†W߇î]¥û°ñUI�“š‚n^Ï!¶\V¯r|øéÕê£É¿´Ì-gBº}Õb$ªóNà mÅ∛º7”¦ÓUýl[ØŠU‹o õªM150#°‹}©ù<º²PWN£`'^ùШÞN`ÃïÄV¾az¥Ü6B³rú­ùy¥ô¶T–£¼Ö¼3W�ñ™Ûf�Ó]—ÄÔU¸¼Bø´Ì»=†]k½ßÄ¢{^ýÞÚÿ:õBz%Ùö¸z’µ]ŸÎ«ýÅòV[gôMòµ¿?}3°rªˆS i…nЖÑa³”â��±Ñþ÷ÂFì,uù…“# $@$@$@$@$@$@$@$@$@$lT›0Ó7�@Ú­W«[µŠÔ·ÏZ‹wh‚–Ò<>b‹F�–1wˆXSìÝÕ2-Uœã«^Ûï߈œ]Úÿ-æµYÀì¶`Ñ\Gõqïÿ BÞÏwkœ.�Ú ð)«6^e‘”Œ�Â_í+]0¢¿ôJtŒº 8(ÕíÀÁ.Vû›Ø75…Q,–S“^ i©È}U#o€–Šã3: � � � � � � � � � ƒ·žU¦é�ÈÖÒ6ÅI‘ðí«…8ŒâA<µj�íl]ã,>0«¶ß‰�Ž•³ÆáŒ]ã�õ×Y"�è›*Éê©YOëp64ø›–yåì’⤺étRÙÆ¸Yf#k­Ý±�Âè÷áOÿ'êM*Oƒ”beñõ�ýëŸÏBŸÖîT¶>–É]p «XÄH =BÞª;)Zâ"”X´ë`°üP(ï~å!<±jˆÓjE½8 ¢.ïXq+žy ‡Þ+v³Úl0ÚFŠkK2áÚqXÿÉí¸ãWÝ�œª¬`w¾¢"]œ)у…"Ø~ÅÞÔ½äæŽ( ×Ûî-~;àŠÎ+“hڛţ¦oG¨œº$NËô> ½¯Å¹ª/]9¼±¶ÑŠ’û¾Î�V         h,—™�‘·i¸ gä§w“ížÌv_~å°ŠÙÈîÊÍÞ›_E9oÎÈ]ïf·+Úe1hêÅ‹—‰ßKû²Ô èÀ1}[�Ö]Û æ¸8K¸c"R$£Sœ ÅL8»TÊirÝœ¯k•}^k/ eœMá*¶ç}*u�c«à[^ý5î,­à4Y†à'w' ‹q´° 5‘±hßê‚XÅÜí;·CçŽmÑ*º‰úÛlð«ž9Ø„h`ý� � � � � � � � �@3'pÙe—e‹"ˆ¿*ñ§l«xQüý`ûUÌFvWnîÜíiyúY6ä)‡Ó»Év»ÙŸ_9Ž;³ÞO±+—"£«Ë�ŸÇÛpr‡Ù®øt8øað6 wáŒüôn²Ý“Ùîï˯V1Ù]¹ÙÃ{ókWöêùëÝìv*Šýh¨ŒBv–£ŸáÎÌ­v+Â_Qì( $@$@$@$@$@$@$@$@$@$@$Ðh¨(Ö({e¥­lVêCowåf¯;£ðv?ù×Ûpr‡YQ<ò" �æC ¶E…Ú³aµ…«Ã{Ù.9‰ó`û†ójb©(4’ � � � � � � � � � � �€—¤Ó2½ŒÁ`$@$ªöoÇo&îFìÐnȺw(FNB‡ø8´Œ¸€ò£Exå±ÍøO®z>qÂÜk�F=q×(E#          *ŠƒA•i’ 4�Hëm­:ï^RþÜJÒóïïí6=I€H€H€H€H€H€H€H€H€H€H€H 9àÖÓͱVY&¸¤ X¼*}ÂÄXV0 =ø¹ŒW¼ˆH€H€H€H€H€H€H€H€H€H€H y Š¤yÕ'KC—<�VoÀšO®DA~!¾þø¯@Í9ˆ?e»éHô�‚±¯ÆÕýÚ^ò¬€H€H€H€H€H€H€H€H€H€H€HàÒ%@Eñ¥[÷,9 4S-жK\­üÝØL‹Èb‘ � � � � � � � � � � �@€¸õt€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�ÅáVc”—H€H€H€H€H€H€H€H€H€H€H€H€H€$@Eq€�H€H€H€H€H€H€H€H€H€H€H€H€H€Â�@D¸ LyI€HÀ_çÏ~‡gk¢G·ï‚ÎmZú›ã‘ � � 4�ÊÒ|_Uü´îÒ 1üÖµ‘Ð3   �€ œÇwßž@ÃLD‹VèÒ-œ‰*   0‘Å&ÂdR$@!Là‡Rl}ïcœµ‰˜pÕ T‡puQ4  °(;ô%¾(>oµÆžEÖÍWq‚Õ‡¿$@$@$@!Màô¾­øx¯}&¢#nèvÇ1!]cŽH€H€.=T_zuZ%¶Ô¢ôÔ)œ®¨¶É‰6 �Ð11lœ¡UUá.MÉ®%1ZöFFßvá^$ʉ°œÞ‡·?8´Œ€m1ê¦ë�Èeà­ÀRŠ^ÏÅi—)% ógcÈZædfçk*PQ^� "Ï-ZàòÈ–ˆ�‰EŒhû¼.MÝ®ŽŶ�½ªâËoûàšžq—& –šH€H€H |œ/Ág%1ÐãšáàLDøT%UX°ïƒÿà@åDXÄLDÚ(\7 ‘hH€H€šθ5³ —â”~†uÿxk¯G¾¡Ð™˜¿|~9í&¤Ä³™"¢£÷ÎîÃö�ÄËÙàˆñ>6C’@H¸P_ƒóŠêì¼¢>«D­òÃÛcàus¡5nS©!k=Ÿ 1;ým>vî>€³¶…£úlÑ"»tE�>½Ñ3±�“7š1�ˆÎ¸ªokä<×PÈ’�ù¨è™¶‚f\ç, � 4[µØ4g<&¿d&øSÈÓÈ==»w,Ez´?ñ§1 ”|½ Ž™ñÁzzg"“?ó2ƒÀÔÔˆ�xÅ;ZÃLDe½‰2   �#À)æ«�æ/N->^1£g¯öPÔ\,ž­üe!¯f3†ðÈ/z»#ðÝž½êËY‹d èÖŒ^Î,ßá�×?†uêè=* C;óÄ#wí¡¹øµhä‚”~õŽCIƒØ¾ÍgëW±Zµ}kÑg.؈Ь¨>‡jå-Øv56k{¾!ûk6³ÎbÇ» èœݨðªqªø ø;ލ¬›‘äáV×lÛ¬›KÀ-±ÿˆ=ø™õy~¡{¿­DW_5Ï"’ �@s#`Á÷‡s¡|1/þûyõB•ÅϨM­6Óba½F†©Ø]³®y*½-%Ø]äP#i`¿æõÁ:ç"4-¹9[šô}˜í¬97-–�H „PQB•ÑüE±àƒ'ÆcìÂ\ŸŠZŽ/@>•��ƒJ@œMœØ®FÚ¥¥¢ymVùCÃW�v†~øÁnä/ ˜Jà‚¬Ã–fÓÒ.O@Ƹ, +Ki^Ï=¬q£E"`*³ämyÒš-£ˆm‹¢­UW[·¡–$ÐÜ÷dwÙÜlÛ¬\ÈKÉܲ+R;¶ÀW§¬7£â½‡p¾'Ï*¾”šËJ$@Í…€ßÁG…%ŒzT8É]žJo§r8;œ.Øëø H@j³ûÀ�sεNó °�™Ï”)’ �€3*Š�™Ð%HŽæ<ì³’X%<_€‚‘ÉúL òÛõlb´Dß^~íïås¾�¡I¿îlÌ‚2¯�"pyHIc®0£¹I7ÛÔüeVqp¤“ŸXôçÑì™(í¬þj*N£èà>ì;|J(‰å¯¼Gڜ۬÷Â9äåèÞ¯‡PÛ>âgž„íX³á\«”�H€.EµÎÚR1T ÎÇ¡ÜèØˆæ9çS�Î:°·Lî‹Äf8dá\„£Ši"¶³ ÂeÒ$@$`#@E1›Bã°À&,s‘W:­ý=nÚ u¥GðÕ'ÿÆÌ…ž¶¦v‘�I@Cà<”¨.­{!¹í:­L65÷O¹x4‡¾©…F=„½çq¸à”TŠX 3z;mûp9bÚ$"mèuH»ò,ìÿm#¥hÞÙf½¡òaZvî)ÖãÆi›¤‡öÇ€Œn!/7$  •@®¸{²3jÐ>F~9=ƒ.C®°Á45{RÛËŽ58S“Š$3–%ËÉÒl*Ëw‡Q"}ÛØ«OSÓÍÄ8šõÒܤb;kn5Êò� „*ŠC£š½¥[_�±ê7yg–bH¼A:FŽÉÂýsÁª‡ú`æjw_ÊZP[+ïK�èh{“®ÅÑbåQAq×¶QQñèÚ7}S’àú}Ê‚²Òœù d I±Æ­-ÅÎOóP\Y‰ÊÊ(¤gŽAz’nVÜR {Ñ""¢aÁÑüíøêH™Xb�+Fd %ÞZÖÒÂ�ÈÛ[,ä­DTûtŒ“îvkåÿÇÞû·UÝû¾_,ÛòY‘£Hq;rœ¤“49>9qݦ$®9”rï{%ÌÀ›û(¼3Cé¹SúÌ:†sß=@çÜrÊëxCÚ;}4MñК4Å$ i|&Šƒ‰‰'ŽìÈ‘£ÈŠmÙ–y¿-kKkoí­?¶ìØÉoƒ£µ×^ë·Öúìµÿ­ßúýÖäØx.^‚Çã�ÿJ0:9¥v;,–%(+wÂf’9*Û¨Þ›¤6+Î@¤®QÔþS'O¡O@vá&ûJÔÜV G©þPËŸõþh?ÎǽNþƩ{þ’–5B ÀUÿ0õ¹ñi[6ZÇ´¸Ä‚ÒR+LÆù|Q�ÂädÔéoN.r¨>Ó=uºáñòâi¢ ˑҦSÍÉQ ô÷cÈ?†¼âׇ¡ }Ù“¬ü|Š-68eXé°!6 £ÎJ£ñ1×¾†¾„4øGé=�† ä1�Hú+Hñ6vÅCcÝè»4„qª˜ôŸ©”¾Ÿl”-_ Û|Ž=¨ÚÕwö¼cG…m'Q’�íw=¡V™y,âF‹ú<4¦á§¯œéoLéŸþÎ1ÌПSæ=l:Çbêg3m#çcL€ ,<3|SYx á-dW°÷µç5*ØŒ?+”ÄBÓ<þó!˜­ÿŠ5{é~õp!Ú#ä¡à›ŸãÿoðŸ·> Å÷U,Y3Þíý5šWÅ••ÁóíØóÿ¾‰Ÿ‘³+–N'P»¿|ãñ½-« ºßzë�W汞Åéç_RÎn~ŸÿóZ·3‰Â^)r6{ÁKý˜J–¤àX®Rȧî;w '{ÎÂë4yŒ'îÚz}pë œOÂu`dÏSEÎܳ١!‰ÆÔ]´6jwôXšï�‰G7’ó>É”ßòù·ïØ~¼sLÞ~�Uhn®'çÛzÛ<§Ž¢½Ë£ù õ¾"ÇlÛºf½fÆD‡pÁuǺû4eÉÉ F+êPeÕ©UȇSŸ�ÄÙ>/F¥œ?þkDyíf|½¦,Q);éAë¾#�Ï ¥¦ ;j­ñ¬¡)ÿ)ì=Ð;R¾å^l­gûÇ!äs£½½^¹€ø¡éP´�ÕzmÒûÈï¡Î^MfEšD³zþTÅ“ƒ�Ô{„Ú©‚¡>ìßûŽ*rz×ÙÐŒÍñN«J“Í~¦½ v³ßΩÑ|z´nŸ^g£»\‰ëëî@M™†S¿l\OÙfžPLt§½dVØÜõYŸ zpô£vx†µnDÒݱ5 E“¾4¸«›A÷¤?Ò=I¾�W5Þ�z“Gµ£OS>©F«· ±®BqËÞó)^Áä÷ :4¬Ã�ØóÉ‚m÷ï@™â]#.‹T¸pw¶££G´Žwg=þfsU’ç’�^._eͨ‰Æø0àŸ¢IC)L‚2&À˜Xˆä‰çbÝhý^):ƒÏØà™6¼øßÄKÚŸãá»_x/ÿè»)¬’i á7?ó>£×« 7î~?ýéÓ¨�Lè~ëQÅ8‰FVŠ:ˆoÚµ¾µv£cômܺ‰e—Æp~ö�Ïâ™7Æâ4µ�xáùŸâ¹ïÖjž»È úû…‘{æ“Ú²õ®—||A$ kH³PsÊa‹�IDËXĤÿéz5¿EŠP»mKd‚HlPEÕÌìî.–~–ÝV³4&À˜ÀB À£* á,Üèu;‹V��”Æ—ŸÅ6Õ‡„E)¾÷"}lh|�:�,<•©¥½~þ_`×UK)Zpîò¨ˆm§÷lÄÕµ4Ô›rsíÁC[�xø_ÛI'bßtÓ o�’اþiyë$%±:ž$=³ë^´ FENN Ö4)íÁ7”Ä øüͺD%±$âà3¸÷¥¶¨°èOð$ž½ï‰´”ÄRŽ=Ï?gáÃh'f½m2Þèx’@+þËŽ•ºJb)áÁ¶sPž�xöl‡Þ!A¤Ku¹B²XpgŽw¥TKÉCþ^i}Ý>Ѿ:&ˆáÈ n1F/&KMý�”*Éëg¤#a•姘8HŠìßሎ’XN9âé"åàš•>%Giü†HV ÚS(‰¥ŒaR\�T¸�UŠ ùΠ«7•’XÊBŸë0~w¨Gaá‘–[в¢¸\ÿÙ3)ûßÀ™³ñ ´^êŠeZÀÀ©ChiK¢$–¤P;ÛZp´'¾>• <ôt@›Ž’XJ4âq¡íHÅmLRvá‰w4ª€^ÿÈf?ËN;çFJöÛéwŒ½ïNª$–ÚöÂõ—nÍ>ž•ëin€Å¤tûN,‰n`nú,Y{:ñ»Ö#:Jb¹:Ãè>²:/ÈiþÒì|ßix’Xä# ßøP£“Íç“$�ô®)ïA�‚’XÊ1Ž -½¹tˆ&5úm‹¾’XJC›¿·--GAzÞŒ¶ÂÒå‚r9 ŸdÞÄ`L€ 0�”𦽹~õc”ИC2%±$lÏóbeá}héÖ{†žÇO6–`kJbIÞÁ=Ï õ‹ÄÁ­!)}zy—Óø¼>ÿþOPâÜšZI,â:ˆç_ø‰5K¯3Nº‚!á=Éb[’¡¨ì½ë%_«EcB�Å#Óa‹Hd"Å,ò±ˆÑ x_›Ž’Xjß\‡ÛbFRÌÜn‹¡ŸÍ-–Θ¸^tí®W…¸Ü�À�7®øš÷Ÿv}MØË<¨¥?Þóê�”¨©Mƒãååå—ÇwÒ íyb+lž@³C} ÅÕÍ®xP)U3Þ…#.¹�v@ò_³IÒLKâôâ£%¹Þ¡Aíçš@Ò¦·Ü|Ì •ØúÂCøê•�²”ä¿¥öãʬ™.-©Ì�î^^…OÓ¥ÈHOL¶[ù’¡«l¼g0’+alK— €Ü½Ž‘‹Ðó½aðž¤mÂJVZ^¥²c j„}•CC!ä“ëki �_…Ï/¨Š,°K¾Å„Mú84˜–‘³TíÍ}ä�ôâ¯ü*,q8±ÊJ=ñšÝnÑÊØ�öÖÃ(yp»¦«Ï€»=á#¢Ä^Ž•Ë—¡À@®Z¯\Åà äZ9Z^´š5ËQR3’«oÛR–˜ èìŒÁwñ<™ÝçSðÜÑ„{�¡Ä�š5+�síN÷ô ×~¼ºÊ;t4~rm4©!zÇ�F`¥e-ËŠ1AÏγôL‰=µèž|à�.Ü¿³6}÷Ý%�¦ïÈ2|—¯U±7§x9Ę`Là&"Ðý«ïcãC4’öÖ‚ûÖý|àýMªW¯3¿ùG<ŸbÌA]L�úÃ@� û“ÝøÇ]Ïg&iu¾îwpf‚ÒOºB“�…äK–f`É—Ýw=¡*Iƒšïv±<qã�Ep´µ=æéhúT¡¼f –LáÂénòœ¦øŠõ†¹ ,ü~6wmgÉL€ 0�ëK@­åº¾µáÒoHÁ�Ó8˜Ð2rMº:Ó—å!ÚŠšZÒ»RéUrw?…] ·£†ÖÛ1åqòÏïâ/íQ¤‘v^ù·£h~n[B¼ÑüìëhðýZc¦k3^{³ûUºpúää )Š5·f¼Ny~FyÍ£´ÍϾFåìS–ãú49X½ôqLtm3žz°·¯©AY™ ãçOâ�þö¨…¿ú2Ú~ü-úpLãV¡Î+VKdQk>oc¹!ŒÊ£ÈT—¢2»`�$W.ù¯´®ÁZ…M·ß†•ÖÄupë6‡ÐsôOèì“?ý8u6@J‚¹jd*êh5Fa›Àû{Ç^î«ê¿�z}_ BÆh�!�ñåß@.Tw‘ Õ¸íú¯‘uØïÃKæÅg=ZíœDßÑÍh 6ÝýmTj(eCÁA|ÞÑ�kæDÅ©²’FTÕÞ�Ûn]Iëtªœ`¬¯#ƒÝü©­3ö!îï9�)ŠÅ3`q’kSROw‡0Αⵦ®LYLtor°"ÇšU‰Ê‹Ñs8ªR;ë›°¹Ê—YS‹À¹üé˜;¦dê9z·‘ûï8Y)9YŸ÷ÄóQÈQÛ„†YV­í}l=;ÇŠÄs´“cª@ÃEOÃ`çû8Ø3<]bQ¾±½.‘�^}²ÚÏô YñÙnçÔ þ]¥$–Ü�75Ô¨úQ=&ƒ8þÑaš >žÄ.wö×Sv)[à$7åÞèz³’ì¾Îƒxç´5ëjPa/…ÙT¨­øVU$ë}–ä»?ëŒ]¿Rqk v5ÕÆÙÓu.y8Ü¿ïy;?C z»â¤ªªæ®�–0Øö×wÂ&®3Më»?;Šz=PÝý�½ç“tRND°o؆íëå{¤tò�ò÷ˆJù«Ù œ;vT™®¤ Mߪ‡Ux�¨½Ã�ÎÚÐ#OPîÆqÏ­ä²^ywÔ.�bsͰ‘§yUˆÐ —îï?ãuåó&À˜`‹�À•ÃxBGI¼û©—Ñp[>mýyS´“Ûç[0ñJ³ð^?ˆ½/h(œkÃëÏß�ºr Fü^œ>ÑŽ_ï¡å¶Ô"vyfÁµ“Ÿ^°,a²Á£-šÓw¿ð:j¬£‰Ì#ð^8M›�—öœ.†ÜµM¤W`ÖRMŒÄ\ΑLòPUšê›7±èì½ë%ÊžY �E(¸ÝcÁs]è‹�ñPëŒ4ýmCì½½ªº:þˆvwt @`®vz?›«v³\&À˜Àõ' wºþ5âÜxò´¦–š‘' br Á`PûoLÃßP JO½ÞŠ/½Ã˜øêN|õF‡.âè;/Gr‰¯ìÓb$GϤˆm%²£øðíWðôã�Ðz®;Ñ´ó»xòÅ·á=úzB‰ÛºHÅ£³Õ¾Œ_¼ø8ž~í¿“dåö¿À“�<�Ÿ¾®á…Z<9‘ÂÉ 3x)l| ­_bxb‚Ê:�¯&Fqñó?ãåÝÔ ³ä®R‰dnöBA…»'ÅhZ%qǽà;Mõ¨ÐPO‹0¢zk삼«d1;¯Û„Òggx*3ºž/N+Ð8ê¿¥PGÚb,Ãö]›è7¾y?ïÖèÿaˆKŒUÕi*‰%)F“ uÛw Ѹl9d,»<ØŒúšŠD%q4‘ÑZ�mµÂûqU˜ IVXŽ[¿a÷Y�ºO ìÿò¼\<ý–`껀 -²‹(ß´K©$ŽJ0WÖãÛ›[þ�_ Š9É"nàKÅÇ™±|K“S%¾ÕX#Ôëú¥ÁŠØF;™ô´ìö³X-\ Ûíìê„hk^T¾ ÷$(‰§1äšÊ°yçýä™BPd „²v= 2³¬¼sc¢‚o„<tÁré¿÷�ßâý¶#èì>‡€òòIYülú,Bð¹8kÄPŽoi°-[¿[ÊwGt]Ð};Ь³ÑQ‡¿Û±Y©$–RæšPU¿Þ£^_>{ϧРêäØ$(‰£Õ-t qGmÔ»€f¦#‰YWŸp’ŒNìÚ©TGæXP·ãÛ(ÌVzO|©û¤U¢x;R<Ä´s`L€ 0�œÀñ·ÿo�Éù�áƒÞQ¼ýÊÓxüñ'ñówOàËÖI¼úáOaì x�¼�©’Õ¾€‹'~ŽÇ¿»[¶l¡q’f<þô‹øðÄz;ÞÅnšžoÖð*Tó½ŸÓX� ИLäoˆ&Û«DKc1Š—Ó}%åùyÂ2d>=’�ûÙÖ‹xû¹Ç±sÛlÙFcß{/¾ý!&†zñ. @Ô–ÓØSB®¹�\ßàgRVöÞõfRzÚyx,b�E„ð%-ߊ°iG\I<OJ[ªÆRâéç1´ úÙ<¶›‹bL€ Ì3VÏ3p..J ¹« dA¼õ@!JJJ´ÿvýLW©#K_øà"^y|'ÖØL±Y±¥lùîÓô±0„ÿc£raäÚÿükŒ~õ.ßI–<’özc¥õÆÆ¤¿I”Þ¶�b!RØ7ˆ!uœ¼¿ÚE¿› û?éUÄ$ì¸ÚðG•¤é4ô�ug3Þ¦ ú�Ô較ÊcR†Â|Í÷©âM®hU¯�– Â{û“h €ÜÒUh~úmœxû{IÞGâ²³ÊIX6$séÙz×˼ä rÃäŠ&Íö·“²<$‹˜ôá¢Ñ"©Ï@IDATb(h-VÉC• ”¹4FáTÄÌûÎîgó΂ dL€ Ì!í·¯9,�E3-ïõñdf-‹äøaEh÷/ñ#]÷ÍdœSZšø‘@JÌZS¯ý¿Ç¯ßÙ‡W÷$~d)Ê�wȽ³‡Œ†4 [”¹` „JO ê^Y¢îLWÙwYåJ+Ô/ƒ±èR‚_9ÓŽw÷þûö¼ªªS¬ �£'<ÀNí�ã„ÄñæëOB?u.l¥‹ñ¶3 ÿ@?Ƚe 8N#Ôñ7U…¯È®§ ™9ÍT‰¡ÅsN㦂¸*TÝ訂5I�+œ+Ðé틦��4ÅeJíeœ ¡ð¹Ðzh w�ënGl‚D’’šõ£¿ÞËŒãø) 5tÃC‚rB[ˆiÕ”tÄ'cœ%Ùë­‚ò˜²…ÎÀ+d/¯¬�cñʳö�F§ë­Í«°o‹¥¦•FnXÃãÔ„mLÌgX�r 7ÝÓÉ ±¢¬nAI-ˆYØÁ9èg ²ÁÙngè DtƒcmâÄ…‚˜íõ4Ãbu³åZª°ãÁ8çêD­‡›l),O÷ì¨Æ®u‰ÏsÝ2?ô‹Þ!Œ¨$7‹º­é½ÂØ Ù˜vdHruïH´”Ö`°Ïö¼Îîù46&Ü»Œt²è©Ó�´TEzÜÂCCÕ…7= Owu`Œ^á„â9è&>>(Nœ c\z=R>Râé9Ę`L€ èÑüÊÏ‚çüFÉ¢WÞò I#»4ñ‹¯óœðÞSP„*9Cì÷ ­_‰GÉýôßß�†;6bµÓAÃc æ%P´,±f®WÂJú{ŒÜOßO‘o[ G©ŽÒz^j™íBf÷®—íÚdM^¶¿�¨b<¡<;IÇ"ÆÆï莪ºW�Ö41¿Wó>£,qîÍA?[€­ä*1&À²B`ž_ë²Rgr#hù}¤®‰NpUÎsU50eèî]w"©,•hÉzøø¯^Â#=Ÿ°öoBÒ„ˆÄ5s’ä.ÅÚÕëJ82£ûJ}l2�“ƒÇñÒ?<‚ç!N–kúX¹=ÉàxBöǰ¥2³3� "[42­98�‘ü.œ:ŽO»ú®†“ŠÈÏ×Uø'Íw=NÐ:ÎB¹†‚ä“2òTÇǧ”JSi„ÿÖ åè9&+“�oŽ衯¶"X¬,¥� «ÕŠåe6êé#„:…üpüÝ/ü雚åçiεc YDwFZé=‹Àf‡bF{ÿѲΊ5e‰SjC—½*ËÿôtSûÒÜBW‡#îU§¾£ä˜@h—±0iß1Û—‹QQœõ~–&ìùN–ívÒH‡8Øa)]2ëeízšuM´¢²v+ýѤ� >ïú/] )‡Cª»¹¿‡>¶ãº†çj ]SÜQ�`é"–œ‡|ñdÑ„õÝQL-†—;×ùâ�”ál<ŸèäîA†äϯ%vòHâÖ³8 Ñd*Ñ,�ÎcŸÜ᥺˜ÒÓ+z„È>%7NÀ˜`LàÆ"0v±{4šôD½OhÄkE™ó…�Üü‡gkñêKƒßÀô'o�ÍOáïŸý!¾»ef㲜t×üÕÝääúUÍá•7žo"|6§fa³ý�¾°[˵cL€ ÌŠ€Æhú¬äqf&�H >�U86€Á-sà¬phÁ†Z- @}�WÚÿõ3RK2pMhƒ~)Ù;2³âñ³oÖÏHI,Õ<зJhYó(_ zbä•Öf†LowAtü¾í™(‰% ¤ Ðìò °@„J•ê{6/¯P¡¸Òj�©òëØä,I<�ßë�»Û…cGâ½½-èp‹Öd‰Y‚:Ðr =#%±$e\µ†Í´ä¬RXS]…+jj=žø—�±¼VÍ.£PO$V:UÌȨ€9G°Œ¦Œ#W“öõÇqª¢Ìñ9èg ¦mbE²ÝΑkd�ß–,��eDv¯§x½æ"d4YਪAýÖíØÙüÜ»c ËS¡#½'0 \ÂÙ®]� ‘ɯ|Š •é5o ‰Ó;yâÀ¬Æqí¨l=ŸT÷ ä�¤ª$O ´(Ö®y²Xí{·vm*8]ż¶4ŽeL€ 0&°x LŽd0³^§™-´(19K‹mM?úk ÇÇ[^Ń[�ØøÃ_a0;‡ÇN¼ñZârY‰%Ä«?xÎ’�xëø¼ÔLQ…¢bq±ú#A‘Tg'[ïz:âB´Kò×LðX„tÒR@Ju^űˆÅÛ4‚#ÉF±ŒP}ê¤*iៃ~¶pÇ5aL€ d—[g—'KÓ P°ÌA³>ÕFµ-8A&ÅwFLŠMxøý/ñ�ÀŠh"ë¿ÿËÄC¯jÌ^Õ�­ŽÜ*©�%î_Á¯_z&1:ÓˆÝ�­Å²¢"Œ¸?ÀJÿÑ‘TÉí/c‚®kàÊñ½øAœ�Í»±¶lŠŠFðÁ«ohÎÎM»³ÿFM»¨” sL0ÑzŠÞ¨ž{„Ö§žDYlÝêTù:>‚ÒæVg5ªW;PZ·x2äÐÿÉtÈJFzMWA�ª í¸4ŸúÓ$•›wbÙj7>ëü—ü#:yBpw´ah¬;ÖO¯›­hoȃ�ÚÝŠ(ÑÊk«áX^ c 2¹žõá@[§bF¬2ãôž±l ¹Öî�¹‚>ÿe?êl‘ƒ£ÏB\ võ­+´D$ÄÙk±ÙYˆ «RBªéˆ)²ÀÎÉ+JâY•É©ôú™äE�²�ª�÷Y5m®§YÕ'ÃÌ…– l½gNhA—_¾ ã¼weq .CÁYL>%W+c™ROÈl»^ϧ­…õªn°£ñÛ›Q(�Ius¤«~j*Eæ4Ï%¹�æ°mv¤™S¯¶Ï˜`Làæ&ðÙeå„ÕÒmxwèþéɇðL^É$÷Ïv,ÅÄ+;ÓþÞž)ð-O¾‹Ï+ÿ ÿñ¾gÒ»p‘ËlªYïšWÍß·V¡Eò$OЦ%›&á°¥_þõz×›é9™�|)¿�"•à±½s‘z,B/çÍŸ^?»¹˜pk™¸y¤ÿ¦ró0á–f™@®½ZÞ—÷ìÁ#5’ (u¬¡¿é‚'n¿�I4›ÓÉfÿoð ´¶hˆ©} Þ÷cl]c‹äLº0’·QÓ¥“†„uö£VÍú<õæŸñãÿe+l´v±¼uß>‚u�î‘wù¯V‹‘”½Q+Ñá+‘YÒé9Òöã ÷°Ð~+îm‚ž>"G×Q(¢3¶nª’Í UJY¯äÂâ+ÖäiM¶*4쨢DS peh}½gÐë¹~ZÃr`í΄µWç{.ž-ÕÛ°£®L§PålX�D¤¬°¢ºÜ_t!QÉ-ª°PûÜ}ñlœ:òÒšÔâf²˜QHfª¤Pð/*Nêz:4’t5w±Z +<‡ýlA54Ûí,(€4I¶s";Õšàé¶N®§t ÏZº\¬­«F×Áî¬IL&Hí2Pyå«sÒúºâzãt8sõ¯Z¦Þ~öŸO±’’7£~ÑÖ(–+PÜÉE�ÙT˜dbL,[æ�аÂêÉ´¤$sœƒ 0&À˜À B 7ϬْÝÏ>‹ éó-ŇÊè¨Koߌ„§ii-ž~ûý¯ÇqôðGøðƒðÁžý‘šWŸÆ~ø­yQÈÖ4?�£�âø_Žâ£#⃶ÐrP é¾Wþ@JìæøøŽ&±ìEM4±™ÄÅÞã¥w([z#ô…œõ±ˆxËèe/Åû^<퇲ýí$T—Ç"zAÕÇŠI²ÚÑÝhÉ2¹3ë¦Y æ°Ÿ-Ðsµ˜`3&×ÍXgd)Tà›� weº–'þ®G~ŽZ•«â‰yÒ…ÏvBKOüæ/_¶5ªJ û!¨‘” YÐ{Aœø@£•»ßÄK�lKXÏÙï]œ­Ô;Kí4“×ã�>öÑú‡€%Ňr$qhD1]¾e«®’´Ê¯W\gV³2F¬°ÑÒŽÓ&Pɬ›çõ»-êž[6Ì �%¿ø&ÆDG¸€æZÀ íÏA¡ÙùsTVã®ÑAü{ÛAôÉ…’:XË*0xEPH�øk]%1}€.Ç>ŠWE¬¸•¦­ôÉŠ&/Î�ïÚzûeœ‰®],%/q®Q¬],ŠÈ-µÓ J\‰=™ˆ·0Ó¦aúB£‘vèI ^mžSK_0)楟-€ÖÎq;‡‡¨‘Ö5t®®§Uf™rKmtýu+&‘ÌB\Ò¬EÅ’«oùFƘä�Mïâ¤+W1xBkÕ‹ó‡’”éÁ¬>ŸŒ(+£;š<1ŠÜßiÐ(î±AY¹á+W•Š=’e#YÃÑÉ@)îgЬî„®(×T³Ù$«Þ˜`L€ Üœ *k°›š¾GÑüÇð__|kq3Û±­¹ÍÒß#Oo�aðÌ)üþß^Á£/)K”&ûŸ»Lï«JgVP¦¹ l¸³©9ò÷äsÀXp§>ú=^yúQ$Awž‹¼?ÎSÍÓRHo'Ñ‘\õÒw\ušŠâ¬¾ëÑ{}¿ÒHDô­6sëæLOKÚéçøÛiº<¡w>”ý‚®Ÿdã¡«"…ë¢Ü楟-J2\i&À˜@�9ÇJ(‰#nb6|÷™g5Úÿ6þïÿš°–MžJG«‘1;QJ¥×´Ðݨ¯N¬À™Ö=8˜�RçYÊÆ4ÜA77Ô'(‰1Ù�7ŸYœ­Ôƒj^î&̆pñ’ |ÔË$Å«&Ú&Uˆú5PM&9¢©Õ¨¸N­2Ûå� ×PRÏ�ÌD=uÏ-× ì9Ÿjf©|L²�ëw÷ÇwésÓnÖÕšé”ÁœB¶6mÒ×·D“+x»d«ó=éOpȵ9á´ñÏö#8p^P<PYmWVZ±§¬‰çdOÚJj…˜èy.�oaêK~½0оYiÏ2Ÿ¡)qR±Þ©*qúYª*ez<­ïâl·3·6á {OCöpŸiýçêzJV�´˜% qlòò€p­j$PE͸ϒœB‹¸&tgÎËîU…H»ú„-µ¦¼ÇiHI/*ËÏ'¥—MžÑó€;ÅÃN!‹îgÝ3í°)HøúÄç¤eÖÜ9ø0`L€ 0�™€–%àø—–ó)=yå Z~Õ–0&39¤e›´¶HŠãG^|'^—ÔÓn$4qx"­‘mÉ“êÌm.0‘âxç#xûã�õ•ó“znÒ.k6±f8ìñ¦Ð%úæLW\–ßõ@ßÒñšÐ4wiÍ$­mÒ‡Œ?7I”Ršò[Y«˜X\¶¿�b‚õ<!°Q D�}Å�®G¤Q2(¹®#‹¬Ÿ ”9ȘXT2xŠ/ªvqeGãÿ™åšP­=OÀ¾ñûhiï†Çs®ö¼òÏꙩ ¹²a*û$íÁÿü£òƒjÒÓ†xè�„”‹#¢k›ªÚò³ÿ U+ÑöÏÏ`±¶2¡�r„yÈÓpl»DŠN=5\,‘P½ˆ‡õüìL¢û—êãH!)¶£PX„àÕ95WOÔ+–3EÀX‹ðå7Ð'Ï[N‘/r؈•dMß|8yZÇj5xŸû„Ï@cJ¶²Œ©É4ÓZâÚ²ÕohLW;å;—` ¬Ê©±kÆg¼Í¡þøèSAÑLÖËNs’Gcn6:iñky ¹qü\:ŸýSGúß²JÉ1|û²KyeÊGB_ W«ÏÈ æá×T*(ÎFtú°f=²ßÏ4‹Éb¤r8eîó‰CZ‰Åe»�…¨¼Õ*3‚O>éIèCB NÂçKQ׬^OñÒgÆl=GàãžÁí’Ê™Äç.w¼@ò2iÜ„„3ï³’õÅ … F÷IÅ:æB1p»N‹»°­˜C{•,?Ÿl·U+”Ú½Ÿtj à’ÄîOcV1ŠÆ ;¶u54…(¾õ~òYZƒ¢S¡ FÓyvDDÐwIƒ½¶$·ìxm8Ę`Là%PP‹¿¹1¡q¯ÞçÄO~ÕZWµIVÁÇñ«ú>ò–ÞŠûú Î(>g‚øÅ®äÝ÷c´?½,ü´¼PÆ[ÁlHÈtÏ>÷ºƒ#Wñ¿„Š#èúJ oÁ�ÿµgujFÞà´j&9‡™¿-åU+âÅ…û“LŽ'‹„²ü®§ÛÐ/ð}Þ•Ñ„ÌH]y,bñŽEäÚ±Z4r÷Ÿ†ö°F_t ã%ªî:/» ¬ŸÍK›¹&À˜Àu ÀC+×úMY$}¼üŸoîÖnºë Ü·uV®tbãÖûð†K•L{ÉU¢ì.µiº—}‰>¨~üVºÏŸÁáßüw®ü¦¦‹ê”x²äÂf+O,×õœôá÷þñnœé>ŒŸ~ÿN|ó™–Ät‹>Æ„5‚¢%ì;oâ÷fb+i aA÷ oç_p. Ê8Ä©C€KRžŠ‰¥EbLËÄ·ðûs§r�fð~ÜzPW¡#–¢ Q,èJB½ÇÐqΗ†ÒeZbÙmkÕ÷º ã‚òÓz*xZ;ÊZûºj�å®Bøô{ñÛGáðk+ƒC>ZãªSP®±Ìœè\4ÀF؃¿||.A^pàÞkëdéS�Ø«+ãm�`x$Û·ÜZ©Ñ.17à¨Ý P¬ôkÅ!×…„úErMŽbÀíB[Ë^´¶ÀE•²7׺NñüyŽ¡íÔ€¢ÀIþt¸Gw=vŠJD÷®Ó}ØJcbU6»ýlî[Ÿk¯P8yöv„Ë£¼.´j‘ívZkji íøòtRŸwA};’RLðñûûÐFׄÚ&t.¯'¹v3cFÀïG/ñÝûÛ÷ÑÙãAP£OM’+Áζ? Û/LV¡3TfIþ;›> £5áâ {qàý]~ :éž©°œ¥|‰÷4™Ó¬³ý|*\…µâ|„Pöÿþc ŽÆêë9Š®4&!+°Qœ�êEkË\Ðê°bÔ?×Ñ6ìmiEëqå}O�Ó”¯Wa½í¼m•^RŽgL€ 0&pÓØòès¨ÕhíómÅÒ¼[pß÷ˆþðûxø¾o`ã-…°ßZ�‡ž‘§‰›‘¯Ê[ �Á´¼„ûêoEá-ñð‚·~õüFúûÍ[øñÃñ7ãËŠR¼å.ÇÚfUa´{ðÕG±Î^‚ÂÂBáï×Ñ¿ôÄ}¸Õ^ˆ�÷=ŒŸüô-ªÓoð+ú{ë§?ÄFû7½Á•›S~ã%Öjv1…+× ßaœ;“Æ»”Td¶ßõŒ&ÅÄri¼ Ó£˜Ÿû(ÚºiÂxãJ*<!~�(Ùhï-œ±ˆ\¬®q • ¡ã�‡0 ¯˜„ûèŸhi!Ùu .¤~v]p¡L€ 0�y!�;/¥p!L€Ô<ò:~yt26Î=;Ž9™ýIÊëgiæm‹†»å—ý&^ºAÎZíz �Oh¸Î¦¿]ôw£oÖ5Õ(êòÅÖäù‚,˪RÌ> «Ñ 4ØÝs³9Œcû÷¡ÛîĪåf„>œíõD§’FôÈ«ÇÓ¼j J:<±YºaRþµ¾sŽª2Œ_% ))<¥/³éO�xHO¢oDåj+z¨�Ó[îcmôgDQ‘T9ézÛ7Õàî¦õ g$½© w–ŸÄ±X[wû~ ô”£lI>ÂѺɥE~ ÜQ­Í0ÂÃ߇ŽÃôGí)±.ÇÒ¥f˜hô!88€^i}&q+Y�U‚¡ª|Èv[ Œ=ÇbÊéaú ÝGk ;«VÁœ†ïâYxüÒWLœT<$KÑþÍ1;ÉÒܳÐ�ç3¢šX¦Ü +ÑPëF›KfNëOu·c_÷ 8œt>ÉyštƒCƒð)¬Ñ•6—Óå¢ö'zÛ{cÅúºã·p.-ÐæK9¿�iE`äVK}¸­¥Fšá9ïRuBa¬Þv7jEŸÉR|–û™$rN·+ÖW—àpì«8„î#ûiu\q+ACóNˆºÄ¬·3‡\µor¢õX¼„|ÝØ¿¯Ör'–ÂÔ׸:8d])ª_Qâú¸sy=ňÌ�™týE¶ð0z:�Ð]ÕÆXL…Ô·r1â§õåå¶Éié×±©^¡DÅ‚³ê³$¥òö�8A“7bã%Ãnìß;@"e4 JÜzáSùasÔ×jNB‹Uj¶�¬?ŸrP³yδ‹»”éÅÁ÷z‰¿““ÔäZš»Š¯7�‹ê¶¸õqȃvz~~jq`¥�$l<ˆAŸOº]Ä6A%‹Ó \<-x] gQuYº9µ¤q`L€ 0�„€­ ÿß/Ã:�Á––7^�EC]Øó*ý¥’Pû2vÔ$.ã¥ÌfBÓÃO‘:½úŒ«æj+eѪÈ-{"êxõþ �íH\zK�(Ûûôn\Cž¨ŽôN¿,÷žA ¾,õ{bÖßõÌX[UOì»&L}ZqÑê@ÙÒ„²}�d"oaõ³LjÎi™`‹‰@rSŒÅÔ®ë" `Â÷~>„_>¥5×U¿ú/ÿÓ·¡åÄQgr©¾ �#[þáx6ƒê¨“ŽÇd&ZšÉÊmýzêä¡�¡Ä#±‚‘r’å)݆_¼ûlB¾¹Š�Û=Wò3–k¬ÀA“ãý<½5e+¾¾vUaÃÞ^t¹\èŽ*‰¥ÃarNê°*ªãvX‚ú૯±Rp·›Õ%%±´ÑZTk"�ŸË¿‘Ã:ÿXÖßÑòt²FFF0AˆFãCn�eq•[w`ƒ]Ù†_ÜT7I�­Ø V4ìjÐýÀWT8ŒaŸ½=ÝèêêNTÓëmߨ…æŒ%I»A¥´%ERoO\$kZI,Ռ΀Ýqwª(ZQiõN!YšÇÏE,)­ËSL‚—%YkšÐTW.ïFé|öÒùìíC/ý)•ÄRI¥—¸Vlƶe[Ã~�6!»–,ápöƒ4ر™”–ê-D}Lêk!é/¢u¯4¯d³Ÿ©ë0ûeuÛQ#úuO(Dû|f»�¦ÊÍØµ¥Z5ÁŸ&KôI}�>쩯)©t½'œ�9½žâ`fÂLk¢M84L.´½´$…GÙ¶hQ–ê4TjÌ0‰We:4Ë> S%înTz�îÛ}Ò}Û�¨$¶ÖlCCª‰HT³Ù^»Y>IíÜQ§p-”ž±óC•¶—[Uýp³â_b¾ýþ¦„gRHº§õ¸Ñ×GÁ^¥’8RV:Phy†nÁí´µ¦F÷Y¤¨ï0&À˜X$´ÆâcÉQó½Ÿãów_NžHóhâÁ�³š “F¾öÆ£°%M1}pÕw„×4¬ŠÓÈ L¤KC�Öü:ß–NÍ„òâ;r²9ÿ•”–÷ÓÇdµÃŠ"£Q³tùg«ŸÍy3£�µ÷Ž¿£ë¢%dY™¸é]ŸÙo§©¢ßinJz?’êg´”£~ÛzM×zsy=ÅÙdÊ̈Ûwì I4NX$)¶"«[v4cG�Þ}4QÀìú,1µ­Gó½�pZt.^©HƒµÛv¡©¶,± 19߯Edÿù”k©Æ=ÔǪÉí£z3’5p=qß¶Ö¦PrëêvsiRÉ=Ð3©*Aùœ »ÄŠêÚ-øö¦ÔìgN Ë3sÕµlÞgL€ 0&°Ø¨Ç@S¢Ôn¡“µ©¦ùiL }Ž7ŸÝ�,YôX#�¹¼ŽNüw)æßàžÿñ^xjwâ÷¾†ÔÝϾŽGñä–t•±<ùî(>ÿó;xùÙ§°»¹µµ‰c;´xMl¼E.Ö´ö¼óú ”G+½œ*ú[»¯ÓÇè»�§¥ÀVåÎή©µöø;®»ëŒörEêÒ²=‘kÃŽæmpè|¶JÊi\ãÔYãuÕRPWszŸÇ"ÄktÑ�EËÐôÀT«Œbçš¾sêwÜ� bßÈO=ÞËŸµÀBégYk bL€ ,8·d¡FéÊH–Në˜:NÜO–�gò+¦•ÂZûzqrút~¥'ªV:­xuœ¼/½½ÓßÚ¯¾ú*=Ÿ=”x!ncW<8wöI×Ý¿Gé~-Í�˜¢»lnôQç;Õ†6y™cîm®×œ” ¼œ¦ ëð¡¡aLÐ3´8/LÎùóéY`‚Ùd‚17]rùí~xäÇxM#vÔ¦; ­¬ï1&À˜¸LŽ]!oL_ ç¬(-‡=ïüy°Ùl([¾œÞ­Li|KÑ7Ý•+¸tiWý~Ê_ KžÒjB–•NÜV½¥×i¸dr,ˆ+C—00p~úx*¶Ã‘ÚZl§qœÕXãÐòKwÎ| ¿Ýß›l·aÇXoI÷ýÈ— ^Ä%+.ÎÃ8}§[–YiÉ—$"çY¶¾�x,bFc¡À ú/ÑÅ]<ý�™W"}瘮ÛwΜu½lõ³9« f‹—À-·ÜòÕþ4ýѨfäÑ÷ýJNï¤_ùO½¯•&YZùX:¿Tl¬\9½:NÜ—Ã3ùó$ «�IûÒ&ÕOoKvLÌ“n:1O,,+>c3¤+#Y:­cê8q?UX>žÉ¯˜V kíëÅÉéÓù•ÞµÒiÅ«ãäýFQ<ƒþÆY˜ÀÌŒžCË{ñµ&«¶Ý‹zÑxfR9`L€ 0�›€Àºü.TSkt’¢xsŠâì ñ�:@Jj¸Šlvìxp{Ê5ª³S2KaL€ 0&À˜Àìœ;Ú‚c}Q?¾EÕ¸÷žºy{‡š]Í97`L€ 0�ô °¢X¡ì•¶bXªÞ׋“ák¥—�‰¿é¦óÄÂ34‡‹åç`L`q(¬ÄßÔûÑÕ?J3"§�?!­¦¬ëCyq´‰kɘ`L ‚>°„¬¶u¾ &»qJVSy%«VÍëtKà('‹†©)”®½‹•ÄY8ç,‚ 0&À˜˜•›hùŒnDG"0A¶T…’oL€ 0&À˜X t†ƒHí¸L€ 0�,°TÕ¡¡*‹Y`L€ 0�EO „S‡ÚÐ6ÐzêU¨^]‰e䎲ИK^¨G1ðe'ޏú„VaúÔk f,[¿™V*ä� 0&À˜`‹�@®u[aŹÊL€ 0&À˜ÀÍB€Å7Ë™æv2&À˜`L€ 0 ùÒÒt´þ»¯¯'ò§‘$e­Ý‚в”]¬R`L€ 0&À˜`L€ 0&À˜˜VÏgbL€ 0&À˜`7�ptéáä­1¢zÓß ®Ò’<eL€ 0&À˜`L€ 0&À˜X4XQ¼hNW” 0&À˜`L€ d›€wÜ}/*}—àéïÇàÐUŒŽ‡Žj� ù&”­ªÂm5•0ñzzÙ†Ïò˜`L€ 0&À˜`L€ 0&p] °¢øºâç™`L€ 0&À˜Àõ%�c,„ÕQù»¾5áÒ™`L€ 0&À˜`L€ 0&Àæ“ÛÌ'm.‹ 0&À˜`L€ 0&À˜`L€ 0&À˜`L€ 0&°°¢xœ®`L€ 0&À˜`L€ 0&À˜`L€ 0&À˜`L`> °¢x>isYL€ 0&À˜`L€ 0&À˜`L€ 0&À˜`L€ 0�@€×(^'�«À˜`L€ 0&À˜`L€ 0&À˜` „ÀTžó—1.UÇP‚UV°ÅÕ97\ &À˜È*Vg' cL€ 0&À˜`L€ 0&À˜`L€ 0�EM tŸ;†P´¾¼fÔ—u“¸òL€ 0&À´°¢X‹ Ç1&À˜`L€ 0&À˜`L€ 0�9"0èjÃÁnŸ®tKM#vÔÚt�ߌæ”ÙT�+ŒL„ÉzÔCNŒÆ""—ÍHoÆîVbkM]§þHûÝ9ŽÛ¾³¦›“·š 0&Àn`¬(¾�O.7� 0&À˜`L€ 0&À˜`L`á˜MZ©ñщ¤ÇoƃsÂ,äƒëøqt÷M+µ¸YìXYáDÕ­«`f­±¢6ζ®%݇1,µ0܇ÏÜ4T™oØörØ`Làæ$ÀŠâ›ó¼s«™`L€ 0&À˜`L€ 0&À®�¢Ò¥0DŒW#50 ŒáÙÉíuªÔ/6ÛÌüî�q £7e«Gü^ôÐßù@>š7;’§ŸÀûû¢ŠEJYµ�Ý'¶À�æ–a£³GzG"õœìF°j3[/ðÓÆÕcL€ 0�̰¢83^œš 0&À˜`L€ 0&À˜`L€ ÌŠ€¥z+š«E“èüý>ôLë£ÄŽÈ&³�§CSIl�ÜMç“Ú~|#!rC-l!¬œ"•| OMÅw8´( 8jÖÂÐÛ9}^C½øbàv^«xQžI®4`L€ è`E±ŽgL€ 0&À˜`L€ 0&À˜`óB ¬P0ÎK‘‹¾�™2ó£ýˆ[Ñz£½[ë¿›)>T:59 _/Nu�‚w8ŒPXT+²+vÒS(+²ðÎB&`^gQ'ÜÑIîSgqGY xéê…|Ò¸nL€ 0&� �øÛO&¹8-`L€ 0&À˜`L€ 0&À˜`Y#À ÆÌQ΄ÙäÀx…¢Œå›Ð¼µRˆ™æäÂVQƒíô¸Ð �¡4!MêV'¦f´ÐS±f�n—oº¢¾3¸8ZƒŠÂ…^o®`L€ 0�ô°¢8=NœŠ 0&À˜`L€ 0&À˜`L€ ,x£þô a y(À®MåÀ²´ +Ê,˜Ù@à$ƒ^\òù1Až”srr`È/@É’¥Xf5§'s*„@ €«þaŒ��O[O (.± ´Ô “qþªW‡„sX„;î¬öµƒfR›5Mar2ê^:'9Ô¶q!]x\Zw:/ž&z,GJ›N“ɪy ¿C~:›Åy˜¸6†œb ÊV¬€¥0“³¯§¢l:/>¯—ä_‹œé¼Z–.ƒÍbZ‘ �¸zÃÃc�ZZ Ša±”ÂJyÓiš(5èó ÿõ/‚B½ Å›¢¿Ê¼ÓbF‚GýƒèôalBê¯S˜¢s`±.G™ÍœqݤzZœU0’¢xzñ¸ûü¨¨¶ˆMà0`L€ 0�EK “7ŠEÛH®8`L€ 0&À˜`L€ 0&À˜¸‘ L=8úQ;<ä&9qsQT jþ µm•gbž) ö|Š�;ÝÐ_:Ù{U-f�QFß¹S8Ùs^¿¾©\£Å‰»¶Þ‡)Scb­SÅ„ÇE>¡ˆò;Uíã“p½¿ÝÃÚG¥Ø¾cûñÎ1�ãÆ*47×èqh:j žSGÑÞåÑtI.�Í"ÇlÛºæ4� tü‡ÝÑŠUãþ{êà�ÈïÓ”£[šQ!ž��§>;‰³}^ŒˆÚ`Dyíf|½¦,µR64ˆ�?<Œ^Í>[„ÚÆL¹ÚÐå›.°¤zvÖ•%”(G„|n´·wÀ«×ݨ]u ¨¶ê“—e)~ —¡Œ²ôNkŠá½0€)R§�^!†w˜`L€ ,Dü<[ˆg…ëĘ`L€ 0&À˜`L€ 0&ÀÒ$0êéÄïZ�è(‰e!Ãè>²:/Èú¿S~|üþ^Lª$–²‡áuw¢«TCÖ(ÎïJ©$–2†ü½8Òúº}“r²5¥P�æ"LV§3Û&0.šg$$LV®z[®¿Ã%±œkÄÓ…ý{àBP_’œVñkãËŽ÷I¾Ž’XJLJá¾+Q­h4sˆ\.wõ¦RG2£Ïu¿;Ôƒ¤gsô´ÔQKrFà:x ¦$–bÂãúm8u-mI”Ä’jWg[ Žöø¥½ 6ì¢rÙïC0ƒÜœ” 0&À˜ÀB& 1×o!W—ëÆ˜`L€ 0&À˜`L€ 0&À˜@Œ@Ð�Ö#= õ' %pV¯‚9/ ß¹…ÙßÓŽCÅ%Ø®ë:7€£¿;€>•Õ¨ÑâÀê•Väå�;ë+C¸H–¥²*‘¼Hkl9È— 7eëNƒ‘ÜÿÚ`[ºy9 øp¾×“AZ<¸Ú>„õþ°ÍáˆeQ±äVY®T�‡�Âò­­°ehdJvа¯r`h(„ü(€ðøUøü2*¦È»)_Á&‡Á´Œœ!koî#D·_ ¿ÄáÄ*ró�k>t»E+c?Ú[£äÁíHÛò°.Ñ šÎ‹Õºª×U¿¡hÑ ç4Gy’�ä6ܶԆ%¦²¬ƒïâyx„¶‡½�øÐeÁŽZ›FCƒ8ÚÚ¥ºÖGU V”æàÒ™ÓèdiPD ºàp·JZ‘ÎÕSõ]8«¨[_çtZšQ—ÁI/6Ó¢Äžè¹ ûq•‚æŒûŒ¢Ú¼Ã˜`L`A˜Ã×®Ñ>®`L€ 0&À˜`L€ 0&À˜¸a ¸?ëT(‰ Öìjª©µ¦·šZHÖ–‡»¼r ¼�Ÿ!P½]sÝÝA׿«”Ä’ à&ÔØb#rêÉ^t ç8wö"ºLmL¾�â Ö*lºý6¬´&®][·9„ž£BgŸ¬¸õãÔÙ)±Óu�-—”þ¯¥¼—7Îl¤[Þ�ÕYƒšÕ´f²…¹é8aÌAE]*Ä¢§ðþÞÃ�õ°Uõß@}Yï¤ôïôˆJb¹ ßEîÂãì×m‡~ÞX2/>ëI“™¤ë�å3ÀY· wUÛ.”ƒƒn=؃æ‚ÀFTÕÞ�Ûn] “šÑú:2ØíÁŸÚ:cjxÏiHQ¬>›Ás.e3رíží÷ÎÎ*R�ËéÃÝ>‘®vxôŽª”ÄÎú&l®²ÆÓÓ58×�?sÇšßsô$n#÷ßq²ñäZ¡RÛR�?zhý¾*¬)ÖbÅqL€ 0&°¸¤óÖ³¸ZĵeL€ 0&À˜`L€ 0&À˜`7�Ð|.* åø–¨$Ž2([¿[Ê‹"^t]Ðpž;9€Î˜2LJ^„M»îIPO ÊEYõfÜw6صÔmFÜqïøNS=*4”ÄÓ2Œ¨ÞÚûôNäß«W® {s4‘⺒6#iæÌZ+±uG%0‚ÿŠ¤Ì¾40ŸX¡Ì”¤ö9{ó=˜³ei'BPœÍ‚ü¤�ÉSŸJ<›š +`Ÿ¡¾;ä¿€ãÇ>%Åzú.›óó”-C�ËŠ¾`ÈOr¶sKQF}Ð-(ÐÅ6….{cëAOÇ� §»GL’4º:L+mé �k+Ÿ“À™`L€ ,é=AC¸ŠL€ 0&À˜`L€ 0&À˜`Làf"�£Pì"A¹©da@q!)‚Gâ /¥ �� –EK`R'P L±DÇï[u•|º™I�-­ì;¯ƒ–¹FXlŽÈ_M->5Š ÝÇÑÞåª9‚ŸÀQ—-+kA´¤S#ªéSœLäåFÒÇϦJžÞ®qfŠøà…´¶»õ¤êÆ�«ÖmFŽ¢•”/¹‚{<©N:ãÖ+ë92ÁœN_#[ie^ÞcL€ 0&pƒHç9xƒ4•›Á˜`L€ 0&À˜`L€ 0&Àn^S)ôjJ½ðìc©”ÄX�Õ¨^í@iaÜáµ!Ï€þO ÃÕR±Êz\‡ó•SˆŠõ Xas¡å`wLg;|þ"FIQ\xª¤.RR¯¦8�ê,Óû3Éòà#µ’¸ˆÖP^[ ÇòRc'ŒÔ©¡>hëTX kW$�ØäK]EÇ¢X-Á^ÛˆÍÎBLPcUR'ŠîO‘vN^‘ÂõºNÒHtÐ?$6Ân^½@¨™`L€ Ì�+Šg޳1&À˜`L€ 0&À˜`L€ 0�ëI`J¥*L®Ú c\µv«Ú–³ âÎ8¶ˆ1‚” ®̤¥~|á2XÑpo:ºµQ«7E¦PR6ƒ¹¶u¨.éF·Ü”¹TbS»MO~2žUg³Õ‰²ç{.ž-ÕÛ°Cײ:EÅUâ Š“¯:Hë6“(‰¥õ­ÅÍd1£�&!èt31iÆáá+"oJfí–=ã*p&À˜`sB@| ›“X(`L€ 0&À˜`L€ 0&À˜`Ù'PT,.6Ƙä³Yw£5pE7¾´pò�A?†$MñL¶Ð‚B¾ò-[u•Ä •y½ƒbÅ„Œ×=˜‹²²’x-šÜxtVByFˆg346–Tì„è&œRª×Nš9ÃÁ+ÂÙ4:ñ׺Jb@½±º(cé ˆ:Ö«C‚luâÐ0®ªã„ýÜR;„³ƒ±‘¹êGR4Ö%eX’üâjÉA&À˜` ›?ÒöùáÚ1&À˜`L€ 0&À˜`L€ Üf¢ƒ,´(T‹8sÞ§O*àAŸPHÑRk‚ÛÝÒK…üaœîö3’¡§hë™T‰èCß õ{Bs2¨\&IC¸xQ6'–ò…“¯¨KRÖ)ƒ¡×L‚5ì9Ÿ®ž~ ýî~¡!Eä 9îÎ[8�•`Žh¹Kád­:ßÓ—¼L¹“Rø¾ ¿N>·ë´âˆmE©b_Ú1–­†Uˆq‚¿®¶2’r2àC@P¢E"U Óà°:�\È$º?q©”«ò±Ô¿3a6éëÆ�cp4y»¤Ò'O£G0$…Éœ \WÔÒX‹P©�>¯âpò#VŠÖËðáäi�³<‡Ï}‚JÚX†Ò¹Ó+«ÓUÆNùNÁåê¥Ì9½—[†šr¡²!7:ÝZ½Ý‡O])ø‘¬�NA»N²ŽŸKb¡«Ï‚ÁÑäJÿXZ xñ¼°L²Nñ*r� 0&À˜À"$ÀŠâExÒ¸ÊL€ 0&À˜`L€ 0&À˜`7#*W ʧ°�B`2E�Ô8¥[Ø‹ïw  Ð�NáBçtxDe-å«ÐXÉ5džÛ7X„BCè<ð\´y“èùûö·¡Ë«² %«QA_ oç_pNÝZöÔ¡?À%)<ÅÄBéɃ3c]ƒßß‹ƒïíÅûG:áñ5†“twà»U°W”%µ¦­Ž[,œŽPï1tœóiÈWˆ�í”ݶV�Âë¢ó¦b?¼€­ e­}]õœ¬Ë+WL4(õÍ¿||ê®8…÷ÚºÒRú¯\·VùíëØ�£=ƒqN!Žþ¾ ©tÎRfGí…ò¾ïX+¹.$Ô/RÐä(Ü.´µìEkë\/‰H­&qþŒ'~ ¨ «Í<¤Â!&À˜Xìr{¸þL€ 0&À˜`L€ 0&À˜`L`±°¬]�’®ÃŽ6$äíÂþ}]Šf•TmÃÎú2E\åíqÂs,®8vcÿÞ”W•‘‹ß0®ôÂ'ZÅRnG}-Ì )ñëú­p~ÙŠÞ˜-„îöýè9a…såŒ�’bwü*½þX™ E¢$Š,=7�Õh{̧ô0Ží߇n»«–›&+ä³½žH~)o8…j¼vÊÐŒ˜ :¾aOŽÐŸ¤©.±XPXdDîä|BÛb%ÊQ_-*ÑcG„À´òº§Kv†ûXýQT$5TúŸÀšjpwÓz…‚3"ÄT…;ËOâXŒà&ö=å([Bg“¸÷öɲ£Å¸£Zïl U›EÐv[ Œ=ñ>6L ð}}ÝpV­‚9? ßųðø¥#iü§Of<”XpŽ¥[œgÐÞï˜}�Ñç2’„Iê*É„V¢¡Ö�6Wœ‹·»ûºOÀá,CÆ#5  §°l7(”ò‰µŒÆŒöáKÁ°Û±®*ñ¼éfæL€ 0&À>áÕháW–kȘ`L€ 0&À˜`L€ 0&ÀnH¤\ÝÞP“Ty+L…§1˜*qw£Òªä(·Ïí†Û�¨$¶ÖlCCU2Å¢ ›ï½ÕVI;ßÂ#>¸{Üè£ucûTŠT-EoÅ×·ÂÏ {{Ñår¡;ª$–"Ãä<ÛaÌp)N£•‘ü ÿ̄ٔ–V:Œa¿^�UÛ"e¬Øòí­W„N¨K4²þ.ˆÞ�§£CÁHh¡©Š“¸=®ÜºìJ#¾>:—n %± »t•þzuL›¯,@RÆn,Þ¥øð0z{ºàêêŽ*‰#‘(±Û!9ƒÖ¢,¥�·ŠÍw£Î!¸�–„C1%qd·Ä{TÁ.çÓúµÖ4¡©®\uhž^ºzûÐKJ%qDzÊ:J©|_Šë[QS™ìÚQU�w™`L€ ,¬(^'‰«È˜`L€ 0&À˜`L€ 0&pã(tÔâïîmDµ½DSal —ÎZ›Ñ¶Í”ÏiQ*i ÔnÛ…¦Z¥E²"�¼“cF]Ówд©%J}±œ"úk„£fjWj»±ÞþÀÝä»D•'¾k´8ÑØ¼5eBþüüî�ãù¥P¦ÌŒŽ;±£¡N»E“±Bº¡Î [Ðü�&T¤£%Žd6có=÷c[]5¬%E0&˜[S"ŠÓ>“’€B¬ßÞŒÆ:gRËUKy-vQ½ºHñÿÄ:dÈWg]ß„»·P�#~�(¯mÄÎí_#Köø–Ÿ£×Ò\T7ÜC}¬:±�¨_UoÂý;°Ô�Jå<]–µz+ص UV•ò9^•éɶ–WcKcV&¹\¦ûq²;nNl©©…U¯9êrxŸ ”ýW@IDAT0&À˜À"!pKê™®Œdé´Ž©ãÄýTaùx&¿bZ)¬µ¯'§OçWz�ÐJ§¯Ž“÷¥Wôbú[ûÕW_½J¿¼1&À˜`L€ 0&À˜`L€ 0²V%ËXﮑÓ]sÞc€eé2Ø­æ$ÊÉdà¦$kÛËC~L�Ìâò<&WÍKJQj.LKæähÞK—1f(@Ax ãùEXZº æÂë½*ÞFƒAéïÚÈ8ò‹ò16| È+ WÔ¥°ZLiµ/½Y› ‘l/†üc(0c"@kE[°Œ¬vÍFi˜ðzl“ zqYªSIÆFÂ(Z²˨ÍælN†Èuu^01…\cTÒ”m{Û ;•v6Ü‹ÍihƧBÔßè¾F=ÖRŒð�Û‚b˜Lfú3¦}Nî#Øß!¯OlAã;`»^دǩæ2™`i¸å–[ž¢¤§é�¢‡ _ѯäÀBú•ÿÔûZi’¥•�¥óKÅÆÊ•Ó«ãÄ}9<“_1O²°ú˜´/mRýô¶dÇÄ<é¦óijy~Ç„p€ 0&À˜`L€ 0&À˜`L€ 0�ëOÀh²’õkÜM°cÖUÊ�Éb‹üÍTTn¡Žé²7…¤<”þlrãÒ0¸–“ÎùoY¿–UÐ_´$ÇìÏæìëœ ³ÍA³—$JÈ5FÍ{øTàRLI,¦MÎ1šQVA©&;>9ˆ�)‰{Ý&V'ãÅǘ`L`Ñ`Eñ¢=u\q&À˜`L€ 0&À˜`L€ 0&À˜À"$0„ï*`µêùôžD÷ñn¡a¬²¦ág[È1«àDKH1o"×ÙS†e¸³Ú2+qœ™ 0&À˜ÀB%ÀŠâ…zf¸^L€ 0&À˜`L€ 0&À˜`L€ 0��@È{ mGza(²¢jm5*W,ƒ©¨¹9äÜ?€Îövô Ç×'6:7 ,åšÂYUX†Í ³²IÎbeX`L€ 0�¹#ÀŠâ¹cË’™`L€ 0&À˜øÿÙ»ø¨ê;ÿÿo0 Ã%‘Hä"A5Q QD.v…¶„UJ½?áï b[Àí" » ­,ºkÁßo‹âvIFZ~‚.±.¸å ÞRÌxIÑ  — ÁCHý'™™sf2“™�ɕ׸ˆó=ßó=ßóý>Ï9ÃÌùœï9 € € à+Ðñ²šœóå_ë³ýÎ?ßöéÝ:¢5ÜvÛÞ&Ò €´Åíc;Ò @@@@@ �X£…ëkp§+®Ö˜±7ªGÇúJ1@.V€@ñÅʱ € € € € €@ƒ:õ¡ïß™¬ãÇ‹t´¨Xßœ=«ó&v|Þù?]¦˜+z›[R_£ñ�žaÜàU² €ø Pì…,@@@@@�¦è¨ÎÝ®ÐçßÕMµêE@�`Ü´#˜ó@@@@@@@�v&@ ¸�mPºƒ € € € € € € PLˆù € € € € € € €@; PÜÎ6(ÝA@@@@@@‚ (&Ä|@@@@@@@ � (ng”î € € € € € € €Áb> € € € € € € Ðη³ Jw@@@@@@@�`Šƒ 1@@@@@@hgŠÛÙ¥; € € € € € € €@0ÅÁ„˜� € € € € € €´3ÅílƒÒ@@@@@@@ ˜�â`BÌG@@@@@@Ú™�âv¶Aé € € € € € € L€@q0!æ#€ € € € € € €íL€@q;Û t@@@@@@&@ 8˜ó@@@@@@@�v&@ ¸�mPºƒ € € € € € € PLˆù € € € € € € €@; PÜÎ6(ÝA@@@@@@‚ (&Ä|@@@@@@@ � (ng”î € € € € € € €Áb> € € € € € € Ðη³ Jw@@@@@@@�`Šƒ 1@@@@@@hgŠÛÙ¥; € € € € € € €@0ÅÁ„˜� € € € € € €´3ÅílƒÒ@@@@@@@ ˜�â`BÌG@@@@@@Ú™�âv¶Aé € € € € € € L€@q0!æ#€ € € € € € €íL€@q;Û t@@@@@@&@ 8˜ó@@@@@@@�v&@ ¸�mPºƒ € € € € € € PLˆù € € € € € € €@; PÜÎ6(ÝA@@@@@@‚ (&Ä|@@@@@@@ � (ng”î € € € € € € €Áb> € € € € € € Ðη³ Jw@@@@@@@�`Á 0¿u pàÀ&_+@@@@¸x÷ážì¼9¤JžíóXHå(„ € €@cQÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  (nƒ�&#€ € € € € € €� PÜ=–E@@@@@@Ú �â6¸Ñh2 € € € € € € ÐÅ�ÑcY@@@@@@@  D´Á6Ód@Z§À¹?uF—]&�?©Ø„>Š2éÚW…N=¡ó—Eš™Uê—¨®�šøŸáÖÖ7ï € € €€] ¢H¹û�IQRd÷¾JIŽ·ÏmÓé"Ç[Ê;ò­ß>D%\«ñÃûù�GfÌ>ôVNžHëÚÑãÕ/¦�uR¼Õ å;t¬¼Ê´3R}¯MQ|t˜›\Q¢‚C§LõUŠì|¥ú%߉8æÃ¼ ¨š\ ‰ÏP7yûYA¨(üH%'«ä‰£DöRBJ¢ÿ^™/|'><îüwßõŠT̵׫K½_Jtt×»ªvþÒ0¯ U]?a¤ºÛóË uäí]ð¬ËµÊoªL@èÖQê㬸Z¥‡*œßQj^•êØ}°z&Ǻ3ê¾{õ-”~Õ­‚œZ� %:œýß:¶ë�;s¦&³c×^оz ºÝ0J=Ó®S\bàmQš»G%§«òíª*Õiè­J0¿6.”êä�¯½öÑn©×+ºžý­<ÿ#•Õ|¡•ÙO®4û‰óÇp™NîyOg+/~«^Põ?Lîãuô+p.”éèî?êøîwT~è¸.8‹víªNW_¯+nºM½oMSLÍñå]Gcúå]Sx¦ þ0Oë_ÿÐSÙˆGÿ¤iCk÷·òÏ~£§žú?žy]ÇoÔÏïæ™nŠDkkOSô‘:@@@ 5 T«È±Wÿ³;G{ß; c¥¥5�ëÖ{ R†Ýª1coш!‰òý™\öÉf¥¥/¨íHÊZ�Ê›¯À¿Ü[Sƒµ¥L›§�ÑG€ríª¯úØLÙÎ}hÌ$×>äg�«÷žÒc£ÚÇ^å§{—h–9¾~˜ê9¾šb—}ò‚¥5䳉cþÝé6mZÀ÷{Y›î �oke*¸k¢Ž¶·û /ÌTOwtË6«ôµ_hÿ¼l[ŽÔëU‡nøK^µã%9î]áµÌ×/ÿYÃG×ejå�­úxæj¯å‚MxÚRæÐ&Ë'®Y0C#Š~­¸G\å'[´²µ>O]ÁVÊ|›@™?÷�útÙ&[ž•,ß&™ëÿtÈ™Õwžn~çqõ¨³=ÊôåC÷ê¨×>é\ þ×e‹¶h¢‘:™õwÚ¿ò¯Â]Ö¾¡Ñ÷%{åYæ˜>ÑZ_ßÅóÁO]ö±wÏôÙ‡¬¥BK]«¨ƒÿ£>5:¶’~ùm¸s»=f¶›÷±í.Z±m‡¾Ñ4q¿yC#&Û-×/÷:Âûî}e©÷.ÖÉkUµ—¯xe5ÁDkkOt‘*@@@ UTîÒ‚ïOÐú@AQóÛ®æ5v…>ÿã2%Û0EÚ~!]e�h=k\#¢®¨gùvÖ×zzÚô³ìû�ŸµEÛv1?³Éj£Ý®2 w}æ4É6¶ïW!¯ómtg¢Ù\Â!š»„�èz \Öߪü²¾Îôy¿ØÊô¤L0éź�¤ŽAFüç¼î©Á�(Ù–ëN6Í»ù¡S·YÙúlkAàõEz�‚õ+pE—êœå?0$`�¸ŽÊá\�­¨“[“iÛ'ý—¨›ëþ íUw4|ù‚_ëtuÝeÜ9^ëëß)ô‘Ìî B|÷ZOˆË4}¿Jt`žs»Õ=¶ý5ñÌ¡Ò:Ù�éW�ÊÈ@@@¸(�2G¦:÷¯/Hl«6ç}øM^SªîO?ÛÂm-£Y/ŸÐ‘#GjÿNœÒ§ÛlÚU_[vÛĤÌÒ ·³y?qâS­Û²mbíí@ÀÜIÐóú¢2„Aó/ Ðfì×îµ™FÓÐö)pÞ5ŠóøËûtaôdï€Yñ{:¶§¡ý6·²Í|§ÎBçŸÿ�þç;ýŒ&µŠFô­¤EæVÕ5#›Mð.ªXG–­³ ¨�z.{H�t®ö¹�Ôs`WÛüºÉoæmPéÔ_¨[ÝYä4Ràô–_¨ÐŒ¶^#Õç7�©ÿ¨ÁŠîln^zJß8ÞÕ‘�OëÔ¶£V±`©¾ê3çF©ò\à’çÔyLÍUÊlÒ_¶-ÐÈÉ!Ñ~7õå$\Y_:ÕFô¦ÕKÌÅæü¢’oVýgk]8æ/�ýƒž"Ð^·—-ÙÆûá �wöÁoËÚ¢“OLV‚-ÈuzÇKµó�eœ/g9W`¹fÚÏÿ.~ “~ËlÒ±OÿY=R¼oÉj¯¢cü0]·ÈþìÐjE¾¾N‡ÜÁêÑ?VêO¨óL{uÓ™:ðú#q§ýKkÝRä4T HŸ°§5·•~ÛÜVÚ¶ÿDÅĪKb²úÜyŸ* vë£ý@�Bøô‹žóˆRæ^ßÐÕ)ÿ̓/¨ìÄã ¼Çù,¯«æþÄ'Ó5YmžëmÅå®ÉÞK~ªë†Ø:ë)¯Üë—­ ¶êÓgì·é©¡û7©o¢{ÃD›gÇ*æ�ëÕÿ�õåS�ª8Ñù­<ð+\ý ¼æ € € €x ThóÏ'(Ç–™±z§¶<6ÞsÎ$::Q±ñ‰J5Q=š­ù‹÷Õ{ñ¾­ªv™¬ç¦cí²¿t �¶,Ýï6=öÄm�êÇ|£øXšAÀ}F¾VÅ*,P$vή ìîÐW*VÂx÷–%:ü›ìÚ…ûŽT—ØB•çzúmkˆéeS—+)n³ Ÿ¯ LÍùXCRFnP�9µ#‡Ýù¥çäüG>äÈØ>µtƒÊîl@Àн¾Vô^RT¤Îæ ͆…&›°ÇUf»  Ï¯ñ û®9:yœF¬ç›íºÒûIÓþ ùËíc2k÷ÑËLê¼ÖéÀ®Ù>>  T{·éBùY³†n�VЯÃÿù/6¸>°÷E[�Ø6«&«þ‹2ô®àÝ/ßõ1� € € ’@QŽV¬·•œó’6قĶ95ÉØ!zak†ovÀ銒"}öÅ1}[é¼åk”’¯I5£sC<S]¡â'ôõ×'Uþm¥*£¢Ô£{OõJ2�ëèëØ2©¬¸P_>iÚ&E]ÞE}¯ øØþ>¯§þúgU¨¨à� ‹O{Šõ0Èêú¹*ç’%*<ô•ŠNk:¥¨ÈHuïÞ[½âÓ\]ñô ¶§¦IE:ôE¡N›í\óŠê¡äÁƒÓ°}ȹ/‡£gìÇ…ÙpJL¾Výâ¶ÁJŠ õÕ±¢Úý×lûÈ.ÝÕ»W/³‡<̡֣Uýßý0@çññ™Ž«Ê*óÉŸ¬Ô!‰ ;6ZU¿œ� Ó1ßêúEƒ@ 5¸AÙÚB.q�.óª«3 j^'_zÓ Ì½«yµù]fÍRÏ«kÓõÿ¿DG_r—MÁ.ß�¨~“n÷,R•ù–Ê»«ÑçMýmñ·ž4Ç¥«?s3óý ˜W¸}©gÙÔG7ÛÎZ‹t‹<«üì'•Zs|¤Ö÷cÆ(mh’96–j_qðƒ3ã£f=©J5Ç‚÷_¥Îõ¿^«M“ Ë1ß4M£Vh'¡ÆºÚIwéF«è{›ﺶ¶‰[6ê¤ë»è©?þÎlëýÝ4u,·˜u¨äc�ØcÍŒ¿¡Ÿº\s‹œ£;k^‡7©¸0ø—wñƼw¼a†’—Y£—OþÓïý~™iÌ:šsÙ+kV–­Å³'iPÍ� •Úž[Ðb}Џ¢ŸÜ× JïèèÇ!}Moz²Ã½”ôK¬ȇ×è³wZIÛÓû0ô«ò‹w½ö—žÓÒ½ŸIÞ˜ö±, € € €@3 ”èÝW¬‹ô•²B·$7l”¥ß†fM7«¡Zœ•ãwöªéišúl®ßy*ûHó'Mתõ¶vù)™½~±Ò“nÖFGðßé¥î RTðÖ¯õ�¤1Zžm�»çK9ë«ÂPâÏÖ" H+snª†Nš§€½ËY¯)Cã´ts=A¸²\ÍìÚ_Ó—Û‡‚×mFNÖ*­Ür îŒpç´¶ö˜þçf*ÕìƒóÖ”Öú“—ºTùõlïF×SQ®ƒïMOKÕ´UþÛ”µ|ŠâÆ=©úNwæfÎTÿôéZŸã©´n‘£UóVê£&¸F G‚õÐèõ{?ò:7T·!Þ9Ÿ¿·×“qEŸ+­ómž\ivj‚†NYìuñŠgvÎ*¥'ÌÖ¾ ý*?éwÈáðý3¹NÊy_¿æ{…é˜o¾³&h£ŠÛè†k�; îê3e²«kï¨ðmçÈ[sÛév¸òæ™[©Äé™à½/{w»¹%‘û5K ýL:þzõt�XvÞøÈÛŸ» 4éû… s•çì[Aê¼Õú,7ø‘&mÔEWn…dÝUä¬_®IiƒÌ(ãqZùl¶ Šëù†ì^(œï]{X¶¦Þã“Õ—áñ=_ñ­Ùn®®¨¨ç¯:@oŽ+²ÿ8%ÏwÞ†ºöuüñ—ô%ؽ\¸ß[º_¥ï}`ëÒHõ–h›¾ødãúuñëµ/y¾ê˜}Òû*÷ês^óʬ)¯üpN´¶ö„³oÔ… € €-,Pñ…ÞαÚ0öï¾£FÿºK±ês¦f,Y«­[_Òê…c½fdÏûgåú øDDÉ EIsjíºµuÛ6mÛºAKfØWàÐôÔùþ뱭ͺÿ•CËg/PާбZ¸bµV¯X¢cÝ™öµÛ*it²Lg&höz{€z¬V˜¾íܹM/®]赆UÓ†êY¿@ÕÚþÄ,eÙKgÌѺ·šzvjë‹´bá k®Õy+/¬©ÖÖ3&Ý‘©„´Ù^ÁƱsVèÅm;µsë‹Z˜ap¬ÒÐ{2ý޾ K=æº ¿{TÊm¨iÏyíÒ9‹Í£»¶{Ÿ‹p7·h»Òf{myÍY±N[Ívß¹m«6¬]aöcwá¦y¿:m‚Uñú\ tJÍ*åJëý]9žÜIéÉž´ßDÊ ­5ûôÖWk¬W�,­ÊÊõÊñ�è9x‚æ˜Ï�… �K4'Ã}l×–¬{fÔ·†pM‡ë˜W{¨Ú³@.ókÏ<ô­YJ«•òuÕj9cÁ§þkŸ*‡Géx^m+"—}W]BjP…ŽýW¦§äeMp}©ŠW½#uü©wjæ•›Û[WÞ7Ä<É£‰_•æZ³˜qôPýÅu»Ý£¿ÈÖ5/?Ðôëw×¢S´áì =šóšž[ý´¹Ñþ%GËç9ÿ¤±3VèÑMÓøQCÔäO6‰ „ÑRáwgwè/é):8u¡L› Ø!Ô-1ö¢F¬V=u¯v<å®7ÐûHÝxp‹ütô‚ù›ôÿ-Wþ3ójGÅç­PAîýºn¸ŸÂ�ªo‚üVׯ0}Ënl¿ÂA�œ±AóG–ªöê…HÅ&Y·Bï2øýýÏ'Öþ`;/uêô©Ë�nRkkO£;D € € Ðjº…ã,‡ó4ƒ3.ã«—ò^ÖRjSedü@SÇ­Ô )Ë]ýÏÖæ=E>Ñ74©Þ&4´vë*Ý÷7£äûØÖ‰³ôã9Ï*iŒ9yQóÊÒ »~©áÎ!¾LnxS+gÝf�óXö„Ö¾¥'~ò².±š†+6#™§Ûb|)s6hû¿ÏR¢ûÌîø‰úá}3µ|BšV¹NÕÌûéjêîùŠ·¯¨ús½î.`ò3Ö¾©­óo³—PÆý³´lÕÓÚõû :Я§×¼°O´¶ö¨X¿ž>ÛÖMslïvÍeígã3~¨™—+múªÚrÙ³õë}ßÓc£ìÒáªÇÖwÒlûÏÍòl×ñ£[§$i^¶«ÀšÇ´céDM´7ÇÌ*øÓëîÌû ½yâÝf/31C³æ/ÓÓù»´áÿPb\$}uªY³\*üAŸ�X¡dÏNlkžo²¬ÀvQÊX�bo¸wá”%/é�'~ ×'‡2•“iyNm¹ì_¿¦Â‡‡+Ðßoâ|=7Ѫ³:°Ö›mÜܯ°óÍÝpÖ‡mR€Åmr³µ×F;‡× Q¢ ¨Ö¼¶dê£5ë=�MúÎP“®ö܆Ú3Ã7Qñ©Žm±2c'\bÂ�ž´ölVqxžZuÖ“ê;÷gÖÜ=�ë Ãߥ¯V‘ÖšŠˆŽ7?Äfé¹Ýy:u$O/­]âsuž¹ÕRÖrMIª®f”ñÒg6+¿¨)û«ÁkÖy�*vÚUm1·z¾w²Þ½1E;nÒžy¿ÔçïXϾ#°‰ùù9¯ŒLœ¤�3\û´™<²v‹*ý—nu¹MÖ/¯ÔÙkºéö+ «¾¬K¼’®JVR?矹å½ç~÷¦òËbÔ«&ßÌ3ezvqÿ¢ÊTÑÚÚ ™d#€ € €@›ð¾êw`b÷ðôˆÝú[O�Ø]irÆ�µv¬{JÚ{à˜5áN™ ÜŸûënÍϨ$vI¼íam[b�sÏ‚`Ÿ!¶Â$@@@TúÀëÆ×\Ó+@ɆfÏÐÌ¿ñ ŒÕ¸{œãk_Ý܉‹xOêw•g©ì�†~®bìZ-šè¯mžêŸ(ú@ÿ‘cU»ößñ Zó”8Zo;5³sß¶™¾I‡^ËùÜ7³§[º=ÕúsöXý7Ûú¯!·Ö,gjì}�XÙ{õ™'ž®z¬êÝ©”3”â/€3B.´.~ÈúíÛæa~Þ¯*û¨…5»åð´×»\ÓNÅêæ Öºmo�µ:ó¬êÉq JHpþÝ®½¶|õÁÛžr)ßð÷3ÖÝçw¤pì�wØ鞪Zo¢ÉŽùÖÛeZ†-+à–mk¿ä¢S­ÛO×`–¢Ím§C½ ³ø�¯Z†©wê ëί¦¢¡J˜$ÚV[äÔíÕ…;§^Ôm‰­•„šŠÖ€Oéà–Eµ l[¤ƒwiprs §,Ó¶ºEo�µ­uË�zô=Ý54ÐVˆV¿áæŠCó÷÷+�Ï yM›~ó[­ÉÎñTäÈZ¥iY{µ÷Ìn� T�§tÃæÇÐÈ>ש=¯éÐ˯ª$k‡ßà¶òÖiÿ5¹º“úú^~ë³ÚÈE[4nÑHŸÜ†OvLþžLZàÙï­}M×MUK}·l¿btùÕ×JÛ>©…4wi¾ÐpR¿K„«_~+'@@@ÀK úŠ~5wËqåVV9ï†WÆ­©’nݼG4{­¹ºD¹;¶ió+Û´wï‡Ê13­0š¹³µÃ6âòÀÉ�/äŸó£ï¹niëµ¶&�(;vÀëy¹ ÒnÑ+c¯Ð×_]g½W\aòs¬ìÒRŸmÓ[·ˆlW÷×OªÛj–~ÍÅÆF7﹊VÕž3:°×¶_˜Ù·Œ{EÚõ¤®0){þ1UU»g†«w}Öûß}çzkÂ+¡Á7Ü`r\í7WQø}¯aæ{îO­ÔÎûÍ3®Õ´ï¦k€yd[tDóœ¥ºêæ žvä¼½ß<ßyTÍ9ß’�öÔ§µÝr(çÏźm¼sðO…>Ú›U›mþÿý1C8AÞ¿-¢•xÿ,°Ë¬­lË«:õ«©êé](„]\‘ˆ!“ÕoÒ"ºÕ‡þý�ôôä‹«¬¡Kujè¾å}~\øÎvMGÄÄkTÆ,ݘž¦>?LÕâ{Aëk™=7|éhÅ�žZó§§«UQô¥Jš‘ã/gêx–�îy½£OWnUŸ ÁÚË¢£¢Üõî)um‚{¢Î{h«”ê[OP¿N­##¬Ç|ëè­@�Ö-@ ¸uoŸK¶u½¦N¶ŠÍm§Cu[ýù}cS;󯿖ãä]¨8W›ÝIU»3m%vèè‡%ê9²é¾ÙVf’1øËM xEmvÖ }¹d²úû^æç½P¦"”0àu:W¦˜Nö¯‰¡T]¦²obwyç …«ËjGoøÕÓZŸSû,Å,eýkΫö"�˜\ó—0z²*ôºÞMк-ù–�*~bªú4Ó¦�2UýF?®Â=µŒ_®Ùi.¸½ÍßùbúuAg¼÷%þ%òö` @@h &ØâÓmò“AUŠv­ÔP[´v�͘3A}¯�Î:£gæurÿeåÔ$¥¯jƒj¡Œ!-媷‰ÞRfÌÑ„ž]‚Ö^^~RÉ~ž�8q™>ßÙ]wMX`;_ã®Î¡ì,çß-Ðí=ñïß´?Ú[[{ÜÎ1èsN°=ÂΚã�*×Éòäz«®z¼×ê;UuÚÜ’ÑýÊÙ¦‚’ÇïuΫŸ–�ù\Ýz—¬·ÎÔ¹qädËù·f•Ùòëöêßòî:Bz�¢IædaíiÃ,9=¯”!gô¦ó€´�Dt¬zS…OLT¿ŸéžŠ¿¯ë‚ÜÐS´žD=ñöz–j¹Y�=æ[®å¬ÚŠ@ÓþKßVhg«ˆ>O£÷O­¹%mÇÎq!|)«í©?ºo¡âêÒáM:º²þî�øã~iä¸ú …qnTÊ4%¥®Ð‘ëßtdÙÍêØ5¤…[q¡†÷+:q€é�{„÷Çúö„9»Ð¯…vŒV,KÓ@@@�V-Ý]m üâ/_˜[8§4MpɶžÀÉBýŸ îñ‘ÎRzqïÓº{”¹ˆÜg¡üÌ“&PœåÉmù·§)A3ôâ†çü?§6È’öÙÉãç+¯j¦òßÿ³r÷¿¯7Þ~[ë³|Ïé¬Wú¯Ó©Ýó›|dqkk�Ó*cÝ‹zîagä²q¯pÕ¬�{ôµŠ¤ŒW?§»b’5ÿ¹<Í|<_ÞŸ«÷÷½¡·ÿ°Þs+rwëç¥+ùÆSzl”¿JÜ¥.ö=^#¦�5' sj*xïÀ)Ýß+_æúóJÑ’µÓô‡ËÍùÄUz·è ÅæY4Ì®þ—Üé£ðó5Øü Ð1@>Ù´°@„º$&*Æüu1ÏG íU¬£™îàShK8K�æ:ݬ·‰Uò/{xþ™u*ü¤´Í�,-)thó3K•Ú¡³¥Mò$v~¹{IŸ9£¼žÐnk¹ ±;âê[B¾èÀ½L8ߣ†ÏPŸTw�Ÿ¨à?v©ªKwF›}oh¿º\íA0}>ª#»óÛlß›¥áç‹•›óŠÞÎùƒõ·ãå™ x!€ € €-&‘¤2¬µ;Ö˜sÖts§ª ß5¡%ëµáÓMºßO�ØY¢ªÛiµ0ĔϓÀ¬gᆸ| b±2j¼îø1=÷ÂVýµÊœ¿Ù¹NcíåÍsz·æ7V+hO¸z®zì›"Xú�c¯UäªxùÜEÛšgR±ý†h|Æýzì‰ç´5ï¯:cF³lX8Ö«ÌâßfžÜ4¯!·Ž÷T¼?¿@~Û N×ÿšy¿¾ïšûÇ÷óõE¾5úyÎíÃZðBO“›>ÑTÇ|Ó·œ5 €@ PÜF7Í®+p¡hŸNÚî²·îU�zÿ ݼ×çïý?iøoæÙ*ؤcŸ7ÕWÛjlÉè‘÷ª—çB¿:øàêyV­­I!&Ë”›ý¬æŽë ¸þ©š¶`•uUŸ«†±fôðÖ½ŸêÌ_óôÄühHbCoubSÚd1s‘À?-ô´¼â©:²å¨gºí&Ö¯ˆ!ßQOÏþ/•?³Uem·óMßòoökÓÆ¥ÊÞ¸ÈúûKµy×gM¿nÖ€ € €ˆÖß,Xa››¥ßý©È6ݼɊ“'m+\¢ñC <(ÖîMÖhbÛBÍŸ¬/šçjMtïÄš;òÖNfiÏ'MtÑpDŒRÆ?¬ÝG¶y‹KË]÷ënn�°·'ظñh ¸ÎAœýöy®"\õÔåµ�êfÖäTëÀ{¶@q©¹"@IÙ1‰)šõ«ÝÚ¹b¬5ÛuKv+#|©„!7xö霷·iË«»j+Ÿq»Å&kÌÂÚí°÷µ—ô_;?ô¬øöáIžt›M´¦c¾Í"Òp·�âp‹R_‹ ”îÝf ¶ŽTÒ�ÃÔ­_²z$ûüõë§žß™â5²ôÄ?mX»CøG½þ ãuõS®`uß64¢´ì#ýtÊ<óüaßÞ�ÕŠu[õù‰³ÚmFgŒbžÆÜ\¯j�|ýu�!ÒXöÆVëÅ꣘žÍßç.£ï÷I/sÙ‚¦î¬¶öÞ°~%jÀü;¬.^§ýæìõ¾ÊŠTVÒ¬CÿëmNsÎ<óÕ¿«2ì*¿ùd"€ € €Í%�xËßj†me«&,Ö¾ qÌâÂ"s‹ê¦xUÚ*=¬oŒ (Ù÷;-ȱmîd•­�ÙÛôQ�ó‰#4Ê_jÁ?oºÈfˆM¼Vé!m–bÝž*U˜€©ûµs�ÿßÖîù2cUÓî˜fMfÍÖæÙ8Vi[*\õتt%s–g)ßßÁS–§ß¬±FÞfÜsóEÝ.|È 7ÚVjÛOm¹áHF$Þè5¬ìUæ.…95ÕΙ2²fÄpÚäÚíàX¿\ËÍ=©kwÿ9Jèâ�p´*´:€÷ÔØÚ�yOCI €À¥*@ øRÝòí®ße:ö¢íY*£ïTl}‘ÊèAJ˜d!Tdî´kó/TT¨ºæÏ|«.Õ9Û—K}YªJ“íUƪ.¤T—ñ³ÕÓYò°sDi[ GyݺfìœÚ¶÷s�ýën-{8CÉñ-ñ…­BG—>¨wÞ¤÷ûºJKüý¬Öé]ëõÎÌu¶m3F±‰õ?Øä|Å·æ9ÙÕ®ýÀ½?øy÷÷%ݶ&ïd¢?1«&ë¼ùÿeÎ ±m$|ÍŒ&þ_kèWÜ=ÿàu±Fù²©Úó¿w«îÏ� �Þó[íx³Þù�ê•iš~Õ»Êf™yâ³?ûYOOõïÓÏ ò³*²@@@�@Ñ)zlà ÛÜ,¥ÇÍԮº¶Š’|e.§„þõ~ÝÙ¶:..Ó÷zÛHØ,=™¹¯NE%ŽÍº;}A�üæÌðng¶æ,Û¨âz�¨ÙkVX%²çé–G3Uèïô‡)URäÐÆ•3ÕaʳuÊ=:n¦2w9èZìüÍ¿²ÝÂ;Ez7áEöMÚžX]7i¬Ç-{Á,mtÔ/?þA­°åÓ&+s_¡§¯Du‰»6jf‡zÆ' ®z¼ÖW3±^?üÑFy_‹Q¬Ìyi²ÎЦèÁŒÔ:‹æo|TS–fÊQä½´§`™COý|�g2%}°šnË'j”kÔ°g…&ü½[ú×LÆk;–ÍãŒ�¹麪N;FGÚVÚ-Z�­‡œjÑc>äVR.e�ú£$—² }o[%ûut�Õä.wÞ"Û?ãÖ O*Z ÷èжMµ9‡7©¸h¡ú»‡ÕŽßjׄÇ=¥ë$¯ÑŸ­/OÎùIÛóuÝðú¢Ó¾µ$jÐofé䃙fF¹ýptw�ÈÈЈ»æéþ)c•òó£}ûÞéHç÷Hp?µèAí[d‚¯£ïPlzšb®ì© 'êdæ:•ûc»®{D=‚|V=u¯v<B[S—kìŽ9!¬-sçÅ)S§ÌäyŸv…\I# ¶Š~E_¯¯.×›“­»åæ‡lNæê3²:Ç”éÛÜ<�z~“çvIÑÑQõöº¡ýª¿¶zWÕŒ3+t(ÿm?ë¦ÞqAv`?K‘… € €„[ eÖÓZ÷J–æy"UYšÐ?K3–¬Õ”Q‰*+:¨Ííe×då¸V�¡&ù=Ÿ¢»ÆJ9®ÕdÍK7ë]¡å³¿£�]ÊõnöÍ[•åjC ¾Å�ÑbóTª×i%ÇšéJXó/ÊÈpÝ5ªô ]÷£WôÄ’=�Œÿc­ËXî1v¬™­þkžÖ’µ?ÓÃÌèß–¨ðÀ‡ÚùÊrYÌ·z–÷$ª«t0'KkÌŸó5cá M¸õ%_™ ªµã¥Ñ*3‚ÓóÊxDãƒ\dï){1‰&nOúŒG¥Å9®–94=5Aÿ26CWÕÜ)°T¥¯u›–ɺKy¢~lÎ!-O›çZ&G³Óûëi󘵟M»C}ÍõÚ%‡ õá{;µ|�µ/Ýä9sáFW=îú¬wÇúéŠ;ðž^Zv�®ÔWÚ´ršÙžÖ|Íù…¾ëg›U•4ƒw×8ðJcghÅ]tÃõÉJèbö‰wwè_|/÷È}£›ðyÀºîÖ ’m´Rf(ÝÝîØaº'Ã#žÏ'ž”ÚÄw/¬VîÆ_뵂 uêdyž.ØfMdÏÖ’'O؆ûœÓ¹s}õÀ’YêWß)š–<æ­Ö“B Ô÷p!f .çˆÊp¼ÊÞÝîõ•¬ç탂VÛí¦±¦Œ+PlµEo|®þ÷ ©Yî‚Î]Þ·Àw œ#�}g˜î6i¶º›€á7æ·ºìˆd-ÛºµÕ5«êKï&�ß³C'�ÞÙž©È‡Ö馩Ö.Ï “¸Ø}²v›Ÿ±WUO]ý4ø7÷h߃îýÏZ,”}'”2V�µ©Öدè‘stËËçô§»W[Í=¼CGí°¦m©ªŠºã�×/[å­5yþˆûìß5M핪>¶.­µù´ @@.�x=¼åKUÎî¯VìLY«È6iƒ0wi³MùK^Ôí]¯9ë^Ô‚¡Ó=U:²–kšùó~¥há’´Æ4¾¸õy×úT„&®ÌÓÂ�©¶8™CÙÙV€¶ô.ß3E±Æøˆ¢4Q³×»Ë9´jÁtÛè_Ÿ|Qé>Se›Qi‚£Ö+k� ,{�ƒ°fšÔ‹«g4qp®iÛ‘˜¡O_Z¨¡Ó¬N:LôÑ-(sß¼Ó>w‰‹þ°Žì•&¦Ïó”sd­Òtóèåçt…ÂU�ßuš« ¦¹¯4°HY¡Ï×fø ðVUÚ¶¼¹P`¹ëbûâžôœÍíÎ2Ƴdȉ¤a7y•;cŒ9‚ݯ�½ËÜ© Ûú™p³ÿÇoXﮨöÝlc[ï|þœÑžçïE}§Ö,^ì“5VßyÔŠëåjÉcÞ§¹L"€~:úÉ# �fˆP§^Ö-—#»um½¶ûžDFFÖ,S~è+Û²÷¨÷ úÇ; wì—¦^}­ÅÊ?²¢1#�éèj‹¢;˾tÇú.“5�×kÖÝc5•r÷«Î 2üÄèêW^U¿E³iÛž~ 𑯳tõöw5î—“ý~iv.iÛ¿üÕá7¯['9?L#z°ÍîªËlS¾Én“2H8Ÿ`@IDAT ø¼’ºÖÔã“[gÒþÁê¾ÒZû3ú'¿ÿUõ™1²N?í]ú¥n˜uƒ=«&ݘ~Õ©¬5fTŸ­s[|g3¯¸.ÍëÖÝ­±é´ @@.!�ˆ~šÿÂY}°u­2Rêé·ɸnÛ3º±NPÅvçÊnª=ÛS·žÈn]<™Ý¢ê–Šr¿Î|ù¦–ŒõóN˜Q‹/彡UN²òëY_M¡šÑ§µÅ»u©»N«¢¤bRô«¼Ú¶n‰ÆúYìÊn~Ö‘¨YÏåéÓ�ê76·ð�cFs¿ùÿî«ûœÚ˜d-^·B3ÆÖ·‘ÌHã%ôé©*Ý?¤Î†òÓÚFd5C{†üàW:•·MKfø“î­Ë#ê¶?qÔÃÊ;õ©6,1ÃZëy¥dÌÑÚ—ÞÔìÍPc?¯pÕã®zÝνڰp¬{Òë=cÉ‹:’»LɶCÉ^àªq‹µbÎ ×ó~íslis|lØù©ªž»¿‰/�¢“†kŽmÕ÷LºÞ6% ºmŠ­­ºy°ãhûñé>7ëU“™ˆˆToO^·w4謞ƒ=…�¸2@}>U´Ô1ïÓ &@üe60/Ô:ê+çožož}:XÚ=¿!ïö²Î´¿é@yîò¡¼;c<þÊùË÷ÍsO;ãO—›¿Áýë_­KâL/.u�Ê’b•?®³ß˜ç WUéBe•:^¯îƒ(¦ÞW_êr­ ÿ%*=tDßž<]3*¿cäåêÔ§—båç‡[+h1M@@@B8xð`M¹';o©ü³} ©\k-TR\¨¯éô·Î±º‘º¼Gõ¾òJ%6ãïòâÂ||Y\;ªÖü¾Lìw•’ý›Z«càvU«¸ðsÓ¿"sqq¤œ‘_~yõìÝK‰ñ±/Ž·×WQV¢æüÉÉâÓúÖœ?qB]Ÿ¨«®î¯ØèæÿÞÚÚ㶪.+Öç TtÚHçH³/õˆï©^I‰ rº¨z*r5³sšgdþÚÎjþðh•è@A±Ùnåf³uQÿäë;jP¿B%Å'tüØI�>ý­kÔ¹9>’¯2�ä mßqÛðÞœ�?曳µ¬ëÒèСÃBÓëæï[óç¼ ä_ÍŸóƘÎw÷Ÿï´¿2õ•uÏ åݬֳ^wyß<û´;}1ïöeêKûÎsN;_ÎözÕ7ϾL¨åìËxÒîÀ§'ã"¡ÖQ_9ó|óìÓÁÒîù y·—u¦ýMÊs—åÝìõ-ë/ß7Ï=M ø"vTA@@@ZBàR ·„1ëD Ý Ô Ÿ2�âör±C»ÛZt�KZ€@±W°×´µ§�ûˆït <÷þ䯼{žý=Ôröe=¤ 5ËtUä€+ÕåšëÔó¦aºâÚ!Šöó»µ²ðÏf¿>mökóë¶ÇP% ïWw›ºÚPš»G%§«ÔÑw_vÎa»Gôè£îƒ©KÌ%öÏ”ÍæBU¤bo­nÁÎ_Të蛹æÌœQ1Ÿ_—¿Mqñ.7[}®MôÍúLt-щ]ûuÎ=éóî܇¢âû)öêd¿û�½¸g¿°gÚÓQ]tyŸ�êaN Õù¼°—koéê�Ìs�¦sf;F_—b¶½ÿý¿,ÿÏ*¯9qQ ѱû•æßª@'Òœÿ¶½¥ÃÛwªä£Ou¡æŸÕ®ê4ž¹ÚY¢¯kuðÔG}0a²óü¼í•¡E¿VœÏzÜ*?Ù¢ý“­õõzÕ¡FÆêôÖ¿×_V~â.vQï—-Ú¢ ‹FÖ,ÛZúå¯#Õ…»õÞ]3uæ°¿¹ï¨|Ë&™Pº©f›m÷Þf�êW°à™¿æ\ây•»õçÎÔ7~¶UÅÉ?rn+ç+î…?iÄ�ýj'\ÿ?½u±µ_÷]¬ø~b.°ð÷*Ó—Ý«£®õØ÷egé†l÷È©‹5dÙCê“èMþÖÞ–ó*¿Øn>ÃVxº÷ûw5b|¢gÚ_¢2ï÷rÜk}õ|ùÏ&P\4lˆµU·ë3Ñ}Œ•ÐÇ÷Îôùl´JÛS]æÿR×þhºâbý}hzïöåê¦Gª×ºŸëº©Ã䯦ºåÛvNe^–r'ZÛÐٛ觶kÌ×ûéX�c&ׯž™æxãïx¬(Ї÷ß®ãæøö}UìÙ¡ožY­¿¤ÎÒðÿú…zº··§`™¾˜eÇžlŸDä¤{Ô÷¡G4ht²Ï&@@.=�möyå•JçÎEë{?¢áî‹XƒaDš _ݯ«¢j¯ÇwO‡ã½©ë¯§�Ý®23]�â«¢mý¬g™�gµ`¿Bnc+hß^áÞ\­…¢Ä±]ÏÿWžÔ霢~O�ü`ø%ñÛ»¹üíûPØ�ùæêëA�KJÀw�È%Õy:ÛšJ”ÿÀ�€Aâ:-=œ«³urÍ ÞN~2CÌ2шº€³õÙÖ‚Àø¬ï¢GûYƒ×Áé³?Åg5a¿*¿Õ®�‚Ä>MÊó³ÍÓ/Ÿê™¬_À¹­rÒý‰ý-yæÀ×u²;FÙ–ý;Õeh_ ²¿5éû˪Û½jËj9n$Çž"«ÂvœŠ:F]mýûfç_lSþ“§ßαÍ©>7ÚF–6ÀÚV‰w2"ô“4åÏ<®÷¯ �ß)ö®Ã5eß/üðd¾£ãó&k×Ýÿ[ež¼vœðÚN}j:ZñÌvÙ {:_éØé$vÎñ{<Ëñ}ÿAbOeÎD^¦rþ\¥Õ^¹5¡l¯ªm›tðîÛµsÞoý¶·n­ä € €´[�²¿hõ¼ÅZ¼x±–/_ 5·³ixwM 9ì/s·+Ïë‹Ê�.„õ”o͉öÚ¯ÖlÞÚöÅîÕZ¼Üy¬.ׂ{êþÆl}¤  €¡ \ uB× d‹ œÞò šÃÖË;~ó˜ú�¬èÎRué)}ãxWG6>­SÛŽZÅ‚¤ºÎ_¬n&frÁö{Àw‘ JTWç`E?'É�e¿™·A¥S¡n¾ Ö3sëOÔkÑ!uôÙ1ª“Ê^_¡o<£»ú¨§-ÙÉÜÔµöÀ®J+Ωó˜¾×ÐRýòjPñn½=áq¯,MZ¨”å÷+>)NÕgN©ì CG2ÿMÇ·„6ººAýò^3Sõ TçëÏ>Û*rÆr ™3Q±WÆ™ÛCŸUùWu"çU^™©óõÕåžÆîq+ŸR7ÛVuòc}mÚa¿äèÝKÕë`¦êŒzt7¨�¼G Rï}t&«ösîüó;UúËqõ|þ”èøÖw¬ÎOÊÐõ…㋜±X}oêéú̪ÔÙ÷vëxÖ« &udò"ÅÛ^£giÀôëÌs÷¢gTúæë:µÅÖŸ=«•ûÜh�™;Ì]èxwýwx“Š jP?ï¯jÇ·n®kàçx<ùÛE:šg+šz�®yr�z îªÊ/öë󜩓ž‹2õÁ¯&jܢѶ|“}ÔgíÏÔ©òk�=ü}óÊ&UØîNp~ËãÚsüœF¿¶ÞvÒ²v-P¤ƒOl²zè¼­ôÛæŶ kTL¬º$&«Ï�÷©ÂÜ>÷£ý@�‚î½wèêŸýD=ƒ–s­ºÚj‚w*S^Ä܆×6šÒ»@�©.Ã'ë†áu²k2NEÿIï›[~Ö¼FÿX©?y �·wi¹~Y=ªÐç˽oE½è�^4Î3Ê4"Ú<»2>Q=GÞ©Š¯êý¥ïÙf ì—ÕRAÊÞÜ¢oleâ~ó†FL¶ß&6FQ±ñê‘2RƒçýTG^4Áý8[äÖ¶lø“whÀƒ÷Õ=Nòsyîa}¼Ìu¬h‡ ^/PÂT{»Ãßš–¯1Bñßÿ[}–µÎÕ”×õuÑ?©[b€²’�ͳm­Vw�8Úù¤â¯ðc ³Ò Ûô}è²�´ÚD[[v(ÿÅ�”0÷úm1·V¾ó^ žê3ÿ¾9ª^¶Gûn¼×3:µbY–N?8¬Î£VÜ–gô5£‰×Š/ÓQmË× »¡¹èã«gB¸ð¦º@‹ÜÇŽä�ØþožÇ(D§ŒÓð—ßUnÚÍ:é öV=õ:1otà‹1Ì¿WCï›jý{õóSyþëÊó g[iÏ }ø» J¿¯½§my'£í € €À¥)Ýï6=öÄmí®óíµ_ínCÑ!@Z±@€3Ï­¸Å4­ý TW™ëDµ³s}~ýˆW�Ø·ÃÑÉã4bÝ8ßl?ÓgtÁ9$±žÑu~òÎrê5m;µtƒÊî|¼QU¹+®i“{¢ô\Í@憈­ _EoèË-îN˜÷©ku‹-Hl›S“Œ2ÙŒ2›ì›í3†~ùÔØ"“%*:ÓY‰ñ¶@Z‹4ÄZiÅg¹ÖDêb]ï$¶fÕ¤"b•ôÀ/”ä“Ýt“�¶{´’æ.ÓW&PìrWù6Ùt k±šc†Ýnnƒ¿Îu+´£:ñA‘®Jô~^´»qåï³Ý2­�zßj»ç·»�ç=�µ§@H‰ fº óz•í{½†¿ô{½yͽž‘௠Jä ¸®¬òªÃ=‘8Z©ëîѾyî ˆÕËÝ•·öwW�ØÙLçÈþóëÍí§�¡{„nEÞ=·‹ž4RUÛÞñ{€êOwzŽg]=ÿSO�Ø9]ûJÔõÏ/VŽçÙÈ;tt±FÛn]î.ê|7ÿ^yÝùÂdur§F|U{Nö‹Ï,0wḯawá°¯†4 € €@¨®”ýW[…çîAß§Š’"}öÅ1}[é¼]t”’¯IUblÃ΢\üÚë.ÙÚÚS·…—Ó¸~U«(?O…§�9Œuª±ù“£ºBÅ'Nèë¯OªÜ4¨Ò´§G÷žê•”¨Øè�kq7&LïÎ>RañiO}=Ì ªAýâCï—sIsÞ²ðÐW*:ý­ZQ‘‘êÞ½·z%Ä+¦%vFOoH €@K x=µ%º/]�êCyžÀ‚4R½®‹mÑ3îQ´;€}x�ìñÿÌÍÆ6¶¹ÂpôëÄ–õ^Á‰�ÿ0¥a_J‹ÖŠ—w¬¿[I �5eî“Úž[`Û·[ªÑe:õ'ëV¾ÑSF·È��‹ë}/u}qK¶é¥b¯3Á:«ßü÷‡utî¹%9ÿãNJ}ÿVñ>·)¶f6C*öF¯vû ,†ÚŠ.ƒ¯ñ*z™×T{Ÿ¸C½æßQÛÉÃkÌA÷MØ«Ímüÿ¯«ów¨ïýwz}ÛUŽoßl›4�r¸9Ñ6m%£®çu˽ã/ï ¸¯YKù¤b†éúu¶ÌL}¾«È6M@@ ½ TägªC‡Ö_×teÛ:»8=Κg+÷¬£ÌVÊOòÊn:[’¯'gŽSç¸$¥¦¥)==]cÒÓ”©¥s==ÌSYþÆGͺS•šêû×A©s7ý­^æ°õÍ”/id{< �(ؾÒÛêÑl¿}lmý*+Ø®¹©‘JZ»�ÒÍ6JÚ_]�ý³o(óÒÚí`¶ÿ£óô><ÙE¹ÚøÌRMIí`ö›õ:Ti®}'-u¨ú'Ä)2uŠžÜ¼/èöw·(ªò e¯œY³Mµú8(¡«¦,ݨ¢jwÉÀïE¹›5Ói4(UécÒ5tÐPó>Æ8%©s‡)Ê|«0ðÂ*ÓÆ™©®}#U™ùŽ�Š|Íuc¦ï:ÌU®W1g¶ãÔ”I[`;Rs(Îv|zŽé™™fíMÿ*Ü·QsÇuP\Rs¬§×ëÎí–:t�⺚>�ÓÒgwhK™2=}KÕæ‚åg?©Ô�k¼ÓÌç†Ó:ÍXGŽ[ª}Åõm°29¶oÔÒ¹SÔ!²³L{œÛ¼¦Óž¡ƒú+®sdÍù¾}Eîßéïê1ï\Cþög5¥¦OfßqöÉõ7´‚é×\eç—oHY¡6®œ«�ã̱aöEg¦_iæ3r�©§kç7s©v4ÇVÞ\J €@ó 4wŒªy{ÇÚÚ„@ÄýÌè9÷ëý8„ÜÜÅ›ð½ã 3”¼l¤g 'ÿé÷!‘ô,Ô �ïW‰ŠíÏD5· ï�ÜRWÓµB`×s^²×/Ö¤´AæKÿ8­ÌÜ®‚âÆ‰¼¸ÞƨóÕ×z­Øº§ÍìÇ ^UáOÓŬí%«>S\�Bg—¶äè´ßß2E:þŠuâÈ{ïhÑ+¶ëè›»—_Ü—Œ úõó^Õ9G×^:¯.ê9eªçßÅ¢ÿþ´¶ëæ‡ÿáç]Ï/ž:Uñý» )Ñé×­ýB©cÕ=ÐØÑk»(AyGýžŒ °"Ov�1Ó<íuf~óñqÏ< € €íW ºÜ6*±Ý,ýÖÿÝ…†š6(NC§,®eð­2g•Òfk_€zTö‘æOš®UëmAtß:Ì´ó|_zÒÍÚè¸øóסóÅÊœ›ª¡“æy]„ãÕ¬œõš24NK7ç{e{M”åjf×þš¾|½W¶ïDNÖ*­ÜrÀ7›i¸".�>ÒÅÖ.е‡œ£ÅÜ_uŽO~T_îý•ú'7vdñ�;k¾­™ÛfTû ²ÔÂtŒˆVG?GÂ… sõÙì+¥ëÖžy«õYî ¥ ol»»AZ¸_‡T’gõ!rV¸‚S�ë—Õ¢NÕ¹MKŽ–Ï6¦Ycç¬Ð£³ï×ߌJnÖQ½�ãm%³¿ÿ¿¯×Í?ø–ÀÍLxÞ}ð»Ö{ÁÜçä/éã™+l-é£SRlÓí;Ùmô�¦ƒ;\�ܤ“_þRqÉ>;W‘C%’=' ‚ÒÔÇX©Ê¿´5ÁÏ­ŠmsMàß÷§kµ* *X³XG¶¸¢ÎfÌQ¯@�N{…í&]®NW›g§JGÌgmEæ«ì'Ãñ¾¹ µ«�qÓF™ÛQÿw€Gê2¤w¿.9¸žÏ›õ¼ósA†k_3·gsn•€· wWêûSÍhò#{jgTí~O•¦Í ®Ç·^¦@@Zµ@tïaZ½d‰ÎuîlÚÙÉ<·k›–¯É±Úœ±P«o�Ó¹sVÖY¡‘è,àåüÙg dÍX²VÓF%*÷¿k±­îìyÿ¬Ü[5<Ào…žƒ'hΜ�êRó—Î*?ø­·E­ ÚáÎS{ÜÕù¾;ÌÈçÔék¬ìŒu:²õa%Z9^©VÓ¯’·ôÃôy^m»p­ß=L•oÓ”y«¼æ5ÇD¤ëÂýšu¥dhá´ ºièä�Ò±�ÞÔÓ&ˆìÙµÖO×ôa)ÚúpˆçRæhÃ/îQrT¡²›mÇ«4ô¡ëuö…ûëüî*Úe“óÖ{u}áê ºu`Œ*ÍèggPÛýÊ^byÅ'(OÏA@á“c�$×ÀayŸ4ÁÛA QÅ>�Ðn®ì™ÞÉž!y숞Ÿã…xÑhP¬ÀÏKfB�tølÄNú+ºµwDÑõ4œþc»õ)T5hy B É!À^#tõŒ€¦“v�YÖÜ�óƒ�2~:±I�K@'8{¹Ô@3í,’zv�^Ëd#ínÅÃlAÛè*c“"LJÑåyOœ×kqe¾»Ýœa0á2Êi〆ծæVC£–í²1ê–Šš¹ ÙCæcû·+0Ë`§^üJ6gŒ2Fdì|<3~ªu¦�¥µP¦sÎŽH�ÅÌlRüâðXö7xöïç¾Ð8Ö×ëà»w�?Ö¤Z*n_¿ú4«¬¬ŽÍ}vþ¡ì#�­³èKÊ>pÝüåßÏiY‡Ã³GU›X¬ÓÇš±ókÔ®ÜoÞE.G\Weæ¼|ñxìZ¬&‰ ž‡~KFÕ`üçd4:';KZ8+üÙp¤ æÀØÑ×Ó^‚ÃŽuú–ô‡÷ vŽðEþ#žodJ d¿½�·åø]=�B¶»ÚÑÄb›,ÕØÕœâÊçƒÉM„!@„!д°ó‚×— Ꭰ1�!»4/T“ux-9† ?bB�î;'<|Æ?¼]Ɖš·[ðÃ� „ŒV§T}FÏÁŠÑrÕ*ÎucDñ,9ÀR—•ê£V܉Õ/0¢Œ#§±õ„53Áfû&¯†Ò®Ã_*‰ÆÈ IX2AÿÍ:dÊ}ã}ǘւ4ÙšGØkZ!hör¬|} ø 8l4f¾ô ¾˜å�=¶%â;¤=„*—¦Å²ûò¢t_†Œþ+òÓ€ßöÎS˜ °¶—�¯ç‰ÏªÐ&ö<'mÅ„ñckž|ü!Lâ0Z9ñS¼^þ1bj—Óf¾Ž\Hx» ÈðUˆ^8Óˆèæ’ÛÄ™üûNNî4ü–½CøÛ6:3ç,ÄGçöbÕ¿/ÀË¡$(r~]2ú‘áOŽÇâ1]¯+nËçۑƈb®t�ÓíÙ}Z¾9SwƒòF‡ÏÄ+³¿€÷CúœqX³÷=„„K2­¨NŸÏÙÿ9žÖ?«Bö Ù«ðóg3á%.ß±gú©)Ó5¼/¢õüuÄßÿã÷Í‘žUm±—°SLÀ—ÿ†Ísøq›…M�‰…Ñaï÷«pÁÇM›�þ!�{ �f÷Vs©µ t‹‰Õjóõ+߃‹“ÇâèýAØÝîAˆx—Ž$WÿüD^¨Š[±¸­ßñ…Ê¡ÞDJUgéÈ©ëÕe»v)I"/~Ï¢í›\U»l_ƒªJ°ƒ»f.\�ÿ–ç!á· ˆœf�I0›3�ìLáü�öŸC‘­wƒÌÕö¶zÝÙ†åuY¯EàÔCCñ[çNØ3b&N¬ØŠ›ù6¬ˆ²ûZ-ÿ!cý-Nß4ú°sje“áÅ{O˜¡ªÀ�}ÜGÕøáp5øˆ©)Uõ±¢ Qœ‘†‚´4ed ïÄNœŽx'^c¤¦t�@À,• 8R¼GG1nB¶ým¬Ô.Qj£øeݰÍÐqÒ{1#æC¤þœ©«ú˜ ÚV“=µ( ·¸V–¨ìsQZ§Uð-G%O×íkÁ°Eä'B€ B€¨/JŠ%—³ ø5¹é1oó7I,ŠðËÃDpèÂuÙS…«¤œYœ«éeÕúèÖT1]IÏ^‹¼5æIbµê×K»*’±nA¼T� È2I¬µó�¯ö,’ÒÔ…#`æ $¬˜cL‹…ÛyáÅ¥›µûtAg�[åc1 Ç¿”Ib]>wÌüò8¦‰rÙïgßâ|@Qâ.DéÉ;!"rÇZŽ$Ö%Õ0ŒVZÎå‹Á·¿ep~Û9Ý¡ ÄSìÖ¯‹ÎŒº^J’˜+Î=`Û�òbÕ„¾6O$¶I$±^ˆÆ¯D/•%&C†šùiMVüwæ„“Äbf¯!/bG¤¬…žr%WŒ2ó[“>Ÿƒï¢È2™9ú=+8’Xcç‚%?ï�ŸivÞôvÃs¬Ù¸œ"I ³J>…CãŽalCÁ‹Ã,'¾ùÉC�"Šõík:•oæ3CO}�ÖA`ضLoŒEÊØ¡Ø=â=d[‘ÌjV…mÌf>Eçñr}Òþg«a#Ç5$—­ÚUqå¸dþTh¯c7�:mvUíªye*P˜—ƒüþ«Ð6L+0hÈ,Y³wòR±gíR„ËóImU…ó?&>'û`¼ñÉ8g“³ŒíàûÞ~ô\6É$<• »‘»0G»w±�'M¦³UDóŽ‘í ݯ\Šà/ž;ûÞÝÙ(ú�\óÚ»ÜG>" Ù±7ùØŠTdÇé‰C–ªõ£Z®5*KUuUÕÇnEŒÅ�ûáðƒðûýýplô³ÈâMEcºûíÄ�Òª¥è¹ûÞ\ÿ¯²8Þœ™Þ>á3—“Õ¾àÌ mqÂpâÕOk~ZhMIÜj ¸°ËuêPÕ³Êt±ì_¶»¸:“»;§wKY8ˆ»“¹Ðª�.h3JÞØ€iP«–C)B€ B€ �i˜þˆYႇ'Éô\ÝíO´^}Ú;߯~v.ë@Q­•µVЀ,\1U¯Y—O@ÍÚU’´²Á[à¥)ƒU+í>èq™ªš¨®];ÀO*s Î]ã?´¥Éù4BÔ6×j‚ñ4GÆï=þÄÚ û6I2€Ù˜¦®ùî2௘ǥÜû§å›¸lµv*UBj-Î"åe\²˜}H4+¸Ä¦�Ób§¨h .÷�@¸élÕŠñöáž 3)¨ªÚ5êóÇñU¼\­å¾¤Ô–£ØÚÁ`¼Ê5nÏáË|¬�;Ûã/„‘— ír"Á@4 ìØ‹­ÿñKÈ;°W~ÜŠü¸ÝœYU®Ž ±8ÕýO­CGÉÞ/9û#èüFxêl�H¡ÕwhÐiî2¤l|M—uÇkHI~‚™�U›)V_zõsÔo»ìÚú@˜@Š:jwËEWõ[¢Ìa­v)¥Zê+¾¸ï.ûÐÒäÆéÚüoð;7TýÒ¸ø`ØÔ×Ùß«È9w Û7¬Ã7Q1ˆ—’'"zîDl+9„„×H¡Öshà=ãCx<ú<ë_q}ÃO(N�‰F¾œ1nyŠ�¿;ˆNìB�]õQ •I\ƒÆ�?ìŒû̉®ÈljÝ;ðæ8tè´vÝŽ×ùHdÏ�t]ÈUÜw)œsÔ¤Ï]¿ xNçö„Mamqã{ž ®¶mYx¼XP`°NëØ¡¬âí+ŸÄ…‹0ÿå‰È”E\\4æ7£Ë¢ÉEM�ê(�4a¨i  \�GÈG«1<û :õ+îÿ1Ó„…lþ:‚¤Å›«|7·Ò7ƒ]ÀXøŒ‘Ë¿òÙ/ÕZˆ—sZÇU¯írj£%ŠÅ–äÿqEtÖú×ZíªQEjDŽ(KªTzMø˜iê€Ì4u4>ÙÁ™¾Ñ§öÓ´0‘Ï:Ávîèò›¼ûŒHID¿=[Ñuù<#b¯|Ùt\J®j_¤uêddêØNÇ€Áùf:qý®dáçȳÂ}²N­ë@ŠcW´çÚ#þ¢TèÍ£û%7‚ÇÂ�?ÇGŽ1rY¥��€ë´IhÍþœÆÈZ¤Zmð„7qlÅ£r- °sô‚÷”71tÏ{\–ÝHÞzŽóß;Î6#dóÓÚV�Ÿ KŽ5¯Îä®Y 'ÐBÎ]gʳ¸ôÎô¡ÉÁANB€ B€ �j"Àkb&«!b&m­¢lZŸh¬9œS«êÕ8³UÚÕ­M’ Ì:R�+WƒŒEçðÁô`¸vé‹§çF#.>ž‘mì?�ÿ Ä:·2¿p¨¹¯¥AÙëä.šÅbañ!ê@zÚ5)aؘž0A¥³4l�ȧƒ”6qéW™$¤‘8܇ÍÀ"E]ã%ÓæÛ-ííüð8ÌãìOæuµŒçÕíóAÓfc¸[ÕkrÅŹð÷jmÐf�zôB\ÚÓO ŸË­@ŠÉ±%Nø‹C‡²?Ãw“�ZÌD¿„!ÐÄ ^ßÄnhSnN ÿQ°' {‡‹» Ž ÷r>#Šëf&Ý"h"¼ƒéì3‘´漧TM 6ô{Ríviœµ„¨¸+´üüeFôªŶE²…çcxý“ÇlRHIN2â·oDìG $S/rAÂd8‘Ë£0eÂhyÕ ꈎû·�° ºÚ•ï<�F‹Þ»ÅrµëÈÕ¢‡@‚.åv!›þH«£*Õi1ÎÃØY½ëtf˜vâFþlx·¼„lý=*Ónh`�Öén¹ðu$>lÃ�K/„ü´Øaîâ’6|vÿͤ)öª+ì�Q#Q,o\¨:OSLáˆÀŸNÂWk:Êšv–©ŽóÖ Jö% Œm0Pû»““!<mj4å¡(UÓ<ØÓdyr*r„!@„!@÷&‘›/á5¿ýp ž¥ gGáæ™f4O(V[öàrÉLp{‰¹Š2Mƒ:º2~þTA‡/Ú€�^y þ̬®âªHD.#ŠeªX«â1­áäÞM‘¾Lò9¡Ó@¦¯#? ä)‰)Kk¸ê!®¿™ÊÒ¨Ãý1gE¦¿y'O�À±Ã¿âà¶•Fkg+#Âÿþ<¼n³Ýiøt8O‡cí¡�ðä¦Àdð¹Õ¹Œ(–Ÿ ÓOˆœ±v}~Ö®Z� Z²8þÃæ ¡|:Î;‰§Žá׃±ÒÈ.üJ |ª'òöÍ©‡3Óe¼ÈEu�@³º/’J$jŽ€]×Aµ j^®.§ üß[ ©ü$ig ‰Óدj¶Ëέ™¶šxUÆmD^“žµŠ-­æoI>÷þ€7¦?Œ–íº`Ì,c’8hZ$6ü–„Âò,™3¡Ib±mŽp6Bô@8ÀÅäK‚;nGÎ` —½é:Ø¢¸&³™W_¸HÖ¬Øæ˜ E¸{å¸DÈ“о‹ágK=4±?‚¿ž$œ°Ô“ù4¹MÂÕÌÑŽ^^ìÏ–Ѥx/¸ˆb“ë39ÈÛÄ�-Ì«‰&pYâÏÈ»*ÃmßÝïžî·2ä"B€ BàC€Í;™qºÌ ¶ô–„ûÃ%h&Ž/—Sn™…ˆÕÆZ•r‚äR0™¦Íø‚Qž%uò@TàØÎm2@ÓÖbÝ Æ$±�Âä·‘œ�w•”)ËG¡0‡û iÓ­¼»õ–ÒÆï8…"ÉgìÈɹ& ìC;OÎ6X)o`=ÕÅ'çâõ%+°9á¿(dfµVÍ “p >ÛÁ)(¢jí©H;ŠhNʪ¤u˜ªB IÊ«¹Z£>oðØ•Wó¹åš¢tÚ¹ `À0L}ñu¬X³ÿ-/DžX„ñ©âçbó9ó�,J>Œ-?lÁ–-ü3]m­zòõ!7!@Ô &9€:)� !šþ“á!‘6»‘òìR�¦_#k‡au«×. :¼Á‰Ø�+¿si\̽è,J;Œ/ÞxiéŠàáoC"c7#)›MÆÖ,Á„!p¬å®@ƒjçåç‚¥ ÒHaz:µÀÌ÷U¹¢_ðÚ�Õ®\^:J«�©)eð‚çäþRƒn=ƒÜ“G$ói�À¹�‚ŒC–q4'Ã6íâ ¨g žM âU;p)ûö­Yˆpfkl]±Š«pþÉ¡Ø3ã=¤žHSÕ¾[”Œ3ã‘ËYNjÚCABÚµõU�OŸy7 »kEŸ�Ì}Êx¢}_/³M¬T~÷à.ë³EçŽ ñÕG�ô oW0³\w»ÙJ×ad‹ƒô¦§Øx“°… ™úûО},;³VW]Û÷±6ãžW˜É2§U\iô‘W�Šü dný_ì»ÿYîœÂC‰(®Î3çÕíƒå åË&#ñ€rgGIâw8ýš¼1硃¿©]ÓL³0 }[VT ,Ÿ™¬>±§#Á‰¹ë䂘«SÔt¯ˆ�‡ B€ �{ ÞÔpTÔh( ²{n®ë¬Aˆr[܇ᛑ\mbùƒÅ&vë§]îÿÏÙr�·DàÉ7~P�ÅÉ?€àˆ89�M].è9,L*!.â6b®óñÃOjI>Ž“ò˜vÄ!xîjEÛ]ˆoç>­Ðà}y²’fs Ç"NhÔð§±%Y¹(V‘±}yâz6žáÃåœNèÖ3L ‹_‰ŸÓ” 1É?/ÆðèxNUJnÒQQÎ1ë‰ ðñ–s&ÓÚ*âÜ·ó1î�ÕHÌ0ºYº"‹±ì­©x5³ÜRd-Ž{q6âðÁjãÍÖù‰?àÉ�üýªa¡õy/ÌŠáž ÖÇÍ_ ƒ[/U ?#ß.žŽ¿Œû˜Pf›æ?<«÷&š4 }î‡�¹ AèÔ¾®³¤¦�ƒ ê Rù¨'à©X%ö¾Ìψ׼מÅá×€æƒGÀe`_8vpÃÝÜ䮎E1G` ¹�b_B³OðY$õì‚$eQª>ÏŸÏ!¨‡j”J º|=¹Ï®fqœ•JJÛ5Œv¹ÍXïÍ}�~@lån$=€Ôç ý/Td\Æ­ßwáÖ‘èëÏ‘Œbþ·ší i˜„¡Ûõ6í,˜?a!þ50ãÊcb%·½ƒVPåŽXœþ؇VÓGëÞ�áТ EìCnGiSOBà8Ešy�B·ç=‘$jz&Äâ¨O,œžŸ—^î(ON@ö'ëÀìëÍnè`„p÷�÷á*ŠTxܾÿ{}^‘¼éx4]à>(Ü(�7ZsÞƒÃÑÖ¥:ͬƒ>f€îlÉ1‘€´Š�LCïþÆ-_<»[PF`�7üX¶ ß=�Ä]?ŽBúpùÃ2óÉ~Èχ: ø�-¬ÏQ ä±|†ÂR„"Rð°{y ÝR£`>ÀmÍïèfŽlæ“› B€ B  "àˆ°ç�¯·²…@§(L›=Û¶Ô¶÷Î `Ô›Qí÷VE¢'¾ýÛ“Kà ûÖJ¿™¼C.…�ùA6·õ¿¥¥1#r&|Ì®3É"¬éò…Íó¶a\ŒþË8f""¾„�ÙYÆòÕ°ÚåÿÔëˆ|z¥D.ÅGO„kt8"…âÎ…ˆ‰‹‡–¹´äc_nd�]acX^V¦öŠÃ@×ÓXû.Föcß?)G±jb„DìV»J+gÁõÂilXø$: ëODŒX”P;ù1£Ç 36G"j\´¶FBÝÆuqÂ¼Ø ˜tdŸûoÍŠR¬…L[5FÏŸúM˜0"XwÅcŒoKv¤ÙZ<Ô©6}†+uqB»Ü’ö9öx¬§BßS=.ÑaÓ0o`Gí&Š;¬£¶ô›„¨9Ãl¶®U^�‚-Ñ1ì�U„•½è‰áèÝËíZ•#åèn¼?7ZÑ–—¦ ¶Ý¦d÷ <ÆîR<« »â"âôÁEˆš5�[ãè–UÌz`œ.Ò ÿZÒç݇½‚Øð(Dlј3 ¾1!rù?1¢;ñv>ÒØs¹gS„Ø&{£«‚áÇžY]ý§Í[„᡽áß¡ʳS°{ÃûìØ<î©  ÃÌ®ã•@„!Ð0zý4�6Q!å©ÊJWØ�\áO,ùìŸ�Ńãù ³UCSidªR–ž�é-åLŒ‹ÂDö§¼‚0/²7b8ÒXml¨ºN–ôy¼¸1š—GcÖJñÎ&"ši³‹Û”uc¾Ëe ëlºø2EÛãb±¬öê…­]:­Æk0U>wF¦B€h(4k(¡zÜË8¢ë¦­ðym&ìÙ†(sWóÁ3Ñõç£xø½±ª»Èšé5'ÍÉP‹kfÏÎ=Õ´·ÙÍÌ10lBÜ�?‹S/Ô^�SÕÅošeçnZÒ l»ì|ôÍ%ÜÿõhÌÝ»àð^ó �å­U»ªÂ™â%ZOÃýkÞƒë˜ªÔæ=Ñza,¥í‚Ÿ)­@�?BvŸCÏe3Íhˆ r¾Æàìá¦2�·è¾³3À[�Ÿ‰Nk¶â¡Œ]eÍ�!4�Æá2ÊÑÅÞ¡]ª¬¿EX«HÑŽ‰R¸½bœªrœs샀Å#¤ÜHø72ôö‘ì-°^Ôœ�® —áþc‰x8öoh£ò É›†«Y+ØÛYÒ.î�eâ]â6åsôûþ=3ãs66ïÆàú«hfî\õò„=³üá¶ð=þü+†e¯&’X' $B€ BàD€­,LÈÃok—cvx‚Gƒ«…êÚ ·XÒÁÙàûG`ïÜJò8·P~%é"Z­›”¤Žq­UÀ™;¡ª½›\Eåq÷aÂ*.(ãÞÛÆ‘Ì ¯]p ÁŠòtlX:›«·Î9m^,’ò>BH±L«ß/£¬5 Ð`ŠBü¶Š7ã­5mÑämŽÆÐr¸s+ãgH#ݯ ¬=ž€µ‘arÎ6oÒO,A÷¨pÑÌi‡!sÖ õ·U0­O†å;’°oáhU²Y'OG®š­Ò™X‚pÖ®ìÂ$Ì“ ·ì¬XŸÑ ‘wé7,Ÿ7aa*²ÍôC©¨Z8ü^€E³§™7™4 «ö$¡lv :@IDAT|ÅT“ä¥|¿X_S[X%íìÑ^ª«:>š€©(Lý &n7Sמ† ¿"úYA{]™ÀÈ:}ž•aç…™+�´‡=C*·H¬† K>;r9~[?EqV¶6ÞÑ bašÚ=–`Zä*ÖgË15 êE~–E0\-ZË�s�‹ ±BU,•a.�Zœaï¯Ê-ÆWç—O+¸Õü¦ÂÄô–ü ¼ Z:µpÃ0Ñߜɸ�ýuûïÿkfKÑ/áìÃâ¬,ܹuwËËq·¬ÍîsGën�àèRõ˪6¹ÉT¹$' EÌ„xi±°ŸÎö­[£U‡tßÒ®(BqFŠssõ÷IècöhéÛξ^՜ԕ 8í Š2sÁº*»å÷¡¥›‡VŽMÒ]§ºÜóT $#l|–úªg´ñqWl¸ça"B€ B€°!)))Zé´üÁ¢R¾ð|Ý¢t”ˆhT” ¨„©m²ËNã�vM «Ç9a–ž+Ž=^ˆëâ±’œ;›ŒœÛÂB[@mã¿®þp1Ièj“™ýGXï:›œ�ÛåÅì›Ê^lƒ´WuÖ(K�vî,.eÜ„°ùºœ}˜µr÷E¯@8Vcý$?-^Êaë/lÍí¾6ðé¯ê0ÛÊúŠ,A~N6²®çâæÍÛz�Øûàåï_/UE![×4'í’Sstuak]^>~ðgu©ß«9i—X½2P,¬¹²gà>ö ¸µ÷€—»e8•å#›­¹çæÜdÏ2ëìÿûÜ…þáËúG5Äú‚Jo üå/ö«\`·ÙŸ`¤î¿ìï®þWp«ùM…™ eUõˊԖɧ3 ãý¢»&¿|snÃ8Á/\BM]æâø<–¦ãóHn‘ø”jà°T†¹tjq†a¼¿*·_�_>­àVó› Ó[ò+’½†iÕ ÃD“&Škð RB€ B€ B€ B€ ,D7Ø[C³E‡1Îi 3H­»–ÏÜ�ú&ÛlÕX’K„À½�Å ²—'my·ð�úM…‰”Zz1Žÿµ4ŸGrÓV r„!@Ü;Tàêÿ.Àåc7`ßÊ„é/ À¨,ÎB«ð÷2>À‚Ô”¤! p7c޼ò àQóû¶·¼¸+z­x®µØ•Þð :„!@„!@„!Pò÷âÈí.1ÀGEë³?)‘Ä`†‘ÿL$qMp¦<„!@„€­ ¢ØÖ“|B€ �ˆ@ 6¯CI¸3ŸjVÍòîÔ,#åª*®ÿ‰Â»­Pv!Ju–Õ¬ ‹D„!@„!@„!и¸¼o1ÆÌ�gÇ£†#ò¹IÑ/ˆ™ nÍŽ»:…ï"Ç!šE‰×´µ/ÀŸV¡E8è— B€hPÐ+ºAݪ !@„@cCànIYc«ò½]_{k5¿ÐZ‚H!@„!@„!@��κ:'nAô\ögª³×â“©d…Ë<N„!@Ô7D×÷ ò B€ êGtÿî(:Þ©½Jh3§võP*²¦´zƒŽ�ÃÝš �òÙ¡•£ä!!@„!@„!@÷n�B´ñ‰¦š†¥›?Á«áA*¦©Må¡pB€ š %çðƘøD¯Ç‹ÜÍ70ÿæý\»SƒháÉ£_Ç>öW’Ÿ�+×®#çæm ¼·ËÊÐÆ»+zúÑVžïég„O �"F D´°©f S69ž�CL�ÅE'ð‚k_¬€ $üÊÈb:ß]€ƒ.Û"@¯kÛâKÒ B€ B€ B€ B€ B€h’h\¼ ü5ÉÖQ£B€¨%×ëHb½˜ˆ¾&Èb�$vÒ“ÄÚ´‰XwðŵƒŸr[ˆ@3 ÓQ2B€ B€ B€ B€ B€ B€ B€°MÀL¤îYªH)�Å_œÈ‘ÃŒHb lѬ{1HNC.BÀ†QlCpI4!@„!@„!@„!@„!@„!@„À½‰€Ï°×M�ÅE@I¢�&1#‰#w`ÇÂÑÐÜ›pQ«ë"Šët*’ B€ B€ B€ B€ B€ B é# N;á/-ƒugë!Ð’ÄKˆ$núODÃj!Å ë~PmB€ B€ B€ B€ B€ B€ šjd1ß<"‰y4È]—ØÕeaT!@ Jó‘•WˆæÍ�ÊJ{¸´óD æÖ]%ÈÍÌFes{YŽV®^pr !KDÇôoR“.¢TH`×�ºú …éÄõS˜�‰âJ¡ør4¿¯Üœec*e™È¿ÍÂYles'¸µsѺ뺲ùçðŸ=¢ŒìÑk8†¸Ô]pß(Î>�+7ŠaWÜ×!Þ®ò½«;€¬[ReÞŸ8pä `¯Ò[ÊËà~ÿ_ÑÃÓѺ…ÚXõ1ó7|Ì·€byû¸ÔÇ þþÔ­ÛZó šÈáó8³9˜ƒœƒÕíýh"¥5àyYA˜šA„!@„À=ƒ€@_Š�C—ˆDe›§­ÅÒ$VbB¾:C€X—:ƒš ²�»ùɸºå?¸¾÷8J µÙš9y@Óµ3œ{€[ßžpõR#lŠ�½÷AÆ §~CÐÆÅÄ#^”†ôƒÉ¸Ë8È»h�‡ú@Ã%-8qù7ËaRå¾E+ÜçÙmüÝM§±´Á÷pºämX¹ó´„ÀóÇÄ@ݽ-¾ø5–-ûTŠsö-ÞšÜGò+%H>q·*ÄÐrhÜ@?µç„‘�yçq:)“‘Bºôh�À~}à$foÄ¿e—7áó�—è[à�1ÛУUkPéI,k*t½›ÕMó ÞþäeèªY„]ïÃþ›b�ë¯ %—waÜĹڊ-=„„€b¥lþk½¾aªªÈOKDÂûp!å,ò Ø™(ìjáìïÎ}Ñ3ä!t÷óT!èKpèÇ®,�\‡!ß`Ñô~:O#þ÷ú‰•øÏ¦_L¶ÀlŽÿ¤êÒ6Æq©¡�A•lž”(Ï“Œî‚]+´õôCO÷÷L[kT9•iÛÙì=\nl¶¿áÍÁŒn&X‚€íçe–Ô‚Ò„!@„!@4 ŠNàÓÏ Hb¡aqïãûù#13ĽI4“Ѹ਱ÆUqªmSD WW¼�¤…ëTW¼Èc1W„ØŽèwäM´áŸà¢383y:ÓOÔ][Ѧ¿:QXva3ÎL_ªOÙ-RvAæ˜6Àó“‘yUmö§?…—ÁšØ9H•Èx.QÖid^ÜŠc;Y˜æ)¼´ì_ðUÜ�ldÝ’Óõî*{±ëvnŠÙÚûx›�oˆ‘ÔÇÌßÛâ“��ÑSq¸„«ÛÀˆâú’K�°åsüÉú®=3‘à5lBMl¤âj܈œùHçÞéA½ýQÝuUmhcеø·±nÛéªqÔ„bØ´HŒêç_uÚ:Ja­yPMää_çÞ%m&W{V™}?ný�MzÙ‹×>£'�l›ëèÖÛ¸ÛÍËl\qO„!@„!Ð�`$ñ N}gËÕKĬ¾íPr</Y,ÃB®:A@ÉËÔI‘T! †@>ÎÍB#ƒ-º®žÀ¶Û†ÿf·k¡U‰âf¢�š@ådD&Úû²LÅG�1Yk`Ð�_µb)Ì6”eü)“Žbé©ZírÃEù¤o Hb–Aó¼ ŠrÙoVòq©ÆNÝ{6ŽF­�l©Úä°!ɻ߯Êõë-,¡5œ$1ËVp)ùåßöMAè6ñ{¼õ¨îíÑÜ®%ŠÏ}Že_|©Ç)~^�ܼ6õ1óϼ•ñ)LøVIkK/E1û­ŸWM>þÜý%Nëûn`ÐF›‡¤QŤàœ4.¹±qI}“`CnSÃ*pírºep•ÄÞ¯Ãé”oðúä†a]ÂZó šÈÉ>PÆÍ»[µû{Á•ßpìÈ¿õ2žÁÃDËx’‹ B€ B€hìä3’ØUI‡-ÚŒ<‡¾cH­‹`d1ˆ,–ð GÝ @DqÝàL¥T�ÀÍ�ï�ÄýáùõëðÐ š–@EAn%Eú·!oGfÒ¬=x&:=ÝÚƒJµ¢ QðÛNäm<"t`)N¬Œ‡^è#‡‘«ÎPh}ˆ¥Þ¼€¶ø¯Ô†ÌÁϱ̜µÀùh•ݘ#ðï†Æ·¬,6”ÿÍGÚùd)À÷£ä&!�ºãu¬Ü´U„ƒÇS5q*ztòfšÛ…È>w{x—˜¶±C`œ©�âô$nSFx´m"ÓˆæŽpâ[XpKny›ð4$ÌåXräcwœ|l‚YrÙŒ)v«¦¸ø*®qDj׎MÌŒ•C{ ö Ø`Dqc—Ô”ƒŒd67Ò_¾Ï`hÿÎMöTÜJÁéßÿ�Ò3ÜØ;¿MÄPÏú~'XkT39m{NÇö¹ì}Z çnÕ75Ÿ“rZ„=ƒšÈÜTj9B€ B€ �{’8(r3v, gËÔáHÝQ ß1Q>DKP�£Ž¨ï¯ù:j&Ó°È@Ê’ur³Ò™YiN�«…£ ZyùÃsÔ”$ïßÿsuôôjFMF·ñ½äú ®)³Q±ðß?Y«!$•,ŒÃÍgû(Ía tÙ�¬«z-Z‰ŠLÃíJeѹ?Å1¶°)p>Z2 [e~O¿NFZåÊœ�ÄWzEKð‰µõñõ�ô{�#P˜ð>7 ‰ŸÚ€™#ø±�‘¥ýž€¿18±f&·ö1ê9ËHzÁ½¹ìmJ®t^3?(°qhæ7¥ЈۢÕ&V3ë^�m*KOÀ ©ü>hïZG(©L;ü1|òË6.¤nÅ×ëÄ6\æHàö!Oaø¥iéQ“ç³÷Ä+X·_Ö =òû9 5œ/×-llrg¥yP åx„LÂÄ�š6º—ÏÈD±«_W£wpM%S>B€ B€ B€¨GL�ÄG—$±îò½—˜¥Õ.D×ã�º·‹nb+E÷öÍl´­/ÉBgæÙóó—$±a»4þã�؇ ƒmç/�Y+‹°óŒàØI8!’ÜWŒÍa+³Ô«/?#-½¼¤P½Vƪ…3­�D½-[ØtòðGa–à?�”ô"ôèê¨+­2›¾Ñ™Ü•¬ŒêB}»v²j�l-¬0; Ù7n ”=šNmáéãƒVŒ°+˸Yß¾7ü¼õm7Q¡ÊÒ|äf¤ãVEK8TÜÀm»ÖèèÓNÕÒž¬@~f*rnÞ`š\öhݦ¼=]L”HÁõ‚{ö¿ÿT©á8uf†)þåºi2ý{¯u æHÏKÉœzöÒ›Õ,AnÚ%äÝ,Ö>÷µïßv–?Å9È¿‘‡Û%,9{¨í[¡­G'x¸š~¥Š˜qçe"çÆuܾS»–­áêá 7gqn*cR9Íü�™&] /]_Օφ֞~ðõ¬�6gi²²®àÃX�cgo‡ûÚ²ö¸³þJS¹ÞdSj{[†À«K±÷b.+ë4Χæ£G å}ÃZ̼” ‹jÓíª5ÆËY­íª,ÎÁµôkÚþ)<×m;²~_Uÿ´v-dyÅl¼ÈºŽR6^ãPuû˜õÆ2ë�Arë,w•¥Ÿç6>]Ô6�±÷ÄÔyø�ÅÒ¼C¿«ºØ¼#‹Í;nÞBEظìÏÎÝáRÍgÒZó kÉ©ªÙÅ3r:9KNéÛ•™›kBWq^2…þÅáÖÜ®Z·mW—jâV{¯`[³ù‚�ò„!@„!@*”ä¥(Î$4‰y’XÌâ¯BŸ<Ƕ}ÓyÅ"DôkChuцà’h˨¸’ ³¬MÞ=ë~Õ²š§jÅÌÊñãêæUrOz÷E<3e±tUÆ� ƒ¿Ký-ÆZ¤ÒtN‹Ö Ý=ŽË›>Ô.rÞ)¼ÃŠÒ‘M©Û£qI_pà¨ç‘½óKýB¨?üEBµò<¾Œx\ŸÎãßý ýÚ™&‹O"fÞTi‘´í¨ x݆Ú4ùIÛðݪ×�j¤­æ†Ï­Å¤Èжw&N˲Ob×ÆÏ°ÿ¤¬ $gd»×FÅâéñaUž­—~t ÖÆ-Q˜ŸÔÊióžýç<Ü\7“n1­í\ôž±SC}øbÈ]G¤ï[.=ûB‘}>1C›«”ÒiÏm‘~ð3¬úæSε.¿ƒï+xvþËð5ñ æ_ŽÇÁ½ÿÁ©Ó[QÈi®ñ¥ f±ÿóâWÅ;�á_F<¦o£Âß݇>·÷aýÿ-BR–@Ð)/‡®o`þkÓM›ô,¾Œ‹\óëXEùJñZ_ú‰uØðý;ÈääHÉX»ž~é5{êÆ&)\ÅQ™w»7-ÃÞ#ê}UÈâà1�=…~>UËS)‚‚¬ˆ€R›ØÃ EþÿÊÏ =#Cm~•þ‰˜¿M”ÞKFåÝüïÎVnÒ´¦ì~�ÁTžkÏ!ŸàÙé#Mkñ¼w Û7ìµ?0JÜ f©ê/AòÁ8lÝü¡zeyœº>ƒGŸ‰~]=�$Xu,¥[a EÕä7'5‘ËÖ�=LŒ-Í;!�qÈ™¹ÉeT:‹“±ç»åØuD|F”Ñ��}…§ÂC«œwXkd 9ÉŸcϼ‰±Ù÷ ¼ýæt³íIÞÂòo3‘ŸÁsøãA8É~KP…bÆÿ|…ÜQ ŠèZyаó½±7U'¤÷Œ½lÞfüÌ£2�õçQúþ ‹d}ÎÏÄ3¶�¥ý›~Xb²1ƒüè2l1žžl~Þi•÷ªµç µÂ›2„!@„!@Ü+hü' ûP,Ú Œ€)’XÄB ‹S™f±`†:|ù!¬˜ FÑ/!`SÌ0 6-—„vm}´K§:=„#È<“�vý«¿0/ ¬3G ®|þ¥¢4KÇŠ¸úötÐV` ÌbÌ6{¼0a!þ�Z˸2ë"· Þ½ûöEÎ&v^kãå ×t»®Š�b�¸çûîš‹Ïwêïˆ&â‚[sg�6»v1;—®å3¢Ø´ö_Âw ¹²Ý:Èv/ïd•óeõ-`?¹8üÕ(–àà×Íè|Y!:÷ÄWXöŇ\Jcç¥�ø×©¿ãŸ‹Ÿ3A¦•àè×°ñˆ^“ÛPÄÍõøúŸ:ím1ÊÞ©¥è4þ­¦&‘± 1�@~YÏ/Ì÷Æä#M'7c`Žôð§ÊgŽÏZšú)>�vÆÛ‹ÕÊ“ñCt„‚¼æóŠîÒ¬õX½óÇcæ´0o¤@6Já�Œ½o`Ë^åYÌ¢Lá·ôâ:d3¢X$±øHæVjÓ�D�êlªÉÇžåӱ댉¾!”ÅÚµöíõH{å7<lz|I��Æ'ßþÛ vÆÞÒ¬­8�ò‚y¢˜ú˜1p|ˆUðQj;ô™‹`g$„©:2èÒÅ+@`/¾d«»‹Ósï¥êˆ·W$nåÚ^ò&%²óGšx°dyñøN"‰…Í(“àÏ÷¯[üÉÉØõñDI¶¡#sÿ¼{} ¿öZF2qêïfÛ§©Ž†}ñy|ûÎã8­¶¡ƒ+»ð⿱q™W¾j@`[y,Ó—Y»1ˆ«x�œȺxVΩé�vâIÕ¹˜lG·`Z¢jW!s—-{Ç€ðT¦LÚöþ•ÈæoššwÖšYGN’T6:H­jáÈÎ)6w±üèÆs©”$±�²væ›g>®2iz’XHØÒÉÄ»ï6ߟÝàrŸ‰t¥¬-¬º sØKlãXþDF«î¸µÞ{Vž/˜”b B€ B€ ÷/¢0=vXûÌPç¥? '––.B ®°Õ§f]ÕŸÊi 8µÑj©”ëÛ’5v>R} _ÿ†AW¢Ìå ”¤%"9fÒ7fÊqÓfÔ҅œ¨¾\Æ‹wñ+£ ü1Ê‹bçcêøGàïnb±ÇFÕ®,¿®�̬ÊW…ry¬H|@äZWþõsrˆ¦<Ûu‚g¶.Ï~‹²ÒY\œÝ¸H2£øÈÿü>SÎÓ1€[üvgÏ�Ž�Ñi€¥ˆD³œZrUfoÃQê4ìC„zÚfHÍ?ñVœ/ëÛÿïèî倂+Ûqøäi©^¢£}'ãóe‹/®1"‰Ûöy};¹±Õ÷üºóßòBnÖ‡øáà#x^E øì÷3 Hb<ðÄ‹ðw¾�ã›ßá4¼ÅÚ0­íÊþ\$F ¿·JÁo²(¿ÅG1}”{ï²FßP+NÚŠ$>§!¯¢OàpqU9¥sN5ìyaZââ%hÛ ì€;©Û±Ÿ_8ÏZ‰“™SŒûEÞUpÜœ|Ç¢{@¼Ú3bêN*Îþú!.q öƒcÿÕd ðúý™ã¬F%§ql/×Ú„"°»? 2‘ræ]º6cÐÑ 9—þ›x<O‹IÄl{ï!ìçÚ�Þx`Ô$ø¶·Gú±8æÎŸÜÿébÅ~_µvåÅc…IܶçóèÛ;„ÜåÈ¿šˆó§6!U¯1íãí!×Yï¢>f‰"ÀÚø(µ‰�á�‘aâ$ E½jëqhŒú<…òÂûœ=¼y›pZkúZ�ìß>�¢�[Ʀ9=*Švöì&äÖõ™’£lsLl®¨ÀÑu 9«l3ÊÓJíãâ¬3\¼\ŒðL÷ WÁ.~sÇÅ7°ïòHU-E‡¶÷Ëíkရ|‰Tíæ.An¨å; NâóL…¢» š�ý'£›7ØU\GêÉí ;ÝxâÐ3ÈX;ÔÊc™ˆLÍÇ QBm~ ‘z™ÛèÂæH¦xâ¬C¤}PH£‚ “¾Â»+7§iï{ï ØÝ¹€ƒ›>•ægHýßíx/�ac¶Áe­y�µä€m±ì<øyäæ”j74Ø3$ŽqÚҞݻªnt�›Åòbù3ôùYŸLÜÏÍÁÚŒDï ¦Í«øaú}ƒÑÉÌûK–_×�4nÓ›·uRÎÛD‰Å駸þ<ÞmÕç¾ qWnÂ`›úü;z ¢8 ©I‘xRÿ^ö‚»Ú»V|¯²Ôf¾`­y™ˆ#ý„!@„!@Ü{8Vƒøu©FÚ{Ij±-Pÿ²³EI$“0…€¦Ú Òˆ vãüÀ ¤ŒŸ‡N‡Ã% œ½\ÐLŒ®ãßòÅã±kq…ÏC¿%£ê­ŽUÔŽ­gaÕ�lÌ�ߎKéÏ›ŒGT„ðÇ(ãi‹0ÿå‰6 @o°¹JɵJྠsú@gÏÒ.Þò¢T«n3ðê[£u$!cØÙ¢jW^ G ±Å]'´D+=±Sš{…ñý~ý¢g×eÎÈÜ�§äy˜K`Ö™#žs*‘Ä‚ ÙU.=CO ´Ïgxÿ‹Oõrr‘}³08³º²¢Žl|à„Ùè×»—љء#ž3Ðcçe²}#&žƒì‹'�ë­‰ñ󢟟ü|3vDaý•n*}ZQ�+dyN=»›I+æÑýž]ó7Iì9Œ™Ð�̙Р} a kðþ§b?üÛw�g¤Hw¥ æ»°ë n| ÅÓï~Šàvñ§¿ú�Äðñ¯¢0ó(¶ÆíAC³ÓÔÇD¤Ô­Ž�R›]—` ~ã�;ëV¼n\»ÂxŸ^UHbêšý6w퇉Üû(Ó§ß~C/¬;þ:;R}s‚AqÍÛuÛº¡œFJzz¨˜t.KÛˆ�'å�#ž�ýËÈ,n¦QõÇ£¯­ÁЮâ;Ÿ�}ƒð/îuúÄEF³÷±ÁÕ¼](k_¨šÛñ–‰ï¿6,ÜØ‘ƒMï*Ibm�Èú+GV…Ž˜ŽIyâÇ÷'ⲟñæ+k�eºFÕ| ’@©�ƒi ó¦÷=»÷P}^sÙXö™ˆ»P^›¿³ñ–£„06ÿZ® ‰C1þ­eÌú�|ßCÇ<…�ËžÔŸãÍž·MË‘ÊÆN_ýœBk̓¬%G[);ôg¯´náŸ4ÜfD±¸1Ë·«ÁLJ':Xþ1|~ Ýõã?uñžƒ_ÆÔpãwƒ˜Û¿‰*ç­í–Ã÷gFðºp}FJÊ,ùüÌm¦ôö^šªx–ú…MÂÄÊ|œeﻣ览åXó½*ȬÍ|Á:ó2±eôK„!@„!@„@ÃB€[¹oX£ÚÜK¸ [L,ÒˆPjnŒÁEö§»<Ñjüãh?s2:÷÷o„lGV³«BíF dÛ?t&‹u•m�ÿÚiÜ2z&V°¿÷3±ç‡ïðÙÜhÄsµ��cZÆì�Qƈ\þ2ž™0^Ž\ ë:›·r‡·‚Èáä7w„‡!ùÁEëœE¸ÌièyúubÁøõìÍÌ»žfkðõ²[zÂ…�]:ã1ÉYìGu5XÌsïÌb~ÑÅfý�œÊéF‹êÅIqÒbž�0pê?àÏ/jêr[åß [–ÊÚ6LÛéÑñ$±®ï°WÐûÇõ8-iU±3Ås—õµHÞ¶L"€… !ó·0’X\¬Õ'rî‡ñO�ÅGús)ÁÚŸY:�k[>v~Ék�ÅKI¬“âˆáÏFáÐ?çÈ'F ‰vpñôç4¹õåëZµó�ú¶eº¦ì«}ßÐÉÀYŽÀA›Éì\Üš¾ö+�~E&PÍÄGßú C}”ò\Ô’þŒ6y5o7ó>i2^ˆðö <™}¦>•²>+;àÜA]€øü{ü¯1³éLïÙàÒ Û˜ð–A¨Ò›ƒÔd™ôêÜÍOmÂW™¹ ßìgcŽþò|læ…÷½Ò¯K0#žú¬Ä:ý})ºÅÔ4�®"\8!Ë |n±’$æÒ;yöÃÔ×8RPŠ£>&A¡ê°.>†ÚÄÃ&Œ‘HÏ@öNÙ¦§¤_×n~bʃuv¥Ÿ9$—ňTu­=9‰äjî ¦¨žª_¦]b:ºWEØõå;Rà)L1"·Jpí¼¾�êS>ðÊ*Ž$Ö¶ê:�2‚]$Ên¤¤z G®ÎY�´¤ã’ß)(Т�YñËp˜37-œÏc1ôÔ÷h-�¯ªW&Š7Æ"eìPìñ²óëØmGOV+O4g¿ÍÅ: $±àÇnœð�ËÉ C–ª­¨I`eq>òórjø—¯ ßÅò]¼‚0aÎìûï¤߃¥óÂÅ(ýo<¢çND ·‚§¿�öŸcË+ ðbç©ñ¤¯¨ÁáÐZ\`KF¦Þ4«Sÿ÷*³ÏëRSüák`¹•w0ÚJñ'q-ÛðYËÁöUYÚæŒ ó‘rXÕÁå´w…6 U%úœà->—B4ýÐNVb˜œ½;å…z§!_™<óÕÅ7ˆk‚rÁ¶,m—bq}Àü(¥Ö�˜Ó®•ÂZ¢©…D19ýÚ�¼\ãD· d°�ÏEVéÌGúe™@EÏl@kE4oÅY#pƒk›–UJVOP®6ì…rd6®*ldžbö[j$±œÃ¬« )Ò`ÇÌÐŒêy+pxýR9Jó!Ãð:û{uq;Ûs;Ö}ý b¶ÄKÅ$ÆEcbÜ!*܇¦ÄH©ëÖQy㢂ô58ZÁÚ*õÆ“u Ð Óz`‹y­ êܪ#„5þZ²(©™ùìŒUÙ|mîÁOqŒ»ÞŸaBëÂ@n ¼…~Æ%.ß�Gûs>ÞY� þ;f‚›×.<³™“ã†GF™’#èétzxé¢ûÜ/kD'#£ŸG˜©çÊÎ^»À(Jò3µ�(K#— (¾q‰ÓæbÊ€=:Õ¼”âk s¤ U%NÊØY¤™R)Þðlm`ŠTŒ«,Bòé_pâÈ>\¾|EBŸ2H*>?`Ô³ÓdS½ ®*Èð.S£8 xÕf-={Q!$ïöq„ˆÃƒ!°+ÈAn‰‚"Ôfing‡œ+³}«@õ=gÏP¸ÿ9D]x�M}½ºù •),¸<ä¬; µ‰L}L¡aggç$W†�õ›Ív¸ñyäX¸ò‘z>Y’k‘*%‡{gf�C¿Y©49L+T~·¤a3,‚ïøkˆü®”¤°>*o¾<ùˆ JÊ¡s0ž©ÊG½Ti&¹£—°Ìü•{ðkÉ<°�rÀ´©µØ@ÃXk,ÓW»Fc�>¯5~²®ÊÚUÉëýÜ6Lí篚ì̾æÂÝÀ8üüìL•ñŽ‘ð•—‘)mÐa:ÌwdrÝjó +ͧ¸F)œÙ÷Ë~ß\?‘ƒÍ¹ ¯qçx›1ûlNFíâ‰*3Õ0´¶#É.fï\é^±3Ï Ž–�Ò)§±îŸC�ðXÆ W >&lð^…•ç Š&’‡ B€ B€ �FŽ€íY¶FU¿®ÐÀuðxí>ª@IF* RÎ"óÇÕÈŠ;ÂUæ’o†gìx…1À»\ [:í½à=åMxôꀽÃßÔµÉ[ϡݔëÍmʯ™`yÁÍ\~;Gw Ÿ‰ûö…çSÁXϧ®®jŸ×vn# Žûte98¶‡›H4yŽzK:3Ñp1ÏØ §;¼ü™ÑZ=ñ“rá .~WžÇúoÖË ê¹ #TÎl”ÔÎuùØY3Ý×SU›X—¤BZ¸cºï~�¸ö $ìÛ$Ëñ˜�^š?r$ý‰�˜Çti8qZ&Q›$ˆý«s ^gÜ×G‹Ì‹GµuÕþ#hpèÕ�š»zs­#ñÄã½ôé ó˜æ­ñ½²C¿>Œ(þE›§ðŒ`¶�vÁ:ù'þœ_LšþGÈÊU±Ž‹-Ø^�lÛ®ræªXÒ”Šnál»N²‡õˆüÜ\É_Õâ{æ%Ž\ô†§HDß@6×¹D3ß’`ÎQ™uQ&Ev¦¹,ä´åŒÕá.M-úpÓ&”.FÜvŸ )PçÈN‘I?C´cGb n²�­�?Ó<ínߢI'uýOˆvênúÜÑœ‹‡…$ºËã¯è`DL‹‘–ü²ñ!Q6ÑÞ6@m|0–“qî¸q …!e- Mè2º„¼Š93°â›O¥ /¢È©[!üÞĬÌÿÃU´8ÅÄôkS µ‰‘ºÛ7 ¢X�YGÉÛÁ�‡§q>=Ÿm\ª)9Y½æ(Ï› eVXª&Rùš»våHîÓHa&�{›£JObÃz®�š<à7¬8ô‹ú÷4_ŽÎ]ˆütù]ÅÉ0N« ÉOåln´é#¿¯Le;ÿû Gè {\…ä4™™‹°þX¦^³1ˆ«X휥é¸ÄYLiÛž/ΟÑ%HØø:Öîü¥ÚùÀ¿±ãàLÌ 5 ûر¼yu+¥‘^VÖšYKމ–°cPø#üºz›Hh*X˜›rïžÎ]U榦òZ'\¹¡£‡±µ}19sDwsÀßß»�gâpªÜ¯µb˜)êKG„¿OñSÏw0î$#bÜïUëάƒ;I!B€ B€ B ¡ P‹eã†ÒªÇ½‚@ ÿQ°'Šið.Ò7ùr/ç3¢X¿àZQŽò:ãF0¢x·�J֠߳ߣŸM¤— ùD<6®‰Å‚˜-F%´PдHDÍž‚уàØàF‹\Uhpp¤ŽC æ¾ÿÓOb—ÆE"�a¸˜×£ƒQ»…÷À``›~<ëäTN‡ïíƒøŽ;ç·í¨÷"*Ú¨J©m nãƒ,…7F+‡ ®ÊÌ#œ9lál;G.A!îÜ’½.næ´ÃÙbåŸòâ?´zÙr^ÙÅΞ5³sàÊ©írRF6›^H”“‘«a#`Ù9§EH¹ “0í»2[£Ü•¥ ‰�z¾�Y³&ÂÛÙ�¼Êdž9¿HšHþJ9²È\Sh öªRQΫâbãC gÚO±áB%½6ˆœi_‡žÇ„‡åÈ*¯ öÎjݱ«ÉtÞ¡/cÑO1bëΜü gNoE!·YCÐÒÛõñßàù?ßKL £ ��_ã>5�{‡wÊ}À Rë5ÙÕÒX+LqÞ¬EDªAÉ�Ð…:œ©7I›v)�ٰëräw(žšj�QôV°>zRôÀ±�›éÍUgqŠ#);tl/å3åàÍ$;¨jçç4ý&5Nk*Äúc™¾¤�A¦jYýpå&/À˜ðÔ xü¿�|äÖß«¤Ÿw£8tºbì-fGJÅûcÈŒHøT½g‘å(gC§:I~ {‹é»g~d-9R£”ŽÛ×¹#ØÌ¢³í9sS“fŸ¹,Övæ$q›®|ƒLXÓ`ýù‚ÜŸ�º+î»Q�Zùã‰7÷#,í$ΞùgOìÀ¥Ty¤�¾ôÌ;øòûnx}r.»-Þ«Vž/pµ%'!@„!@„!@M�Gý4P© ¶CÀ®ë í¢„ROÎTy¦”Lå¸ÂóÓ±ç§ï°hn4§1Ì·<‘Ë£ðÌ„Ñðâ G>Mp›]PÕÀÉÕ�|bu¾ÅŸgÊÎVkï¢Ú�V�Zs°º…Γ¸q»·6Ds Ÿcñ´¤¥¬*¢ö�L³'Y¿8/3w¾ìµ?~’Ë3<Û®ø:.sä’§/[õ7u'àÈE92pôi°8ý8gn°;<=TðÕfÍÁ‰Ý%!U.$J)Éam*Ë‹8‘¬/›Ôäã’©:-<ç”™¹½Ä=³>Šg-{ØÙóâåÐs ^Ÿû„ªÖTYÚ.‰$ÒûøšÚ‘Áê•,k*u¨íYØl|�«oéb?# 8�*W¿!î.6³ö¿îèò˜öï ,AîÅ}ØôåNë�i¨^aª56Ÿ[û*Þ« “¾Å~ŽØ´‡Kg¯�½,M^«t<‘êÔý~3çU‰wDçn½±?ë´6áõ+¹(+ÈÄ÷ûe²§ËS‘è&{†òr�ÁõѲrÃxÙŸ›¸‹{ÇöFH��–ªœTïbdg&¹£¯© %\F6F%É�=zwå"-uÚb,Ó—]£1ÈÒzW�.ÿú9.3?Ü^6-G¸`ȸ§pX<†#k;.LG0¿ÍŽÑ�Bá_“÷�µæAÖ’#ƒ p)Ï•6­�«ÈÄ{sSÓfŸù,ÖuW +]¶ÒÖ¿—껕É8­?–E(¿sw úKçâÓ¡Âߘ—QYœ‰ã;>ÆÆ�ò|àÆ‰ßQȈbùi³Å{ÕÊóëÞ’F„!@„!@„@½#@Dq½ßª€Õ°k©0=}·øm‚è4X¬¬¬E%n§�Q侫ð5ONl‰ÃŠ�#˜iiõ:…1íáù/?ƒaL¡¦ž±¾B TÕ4••Sj¹ „G[C sGtf<èi-Áš‹ã›?FÖya¼÷sóá]“EOeuÌû*o1#™ÜeojãCöm“‰Y°3%ÕéoN– gêA}L-Ô_GI)¯ëe'­W�|–.$š¨×׎½YnÁÄ…”"t 41&š+‡‘+©!ÖÑ«�jêʼ‹È“bz£3¯ÙÎ6,Èçý£¾Íòÿ¹�×Òì ?u.æÏTd?äs¤ZTÇ¡úš4½©”É,Y}A••¼\Ä«üÚÁ­ëH<ÿ³ñ�Y¢©¡ANA.«#À´‰ÿ?{gWe•ÿÿϨì" âR\ÈB´Ì~Š9æ’YÚX–eÚ2fY¶i6å¿RÇM땦5Y9æ2•–ÈdŒ»¸³ ŠÈzYíž»<Ïy.Ï]€¼à÷yq¹gýžïy?Û¹ç{–ÏøëôLyå¯ì½ ̈”ŽN¥ØûÑ4$î![–T–Kh¬¯\¶}�ù™ù–åûö`Ï‘ýúçHÕåíøöãÓÒrè.�bÂ(�yìå*™O¨ÅÁ¿–¢ƒ& ox”b$3þñË$˦HÉd.çù é ÌjÜÐgbs<Ë J6î$«a“<%™Æ÷… ¦/Ì´‘¼ÃîeF½¯ †ýdœ<›‡ðh®½PË=™¤:á¦hL›I­v�Zr, Gaš4Ë~aÒ*6 i•‚*ŠÓ¹A¶¾{”$56¬—‹ÄÌÁf]•�ú¸E7`f°¥(HÁáàê�è‰ïñඈÛP˜6&›á½ªr{A¡jDˆ D€"@ˆhÕnkÕÚ“òm„@-ŠvïÆU™UL¹jåÿÝ.íQÌvÎsó–ÆŸÃ¥+:Ü)å+ú÷qÉcâ*üþ[.$íÍMŽäR):/ïFæú<)*ÀfL�Rš›á*?‰Ç+‰cñöšíH/¸Ž}›–!¾µ‰Cy‡*›Áa¦C“Ç�gÒ™çc¶ãÒÜD‰ôýŸ£Ìx�ø½ˆq|‡(_€šn×nèj,“ÉMKæ¦úrådl}g8¿—éÞv®�erN§\àRKκœmø”38;~L6KÌ5 ^bò :ž#úD›mòõG¼ñÄ»Q‰¢ô_®ÃŸSVU§7ó pr$K±ªxmf:›8hÂ3ˆ „_ &?ÿ0ô ö¥g¦Y¾Å”Mt0Cj7{Ö?@y€‡µR<Øà#ýÁê�¿Éiâ¡ásžb ›?ªe÷({–h¯)&Ö^Ëf-KQÇÄqÏ )œwÉ—IŽ@7~` ŸPæ–ß+ÙÇ�Z9µ¨6IØ Ï2QÅF=ƒÄÜMt”#‹Û¿Ù¢Á³C_ à'I>p <&W?~ú$œ:§mœnªµƒTjO)Ö‚mÙqîœãÕ¯á[ È÷ýíifÙg±ˆfqðwF{÷ö eâÇÍë¹ðt5óç™u:¶ë(Å9;›Œ#Pÿ½ªz{AÒž\D€"@ˆ D€�6A€ Åmâ4¶öJT"oÑ,î1G7îF©–['W¬Z-®&¬Ã¡GÖˆ!À]ðè›e]Ð!´¯_·yŽï”f�#Êý;N­:môÂá‰áèÄ‹côŽºz݈µ¨Õ^FÞοc߀Y²}‘ÝãcìÓP̺\ùÉ9±³ßÆÒqý�}XüT<4>œEÒ¤þöêÍ;-ŸÁaÞèk¬ÛŸì\’Ñw‹�y.èÞ;FL �á²¼÷‰é2#�”Hm—;:pýhÅ ÿÀéRyù‡?Ä:nßd!¶þÞvîðâåì^�iÚ§N`uÞOø`é"Éȇ<8‰«¿�ʹ£l¦yú—/!)§\—_øWWzß¼9Vf´z7©#QNŽFpí1¡|Îì7±bÓOÜ`Cd]92oÂûÏÃG[ë°Ñ^”ž—°°Ïi!·?±³¦—ì™#X$#u~üþ0¯™Î��ô!ÞZþ¦,Ü9¸Ÿ¸ü¹,‚yä�ë*ï…}õ|—xNfü0-_ïw„W—ÎRÔÕÕøô«$®®R”°qqQÖaìZ9 ßÙ¢˜æüÖDZtå'È(�î-^*2ðÍòÇ9cô=ëafƵ,#yÔ#`:›8£ãz[Ï®‘.¾°¸Þ¬c ™UW![•"=…Rd»X¿6,O8„‡z³°n¾hÈ2Üê¡‹1÷¯0;EUub1þ›#oã•emÃGŸ|.¥ë4£¢äƒ\¤HÉUQtVòtÅík+×w¹ Ki`Ø3ñ[vŸ+ÚœDl˜†ß�”G7óL^€Ágó3H1wÃÙvüv– žÀµNíÁ%ÞRÜ‘ ää48¸zŽçÉÏ»1ZXŠøtâ'xöpìÍ2}î©×R§=eÔšÿ.CÁEáÞÐ!�XμêZ�1;Œq„-å-yo†ëð÷‰ò÷{ïl{ç.åVA§!ð5�,([q+f�Å®¤“¨à¯ ®"¹ì]ÿ·JOÐ0ý¶BRuß«‚Üfm/HŠ“‹"@ˆ D€"Ðj X0�µÚ:‘â­�€SSúbJÌÂÁl…º;GÁcèpëê�E™(Ú°lÕ0Ùá¾æi¯#º=÷"ίŸ%vîͺ{Âãá7i0œ]Jqmûç¸ö+7˜I úËÝ2¹¦žš%±g‰i¨‚¿Ûs›¨aA.10>'ÌÁ´ñ±Ðx´>ðœ"3úfÚjô5æ,@.w õ0³´ž1µOH$sÊ0ôo:G®ÂÈÀ–bç†Èa÷`ÿ¶Ÿ *%aã_§bÈä§Ô>)‰«q&[êœÔ'RÚÛÎ ÑãE‚ØŸ„/^Ž“cb@wä%oÇžýÒ^q‚œ�Oý]¾ß èУFGàÓÝÆ¥)“±cé $ùE±(ö°äÐý‡U¬#Ñ_©#Q—ƒþ5; ÆL›Œ3_~-U¼ÞÚ��£'ÀÓ© ùYqöT’8H ¢_°˜Öè(Î<�(®�$fÖ;ü{E ƶÕO¬­ ÿ�qè䦟Ù+Ȉ`ÛÃD[�a"²Á^~ …ªS °xñ/ˆ»{(»ñ ‰½wtƒCtRÙ»™ÝÇîa¡Šƒ&…Uò��¼�“°#Û"rz‡†ÁÇÓ•™Hþ¯þ]/)8ãïÕH^ƒK½÷ª PýöB=…)€"@ˆ D€"ÐÊ ˜öI´òê�ú­•@ ¿é«Dݯ?£Hø˜©�Ók0hbýŽøŒÆŸÎÁáYÜÌã”Èg¥£ãÊÑSS¿óÆÌ x%º0§‰ ¹üYÙ ³‰oF„£‹·o¿%7S™ 3úê”(½ˆLqB‹°Ÿ)·l¹‚–®ƒtK- [¬›>|�BÊæ ¸w>B™¡Xš–Œƒ_ÏÁA³E*ïmçýâ~ú â}V„ä] ÄÝkyq¡“¿Ã$3³¹z=ð>"�÷Úòé ÄF"_f$faBGb³CŒeÓ·"¿ØW0åâ9l1ì1ªO”Œ£¢Á_žÍ�_Î_¥Efª±#èÔMžÁècËÜò³Ñ‚L�+Ìp0yÆd,ß(­ËN­Æ–SFúo±3š‰…Ãü¾£ZdgIo5öÂn2÷÷ûßËtÊ`׸^7ᵫ“ä1ºœ#1ý©¹X¾vµ1„¹“p��ÍÝ«�•8²½ ÏpeUåÿÄÎûHRe® ÑñKûÃÊR“G…øY¶7qÆŽ‰´*Ú‡7UFA3‰6ûÃÑÃâÇáè×Ü@ «IH—ÆW¹½QeÍPÌ̶=¢"°_4d±gûðíkí'„p�JÏÒ™Ýorï5)føó;ê˽vI‡>ç URzÞufÿzÞË›tÀ¸z†b–Ä÷Ìž0ë¶I\ª²?Ç÷9Ã3')¨³I[Aõg™TX£ŸA’ˆF»J/�ç{£‹•=ßÛF£'+-ÝPâoOcl3xÍÄ%ò[rÏ´¼«±ƒ¿þŒ‰uß=÷…W«¤†œœCëpFÜWW¦¼äÉÿZVg!Â)æ1‹†b÷~ÿÇX®Y yòÒvŠƒ�¿÷Õç€f3»aȃ�b¿8 �È–™OàŸ‚ºCÿÞíÚM¹-pñ ÿÖ+Bö‰õìcÌkú}þÛ2¶·»i8ó«õ^Õ‰V¿½  1"@ˆ D€"@Z5ZzºUŸ¾¶¢¼BX‡]à‚™pRîw+êpçL„üx#Þgv‰çNã^Eì�Mð¼Ó_Ìgêp¸s zï=�Áõ7�Òù�Lú•9„�‚çâåp4#Ö<ËFþ+¥¢°f!PUŠ«¢QÒºÑWСúj·”^$:{Ö Óµö·ÿ)ëŸûZýY¶² Íàa3Bg®øC‚„õ� Ñ«0cÚ£RDP_3{Ûy`ô«G0%μ¡Û=èQLyí˜9ª·$ÏÔåˆiïÿ‚øá¦r¼á¹O/Ý…!~R¦®=¬ÜÐRRr5D=òÌ}Órs§ Ÿö%†×›1_†Rñ^³d¸­áj�ÞAõˆÞ1oaÞŒ¹âþ¦\æôFèØOð»Þ…&ôG z™Ûw´®WÅe0ÕÚ ÛwÏ?�Ù3¡gP[…Âô¾óFH7£r²oï¨g°ä­�ˆ0s¯»�cœ7â‘ �œý0lô£ðêdZ®1·þÛ+ä Ìxëžžmf¶µ<=ùÔ#P—w'ÄëðŠ{}m0ø:»ó›?øÂYÉ0¢žš¢¤€Qïㅹˢt=3ý£†)Î •Šâƒ‡&KA1ØÔQu i"+oÄ¿–€)ÃcLSéüÎìý3ã­«°”uõµ΀©˜]1ÐkÐ ³uÓŒy//X¥›)­˜Yta«Lþ âª>Ëd 4þ$ÓOEÉ.— {¾³öID¤ô¬*ËÉÒÍ”—„øcÂ’#˜1áQ3Ï|cJ z^„¯½¥l0T«Ôd9•Жë�¤FÍmûfïC¶z‹Åù7žX±÷ÇMfÏ�/á�jE†Å¬GzG/À¬ “zõ[„þß. ì$Ew ò•<œË7t "B”ïs)[ÕdòF¼±nÂ=Í8Qå½*Ú,í©6ä"D€"@ˆ D€´R¡¶Ê°”N)Î4Œ÷[sãòͧÜJ~saÆô¶| Æy¥tJá¦aF¿ÐÅ(¬°×ë�?þXÁ¾ÛÔQ­-DE~>®_û7jjp£º·Ý½ºÃÍ£¾ñÁRåk™¬ÒK—t²„tN®Þp äX1ZJq·�ó_Mŧ⠪q˜·æ}åNÌ¢¡Í9‰‹W®A!áèÎ ³�l™FgólæÔö¼�ž‰kÌøçȲ»0Y>L–keÕU¢¢ª–ãgW½Áª`¾¶ÀP4[Bté¾ú³ÃÌ)f‡áå©ká>G§YüÊcØ>/ʵlˆJµÐæœe×ëìvfÆ:áv/xzÀ£C >ٞȹ™§Q\&—:³ë9®-d�ènÄ/?1/9ˆ@³hçááà \ot9ŽLŽ'ûÐAB .o6‹Fb¶èôã nª‘XÐÝ#°?û4¤Êi\ý¡ 7?Û^9—B¨ƒ \MfÒ�Þ½VJØi*BfbI ÈÕòU»Žš¤»ƒØ¥Mb¿™]=Ñ‹}šr´sõ�_0û4Eå%M&P‹Ã_�ÄpyÙ`$ŠÕf§J¥wŠ÷«o×A¥w�$½I.w_ ú²O£Ž6þ,k¥LŒ“_p$û(EÚ¦V;H-9¶kÞzRêÚˆ¡ê´=|!|Ô8Ôx¯ª¡É D€"@ˆ D€´U U:ˆ DÀH ô>~c�´ÔeЛx šTä$boÒInùn#0ýwþá`ãþ 10ôÁ?›]öSLD"@ˆ°[çw¼€­Üž¬qÏÎf;Ûvägœº÷@ï‘9ˆ D€"@ˆ D€"`_hF±}�Ò†�' Åñ[q™í WSxýÄi Á”9S`2q–‹¿uœyGÖbÏîdìÙ�ˆ»' H?xùt@má9Þ½GÓ$#1ü^ÄÄhf¤Ü:x©¦D€�›N ,+ÿ=žÎ`®BÆo«‘�/©ä‘[ØS¨¹>‚ÙÄÑ…´úJ°;t�Ù×)qpõ�·*F]z¯Ú×™%mˆ D€"@ˆ D€"`žŠÍ³¡"@ˆ¸Å bzQÞâU¿Y Ð=Ö¬xI8 D€"@ˆ D€"@ˆ°Hà6‹±Iˆ D€"@ˆ D€"@ˆ D€"@ˆ mŽŠÛÜ)¥ "@ˆ D€"@ˆ D€"@ˆ D€"@, C±e>Kˆ D€"@ˆ D€"@ˆ D€"@ˆhshëÅ6wJ©BDà$P¥E~I€º:'xøú£së�Jå ÎÁ‰EÖÀÕ³ Ü�[êÑW‹Œ¤�¸p ûÜV£Ö1Cc£ájT•¾L ¬ uB¶8Üî ï.¢ŒêÒ�ß",YòHËZɽQ™µã'Í×± {ïRú 1VÍ{åCï 5ϲ¢,û}&òêÞ¼wìõÞàñ4ƒ».ç?øçGo${³öÂþ›Ô^h`åZÍùº‰×t‘Rr"@ˆ D€"@ˆÀ­H€ Å·âY·£:WgýˆS�¼-jäùÕa Œë"ú•Õ)_!uê{b”÷¿O0C±�Î_}~;“'ʼn‰,:ú¢]æø 7åçqjê#‚ Úêá:ïô}æax*Nd³ž˜Š¼‹VŰƒá·æ5ô›©0óÔ–ü·zãÉÓs�?ØœepZt†HUJd¥›x‚bàOFb( ó g^4w”Ÿk'™×í¦Þ[‚™¢:Cq‡66ç½Q‰”ÿÄÉk€›Ú%î1ÄëhX?‹ÈgùŒGXDˆÑ©Â·¹´ ,,B€ßR‡—³ŠÄ¼D¶ðù‹F«¸7œ¤'r°‹ä–jÑ|.»äCïŒæ;á¢äæ|&Š…4ÙqóÞhÏŽ&– Ð^É”:ME·›2¨LR¡!.»|–)Tàf^Ó êP D€"@ˆ D€päö.‚œD %´ ½ î¬ £¡çÚÞs€CñÕ¤DNµÁð 7ëå–!.]œŽíÀ&8Ûd(®Xõ*޲OÀÎè7˜ÓÃPœSsØd(>„ü9ã�ÿÅB û÷³ºNºhLIí•€k$^Xñ?ÔÕ :ÁÙ¹ ÛÄáh¥^a¯>ýnšÉ^‘5I/Ýš‘M’@™D@‹“?¯G²áz {ˆŠmPz™†|€A�…7�JGi&Ί²½™l[�×*”_•‹tq; ‚PDнa¢½ð¡w†åóD±-OÀ^î�f®yÁ¹$©„€^­wK�[ä|I'‹\D€"@ˆ D€" 2«A‘d4ž€cOtžî�²Íy:uë÷¢ô�è`V"Û‹vû!)vL<¼ä“C¤8ærŸ·˜ýö†°¢™ãØžµ–�vš¾ÝyCXrl'ÅëGö!óÏ2i¹ãÀ's|-è‚;g¢ûÃý†£ ¥¿ìFÉV®>¿¾‡ã߉»žŒ4&¢ïVNÀÕ•7R•àwÑ€„ôµ#R+gLêß$qI¼ž½Ò­þ`sšUäž}áç¥bsĹ3‹RVx-˜¡XMÙæ*d¯Î?ýÛLÐ@ÓUE¸•²)ºm wFÛ8�T‹ÖEÀ«ß#èTÄV©B‡^½A‹½´®óGÚ"@ˆ D€"@ˆ@Ó¨Ø3Û4E(÷­JÀ>c@Úæ5»Q|ùMtèbæÒÔžBQŠÄÊý¾;-ÌÈ…�—Ÿ…·Q’Ë.ßÇž@Ï0Î’üÐ ÜX|¿Mº�Óågœýâ$|ŸìoV˜Ëè©è5Ñ$þ¡Ù¨]ü+˜Š CÎÊÅ›quV$:5Qo³ŠPÄÍ#PrÒâ†ÌˆÀ‘ožZT2h �êÜ‹#ÑÙÓö‡VaÚA1'üÂà£f¯¼³#§>#ÉoAWéÅÓ\iÌÞÑv&\Fr=zgЕ@Z„€_ÔLŠj‘¢¨"@ˆ D€"@ˆ vG€z0íî”Üz ¹EÞÍå]cXê9Ç.#¸K "ˆŠS¹%¡ýÑ9FXÛÙÜQ†Âl7K³|ÍeåÂoÔ\g>ÎPÌ|·yôGÔ7_á—ÞSaœPW¹ûª™¡Øì.‹ÕÊ»;v¹ák¦ààœ-†R/à:Ú©‰zsUPÕ©½|í»t1!¢jö'¬ªùùP|U0ç;Áщ-#}»<ý|àîlûc´ìR*›«b8\bÐÅüÔyc*åï*6³þr.ŠË®¡–-kíØÞþ=zÃC¶'¯rVY¨ZrtBk¡ÍËFáÕbÔ²KÝѽ3ºš¿dŠ<*qVMaêÈKçFítê _›¯¿Z\Ê:'*äÞ¯¿a™ÏJ夣„Ýgµì>»½swùÞÌÁ ×§ Sª—`÷PËN÷†x½´ ‡JçKµwƒVV�ƒ‚â+øýºÐqBGÿ`ùÛ¾ €‘»Zryu…¸”{IÔÉ«k(ü<åí-c¹æ¾+Jr�—UÂ{‡½›]ÑÑËž4+Ô´›^WŽ¢‚\ý³ž�7çö*œ3Af.“ù;k ï�Û;Ã'À®j=ƒ­1S«=¥Ò³ÃšºOˆ D€"@ˆ D€'`»…ƒÏEn" &�~ð½ÈýU/ôÚ÷ɸ1.·)”¡MÜ#…v{>�7ñö Ó;Ç 7J« ËSK*ÚêreËÜñGKõkñeÚä®<Ž?Ü�DÄã½Ïæ`âøXh<Ö©kS9v’¨ŽÍæúyÛr$âö®3ÑÍÙoÆ>ñ:¢­[öóN–rwcF$Ég›«"{ÿµ{ý¤˜>tì'˜c}o½&ÊÉO|~ùµN÷Èex(¦;?yyÆQ¢v1ˆe9Û·ÖrMÕæ,OõT�ÄŠg'qË*›ˆ¾ºKg¯6 ¼â6⥩Ñ&á…¸œQ$†õëë…ܤà³�«¹å¨õÑÎAs1ëùgä*&—;*N`ÅsÓÌê·àF‡X»7 ±í¥»pP··°7îmz^ü²ú”#ó|²¨Ÿ—hƒ˜C‹ÿ®™ƒïOHéÐo9–Ì«8¨‚î ž�ý»Õ>_M~g0d¹Ç·à›¯Øó™Û;[$é7?½áþÖî‘&Ê©ËÀ†çÇâŒî¡Á½Ïÿ Žÿ[�ïÞ­þÃWaÖ#÷Àò¢íµÈ>ü/lûv™r½tôFϸ%xxj¬õw¢„ÍI ºä$ölY�ý'Ì´©\"1jî}¼Í <Êýù%¬úz§NMç~«ðÆü¡8¶u9víþZˆ'VBƒ¸¹Ÿat¸|@DÆÖDZn·‚á�W±ýšib{ʨªÚÏ£\ú&D€"@ˆ D€"` %[œ-ù( P‘€üÇ�’ämMÄU6K²þqùÛ¤e=�¦ŽjêdáúE4%„ÍmÜ U‰ ÿ\/+¹Næ³/OW�:;°ð±1èéÙ#ž\‚�gˆ3«íKÛÆk“›ø.½ü€E#± ½*'’3óm(¨Y§$ã�ï�Ív*KۂןkÖH,(pf×ãxë�O˜)Êü¡†œüŒcbe'aÝj%#±�$ ;Þ†½9õ,Èb~U9›éX #G£ Tä4kŒµ,Ô©~4ÛÛ8‹»$®�U Fb!cUöjüóÝMâÒü¦Â*²ÿgQ/[füWd!M4¢áû¥Ã§OÕ¤s�‚à^ú§¥¨séIlxi˜ÌHìÜïM¼lÆHL÷†H®ù*<;T=_º7í�! JØ»r,V­5c$ÊÈÿ_¼1»R -0VAÎ5~?ó ìùh’¢‘XP"oÿ<,]¾ Õæ4ª:‡/_ Ã??±d$2!=á{hí¹Ae®Žö®Â½!T'›µ©¿<ɼ‘XHT™Œä]ó°çœ¹VL-ò³¥ßnHŦѰUÑH,ÌÀ‘ä,ÁÁå8£0@ALÐÎ�íSlÛ¡F{J(IÕg‡JçË6”Š"@ˆ D€"@Ú [ ·•úR=ì”@‡;G3Í~6h·EÙïÀSc2Sõr*´¥ x�ì%y]e¨Öpfb„åyÍ·9ºà¶FÝ ¥¨Èæ¤Z™Q\W¯Û³•9©ÈX±¹[ó$AÓgÃÏúä)}‹ºê}×½áÄâí5ÏcÚÄ{¡ñ19wͬc]ÍY ²Ó]+.ö¬KSΖ9´z”$âã/?—%óê÷‚‡k »Sqî·mÈÎ/Ò¥ ð“¥UôÔå"ƒ3"õ PL¦Xvæ,ýèY” Ïàˆ08^?�¤m«¥½b³?À¿~�§Çhdé�:r´È9—QO6��c§ È«ÉÛßDºhxölÚŽ¡¯N©?CGÎå¼&תÀÛj®ñ‘ål9Ê[ïPëÞpö ÇÀÈɨi'ÜÛ¬'ºd’Óô×?à� ÈûÑÉdÝýjféé;,´tqocof0ÊÜCÅÐÈ>¸žýìç;òó×áDÞCˆñ¯ÿ vö éÕÎW�¬G¶h„ŽAW?A_ËGuî9ýýÓD}êJÒP"å�.þ¢¯,mV._$›1ÝsìFü%>ZyÀÝ"»ær¨úìPá|Õ«gÞ@!v½söómá=š=£;;!÷èfä.í_½akV!¨Þr&êÈ©È?%»ö�uսdž¡öâOØ“ Ÿ%ª‹K[„}Y÷`tpýÆPÊæ‘̽_Àf¡¼{4ÝüP[‘�ì3IH=ñ“~v©Âþçj=�uh‹ßªÞ Ðùóðé.ùJ(Âj,‘Æ" ƒ“®M•ü¿ÏQ¬{v³÷‰�¹ùäeÈæÚŧ֣˜{Äû÷› _vÉ\½� ¶ÏzG„˜œ"ô¸ó VéVqpbC�Žr«´ƒøL^e&ùõ^uÚSL– ϵϗb…)�"@ˆ D€"@Ú4�ú½®mººT9{%ਉ�'SÎØÉ^ðëôÒô‘©[zl?gЇ_©^–PôœÆ™~=qFô+;œïĈg#•#YèmlÏ;¥£hãRq†k—ñwZÜ··fÉDìY¢$‰ ÑËF7rf2'§¹œ.aøìzžOü>~ïC¬KLåJJÄës„3OÏ?3 qCú´È¬oMüg˜7¸z‹‹<¤kÃµ× ¼ðÚ}z#!³":ûYÚ×Z_�ó{ÖrKÆàᥫîËõFF߃‘_@YÞaìܼ=mXvº® WDZèP¿\Œæ¥IX)3Ç`âkËÙRׯ:Þƒ˜1“±{ùŸ‘`0Üeo[‰ì8ÖéÏÏ,QKNU®Ì,¨*,?=Îq©Ðè˜{±wù0ìI3T${.UMA/^ÕdÎÎaxæ­]¨Ðÿ™Ø%@ÔAØœ<îµÝ«¬1Ìê€Îæ–/6¨Ù¿Ôº7<£1i·„t^0’ßXd@Öÿ7û#“2ÑBãÞÆ¢‘XXŠö3Œ 5.:1‘ÿÀßÖ®6(BÁÕ2€3¼%;øÆ0½bŒ^u»†å†eÑÑiüM®91!ç(Ì6<Çš¨OiÞY®¾ú&VÆo`Ý6ýRíúb½Ùr¨_³åPý9-äNº7ä�™thšÈ1ëíÆbtçQˆÚõWtR©^fËkb„£‹¢î›‰�Ùçol–÷Þoÿ…̉œÜÄÍl–1û³Œ_Yù }ð>ôéb£a”“c«ÓÁÕÁF#“I.7øÙ`È•r•ãüñdÑúø¹‘XŒaRÿhL[Àϸ8S§0 YœÛì ›Œ–µHúìen&Ö=˜½b4õòú`ô¬×‘ôò©¾|Þpþ Fb&dÈS ˜UÐM;ßHÌ\õUýbLBê Î!S Ó@à 4ƒeõÚS€Ï5Ï—¬¢ä!D€"@ˆ D€�[ˆ@ã¶T½…QU[Ž€Ï=÷J…ý°WÅåCYpm6 6K橎÷RmÖímí¤b•\׿ŒÃ¯†áàÀaøß€h½oV=#qï£kuËÝ)å—…u:³üáÀ¾±pFbÁÏ–Þ>8Y²EätIÔøWW¡…¶¤°‘-7›[ÒÆ£Kœ· ûþ¸Žìc{ñÞsñR¤Î•ˆwçOBh€;ÂY„o÷Ÿm{;KÕ¸tNêB”Bî*à:Ê�CàØOj"¶.o'vœ’:D#_¬`$6dòˆèNFÉÈÊ•®#µäÒK/ÊyÜ;g–¢¡ÖÁ/„]éÒQúûuÉct5g£hún^ü>‘¶d�úh‘›%]Óè·wš‰u)\¹Õ¼áÙ©½Q€…o¶,i–d”íÚÃø�µ�…íãÊçi¼>òýd�™éAØ;Sf$y Øò¾–�Ä]éÞ°tÒì/®ÎWcÞ¬±„ƒ_¿'ñqy3ŒÄÆ}b§�(Î8Éí®–A|ruƒá E½‰ñáJ»\еwŒ¨ ‹¥ÁUÆPG4ÛÏ6Ǹ �1ž¾íŠ@QÒçHç48w¹#±”ÈÁÁü -·?±�C¡d$–¤YwU\9Ï]gwÀÏJãLÍö”N;î’V«½i½Ö”‚"@ˆ D€"@ˆ€œ€ù_ãòtä#ÍNÀ¥ßH¶tó ƒ!ñg6Ë«ÞanºrodÆ5Qƒ¾è2$Pô™w Fع­J«•šÏÒИðwp×Ï3,.9mé–¸¾Ëd‰ëÚòËÈßùÎÎ_c0ÄBÚй¸=sƒm†g£p«ßåøáÍaØÏïëg5�<Á�ç�`B¨þ|ÈcŸ £âðû¼°¤Gþƒ-ŸnÄŠ‰bÒÔÍïbÒæ8P¶C̉Sß\¿ØxÙþÇñúùG1vÚÃèß+®ffºXÖX‹ÌTÉ€Õ9¤‡ò¾¤&BN}ÿ)â�>Ìî¥-ÈS0Ú;¡. yÜàŠŠë5b^µä 2¥™jèô"[>’Ÿ%,©àà©ê£ùu8+KAÍ@€W¹}"m3ÈÔ¨¸dX:TïroŒâ½ Ÿ¹ÿŽ6\gUÆeIõ²»uñµ^÷*•ô1ÙO¶*ûsq)S�l¦ä’d³#-)G÷†%:ö§þùjÜ;%¿b7¸ÈyPK QTY‡v¶BJánãk¥Ò»E-9©*½ˆLîÝ4äÏ÷Úv0šå×m2¶¼<)c_ǘ;‡ÂÏÓÎöwÙ6³F9س…[rŸ­>r_¸G“ÊÌ¿(­ŒÃ$ ƒ l-¨ m¿”4¨¯âÀ7) f{J�«þ³ƒ×–ÜD€"@ˆ D€"@l#@†bÛ8Qª– à‚Îc€ ?è +NLÂ"už«‡¹ŽœðqðQšŒ¢ £ß£oSPø(x†{é:Po§¢ìý2¥Â¬àº”Wqôã>¸óÉÁ6‰2MäèÖ½ ¿þ]‘0òUCôÏÈØy¾õ1MÞ4?7k¡q‚$ã¥üŽn>?†ÞÿÉáX˜È§¶2UƒOzÓÜnˆžð¸å«ò?ÇÖ�؇éä4!Q÷cx\,¼mej²¯¯FãgCírp2Y2. ûñmyã.ò I4êênH«–A\92¹åuƒF çö6gøª+¹ î9D w�i'~3p–«@¾æ"Ѓ¬A—êü“ÒÒ±ˆA¿ʆƒÒ‹ÜrÐ�†Û´T{õe¹ìn]¬—Mó4VŸºânrðƒ¶nü,[¾ éÞP hÇAÍp¾õÎ`o‰3û¸­ €ªýs°”k>Y‚èÞ»Ÿø·yãÞçÿ�‘¡ÖG-T_æ÷õ�@°Ÿ ç $S6 K_ºíÿ]\  Õ’#Í „9ùF¼1ð�ÑSï»êjv=v¦‰Ôæl*ŸüÍC@Ú'R�[ ²FM 3¤§ØÞÆ]Í ¶(È” FÎÁ’Ë(Gé[›Í-rÚ)þfdóyµÙêèSÁö®¯â›º+¿ÆÖ=Óðô˜Þ¦1Š~º7±Øm Úç«Qï FçòÙc�fTÝ®£˜W-9‚ÀÂ3)¢\çÈqlïnÑkâ(ƒ6·H «]¼Ã“þ¶ ŽÍÄÁl)­.[Š:ý�ðY�ïú½‰ççO±:;”—Lnu Td§pƒ‚"Ø´Xû#]l}ïiš8ÄŠéYÍö”A{µŸM‡Bˆ öK ¼ð2JÙØu''6 ¦5NÐÅÇÒïêBìXû/\lðRÿ©³(õëØoM›A³Êr\.)Õ³câk¿¾]`°�Š^>ø-6ÿr.f0U¶ëŽÇ�‡�RŸN-+£@^†SOø¸™&–ÚLŽòc8~ÇT6‘Šç…˜…ÉåȘ 6ŽèÌVG;<6üd´ª`Ɇ‡pæ}á÷koô>ý£nuÀšÔOptüº¼^ßGßÁæKêÅ—²ë»ÆpŽØõ]ãÏ.>-Ú÷iµ¢”€"@Ú4¥×{›®0Uξ tË–Ü¢_þ0e7е³Ð>?HzûÞ*yZÀu£æ:+EjÜÞæÑQßmů=&Šûùå<ÿ~¶ÞìÛÕó€ßèQÌPü³íY”Òѳ¾BtƒòØš¸Ç±uÓ,\!ô�¹3LØôWðúì‡pßаz?FŒéìí; æ¼=p2Ο:„S'~Á©ä�(ãfÇ3|÷|ô,üÿßWèke¢´6›ë¼·qvdEþ)n–Ãg¼‚@ë¶z†±†ýòFwW=QµäÒ„YÂWôbÙÿÞèdúËRŒc+妱±™^¾}¸$:§šœMe“¿yÈö‰´Ñ kÔͽ�å3×;‡°5×m8øeI�¹Ù‘–²ægH3—Íïµl]Ÿ‚´Ã²bœCáùÆâ0[ò?Á`ÜÈÞ¶qŸ@ccoÝ2¤vïQó|5æ�Á6&@·$¼s¿ñàÖ^zǬµµ5èØÍhxSKŽPh-.e�Kwóõ6¿œtéiüÆm�ѵ[g1ŸÌáªÁ„W÷#6çNŸúNÿéÙÒLS!mÕ©7±þ«^xij¤,+yZŽ[Ù\v˜xeq¶xêòÓ�'&Œ@�K†1¡eÇïlÖ³˜BMW˸j¶§Äb™CÍg/—ÜD€�6E 2û†CÞÛ�ceÛeæ•P˜°ãç¼.bX9ê/ÌP,zo)Gꆇ>GN/vå1ì›%ã�ñÓ?°ðõDY˜Ü�QÓ™¡X�yá/Ë0ò]yòW~ÁˆËÃZÊçØN·ÅƒÐvr–¦`8¸tÖÏüUAŸÛÚ «Ù†bwI¦“ô£ÏA*ÞLi—ñ‘o¤«UH†½)ˆ³>/ÁŒL &D€"Ð0MýÝÞ°Ò(5°Bà¶.wÀƒÙŠ. ¡è|9Û›ò˜h�¦ sOÉhkE\óE» Fø§SppÖ})ï!íשˆ¸óÖiÅisR±÷»áíùïr3†yäaxeåëxôÁûЧ‹Â/ >©½º�}Ð+j¬î3ËP”¶ÛÖÏCºØ™�Œs´èkeß=™1ª÷Û–_t”~X°á®�Ù™Xª%‡Qšwž›5YnÁþ�ƒÃû“E¥Ü�d¦k ‡Jœ-”@Q*à ²î¶^ϺòmÜÛØdæX`�Ÿ Ú3ã·x· [ŒËrƒ˜Ù½–­ê#_¾Ô¹ßr¼1¬Î 6üÑ‘°\?’HÂÖm'f¼¢{ÆsoGIT:_�zg°®0®? žÁÃÞ»pÔ’#]ˆËE¢Õl�¹£(u78*QaB‡›ùÃ#01ÂgÌ3¨«Èñ>ÂÖÝ;Å ÅÇÿ‡2f(6öŠähÏ”Êñ…®f‹I‰,»´WÎJ \¢mÚŽ@Ê ìªÈý�»æúÂOšT¯œAÅöT½TzvÔ“KD€�6B 6÷œh$‹�…[·¢¸×ô2ÛÍpkŸ“›Ý²2ÙèMsVå6ÂI¹•8w"K†X/F/˜1¢—Iòrœ:Ê"„ƒ­x7{¨é ½ Tt�„¾f˜—–·GX;7©‰HÔ f÷²ãþ±2ƒ’öðUË&§Ä²sÓÁ ‰;Œô†Â‡²öpvH"@ˆÀ-Cà¶[¦¦TÑVB  ü§u½vøŠNýÓïE;ÞÐaÜ|xŠšùo~Å´¹�¿çœ’¥¼!óÙ‹§Çw¬Å“#þÏ pLR0DzÙÃÛ°= ÿHÁ²y¶^#q=äŽð¹O¼¶Fcul¹1ÊOcúƒK.NôÕV‰NÁQgì0Y£G-9L^áyù¬Ic¦ßgvâ 8ôÎpÎgÍÙXÎÖäR¼:äûDúil1ÈJf×lq�Ø’Õ¾Š*Õ•¤Éö·¶iæ˜Éž®6—Mò4Z¶|i&·|i��áâ¬I×�é¸7HªfqÂb¤”Jþ†¹èÞh¯›�º±ç«‘ï ¶šD ÷Ú¨fK×5îPK+½â"²*mÑB‹ƒ?~-% š€>VVê�®þˆžø>¦DòC’øÁV|jr·ßn6wþyÖ5­Ô’Lið™³&ŒmdÒô£0Mší¿0xXŒ§b{ʲö�}vX–J±D€Õ T¥ãŸ‹WbßÉ+úáT/@X�müu� ?ìþ})Hùx&Ûí]ù(Lø¯s;Ì©2/_SNÜæCKpæ€Füã»}Hùcfšn�V™…$äãÙ/ˆ�?þØä³ ›ÇskíÉÁiâÙïœvn²·‹‘wtÝä°@ÀQƒÅìšÞ·ý'l.LŸ0>Áv0GÆ‚ÖEˆ mŒŠÛØ m Õñ9Z¬Fåö5Èøôˆè÷%-å"†Þ,G z®™"®›U\(ù⺼™ëó¤î°{¸¤“à*?‰ÇÏaû˃ÙðG¼½f;Ò ®cߦeˆÒÇì�6Óœ­Ïï$›¡äähÍR,Ÿ�åíçgS•]ýø}Y“pêœÖ¦|¦‰Ô’#ìç“uJê¨rQ^nZšàÏÃwkVK.sÕ¨_8 å,I®f$ÀŒ«Ò>Õ€€²±WIƒjf,�žræ÷6.Í;+Í\·qæ˜é²¤ÝlX–´š-ﮊ>×.‚ÍO¹ÁÙÃySŒ2ðí7‰œ¿1Nº7CíæåièùjÜ;CXê®Ko�XÍâCÿåfKŠÁ68Ô’TçòûÔ2¿V¹ƒV{x-ös7ÑÀ1q°ºBŸBM¹}–áì,ØPHJAÍLÀA¶ãßN¤çX1PWe)^Þþðì¨Â¹e+Aœ;'Rðê×ßêö1êµ§Äb­8úì°"Ž¢‰ ª¨EIi&¾[ÿ.^ÐŒ/5›Á8çèQ½öaì7„Uã7›xögøaÍl]ÞÒk܈USµ9øvÕ*¬ZµgÙo\mÆ~¬Zô$FŒ¡ûŒdv¿lš ž¾«X¾ ?žeqZìÿrž¯Ï3bÄx,Zµ—¹WœöòY$|»Kžã ²…tÏ/Ù€T>¡¡¤Œ„/9ùõŠgåHØÀô^» k¿=®”€©•ƒƒÑ<&Òü _aÖöfƒ„È0Ûú,” ,L7öÄc@Ws¦|¥œàì^ýÉŠ�ІûÔè\"@ˆ€= C±=ž•[\§v}‡ qþ@ÊÏ(KÉ3t †dC–®)CÕuÖ*¯­d–>��ª tÿ„ÌhhiVqªMÎl-jµ—‘·óïØ7`› $îñ1öi(f]·ü,ŽØÙoã‡é¸ÎF¤.~*«¿Ú¤JÚ¡ëüÖDZtå'È(P´€²ÙQøfùã\çû=ëaýÇn~¶Ù6\sýe? ®^€ãyܯLŽŸ°ìæéÄOðþìáØ›e¢»ZrØ¬É ®#_Ø£y׿¶™\ÕZüwÍHæÔøødxpº ÎæâlR y›ƒ@]ëŽ�Žô”3’ÇŠK{QÚö6.*ÓØjió1þcÏžwaþ»ë�˜È–QfŸ›ßÅø™ßšä¯D⻓XžùxlL(ÛòÃw=<ëvèó$&îÀ»óÇcóo†R+�ãÏ¡9é1¼¾bvd éV¼þÂÚcC*ÿK Èþùozù/í1)[_íþbäcLï9ó±%Ó´¿IŸ¦üÒoHÔ9ÃÐ'Èô—¹>�ð_šµ‹^^Ì­-Da¡¥í¦¤¼¼ëâI£Q ÍÇgi6·Ò*}fš’ªé T¦ÍÂËs�d0êÇ ´9%$D€" »œ´¨FÅHF+&àÒ>�²­Ò\/]cîÎxx5¨¡ygúõ”-�kŽŠ?Ö˜ýjû ÷òQ8ºàg½haVñ¡éˆ\_Ñš%±g‰9 ¸ðnÏ!l¢�6 ]:b`|<N˜ƒiãc¡ñh݆aŽ:s²+¿%¡,? ë^ûÎ~Ì< AÁ]ÙòJÈ;õöï”eé9y>‚¬-UÈrÈæ_]�>·Î�"à&ü²®*G¹s ž|óð²zcÜè¬Û�d(3 [ÞˆÄ/‘s1èŽh_£…öÊydžM@z¶±s\�Ž&†k•äÔçàŠ¬öLõS‹°xño¸÷î̈~©?¯oËvŽ\…?‡›tø7#gõÈÛ\»ê–À*6 ÈÛ= Å gp€î:¯©ÖÂÉïϘ65¶ÞŒÀâÌc¢Fνùób0s˜Ì ‘Ï«ËÁî _ ¸�³ì¾*Lå MW?À×›Jq»Qluj: Ńå:©¢+£à4·|©¢ÜCZˆÝ¯-0Ì”.ÂÖýˆ; ûÕlÎg�T¹Ô#`gï V± ¸gà¿-Iœ)Ÿ—ð8ÿ/CÆ<�ŸÊJòq9ûÎÚ)xrìWï^UGN-òÓ2Mpáû¥‘Èý&‚;%i?áà ã;NHê�‰}²^°039�ÍÆÏÛ8 û7z#(rz‡†ÁÇÓ•™Hþï2¤Ë2�Ãø{5&e“·E øŽÀX¶øÖcìÕÏYÛç{DŒ~ýƒ}QYr Ùìü5ž6@À_´6È5­+NãÚèÁ®å†EÇ7a׉K¸�½7Ä£úŽrƒÚ~¹èÕÆ!<5¬Ÿ¾ÏO#ÊŸkçªÔž¢g½xÈAˆ@[$`0ס˜2wõï*oË7¦ÎlIä†%‘‡öïne@ýe|fÜ›8v%¦÷qCV¢õ}_ Ο—4KÕ[ꦿ²ã‡tGù…ƒø�m¹…IÑò6Jm.Nô2ë²…MÇÊÆ£»[9nÿï²)ºC{ëû†*/Ölc§ãí)c3 |ÚýŽcÿÙŒÇ^_§+ÿ±y›ñྦྷÄã=‡Œ$³¿½È*ŸÙ+0ËïZ¨Ë<‡5/ 1¸å_—R�¿U†¢—¯ù.à+F/Ór$[áN[÷f±¥�ª){�'+B¶U›(¯ÅNºkE‡v›»Ô#ãä.Ì–f Ç.\» ©:9»$øŠ+ Þæ(Éÿ““T¾¥¢*³~3ìņРOKI)Ž"@ˆ€êÌ·T/Š[ ¸ ó3‘¹uƒ,ƒë¤Áõ:3e šäáçï7 Ësâ|¸0C±±¿)ÿÕͨøùYÝL–†ŽVtš¸‘ËŸ4@�–I*ì�²}{Ë”ÕÒ¥T]À®£¹*Ÿu`îf3z�Þˆ¿Œ²¥#Ú #žX†„¥‹d’ª®&sËëÆÀ™7Rj&.Á�ßâp�Ó+ïÄjì0þÖ“I<=àÇ:ßM5äT\I•ôå Èÿ{¾æö–4Æ-‚9÷Ôïh6ÎÆ‚é»y ø`Xü8ýš4q5 éü5™ÛUõ ÅZd¦4°ý‰ƒº)«É–¶æg®…˜Ì»vI‡>W¾9‰gö¯ç|ÌéÒãd†b•ôa†í g%C—9¸ƒïX<ù¶�&§ 1kFò˲ӽ!?göîk¶óÕøwœ#1ý©¹X¾vµD¯2 ™ñø "suVºU‘£Ev–tÏó…žÙý¦â ¾áÏï@´BæÅ3¼öEÈ>±ž}x‰¼û<ü·eò�W|4¹[ˆ€#¢g¬Aò‰IHK,BòîEHýœ#ØÜà! ôÒyé™ï_~iN„9gΡu8c|öšKÄÚ2|[KHæó˜ÜPÌÂÔhO¡Ùžæ*GáD€�›@@EƒqmAªÖÕbe ÷Š…z;/Þ~û!]¿J×è‘,3^&îÅ9fl"3¶êÅeŸ5– ø§coúÄiŒ ã1ó‘Y8žoòÒf‹zér­Ü‹5óâľœøgbÖóÇÑÁ`sué9éél6M}¡†ÿaQáÁyÜõz¢.„ï™òíÕß�jR.U"ª�4€)ãÛwð®!ö• �bïn-Î1Ô�íyÛUÊnÈiü*Ça£�×düNe†ì¡›q~{6–ÅC•¿k/á€ÁN<}h°ÙýŒ•3«êÒQ9Y&BÝüÙA›„6Õë9ã>C.šϣžó¨<õ}§-@IDATЊ/W4êG w€Ù“eE E"@ˆhZzºqÜ(W3p‹ºO6[Œí„‰€˜žVK½ÍÉÙj¥·ÉFø9‰£…´N²8…Ün‘è³d”‘ò9.–VtâbJ ä.‡ðQð\¼ަbÄšgÑÉø{DžŒ|ÍMÀÙÃF? ¯NÞKò y3Þ:‚§'F×7‚šÉÙ.p–üíÄ wùΚ0ùèdQŽ?&,9‚•-á(F‹ z^„¯½e¦s¼ér Ò‹¥9÷[Ž—ßZÃîJ¥Ã6bÉ«�È–eS6#g± r4+�€Qïã…¹Ëg—ú÷‹W”qû^�2”GÓ°àÀ a$·ÒÁw�°ÈAòbõµÉ` ”ÝL˜× A&×£:úÅg  n³p5åoðŽ¿3:õßtoÈyØ»¯ÏWãßlNnÔ3XòÖFDÕ¿7y¤îAã0|ÚF<2ByÀS“åT]Bš¸ 7â_KÀ”á1¼ ¢Û9èQö^=�±¡ú7b„Áá:!Êy¥´8y#ÞX· ដ=¥RRrµ ×þxbÍ/˜7Îby^ýæbÆDåYPBÆŠ’+b~¡½dÒM/Æ);*¡-/R޲ÊÞ?Ý•®Ç¦·§Ø’5ÍÖÞ´X%Š$D€Ü *,I­Í>+Ì©e‡µ=oÙlâg^××2ìmÌ®_ÙÊÉ©�>Œ½AŒ.C€áK‹S?$ܱø¡`g$6{h˜‘V¾RVùÅ“úÂ,IØÛ{±‰3rAc³ÄÑÃ`$®eË:kÙ²Îl…0ö]^YtT~»¹tïÃÌÖú#ù|®Q,À–±~s’~2b×`Á}rã³”Pkãž·×�±˜ýÞ8p&%%ÈM?†•³cEQïŽÿü1FrÔœ�çƒÂÕ6ÇJå´MW-ÒNŒú±1ºU¼Úf=©VD€"`¯þ¤‚b¶Ê°”N)Î4Œ÷[sãòͧÜJ~saÆô¶| Æy¥tJá¦aF¿0÷PXU³×ü±‚}ÓAˆ€Šª+ ¡ÍÏGqYjkõ†+÷Î𠂇«ñ—žŠÚ"ª®ù9iÈ/¼8²¥‹Øçvw/tìèO7›�Öh”œJì}'{²õŠz�þ/MìÏ<•lŸËt\Ö2�ØÐŽÛ=:Ã?0® ³£•ªh—œ•mrX96ŒwÇcºÑÕñ8V¶Qrûg“K m‹À­ro”§®…{øÝÉ‹_y ÛçEµÊi¯ç«¢$—.]d�ì•Á^]Ží;¢c'/öÎð�«³íï²ÆÈ©ÎÚ„Åï.3œÏÌúû'èÅÆòU—æáâ…‹ø�½[;«kwø±w˜MG3ú ¤ø ~¿nTâè ¯Î]ÑÙ×Çö÷ M…ÝÌDmð�Q¥E®Ð†ÑV°óΖ‚dçíöNB»Êßæ6ÃÍ<#Še7ª=%—d¯Ï¹–jøÚà5­’qKÈÌÌÔÕûýößÚTÿµþ/Ù”î¦$ª:‹å/­Á¥†Þˆ%©�¯϶la?¤˜ñ77e1Ì™D ÷/�ï]zCñÛ{ °8NoØ­=»N¡�é´\“R†§ÂLÚ•©x¤}86³aÏý€”�Fg7<‚ÐÇt¹°=÷8â»Xi[±ýgwl^‹�æ¼+˜ë4ý \ß4�›‰«Åªž˜ŸÄ2cô¾Åqº,ß�¡ Y ;¾8sÓ¸™Æº@ã¿òƒï>T·œñÛ{ssôŒL¿+ñíóј´Boªÿ"�•¥1?ÓU»ÿ}xê–ÃŽÅ/%û0ÜÃTùÍ(dçÚW®ßûû^n>)Å"@ì”ÀŸþô§ç˜jçÙçwö©cŸ?Øç†á[p+ùÍ…Y 7ʲö͊ԕɧ3 ãýFwc¾ù<–ܦq‚_8Í–âø<¶¦ãóˆn+-19ˆ · �v®>ð f{ª±ƒÓ)’}š¨TcäÔå"Ó`$Jé`PÂÞÁýÙ§q:Ù%çÆU…rU н¡*Îff¯çËÕ3½Ø§©Gcäh³ ë> …s{w·ëàM¸òzVõtp�‡o îc5-%°/Ή†±õ`_Ê5R›Æ´§Lв×g‡‰šä%D€¨GÀ0Ã8iôóxíþî6Èå÷¼ µ°ç-7›˜I-¹r ?î¨Fµ0‡¸Dè¯6TæžÓ‰…�Ol>¡,¦'FbvÄ>ŽáVŒÄÚãày‡ÞX­Ï$üCXûb›ñ1}8#±�ÆýãbٲىHL8 -3{\þ³ Fâ°W~ÀdsFb–»2ë¬aÏ[4rÏ[ŒýËÓÀ ýÀÎK…læ±CqÖ)ÖýÐð d¤¤D€"@Ô!@†bu8’"@ˆ@Û%pí"¤m’5ò£_}m÷dS͈ M'�ŸqZâÞ{€ÉÒïb9ˆ D€�[‰€Oš:CzÊ—q6‹@¶çmo#ª”‹ß›X]ñð(-½wîûUk2£¸$ûŒAP<¢ûÛú;·gŒ«Oˆ6³�”Q¿,�ıøì—5?¨'<\ôݱµ9ßÂ)h’.qÌ€ú#°{F `q‰ìïòkkqè­1âRÜÿXp,uêæ¦”d X7vÏÛë¿W*†>]ÚÜJ_•8›dØ xh(|•’P˜Y•—RD£~ÿîDÏ,(Š D€�f#`©MÑl…’`"@ˆh=*òO¡LT÷øu=ä D€"`B@‹œsb˜Ÿ¦›è& D€"p h¨�Ø€¨¶à·çmW3à䳉ã§O7ÙϾ›7ë ˜™—¯Õ“‘sò¨>,,“U©ë%6hspÔ0 8.Rc Uü.OýïbÞ;ðoÌ"7F§|·É‹ð@÷z2|{EÂ’ñÍ'ïâ›uzïôÏ–ZYÚYØóÖ0›ºÑ{ÞVâ‡Ì7”Œ®¾æ—�Fm.ŽlÖ'��4oÔ7j ±ÿçcºµI…°Û»ß�á&û@‹i[ÜQ‹¼wBúö‹öÿÕ|Üþþ�0µw³i’{2Ù {:út·À¹Ù4 ÁD€"p« Cñ­~Pý‰ Vä�>!¥ê ÷ –2‘‹"@nU�~Uªm`ÍŠ�h�‹"@ˆÀ-D ‘b#¡²œÃìÙXDË ¬Æ4ülâø5ǰý©(c”á»#KÛã1f+.½Æ5Pt±å8»WoDÙÇÊÌ`Ilù¥ß ³?ÃT߸+¥ä]ñ¸ËtÆòå¼%쿬; »oý.Z—îáˆgñ;‰×ç©~ïÌÖ­¶thqþ@¢.Aì˜~0g¯,¯„‹›²a2cÇÛxØ`ü {e•“é•Ðfã7ƒ:#˜3ê°¯Êôÿà®1ÒrÜao@ÊbgšKbšÉ¥…ö6€àŠ~cM¡�Û<-ͦnº—ÏèÅB°%ÎM/Š$"@ˆP$ ¥C�D€"@P‰K™†½† wM/°�žè D€" H .ÿòÄ ‚ý¨·KÄA"@ˆ ·Á@üìkXùÚã¶/3­ÀåÒoÆß¡C¡l�-ÄgϼnÈ�W¦›‰…¨Zö‹Vèöù5¸u_ÜÒÖ½,.ãÌg»”jH=Á–fÙ ™jŒK7ïÀ?6ï7èR‹Œý0"`¤¸Ü0â#е¾�p醑±|éÀ{¿<�@yP}_%·çms{Þj±nX{„?ù>ŽŸE¡¶åååÐæ¤bâñè9Þ8:ë¬,s­½xRX ›±è¯Q6êë¢ ÿ ÎgÐêÆ²Z#>{óºË/¡Ü¸"¹¡$wMs|ÔâDB¢®¤Ø¸H›,4/’Nˆ ·¥fÈ­Æ€êKˆ f ¸àÎg~A¿òZ] çŽö2Ê׬ÂAˆ 7‘€C༼têt:¸ÀÃõ&*CE"@ˆ -G ‰3ˆåŠV"Õ¸çíôþP˜l‹ÂýŸa¡a’mì{ÅÅi³Žðî,IÖÿªÕûk/Ÿ·aik)¯!Î9 wÆFZ�ýéÖ-’™Nu» cóœ»Ø' alv°qn°^?2Ü̬_ô�cõIã?ÃÓíÿ&¯¼ÀíyÛËŒ‘³< {™"©© 1rÝB½üzÿcñÍ™/`²bv½T—1„1£¾U;q-NÜ+“Ñ?ÄSæ¿™žš GQ%S îÍ8ð±2 Gõˆ0gÔ—)D"@ˆ ª C±êHI  D mppõ�7uô7᤺aæÖL­eÝŽŽp¡7oXRÖ¶DÀ-ì)Ô\ŸÉæy°[Ã¥;_Ú´VQföõošÚ§’ôΰÏóBZ5ž]Ó�gG9‰€`#ÂDcšªbC�ù=ocú ~K±ÿÝl4nÆbñcÃÍÀrAï¡Ó�u›™±õ JYÃÓÇð{¬¶¢Ä`°�Gt°¢•YAf%Ê‹ôfÞø Ìw¹l>Ãñõ�Ï0yèc†·#qØl|³âÿ�ôÜx¬`âb¢»q™x§#ª/%Š_|8Õz™,µ4c7}ºÖ§§èÒcÙ²Ö‰:_½³ßþ/=?͆½›+qîã+̨`í÷®ö¼÷.g*Ÿþâ5ftÔKmÑÿ7~¯l}¹ÑÃбÕ«Ì= =Dô²ƒy‹B§Âˆ Dরöú¾é ’D€"@Z=��˜^¹­þVˆ2 ›¹ °�éáÒg&þøc¦i°¿¦múƒ}¬$ã¢}†Ìľš‘“�ÇöNl�d{téâ£k?˜ò>âÒÖs–ÄšuúаW~À4 ªÙÉÆ=oG¬ ÜQƒÅûþÀ‚r-JJJp�éåTshß¾¾> à\€3†IÖñƒ”ŒúòZß´Ò`4Â§ãØši6¿åRšÏçÆlŸàE÷Ù¨“´ç-zu*Ù,èZG†O¹ ØÅÍ]ا¡‡pNjswi: „c¢•ŒúœäÊT|4‡°òÀ*D5‹˜»5;Ø9Ñ2zîÀÙ”SúŠÄZ0ê·æª’îD€"Ð*(·Z…ê¤$ D€"@ˆ D€"@ˆ m‰À¥ÃÒ¶‡ê÷Ø�_“‚íO…µ¥j*Ô¥ VáhA’6¿ŽìsÛÿnffÂÞɆðu“à©›‘<)×7!Lµ%”/c¹{^—†ð@fù´pœý÷ûâ2˱ïý‚yÖ6?¶ «5G]NXŽ€‘&ô†ö‡ez­¹Æ¤; ÿŸ½s�‹ªÌÿÿgã2„  ŒÜÄ 2ÔÈ2ÒÌ~j¹æ%Û²~i»nnvùÙÅÕnº¶-Û¦­[­Ú¿ìºÚº–Zæ%µ%KÍ4¼!" "w¹Öÿ93sÎyÎÌ™a†`Àïy½ð<÷Ëûœç™ãó}¾ß‡w'@‚bwBÔ>"@ˆ D€"@ˆ D€"p…¸XkìhB‚Q0|ìØ1LH�èù½¯ÿK|š3Í L~å+dL޲¿ï—2¥M€cwlr¬UlÁ\ʆ*œ¼¬ÃêÀ­b{™9(á^¬\y=à=wϱv®4WOuÖ^¨6ôŒ¿oM‰¦#yzèó¦n"@º�_¹ ‘ö–a+�ZœyïoË-Æ;rçÓ n5¿µ01½=÷«Le›§U 7ý¬Œ^ìoð/¿ü²‚Ý»ÿÕXƒ²ê:x°žµ¶z!0D o¡—†«•¥åhõðb‘ÍðíÛþÛŸbNº»9�nòÜ[jNá‹¯Ž£‰á ½æVŒê¸Y¦ö>‰ºòRè[…ÜÍðè‚àÞòà¦ÚRÔüÄÂYl«‡?‚C n[uéKspö¢žý„å ˆ…NÛy}±lW òömÁYv ’åˆnB‹g F�I…¯eF;CêQ˜�‹F!µgo ˆÕÁÛΜ”¬kèËÙûYÅÞÏfö#‡ð¾òûÞ5-¢Zmè¾cÌÕs«mNKˆ D€ ??߀á/WÿÛ.oiŸ²+%êI*ðåGŸã‚°øà݉#F#EוÿgïIl©/D€"Б~õ«_=ÆÊ?Íþ„KÂjö/ìïgÓ]p«ù­…Ù ËjëΪ4Ôɧ3ãý¢»=w>�-·yœà.¡�Ö.[q|{Óñy$·åÚ¼E"Ðyò¶ÎÃêíYR…ÃÿÓâŒÃúÜ·‘‘±JŠóOÿ‹g&K~rt_Ýå¹7ìÀ�Ó@'¼òŽÙ9Ð�`åâY¨kó™�ç_Ä$8­ÇŽeéȼ(Fê0{ÅV kCªzvדX—™gÌ›�å '¶)\kpù½5Û×-B¡Õ‚ÇaÐèTDK›F¬&T�h-úo¼ö‚).˜ñÉl“�jAØIðýš»ð…é…ÐŒ^‡—îKí¤º©šöè¶c¬æÖöð£m³(í�Ø® MkÔÃhpɼ�&t´í %Ô\0îØ7”0‘mÑMµÒ­ËÔ ¤L®<�ží®=wš‰LM—Oú÷=nr¯Î�l,ZdóBdÇÛš2ÓRÏG9ºˆ€F‡[g>ÒE•Sµí!@c¬=Ô( D€"@ˆ D€"@ˆp$1sŸgA-é ¥gŽÊ% Aˆâ\W9ª3]uåE(¯º€Ÿ.7³j½ÐGƒh­ãšÎ®(Ç•|ôÕE(-»€FÖ-O//xxú¢OPû’6gg¾`Vêª(8(ÇD&0�Mv5²sa‹Îâ’ø.†Å"<ÄAMcVFÙùTÕ]B 3#íyu0´‡ ÐÁ±Vwî˜{ ²]Ô/ºó.WŒy¡={¬6 ²è ª/ê™f²z… @tˆs›œyr­ú œ+9'Í÷AqíëãP‘­ì]¬dcìRËÕдTá'Ï>ˆŒǘXiSm)ŠK„¹º™�×>†ñêïÄyàb¹ß]5ÆëQVvUì™ ¿©Âï�¦Wú†öcŒèS×áçBˆ D€"@ˆ D€"@®´zvÅ<ê+¤£�DZâÓPj­»WaÙë,bƒÒ×á©™©,¼_eLÀŽÜJæNÃC_‹Áö.Ä·æáÝÇ'"Ûd:7iÎnÌJÕ*ê*9¼Ÿüë”^T=¡Óqïï"QÛ¶�®Ýå8ÍG¥ÝLSxðclú÷rõ~²cPúRÜ;s �«†°SÂêQ|*Kª)z 7>…�Û·Ha¢Ã?öIÌ}tBÛz÷õyøêã•Øq`§˜Uq�›¸Ó'§ÙýÌKO*ÙŽˆöò6ÎÁêíÜ™Ä|K¢áù?Þgw;àD¿Jv=…×7™jÇ‚Ǧ^÷ÄÂ}ò_s°n·©Ý>÷ã‰×ŸE¨E* Ýc^Q–�Uý¬xl–Õ¹:}á÷ÛÖ\X�MOÝ„ý†ù4w,ÞŒAÅá�u«P§è7 ‰ž�‡Ѿf®ô*~t¸íñ?ÃóÛøâ€å{©ý:ºoüÛ¨¿©üvlü2�X–!d4þMÜ;Õú¼Zsôøó*ãož&v9>2 »þñ$öçæ™ÕŒ‘³ßÅ”4�Y¸ìu—1&·heVvmÊÀnÆb:Mè$LœûR£ÚzŸÄt'D€"@ˆ D€"@ˆ W�«®œ®RO¯ú¢ýV¶ûï%E_®­4¹sPZ͘*¥PwÔe}& ‰†â…Ä5øjåD¼þ–!±PdÙ|øüõØz´B½C¨s市�¢q�9øè©¼±Ö–�XÈQ‰3»¿@M«"7y%ЖàÖVy­eÈ/”nTUH,¤¨Ë}ûÃË(³ñ¼êr×ã¹Ç&Z ådo�ƒÿ´5‚§Í«'dA¶vH¬Zèõȶ!(‚·;§Ø¾ËÙ~i®–ÅÛ¥?� ßhõªÞ‹ÿˆBb–H{ó$!±sc^ªÛÍÆª¾ð[›sµ�=Z úäJ›n*ñŲðºŠ�X`ÐX¸ o¼ü¾íç!Áj§ãR1ÎI?yØñÚ4U!±Pziæ£X–± M6ªª<¼Kϲ*$²žÙ>/.±>Æ*NfJ54æ.²ÇîR I*±ÝDlÍ­—Ò+î3ÆÄv•ì}‹ž¹Ë¦�XHÛX¶Yùeb6õ»3s«z‰Jˆ D€"@ˆ D€"@º{×λEg¨‘Ý—@kóEã™õZùj‘NU5„Õ Öš­\š D OžŽfoÁ¬'[ù­Þ„,ƒv°�!ÑÉw À[™¹‰­Ô»!N ”EÆ•Ìtée&½±ÇDhn[#•¡‰_€¤¾¢·[ÿt29!�„áãg :Ì %‡>À~N@–¹j)Þ|Ñf@�/Ç|Ä^ ÷£<‰,IPÃ|X¿nž]d(Zôe(ÌÞ‡cGvÍ ‡& ŸYŸ\õÜù6õ4·Bls©¼ì¶ùßÛz¦ÛmãbB,5Q‰†i²ß|û-ð¿|;6ðš˜ïaãžéøýXK úìµXöÚ«ŠÊ‚âçbDR„ûÖáȶWQ*q2¿øŒSÙ¤á>cÌÐµê½øçGï)ú+p¾.)�¾Í¨)>†œ7¡°Ìø^D…[êé»lnU´‚I-sŸ1&4é4ûMû$qï²UH á6¤ŽÃ­SŸ@]éAlùà+ 27;í¹UBD"@ˆ D€"@ˆ D€"Ð �éénøÐzb“=|û!b^}á÷²Ö(;[õ7fBb1<1l³xÀLð-ÄwÔs—êîöOjÅq1á!Já©oH¢Å±ÕOÚœ Öír3!VÐø�8!±)GïTÜ6š×ü•E1Æ-Ø÷Î3œÖä8<¼b-'$kî‡ñ='èô›®r4òªÐb0w4¥Ú|R¡U®rém9[Ës�/%ÐAÇm<‘‚öKY^•…âå\a¬–Õ÷ñ+\çbÊ¥6¨+Ǽ+ƪ—Ë=-(ÊþA*Õ?!ÎŽó¤[P–{RÊ#SïXü)'$6F½^¹Ñ�ËáZgÎå(Ï>ÿNHl¬Í7vk®Ê?ka~:ok†$RŽ~|³BHlÈÍÆêÔé“ä‚ʾG©4€ŒÁ­UE(–Sñxvž,$6FõCü`~ÌË£–ÏjîîÒ1†zœ>,ÿ®ÆÍYªs�õצbÖÂg¡³è–ëæV®:r"@ˆ D€"@ˆ D€�nG€ÅÝî‘Qƒ!PV( ì>øa`|’j%»žÂŸŸ¹Éø·x�,,kÍcf@åEë¤)wš„-Ø¿á¹,Ÿ¹˜=ùÙoæ:f¦R•wœ;KÓUåHÅKÇùHYOnå�iNUsqät3 8{ŠbMÇì©fZŒ¦‡ ‘µ ]„ñ‰f-ì°1/4À ÇjãYärg�Gö1�²ùOã9Ež‘·¥©¾3MìÜàR© p&ÄçÌKá.pÔ#Ÿ;ëwä¯o³0µ¯Z xzpu'øß“`Ü6~«t¶(EÌÊHæ+Ï=(‡ÌF¢êÙÌL:_LûE„+Ú# tuíÎ!—¯ºÌ9xîôý˜8ë^\3ØÌ"‰œŒ\D€"@ˆ D€"@ˆ D€¨ A±  ê!Ú#|°ÒõʃJç�’46–è}Ñ€ƒÛÖH¹x\e6;ßUŠ3ça'¿â¢,œþCâ%s©®*Ç¢'ùøÆÞ‰á>¯â�$©DöÖGÙ«‰ %�Æu7ý)±Z‹ª) “ 0!Wš®`\?R'z,î —8Õð>ý8íÂ"Ï’…¹@%Ö?“E~õ¢#üÕ£„ÐÆœá…:�51¶õ"äA{Ú(¤‚†Æ·!°s}¿zG±š�m¨*>ÍL 'KmhÊý;8¡ýms§qŒ�½põ˜w÷±Útþ¸lÆž�7Ù¿ma®yžø�fÂv#JÔËV%0Ú)“æ¦"Uoú²ln¾‡”ÁêíZp¡ G*#(þ:îù·àèžMRBgãšëŸiʘhx‰3ûmâÇ�vÄHé7E®@p)5¡cb(£U}ʲ;Œù!uÊ\ì~Kþím,{_c¬½AÑ“›rF§�A0§y¬Ú $D€"@ˆ D€"@ˆ W82=}…¿=¹ûMçO;,|°ä!è-U`Ïï)£˜IÞRÁ$ou&¾–„>I¸mì)ÝùS?HnGMÞ²íZW•cÞçùôô?oÅÈh¥Ñ\C=Ìõ™«°>#Ï­\ÏôEéêJúNˆ0“�ç©1ñmûéâÞ+»«ó“r„}.ëu6�çµ>“ê„Fzk‰B{:&6Üv; _�уå:+*ñ“ä«ÇŽ÷–K>áÌØ1Q–BQ×�y÷«5…²M$Ck‡p¯¦ð˜Ì‘�?a%Oy¾,”ÕÄÈpäÌ®qUd• Ò$OB„Bh+E1GjJ*¥€&É%8PS)Ç)…ÈŠ„Oé¹N„&*¹±q�/ý6Ñ쌅&4ÛÐfcC‡Øwc)OàÑÙóy ÔbëPU¸û7ÍCÆFã«ì )œD€"@ˆ D€"@ˆ D€X°¾ro™–Bˆ@·"PÃ�Ol¯ðÁ¼ƒ^Ì$tSî“Öl0âF§#?sƒA›XÃ…ÛÖKÆ?5#~‡a’™Þqf¯5ñOâî[âe²6¯––fô‰Œ5¥sU9–Õº‚|u˜òÇLŒ):‚“'¾ÅÉÃÛp¦�×:eÊ¢'^Àš ÆS3“-A!�B "w?W�‰š�‚��zà€üüü9mG=3á+kÈë0zö³ˆ²ë¸×föÚc€46¸¦˜œ5…ܦ gµ>ºÀiOë ‹°¦Ùi¬¼#úå‡ V|•PÛTR¡�¬ÿuÙë�Yf¬ÐaÆ}UÌüvИwã±ZV,? gMA$¥v/Ë“5…­Ÿ?_�üÓYRö°ØHÉíZG ΑŠô Vy®¦èÚ“ø‘Óž�ˆ”τȗ/IÅ 0ØÖáÚL«÷øN9±¹ÈôR1¤W�½kºpõq Ô„†Ð ;> Ý`Œ O{/ ŸŽÓ'àÄ‘ÿâDÖÔI.„•ØñÚ ýë¿0ÌJ!)]D€"@ˆ D€"@ˆ Dà %`ÇŠàJ†ºÝí ðÂÿ!×Z1»i»›^Ì,çwV±3§O�ÕLP\ÊB«˜Pm»|¶ã­wÜÈæ/N×7f4‡pñö:]UŽe}®à#–•Œ4áoÂ#hÕ—â‡m¯aãö-b4ª‹:&(¶CWMÊCW`¥Y«Ò?!ÑêsÐçïáÎÛ®M7,°¶xr/4Â72 :«Z“޵]!ôkçXkÔ—üÈ ´™àKVΓ(ïÑ/M0�hƒ %(­lÁà¨:ìzÇ4—°8ÿÑÏ!¥¯²)F_Ç�y¡|÷«L0Î�Om�0W)L�h%3¯F––"*Ú“æjÏJ «Àù 9gk0Ìüp1?݉ D€"@ˆ D€"@ˆÀN€LO_á/@Ïí~=ŠNËš‘¡:+‚ÚÄ‘¦Ð`Tý_™ÌwŸ9¾žzvÞ¨p•`ïÆ•¦SH™7z®×òû.šÑÜhHhø§©Ù†ä@N¦ârU9æE·Ÿ�yIæ~_-R§þ3’y“Ô¼�Ñ<ù;–@ JŠe!–·—`N]íjÁñ/ÖqÓ12Nwš®î…fA­vhÇ‹Ymß•B¿P¯ai;§ZlE®¬Ù)¾Û|uD¿4ሒd’•¨nl�þè;Ø/i’¦aúÔTµæ³°Žó–Õ¹ÅX5;ŸÚ.a®YžÈþ!–�c!­Õ¹�OÜNÂÀpî}VÍÑÎ@}±BÀk½”ìÿrƒ=C­påDê®Â]«G+Ü�Ì œY–Ò“ü8u}b¥&´ü5 a³zÍì0wcª�óDpì8Ì]ü¦2ÖÚ”§LE>"@ˆ D€"@ˆ D€"pE Añùد€N3AB§I¦ W$Ø&Q‰¬íïMKûÌÅØa©½7Œ%U¢ðˆlösø¤‰f ìþè?D'_uàkN‹L ¶Ãáªr̪r ³2ͼžÜ9Ë`vºÛ’×™e'¯«0!Ö9NKÑ Ý­RvSÁÇØxB(k§Ìb£åË7”?ßuNäÔÈ‘N¹”´Á¡’„µ¥*µ§ƒì|uL¿ü5Xÿ¥G·áóOÖHý‰ž²ƒ­šâî 1/ÕnéèʱÚZ–k°Ð`lU"íæ613è¥R7ÒÙßòœg!º¶ô”t4|R¡µÊ\*¬]ަ’£œÐhªáìGs%Ö|‹3= Ÿ�o.¾aˆàºròèY>Vr·mÂÛ[ekšš½O 8—/Ç �WÖ#•¤Ô„88Bбîp—1f½…€—Âj‚—'IŠmÑ¢8"@ˆ D€"@ˆ D€�+› Нìçßs{ߪG=×»3G³9Ÿãθ÷5²“6²yý-¨,8ˆ­+'âé?­7KãªrÌêt†�þ V<<[÷‡¾Õ¬\“·dßßð!wÖmô 7˜ ÒÕóQ¨ë èÍ„X`ïâ—‡e1›PcSù^¼ñòr®òI˜rÛÎÏœ}´sÊbàþU q¸”“@‹ì.˜?¹w-þòðh|UÀ�D.çäõí÷¿³…úöª+סœÓžŽåMgsõ)œÔ¯>}äñ_¸}IW¦ãNs¶Š¹pÌwƒ±ª¯<%÷>`¬Í³¬Å„5Å'E'l�?_Á�O¬Ñ fÛ|:æª(<ª(¸ñÈ|]¤u›ðÚÚ÷ätóÙæ£~²ßàòGg*½jû •U¢ )šJwâÕe‹d8’p÷´4³rÊQP,ÅĆËޥЄF´V]ï˜Ï"œ£Ü•cìôÆ9X¶r-òÊ­Ì+ú<|’1‡Û˜5 ;H“\ †|D€"@ˆ D€"@ˆ D [àmåvËP£‰€*ßÄ0ͬ*ÓZ}éöYxú@Å„3]#fܵ©^¡¿Æ¬™c¬hZñ¥NÇ„4Ù¬'/ÔREOž®Ð¼sF§?í¦}’æ[éî9XòmFN¸ ºP?ÔU—á|áÈ9°EZÔÖŒµh�«ÊÛe¸;ÁGО+EJ×MCæ:&\Hž‚!qìl˾¾h(ÏGÖ×Ëç‚“˜`LÖ®T´ƒ<N âŒRˆ%Txè­tTŒ^„x-{ ÷ óÀNE;n{ö9D›«€{ Á¤ñiX-�˽ëŸOÆ“çãúë®ÅÕÍ5¨¹pù§vãL¡hö]‡À>m iú~×à�ÇÖ@�?Ábyc=ê5iøí Ï"œkSåá÷±õÈ9ôò™®¦³8ÄÉçö” îQìÜÌdKCïú=R´œÚfõ«_ÜH°Ýbˤ{Òœß)ú!EpW�y·«­EØþbÏ‹ÞÇ8áéÅW±áýZôY45¢9`œ§«òS@3„×t—‚™£'²¤€¾1±dÕ e¹ùR=FG%¾X–Œ‚ñ/ † ~«swbÿþ]ÆÔÿû­Š9h?¤Nº»%�ò>|øÌhŸø4®ˆÒ¬Ï°#S>û]¨køïþŽDs x-oE@]„ºX© �Œ°¾ÊOB÷cì™þ¸ueû°zñ«Ð„2!ðµiˆŽ‰€ô(=±»Íø š¾Àr.3{Zä%D€"@ˆ D€"@ˆ W2åªà•L‚úÞÃôà “'áÐnQýâ>œáŽmDÉ4ª ŠE©’‰È éAV"öÃÀø$f>T@¤aìh+BPM2~ó»ùÈxk•̶aö3áñ~9Dá ‹V9KÙUå(jj?Ÿâl¾õ‚ î5ìOQ8ç‡{ÿ¼¼MÁ—�œ.%ÀÎ =­þp 3—Ãtü¶¢Æ‘¿Û�[cÔ…»º©K1òÇtì—´cÙY¨GVa³z¬Ü�í£(^Åã‡[æ.Çn¦%É_�³d­IŸ4h8!±�®èÀjd©ä³XºË6(Ú*$ðJ{P)(faÑ/ß>Ñó·u|«˜é„TyÓ ¥p»hÌ»ÕX½”ƒ}L¦ü�Uz²3×(|zc’BP\ƒücâF RmÎJ`æõó¸÷4ÚšV­²¶vøjPX ·‡/ {û P³e1úñÍH Qÿü LýÒw¾‡ÝÒàdG l]ñ‡/?nú§˜f¡• èK~”6ìŽÁR~Ih"´Üž ¡·c�g‘Í=ÓÆ²�8´�ýñP8wôøuøß±V~Ÿ¹tä$D€"@ˆ D€"@ˆ W22=}%?ýÞ÷ð±Áó—#.6 Ÿ`‹Þ¥Ü 8ÇPLàÙ+òzù$ÜqK”e¸k¼d!ZPúÃ,'V¤<Á)�`é‹ë�mY?ŸØ?zFÏZ‡ûnQ_ÔvU9|�íå7I±i|Q*î$ Ÿ¾ϯ~‰fZj*‰)¨Ã4 ¡^¦Žüݧ˜‘®þìücçbö²#˜’bK�©Å”¥ßcö”û¹1¢Öx�X„Ù‹_´k“€wÔ,ýó'H1 þ–cE£K0Ó¾l@ ×/µ¨‡%aÓÌ´¼: _f&­…:GÏ�mÖË–ˆ!®óî4V›.UË‚±“v܃®¿Þlž®C-§5-oãQ×ÌyÙs�–çm.Âygã9ä^‹ ÆäÅ»1c´úÓDß�Ù/ÁÄ8µwP,#ãÿø=§ãÄ‹»?+gÆâoñÀØ!qB€¾ºV�fcÇl“…É! Š¿Îìx7cšPÜ0þ~©ÌRŸ˜#H˜Ë^ü¿ŸšÚAZä|mä&D€"@ˆ D€"@ˆ Ý›À¯\Ð|{˰•N-Î<Œ÷·åã¹ói·šßZ˜˜Þž» œWK§n&ú…e_Á:çà_~ùe»ÓÕ è«‹pî\1ê™�Ó)“y^Ý}‚Ø·|5êÚejÝrU9je;ÖÊ U娮º€Ÿ.›$ž¾ ‹@XH¿µ@_ì-ø'Î3à™¼ò|öhŠC¨Ü-q{ϲw±�iÏ ïaHø ÷æÌ1ÛÓàÖz”墬â+„f½üƒÐ§O({§ýºïówÃ~9=毠±jÏ«ëÊ4Mïc‰t¾wúûZÃæ¡¦ÚRŸ-ÆO-Íl¾ïƒ ˆeã‘K8ëûì™|\2ýføø£_83çîkÿï…#õuZZŒ±&}jÊÊPU§G c,\>þaŒOt÷çÓi‚*"D€"@:›@~¾ñÈ’¿\ýo»ª~Kû”]é( D€"@ºšÀ¯~õ«ÇXN³¿ŸØ_+ûû…ýýlº n5¿µ0[ábYmÝY•†:ùtæa¼_t·çÎç±å6�üÂ%´ÑÚe+ŽÏco:>�äîæ«�R?ÈAÜž€oß( fÎ^®*ÇÙvÀÃ�!Q†?§Ë¢:•€·+ÞE?„Æ$³¿NmzÇWæ†ýrzÌÓXí°÷¦¦ð˜\v@²d¾Ù»·ºD[Úùr6k._ç˰Vv—†»`ŒyûöcsûëÒŽPåD€"@ˆ D€"@ˆ D û4Té"D€"@ˆp�@YÞI)‡ÿ�kÍÌdKQä D€"@ˆ D€"@ˆ D€¸%»åc¡F"@ˆ îM E9yRCu‘’›D€"@ˆ D€"@ˆ D€�î@€ÅÝá)Q‰ D€÷"Ðxg.ÊMŠŠ‘=ä"D€"@ˆ D€"@ˆ D€t$(Hˆ D€¸�Ö²³(•š¤CL¨�ä# D€"@ˆ D€"@ˆ D ;ðì�¤6"@ˆ DÀ�xDMÀ3ËF¢ÕÐ(úºSë¨-D€"@ˆ D€"@ˆ D€�¶ � ¸mF”‚�+œ€_ÂïÐ|ù´0ž>¤5x…¿Ô}"`"À„Ã!Z¢Aˆ D€"@ˆ D€"@ˆè¶HPÜm5œ�Î$ ˆiÂìLâT D€"@ˆ D€"@ˆ D€"БèŒâޤKe"@ˆ D€"@ˆ D€"@ˆ D€"@Ü� ŠÝð¡P“ˆ D€"@ˆ D€"@ˆ D€"@ˆ I€ÅI—Ê&D€"@ˆ D€"@ˆ D€"@ˆ D€¸!:rÓ  5‰\1kPV] µÕ �!Zx3·ñj@ei9Z=¼Xd3|ûö‡¿¦«§¬zfç¢Qh go ˆÕÁÛÔÚŽ¿9Ww]y)ô­B+›áÑ+Á½}¤&7Õ–¢æ'ÎBZ=ühpK ÈAT ´àÔî/p¼º ðÅ­wŒF`g Q7ž;ôå98[¥‡g3Ð+"á}屦ŠÑ¡@Gç�äíÛ‚³—Ù”eQOZ†Ÿ½ÌE€^ð @¯Èpøõ ©ã‹Ï¡ý÷¼­ó°z{–TÀðǿŴ8ãB¶>÷mdd¬’âüÓ?Ââ™É’¿+­EŸã�×^0UŒÙ+21¬“$,ME›XÝËMuëXÝ[í¯»ñV.žã(`EøÌÇó¯?bÕcDztd^4 ˳õ˜{ j�e¢øË¯Ps<? ùC“rÂ):›c¿öð7¨¹Øl=�·/zi"@×Ïz3–õǾAU…õ2nf›,n¾œì߬„Žò6`ÇcwbÁ1¡ü1ø®nFúuT]ÊrÝwîhÀw¿ ;ØO•piF¯ÃK÷¥=.ø×á9¨5Û×-B¡ÕºÇaÐèTD_Á)§æV«\�?¯6Ês4úÔ§s°þH¥1[è",]zŸ‹675àû5wá Ó‹åê÷ÜÑ~öˆôú“xûµÙÆ�h¬Cw¼x 7ké¿i ï^o'¾_Øÿ™Jöå±ÿûX¯Î3@‹>ƒÁ×Ïþ÷’¾_¬ó¤"@ˆ D€"@ˆ€;°ÿzîÔjjK!P�¼)·£¤˜ïÎX¤½‹`áoíçËðã¼Í|b„n9†¤–2µÛÿŠý÷­P¤5z@¿q=J™§ï›_bøÔk,Ò4�܈÷½b® †> ‹!ó¦" “#Êú{ŠO O9!i�4Û+";ÉSs!_®)`&"·–ïöü—i_²¾y%àö™ãà/—hÓU[|FŽ˜àpÝiIPÜGÉÖKáõSÑ<”«îÑ®†¥ÔÌ2Þr—2ààÀëqê€Z{­d£ànM KßFܯSáÃô)Ëv­Fö‚w¥lÕÍAI΄ÛXãô`;ç£Ç£ñ| ê}‡KÛHùÁt“‹&%£yË$ŒèÇ…“³'Š¿ý*™h#zâð9¾ùYM|l¼vR:££ù§å¼a´fñäu–@庅(åÖé‘8Cþ²¡ƒýÑTð#Î<*¥9è]üðÚí¸eá�¶«½ñ ¸7`Gø¯:Ôþw;ª7rsÈ7¯àð?oÄM¿M™Ý}ºà9´œm”æÄ«˜Fzã·/¡r›YRòv9}I¶¬¹�a rígV{æ __~¦©ÆO’€ˆæBáaÒw×¹µ=ÏËU›ÊN¬§ËÓAáÂM š0Üœ>µ¬ð0A±‹ßsW1è>å´ ì쩹þ ‰oD“2»¹£ýcÕÍ;Ö…Íëˆï—¾K3л·Ü©æÊ¨Zú.¸Ÿ”þzBóßEˆÒÀ‡œ‰ýÏ‹¾_8ä$D€"@ˆ D€¸1×®`ºqG©iîM@°|Ù*4QÐ*þ`#*—OB§õtq×'Æx!�p éTÌ»^üüè Œÿø¿¹ #¦5…"òže ½ßÎ|ÓvyŽ#ü·×p¹”ΰs1h(ט† þ}!r2vI K'=�ðóo ‡Z ”úy¥;BSf`ZJ{)0|'daoߘXûÍ�gq†3ó5¨gwÚKÒåùZò�·PÏÀ ÿòUi<û$Ü‚”ÿÄáëRQišwš3Ö¢|Þ�6HÙQÐãgb°¹yû{FË’o°ÿÚ™Ò\Õ°ä\|(ª¿Èžžô0Å(¯ŸoÖ`×¶?*É×å*r÷ËmM@?áÇÍ…—sskHudúLxhk—” ÛݱE¹ïÜêôór\mñI.7Û´ÐGu‚áÒ8àÔèpëÌGÈ@Im¨A!g&™}eÕm.À2ëÏ¡€7>Pk(±®ˆÂÒ®›àÄXµú ]áóýR‡ŸU¿I|ØÆÚ%èÃ1o>/Øpì¢ïÇxQj"@ˆ D€"@ˆ@g0ß+ÜuRD@•€ï£�ÁcÓ Ô1!på'ÿÅÏéS�¦VÏDùQcß@ðÉ—Pdò+ ªø¥ßÈ!^3ÇBÝZ ´wNFÉ7&ásñzœ/š�AQœÖ°\ŒUWÈCÏÀŸíª¯3¥¸ôÂÔOú?+uZ-¦s"ã×á×a/&ã•wæaê�c  t¬¿�ÓPGk©ÇW°#·’eLÃC_‹Áöžëך‡wŸˆlÓbXҜݘ•j\œZ‘·qVoçÎ$曽Ïÿñ>›¦!ó6³ü[­ägeíí†&•ëÚi˜ý×µf&¼©->%×:A 9Øô�'±Ÿ-+¯`Œœý.¦¤é”Áä³I ìËsñ# MíÏùe§÷°[ØÙЯHc^ÕL¾œÜ¦Ë—™.ç/·”áð ìq;*p>O˜‹ŒWü° ”ìûÞY·JzgÄ8Mô|<ôø#ˆöC,ïÎÎA–%²ÃN”ƒ#1oʦÏÃW¯ÄŽ;år8WÜĵ˜>9ÍæÜÈ%o—Ó]çVW<¯š£ÿÀŸW­2pÑÄ.ÇÂG†aW»æzåqAÒ¦y ¾~s¾8"[º@|–.˜¨<·Z+›ÅmVâËÒ~�ñ±ê_[rÊ lzê&ì7CƒqÇâÍTüQ»Çô9ؾîyìæÛnªlÐÄ�0óú¬|~!šØgN£ÏýxâågÚA“lMÁ^ìÛý~ÌÚ‚:Uá  �Ž»þ÷1¤Äðfàe:MeÇQ%z}ÆáêŠ�XóÚ£Š3¦�Ñ:Œžó&¦F‰©­Ü�·÷lüÏ«¨RkSÀ$̘ÿR¢¬=·zlÿÓõØ]h,>i6û>J“¿�¤J[‹ØwÔxé;*ýYö.ÄÈeºr¬Ju’CA ó¿_Bчm¶½ÄýKÑ ò"@ˆ D€"@ˆ@·$@‚ânùØzh£#G£ÿ”Èy�™KÜø*3¦̺VïüX2;vÇuøùP©*€¦â#àõ÷úލšNì�2‚ýk³åÏË•-@[ënæ¥yEÄ£Ã�-´W¸Š¿CSñ“×ÈŒánòo„¡›ñôƒì�¹Ç<üžþí,ŒIѱSĺïu¹¶ÒÔø”V7`°Ö¾ÞÔe}&-n: Ä/‚Ö#û€u!/¼ýØ9Ŷ.–ÿ{ùMY•Bb!°ž*ógú¡ìUüí™W­T^‰ýë&Â+ä{L´µpo¯0ÝJ-=+¸·s&ZÇ �µ1ì3�l�´N\ =ZÊÎç„R¨bœœ}c�"¥ÃŠbŠÜäi—ÏúbpB™ý«Æc¿•†5®Â/÷ÆóK­m8qvR«XiöU;Äó÷¬¸ºÜõÈÈxÁls‹²žì­sðâ±'ñÌç8p»² Û>w�[]ó¼*NfJÝoÌ]„e�I^3Gs=ÓÜä�+ˆlü� ©=Žw—MC6§Åª‰�› ‰Y}á·V…ÄBy>•-©"“C_€\©®J|±ìó’¿­±ÑT´Y¶Ðbó…XÀ™­³°l«É'ŒGŸÞðî !1ÛR†¿<gÄÊ­ÜË6`ýËpþño11ÎRX\‘w̘Sø|i؉�«Ô7bõe®�Êæíx ÍÚGk)¶þ)™&!¯j“.nÁúe[P8ÿ¿˜’ØÏ2Ik ЏüWû[ù®ú©ç¤9/�½øt®«R#éûEBtþ÷ËÏy[P$~±–з ÷8ÈI$ðÔå»íÊ‘ŸŸoW:JDˆ D€"@œ!`ÇêŽ3ÅS^"`?�Ÿ™13í�“Œ‚b@Ѿ „Œ÷Dñû»L…ÌC]_‰*¼æE{ñ«GZô޲\Œ³xÆ&4žô¦€ÆŠZæ²&sYÞC︛ Š_2E@õézhS/DzdW‡xY¸wõsþ˜È/½ù8fM½ º~ü"ŸE—´6_P”)ݤ«E)F­çwH‰¹g•¨¾x°KPÜ€ƒÛdA�&~’úr…2ÑùÀ碲¢Ñ ôbËä‡8 :AÀâÍ'·p³ü7°üçMùYâc™ïÉ–€qHJ`‚é&>#[míu#XhÊÂá —©è�4þ>„ûÖáȶWQ*-Ö™_|‡ Æ)Î@f{äëR£bq¯ù’%«Ï��ê‘n/xpÜ#ÛØ8á‡àñcÙ"©iNª©0 xçr9ßû9þùÊß°z¯I{ÅК½xnžðÇDÆ¿y �?2 é#‡¶Clîx×t“ßÁ£#Øs3,vz!0\^Œô<O,¾Ý(´d* šÐhÇ+°–£<_sÚ27Om¶@î‰a“ŸÀ0)~b‚âl“?:¶- Ë?�Ï„\x_ä ÐÞøfM"•nÓÁ wD!±òr<òðéÌÉ›'܉MK˜YOqźä4;w[K¦K“€G^Ü ½aá�‰�}Âå8ö¤ÓoGBC³IKº7Â,„ÕbA=ñ^‹FnêðŠ 7š¼·§«Å‡mZh^:;–¶QPâcH]>Þþ:Û(îJ‰vǹ£âŒéÇJëpÛãïàÖ8Qco Ò’™iá·V™S%Ê/²�OœO~~ÎÎArI¢«µ<òÖù¬s1Þê½vV*„Äi˜º8©Òf¬qH›0Û3~�݆c€ÂM+Q˜þ:¢ùý[V+p$ÂÍæV©é.x^‚§io÷\ojOmé)nSQ2"BŒßCyÛžÇêM¤V ÂÈôù0>‘m\²ry„¤aÚ¼4)¶2ò2>2•0Z;žqE¡é›Ã©±QÃÞ±Ùò†֢᳷bšxÔBêŒqþü²Rë=2:Rj»«­-Íðc¿FÝý0R“®�¿‹´±s�·í)Æ\`3�9{¸¡ŠßØæÈB`CîÇï_xV2MŸ’2Cþ5ëv‹–J¶àðio¦�\¸mvpß6F-ñ² |Â ßø(ÞÞ¾Ó„b¾Ï]ha�¤îÂiùýag™‡r›©x†ì|hé²8ÛEc•¾_$Ä–ŽŽú~9€cC"ÀÿOÁ²n6{¼ý/ÄDÙÿ-µ2(Œ\Éþrõ¿íêþ[Ú§ìJG‰ˆ D€"@ˆ€3èwÎУ¼.& H±®Aÿ¹Zä¬)eæ§ßÅñ¾ráã☧E¡ )Ç2=È#ßq^¶øîÀe¡”aoÞfq9טá*/3ɱ½åtB:OŸ~H¹ýü“ýýùü1|õï�ñ�/³s‹åkïL˘ý ZÆÏ®|÷ß};†öï8UGß~�…(r; .?„Z=?ONk�}Ê^ÎÕ€šjÓ{ày5{Ëý8�ù¶¼ú$FÅØÖˆj-Ï�lô‹i×pm®BëNvòé\9::6Dö´áj­â…;,1;CòÙyÍÛý?XÇÅâb³Ùj5juòb±Y�¾!Qp¡Þ¬t7÷Ö—á’I¾ghi“õ7ÊoûU±¯³‚Ü¢XH:)[ÿ®(Ó¾š{L*÷›;ZPr–š0Ü‹?ÅÍf‹è�C¯7lÒpìŠiˆ:;±'_S|Lž÷|R¡U«¬½-Ø÷Î3œÖà8<¼âuè,òöÃø‡žÃ¾g5ÕQŽÆVkeº0¼ËçVõ¾´çyµ*´8Y¹íšë�í©8�%7,šiýzÔ³óˆg²óˆÅß!zfÿùoæÀ¦:á¬(û©lÿ„8›øŒ [P–kÒ˜5´olÔý»ÅÍP¬œAÓ?•…ĦùÆÌÀ]#ÞÇúr?£¢-ôeM©�¿y„ŒÃcg³ ]úýÐ2A1ûª5\ÿñj<‹BÉ,·�$ qBbc.°ÍkŸ Š¥¹Ãü§ªñ6mÚ)&gÒè'±pÁ nS˜1jðÔÄÅgL)‹Î”±Cä|ÌUÎ €#Zùv`G(ääHùÔÏÁ–¢Ù$ÖÞï ú~á(*�]ñýbj�ïÊ/‘2I§lùˆ D€"@ˆ D Û¸ªÛ¶œÞc „N½ßÔ·¨\s„*‘ÌìôP£4ÅšP÷*oI²m6L»VÏ¥ò ¾šóÙïôŽLæL3aõYnÓþbl¦lÕ×0�gE;ÿjTë�ýp÷£Ë±ç—Ë(üá+¼òØd³6ìÅË ¦!.܉÷-¿3OAaÑ,u×yý00>Iµú’]OáÏÏÜdü[¼N^\e‹•_o—Ñ“¦ÜÙæB·ž×®ÁuVµkT"^âÍS:&hÖŸã4{˜ðiòôÛÍ„ÄÆZ=|™©KÓ¥ k³ObÚ+þÎVíù!¼œe2;mŠ6�çŒ4õ´ð`wa..AH,ø± ‡£¦¢ OaXÓ�„þéh®ž;jPR ›tEüÓ¸ÑLHl葇/g­!}ìûíqzb•—çˆÚˆÌBC\‚Ám[”[K·`ó ¹_Is–¨‰M¥ôŽÔ±Ä,”tÂ{í¦sk{ž—þ'Èwj®—MX OCö9½¿äz¥�8– ß|ÝA!±PZ d!lÄ@qRâ¬]Lc–ËÓ¾±ÁŽ‹Ø"jâ³z˜ôÞ±Já¦X»'.‰NvOBd¸¼IŒ‹èD§R¢Ëlz(®¦ó§%!²1hÖsl±ƒEøÄ@nSщ¬\E9%™såèpïÂ9Bbc†PDq²óúKü×°�‚ €OÉsEÐÀx+Gm°9¯Xž"ÌÏÁV´Žyœ«æE‘ßD ƒ¿_„ïñû…g.„ëÜŽ=˶­þð‘ä&D€"@ˆ D€�nIÀbc{·ì5ºGðI”ÍO:Æ„*>Ìì´K—ú¼ ç�ŠÂÏæÚËíbØRU¬06íbÅ>_»J2ÕcÛ 7 S¡mâXa#ÿSâ¬ÑóATJ:žbO,­À¡ÝŸcýÛë°bó^©’c¼Œi|‡ïêö`¤µb¤Ô�ïÐx©5ª;7pš5}4’pµ.ë3I“˜Ž[S¬h4s])ÏÍ”}Ñìh×ÈIÌ]uçNÈ‚jfÍó þÒ‚ƒrpÀl$ªžgÚ€sùò®_D¸Ô_93¹¬øÙZ„J¸&f eX —-æ«þ¦áæ³d núC2ÂôñêÏ£lË;8µàMÓ&ŽÈ5½òßEˆÚ«¬ÈMWpéÜ¡?‡\nžy[šêl*;Á s¡íÃI~ltÎÙ9ˆé#ÿ˜,à ‹¨Ú>ó&œøâm.(C™\°¦¼Te’'Þ}X'*�±[s¾�~ÛŠn­G^ÖN>°GP/ÌfÃZ¶=ã�ÙnÇñ|bCã�>*J½¶ÖZü$~´²‡ðBú ܱEʧI^€ÄvŽ–£˜Ûókí¨ }1ÎIí F´ª }©Ipf¬Ê¥�Ëœ@Ç|¿Œ@BþFhùo’–ÔŸ9„Ó/?ŽÊmFýøæ×·ý¾ÄM¿½Æ¼Yä'D€"@ˆ D€�nF€ÅÝì�]ÍõŠˆ¹Ã�½F6UvGœk»îé­Ô"lj_ñ?7KF \åÕCJÓ¾¶É¹ì[¬÷ô뇑“Àµ£®ƒvz"žÞ+—»tÏøô]ë®<ø¡ra¼±Ñ`Õ—iÊܶFjœvâ,pŠ5R¸Ò!h×ÈÈAC­i×(sñ>¥Ç¡šPÌÕ­1ÒŠ†P9Óì‘kŒ‰ {ÈÕ&G4Š•– ”ã¿ÍŠXO¿þ¿ç�½&»oý£)Ë.äm9…�{†ÚS¥é@í�;šÊŽsg§¦!~` j+k‹åß5Œ¶Óü³ósKp†dëtmÏ|@ŽgÉÂeAø¶þù›Tûe¨Ct„V>, °+Ä=çÖö—éKŽrs;» æí«Êæ‘OI £¾_,¦Oø ½)ëöàôì¡8»ÍØŽ†%o ú¡7ÐÆãW6š|D€"@ˆ D€"àvùÿ¥Û5žÔs „N�ÄuŽ™�Öµ½Ùû†¸<:½LoJÞñÈ!’  Ð!(4ÉÁ?4>IèÛ«mÓ¦-õØ¿ù]üö–D\b'(�ôF¯��+ªp‰GXð¬ÀžÞS–v1¥‚uÅêL|-i%%á6+¦+™™vV±”ˆ±¦]£ÈÄ{€¬í40Ö~M.Vw>Wwô°p¾`ÙÍvó¥…i¶°&/ ˉȥJÀ'Á7ªÆØØ~Ξ “ÎÕ[÷öÑÎý*v´“’´MÀ¹¹£"ï˜\EXö”ççHé41ñV6~HIŒ§ç  é<¯Éœ„˜P^U̬>Ñ[�ÏÍ+b ýwŸŽþÑpÓ¹µ=ÏË…s½Ò„µÊójØ€�;ä÷P%…Õ šÂ3r\@2´VÞs9Ó@/t~lTsí H´Q/³®Á�›6 Ê.Íy¾½ö¹°ïÍ[°Ú\H̾մÑã;ƒØ_\ò8EqþCÌÏt®Gþiy3FÂ-í·÷§KÌÆŒ|ñ[ëù­Imc|³w-�Ód¶±L_–Í ¾‡!TPÐV¹*ΕCCÑÏæ»àÄX•k!—9�.ù~ñÀOs-ÙŒ’£ü›ÉE‘“"@ˆ D€"@º �Ž^Åë6 ¨¡îEÀ;enüq*“jW]Ý·ç­@EA=B¬,–Õ]T˜Œ¼~@»4œ/âòiá×Î³Ž¹BÌœ>H}è_H5 u�·y‡÷bãûoâé›-Š–v~ó,ž{øÜ>*~Ý`¶ðòôDSî2Mƒ7:ù™ ÚĶˆY¸m½Á-tV3âw¦v 9‰Ÿ.àœÆÎ¶¢]#%1w˜ ¬šq4Ï'øí<ÓÏba7¨<,µþvQX+WoÞ£hb梭í¹\q^N�x¬L1r"k®@„Ž‹’ovYK@á�HÀÙ¹£Œ3ëŸ`. ;"…dëa±‘b„í»³s+½¦ð¹;5™õÌL¶¬3¯ÃèÙÏ"ªí}G¬žfvne0Ø3¿Ê­rÜå®sk{ž— çz… kFU»�?1Ù1»MÂÂMÈK_ �Mážå#)ãµ_‡Ø·Ñ¡,OÖ¢o÷Øöq˜.Mx¬þÂ5žÁ‘ÜJ1)¢YÙ\%¥hŸ£lïsØ|D®Ç?~|pÂ{›oj¬Á'�î4}“°£•ufc¾ñ,ÎpB[O®Ÿæ-+9ü7“0„ëk*¸äQèeã¹6•ünÿ3sÁeeΊìýr@túY¨– Ñ-8wúˆ”Îp¢íïtgƪT 9ÔtÅ÷‹÷°™uõW˜�ñâ·-ˆat'D€"@ˆ D€�îDÀly ;5�ÚÚ³ x·§ºX–­¾Yës~PŠÛWQ=Îýó].+[œ 1_$ä¢ÝÄYSt _}ú1^Zð28=®u xvås¸ÿîÛ1´»¥`\y�çôB9¾Û°ÊX!;ÏwúôÑXÍÅ¥,¤±*¶ï“sëœ:§jéгEUYXb]»Æ2§)„ ÎI‘ÖÍ8JI8G/¨±q¶qE6¯Ùcma—+˜œ Šuðor¡o¼U+P½Iz…8r> ¢R{®ò²!apq]=±8çæŽæäIX"š ƒÄ3¡PT´=柧ç V¿BX7äZû4™=yiSâF¦A§,bǺèî¦sk{ž—B(ïÔ\¯4a­‰ÏÀó &´TGßÿ$vg¼jzXû°qÓ<53Ù�‡Wƒ"îœëÈh+ï¹¢D–Çé±Q�Ó?Ê,ü"XÝÈSwbwxÚ£9¯h¯=žR|õŸ-RBMür<µ@ýÌ禢’�XÈÝWÊ'8ZËríÕ…«›yÓ%>þµ\'BÿG±£:_æƒÐÁ´1NÏ~»‰kÃýËçµ ¬DÖÞÒ]£Îº5Y'dA¹ò¼d®xÑéÄX‹ »:Å£î´ï/åñ=êM³;”¾_ìFE ‰ D€"@ˆ F ã-çvXÓ©`" $àw+x yõ{ÎXâ\ún—y,[W³¶8Ç%3wíaÚ€r Ç܇ì¶râzÞü3-ý+ô�NÄ4!ñ¦=üÙwÌäà/G±üÑ»»��X›8Òô‚QuôC|eR•>s*|=õ&s¾%Ø»q%¤¥ÔèE¸^«* ”¨ÉU‘+kÍ 4Áæ¬Ef ¯:à š¯³jÆQ-oùI¾î�VÎ6fš=r:ÿøklkö¨UtE‡ù!ìÞ�í¨)g’bµ«&ÕÅr„Ï´ë™VMû¯ŸŠN(2;$tV(ðŒ@¿~±_Q,y¬pÙÜÁÀ…Üù ‘ýCTkl­ÎEµÄXáö=3gç ¦O¬Ö…ê¤VØt´4*¢[­ E¢Nô¸ëÜÚžçUꪹžinòÇ ž(™2ö�ý n‹–PÕî%8Z+ûÛt™�sm×F³<®MúKVšZƒ¯7­‘ãØÑ!½e¯Ë\zfeDV¥DêÔ…©¬Â㟛6®*·4ù^sᔢYÌ(ŠúUºû8Íã¸ÛǶïw¾ñ8¾Ø-} !hüíL÷Ÿ¿P~^Ç Žà#%w݉ÏZÉáa¶¿¡�«R¥äP!ÐEß/Õ%’u•FµDß/m3¢D€"@ˆ D€�N&@‚âNNÕu Ïh„ÍÕJ´~°¥5’Wv4G^§8aúÚ·^/—Q‡¦ÌC«‚ðûnvé{®hç�¬½OÞ9«÷š5/½ùΔ_Æž÷—còÈ¡p…y‰]ç¯DÖö÷Œ‹W>s16EX¸ì £È¦…GvJM>i¢�‹¬L;‹;ï0¨BXå9~ƒ¬˜q”šÆ9XÝù²tÐÐx+‹Ñ8Ÿ'/ì´²°ËLN3£n“„)`ú]g?äLori+7¯UX"ÇÅ:è<¿ùk]wÓî/Y­þx1{—óÄÕ{ÕWÛáü\¤ˆ �œ›;šÊNsZ�iˆì¯¾} ¶ô”¼¸î“ ­]¦™�Ÿƒ/xqÊÁÁ¡öi2û†ò¦…÷áDŽÚªx;(‰{έíy^ì\]WÍõ Ö`ï"¿iÁ£ï{�{yø÷'{9¿m§¹ök¤š˜U y–kïØðÃàø$©qu™Ÿ�“™Jáe{W “�ˆL`_p1Nùh¢BÕÇ»>w=Ösæ©¡bò½œ×f[ÙNœQcõøêÿ-”çŒÃ-Ãåo]¡‡}Ê|P¶çÕúÍÎU~k÷÷ã–DÛÚ/r�u(/–…°±I±r”�®ÆKårʲïqÆn ®rsÚ«1±ár9¼K_ŒI»)ÑZ{ûÆr…»û§",QfМ1ǾáÎ"fQ Ç>FÖÂ]r¢ÈÇ¡³=nZMúìr¦´ÔœGé–¿cϵ)„Îþ“Ó¤yèçÚl”±�'{žX�Êóõrv“«áÔFœÊ8 ‡GŽ‚÷Ýá!÷à \í™;jй�GÉÐrBY¾KÜùÄÝ`Ş̂Sº�Ÿƒ„òx®ýï¬F¡`_½­«�V±qhÿª…8\*M6ŠÜ­úRœÜ»yx4¾*°|g‰]äqϹµ=Ï«.šëÇ0žù¦﨩˜/ë�6X‚ƒÖ,(˜='}%§ý0VaúØ,©äuÕØèÕ‡xoÁº·wrßq-(Üû7üí£ R½‚C;ĺ‰jEBG=lWN“”'_~qPò‰ŽÂ}Ë/ˆ^Ã]o¶A­Å'²i}ðä/!ªGÿõvp‡ GO_€h³9¦w¿®œ}øt“¼ÉÌÑ€Ãï?€Íœ¹hÿôç�¢´„Í•atüb/×W¦Ïæ?Ý„CœŒDˆY{Ì jÿX5/‰ü:êû…ÿÑ`•þÜÒ€úSpì‰Û�ý:÷›‡$€Ð÷‹Å¢"@ˆ D€"@ˆ@· `ÍÈY·h<5’˜ðNù ¢n|E¢Ièo^·ýÿ�¾Kî…Ÿ÷9”/y“-»qWâÓšÞ� °t–MJo¨Ú"Eâcù÷©’�Ç"Þ|ú`øäÉδ gÝ9º@Û.whrûÛ0Òdm³µ.DOžnfjÑXSåá÷±õÈ9ôòæV<›Î*ÎÜÿQ0¸DK3“‡ ½ë÷HÑZ穜 H¦wbÝÿÅA; ~FM¡Œ$fö;Õ¼ŒZv¶±ô²ê ‹P7•E•+a}iZ—pØíDìkÏ¡äÖ—¤¥¿NEåÔyÐÞý÷›Qù'˜e©BWÎ6[ô—²JŽæ¥S±c©äµî`Bç„©Q\¼¿ÁÝüÁK8Ìþ¬>ÿMž�믻W7× æÂiäŸÚ�3…¢¼�}d¡�TV8ºznuÙórá\¯8®@uÓ‚'FÞó4¶/5T+±ñã/q�écÃcj-Âöw?Dû-äß›ŠcïÉOñâ«Øð~-z‰!M�h…»§Žá´mW��ð›DЦ�Òo]Õ�GñbV‚ú°\ÊB•ô[ÉüÂÏ1óG[Û\%¶¹½w�¯a¾w«vÏÆ²²ù¸ã–ë�êüðÕrœ) CK¨Ã‡ æ*©óÌLxK§¸.®BÆ£9HŸ| |š«pbÏ« ³öˆ}ŒÕ)²HòYŽ,‡ªÝsð\Þý?áVø_.À�Ï^À…pw>™É¾MT®fN¹ñÄB,Yò_¤ß<ŠÛøû2·pšÍ†ƒJø'ĵyæy»ÇªJû(Èœ@G|¿0�ð�3¯JÅü¯' øì¤ïLDˆ D€"@ˆp{ŠÿÚ¹}k©�=Ž€ëÍ¥bè{_¢†iüÖI´N¢zé¹³!ň±Høäm {ÄÔjwß…obøÂIN�SªV®ËÃ�äŒ?(½MJmæÖo˜ Zø“ZÀ9Øf¥�™‹#§m.™;j�L’2S¿Ñ‘êu²³Zy¡�𫣿 °·ë–¹Ë±{Ù"EÛ/fÉBŸ4hx!±)¥nêRŒü1]1ï•Y…ÍGEqž�Vç*.‘Kœ]=·ºêy¹n®¯ÇÙS²&©µM !qWò+²Yd& Ü[0·Æ˜~ƒ.å`ßÓ16žTvæe¬OoLRŠ]76à›ŒÙ³ïÇßÖqÂê3±Øƒ°”m® C\{g(¦ÏžŽŒu²s݉UXBY�$oeBbá2?Ó¹µ<”YŒ¾†�ؽa§eLô“X¸p†•oV-&Í{Y¯½*åk,|›ßâx‰1>Óñû¥�­®ˆaÒÝ#ï¾™k¹|e[X{¶H)d‡±_‘Væ<9!Ú;V¹"Èiƒ€«¾_lT¡5 Ú÷ßDBze}¿(y��"@ˆ D€"ÐM\ÕMÚIÍì‘<¡ •5?½z_m_/�›Õ i½¼x}SöÿÏÞ™ÀUU­ýÿw“IPP�¨¨@¢¡F¡VÞ”2ÓÊ!õ-¹Z]µºêµ›TÚÕÔ¥½Ý,­×¼Ú`å5Í2§¤ÌrHpVTp@D�‡©û_û {¯½ÏÞ‡gƒ€Ïöƒ{�ÏzÖwOë¬g >ÝÐçôOß_Sž×¨Tô<þ ÔVé½Í�+@!¡I›.ð5á�øÃ§pwC0+êÐØ¼n·˜gîXê5˜Íêágf²Y=îÒì¶€¤tä& K,L(,Q5ÃIIT]±èÔ¶ŠÎhÏN¿p#þœ4~NW›@&#Â^†ñ ·FuD4üUŒ8f ܔ逮=4:‘meÑÙ�À'ßGüÿ„—f¿w/„­Ø‚»ÿÒKSŒƒ×‡˜§IL¶ÊÁܱ7÷-þ+›].F™-F-F䂉ô’… pÁHÜ¢02ËE‘Ï}ÞÅ(âf3*�ARñ܃ á™W\t6²ÖÞAL �ð!˜ýæWHê5¾~ÂL@ùái`ïy�Õ‚!³Ø!O©¼»ø tèõ2Ƽòº|V2ŸDo÷M}·êw½ô|×óc4-°ë÷ø›à®ÇÎ_ö‰¾²kW¤bhÕŽ€;ïTÌ,ÕëÙ°”œ0¯L]€?¹.ž~ èûÌ7xqÂó\D‚keƒbK� ¯cÒ˜ç5ž‰@D ú¯.ü¢F è¨ØÓ¹ÒT(q~ Ͼò.{««ôþfÿãÕÕPl9|£žÁ«LF„|Ì™-š� ˆ´¯¼ûºÝÒÕ\"ÆOÅÓC†óA¢; ëËxñÿ­GOî´‰h)Æk:jø¬jÊ£;®¶_nã7²·“n hï¡cÑvÅ·¸çâ&D?`?ð’Ú/Zð(œ"@ˆ D€"P¿ üIõœ•á(�Zœ2Œ÷Wå¶ÅWç̧Üj~­0[zg΂q^-�Z¸2ÌæLFŠÿûßÿ.dg:4üÁ:âŠNžÅõk×Í)Ü›§]xûÐdz dLˆ[\Üt1 EçrP.Ø÷ÜoGÓ�Öð ‚ð®Ë£¢0%¹¹¸‘°�fÿ`¯2·ÐpDàqÓ_c%øäa_Œ3OÂNƾⵈSÚ?ë•U»*K�›}¹yרMÈi±¿Û}мy0ü[øÈ—Õ­]MHú-N ÌXbÞ­‰<<-/Â=‹úbµu^ÏîïbÖĵO‰=NAA±ùC�Ûý[!$<ÞZ»ªÔȄܓl�úb#KÉž¯À6h"[λJŒL~ö1\¼”o}N½ÑœíaÜ:$¨ZϨ°ïøÙ¬s(eUssoŽzßô�NÕÕ¿åSPûŹ[€Ú/Îq¢TµAàôéÓf±ó›~í”øB¦9•Ž"@ˆ DàføÓŸþ4…ép‚ý †˜Jö÷_ö÷‡õ,¸ÕüZaŽÂm²ª:³"Íeòé”a¼ßæ®É™ÏãÈ­ŒüÂ!è¨u8Šãó8›ŽÏ#ºé¿ˆ‚�‘Àm^þð‹f�±rT'"@j‰€¼B æ¿Z*Ài±nþAðþœÎA ‰@-hâƒàvÝÙ_-É'±DÀIÞ>rãiÑl²‰Ñ =�”äb2öL„EÆ#ÌE1Rv/G²gL ¨�Ë �áÝØ_ ²rYšx‡À¥>Ç™KFÎzG€Ú/õî’�BD€"@ˆ D€�@€ Å à"‘ŠD€�†O çþw:Îì-€»·w�«SiÌ…wò?7´s�ePF"@ˆh(J�¾a3nï5†*ë*—fcÍÿ>ƒb[u¼žÂ}1ê ©Û’Ð™T�µ_ªÇ‹R"@ˆ D€"@ˆ@C#@†â†vÅH_"@ˆ@ƒ$`BÑÚU0¥ƒíÆêÚQÞó†k(7 D€4 ¥'ñÚ—QÀþ"ŸB�»îAÛÐVðiR�¬ÃßaÓš¥’‘˜Õ¨÷Ä ÷òm•&-ëj¿Ô¯ëAÚ"@ˆ D€"@ˆ€ÞÈP¬7Q’Gˆ µJàSY­Ê'áD€"P?³¡ÀªJÁÉcûÓ:¢†…!Q4›X‹…ß|Ô~¹ù×€4 D€"@ˆ D€{d(¶gB!D€" ;tú|ÚܨpYòm¾-]–Aˆ D þpói…¶âtŽƒ¥(|#ÇãÑQ)èâSÿ+D6@Ô~i€�T&D€"@ˆ D€�j Cq5`QR"@ˆ¨9· P4«yvÊIˆ ·��˜òîQ”å¡ðê”\¿†ë7Œ0±¼|Ú¶›©ì]|‹q¢êÖ.j¿Ô._’Nˆ D€"@ˆ 7—Šo.*�"@ˆ@%àƒ±«ËñD›%îæ/jQ4ÐëHj�úOÀ£Y‚…¿ú¯*iHˆ@½'@í—z‰HA"@ˆ D€"@ê”uëÖ)n*Œ"@ˆ@#"`6SS¢]Qª  D€�ÆO€Ú/�ÿS ‰ D€"@ˆpšÀmN§¤„D€"@ˆ D€"@ˆ D€"@ˆ D€"Ð(�¡¸Q\Fª D€"@ˆ D€"@ˆ D€"@ˆ DÀyd(vž¥$D€"@ˆ D€"@ˆ D€"@ˆ D€4 ´±`£¸Œ� ¥…ȽRŒ&M€ÊJwø· �s[òs.£²‰;‹,‡w‹PøzVuë– ëèI”š¸#¤c7øŠòlréLàî!·fhi€‡£äõ<®ørŒ•‚’åhr{K6ó5.+ÊAáuÎB*›ø"°¥¿Ù-& ¨otÿfÔ· º®OCxæ+ �áû­‡PƪÜ­úvöw½âNJh|œ¬ %«‡Œ—�ãl�nåÀí­£ÖBúæÖCuUTª@æŽoqö`ßâ.C…[;ôIŒ‡·JN½ƒ³ژÞeÆvï^e÷®Ð^ô‹„!¤îÞËzß;fyÔ^¨¬$”"@ˆ D€�ÆEÀþ·ãªÕ¦�È\?K6µíù¯eé˜0žü ¼'Æù&}†Wžè.úUÆ#øø�1VC1ðç×3poÝ(P•@Yö¼ÿÎkœc®G—ºèUÕÆÅÀÒXôÊÛÄx=�Wß}ÎÚÁ[‚Mo$aûU[d¯«­5>W (c;Îý°…‡Žâ34_xÆõ@«?ÿmâ p´GÑþ_Pxµ\;�‡7ni?C�v…î%¿  O[æålpͽwƒ³ý+$4>¯îߌƆ¨�<ó¦3›ðð°ÉfúÑóv"½sﺹ „OÝÀ Rô'`ÂoKÁ÷YÉž}—cÖèxý‹©M‰•™Ø¸üeX« RÒtè�ˆÚ„Ù@žÕÆô.;»å%,ßži¹æ‘ 0gê =x�Ú *�/"@ˆ D€"@Èr¦BÞ›EÀGV°üÆô”Å93«Óx!]4к…\¢L`�{LH_÷>]ÜÙ4ªÐ¤qHhg1ŠWO½äT¯Ô†“Ú5>EçNIUõˆ6 ÕHl­…ð„‰†âæògÊ]æõQ™=$¡hÔ.S&ޏ¹¿Ø×ÒôË\{wŽÇŒEÜ7o Pþʲf`³ÐÇ?�œsöùíCz!xñ+è:´{¼KpflÕ2ƒ¿Í@l¯š¼Gì5k!ò ÃËnè½€+×¢A<óîÒ½�—äv¥ÞÎæm|œ­ ¥«g q!WR):¶�äi(®R#®8Ò5"!µm$¶–ß žÕFó.+Á¹V#1ãÒ)²ž‰kÒ¶§ö‚£G™âˆ D€"@ˆ yß*1!�„@Þ©t©&~1‘Û ¤¸›â*Ä¡-KqÐd)<*úIf(®‰"zÉ©IÙ !�k|.Ÿ>.VÒ³]WøŠ¾Fà°¬ÉÞ*¢gò�1ˆ‰¹W‡ªôôO°¿=Ðûâh¦òu�`¹œ2ïFîÄÁÈýt:îúÏ_!ïÆ”—|›`ÿ­Bæmle~:ˆ€&zæ5ј#ˆ�c>[=E§qÌÚÆѪâñîŽþŠÊ ¡êîðô,ÆÚ©IØk­W@ç®7g=«ŽïEWùT^@&7È!"2ÌqyuëZÛ¾ÎÕ¥‰ D€"@ˆ  „€J7wÑœÔ$š*�{ö€ëS'{¨‰Vå0žÃy®1²MPU9Ôãõ’£.½á‡ºÄ§§O´j"ºÉÑ8 ä/ŸŠÞHó8:ÍŸŒà޾(;ó;N½:ù¿Øêþ ö½ó î›z·-@ý|÷X´Ùæ XÍ)ŠQôóF\Y½[JÿË<ìÿðnÜó—îR˜Ìå…àÉ©¨8[*.U}›‡'J�…ü ²„ä!D€�ú@À³îMzEL— ÁPÐ0ny{óî+¸.¶]�È.õÍ€X.|Ãס²à$.‰Õ0Àæh›˜°î.µíëNM*‰"@ˆ D€"ÐÐ4Ìž‹†F™ô­c…È:“/–Ùº}Ñ]elYìQ‘îhUÃe±õ’#ªÒÈ.ñ)=‹SÜŒŠðÔ!ÚÈnyu*2‘9u ö8zþðl�¦Wô}ˆûÏìï�|ëÌÞòáòÄ»ÑÒAª×O ãÐnœ\æ|23Á®;ž€Ñcš¹WŸî?Õ/²§0Sƒüøã^OlÙðy ùˆ Dàæð4 ßÏÝ|=ôÔàÊqœå DÞˆ,F�£�(:BÚºÇ+¡ÍêW…\jÛׯª�6D€"@ˆ D€�zE@µ[º^iHÊ�ê0žÇ™«R¦ví-³A‹/g"§ ååpk€Öí ð®æþjÅ—³q¹à®ß(g¸£yH;D„ToFpŽlYìNhYÃe±õ’#�Ò£^qÉe¼’ƒ<+/·¦ÍÑ"8�ͼ¤µèr…Oå•“Èu‹E{댊²¢œ»p ¥æ{¨9BÚw‚¯³÷Pi ¯å¢èZJÙý#¬æèéÛ !ááÕ¾mª¹¤�M�Qqt+®q¿xI4KÁ¡è¶t:Òœg Ú‚œßóÐònÏ™ðž°?ÜBïFÌâDZkâ*käYÜ`3µü�•R*Ê]]_R)‘üJFö¼çå²ç]xß»{Ãóöö ‚¯§sM'cQ „YxFówG�ÜÁ-ªq¡JÑ3¯R½º½ë+P˜“…¼«ì{ÁÚ~mR3ã\¥1ç/œ7·]„öOH¸�ÝÇúÀ«éw^¯v‡ñJ6r„ç”=¦nîîhâæ�æ-áß¿Z{«ê%GªúIÑ‹sñùŒzm@Ô�Ø­-)ïÌ @›hË µR¶çvöY\³ýöi‰0G£ä$ º»\iÛë® $D€"@ˆ D€4"Îõv6¢ SU?�²ÜCÒŒ]¯hš·Kß™„SœñØBÁ€¾Ï¼�AñáUB¹°¾úâ5äØÉ`Yƒ‡cä³S¢Òù_z ÿ:Œ3:*ŠºúÞHyO$-Ç´'â¥p½äHÍ®׋—S™‰¥á”9,ÉolC÷ëÛðåÿÍÂÑÜ|>¥Ùíù2^˜:5ëî¶g ЙOѹcRAÁý`:Ž5ÿz »NfJáfW z�ùC Šp«·4û·¯Å¾ÝßàT–2¯-K ¢˜�¡C5÷A.LÿÞ|ÏrŸxFÎÁÔçº`KMô±Ig�ܾæü½Êù%§G—ûØ5š‡bkPîvá�»‹KBK)«vywì$KäìxY&òÔ2w¬Ä·kßRß³}#ŸÂý�ŒE|¤ý’ô…gÒ°ãÇïñûÁoQÌ-ÓÊ+êɾ�üÏĵÓ~ Ò3Ïkn�Þõ¶š^سŸ®œƒå=ä7Oÿ} ®®�ÕG¯¦|ÄŽÙˆ íãql\þ*~Jpî˜ô®ˆhï‰=«§aõFËýÉ—áùÆOzÁNÊάÀ̹s,Yܧ¹;^ÅÛË¿´¤‹x ¯þãqéyÕ¹mÏëOn"@ˆ D€"@ˆ�pð‹]ž�|D ¡ÈḚ̈¨*L\5mÆê÷6k¨ž‰í=€üò�«ÕÉŠBl]4›kù˜èÜ/ñé«_"ûùŸ1(F>»Ð˜½K³óPC)k°»,Z/9’P×ê%Éa®‚Ó8'„áâ�/cÝ�ö�J¶$¥'W!ÇÈ ÅÞ¶wGì·@IDAT×ÏzóÉ;-u”!÷-¼ý÷·4”ÌÇ®åƒàÞò7 RéÎݹ«¬ÀXp>Žnœˆ7~ ¯Ì~FÕXœwd»˜½ôäËxcŠèU8ë#&ÖèØão)G!®n<"Õ8&͵úô½ÚŸmK\ü‹5yzŽyf¸‡”ÛI— gß_*K[)ó‘ç¦`FµÏ^{Õq Ÿü7V/ðDÔ’Ïk&¾ž;Ñjá2(œ¥ì›±jî—¸øÂ¯¥nn¡g^­¶½.¾õz׳F ö|üVïÖhs\ýÿÝjT±2q÷mªJ§,{=æ¿1UØ¢Ltjý¼±Þ*¤½šÁCÍH,$Ñå;¯S»£”=§3«~N…oë)6h£p3«ÕK'9Ƭ_¶ó¼ªX�À³©ôÈùýŒÌ8ªÙ<º’†ÿØŒÄ첄Ü;XÅH¬gẋG ΖÚE!�"«ž­Ý¤üÌípAH&N�/d†byYÏéŸÏä8"á®Î|´ävñY•5R—+|*sq:Kâ’µq8¯Á\Å'YÛø¯yxq±úàñ·˜�‹½[´îéÜÓûD¹ž-‚Á«¯wÛ^,ˆD€"@ˆ D€"`G€ ÅvH(àf¨,¿$+VX–W<*äK¬–°å¹YV£�l&›µ™ô²ÄlüäC·›-UÊíÁפWG·²úáƒÀú#û—-–èÂ<°ÇŠGXÌZi޽ÌQSv2NÇ…Õ9RĨk§¥TäâèùÍ0‹-:€÷ÿ6BÑ)Îf$öbûL:­â²|ÇÞß–÷›g×hûŽï+ç�Ëéè1�:G#´U+àFŽüô–lïóíï,Ä�‹_W™ÁIÏ<‡±Öœz¾õy×G¾«0ÐsÈš]Ǿµ¯©®ŒbhíoϨh*ŒÄ¾]Çã¾>q0�þ›Tsyvꪹ҇ëßyýÚé+_’æ`ßÖž÷�¡M0*Œ¹È:º¬í�àhÙµí,¸ô’ãp‡ÔÎóðÄÕß–"Kl$ u°öEФYËÖÒõ»vÞ¼w½Viÿª™œá0†<ÒMÊkvéÇY&¸ò2¹—[‡¨0Y´º'†@ì=lióž>qˆS7W^^�¯¹Á¾Io!!Dú‰ªç³ª®kÃÕ�Ï5ù7ÌFEXãÞÙŠ*7cÓ—ïq÷ 4µm8žíÏÚù²£âo1î}‡bP•-q!²3¤A1­"ÛÈÚÑzµíuo/ØÔ§3 D€"@ˆ D �~…7¢JQUCò2LêUK�;üäŽOïŽcðâ+ZŒW̺åÉö¹Õ> ‘u\êt0§ó{ Ͼ6Öž·¸¸èÄ/݇o±ÿ‹WÌì:²â¯2#qHÒ»xú‰RgG $¦¯`K[—VÃf|·é8žØIT¯I‹x ›È-!�Ó_}Ùß ¥°r5:1E!Ì¡—A¦õâu»|òﵸْßC_˜‰øv|§  '6¤â˳í ,öª¢'p¢6#±o÷9x.eü­×êÞ�cÍÌ{°ËÖqzáëÜåî ³öìžm…ˆ¾£ñ@ÿûaPî-ÉîŸA?‰¥¯ŒÀ)k§òùK,§ÂPÌôɶ–Sc}<£ñÜëëa4²`Ã0¼Â¤û>Hze#¢Mlïn³ÞÍÐJ«—ºZW¥¡$f{F³W�íps~)ésûQÌzh}4Œ¼å³‡bÓl›d�sÌÄÏyÀù25ÄÜjÁú}3ryXó†ÜHl~ßcÏ4÷~Nè?�_9„ÿ¼9 gÚ…Ë:´)•åðñ€>�¥ >¶›Ý° ýŸAæ†iX²Æ6@ä8 ØC¬|Þè™pÖî¡ë;QŸw½ñäGlIaË@såýÆcÒì&ŒXbG\ÂCغ` 6‰ƒÍ„Ð.n®lÊbã‚1Ò,UÏ1ë1̶EB|"úôê�7ç¾Æ „ÚD´ª®~çukw÷àΠ’ôž}"A6X'>ñq «,Ä‘M`âeqbåô’Ã6i™ÀÚy ¢èü6×°à³/-~¿Þ±^?1�ÂáÖ ,LøúÃt—�lÑlå;AˆcÆÔoXŒ®‚·ÃˆçíÚ�ºq àŽÊË'qIôÇ¢}˜ÆGOL#8Üܱ;À GñáC¬�Ô]¥ýgÂ/˧r÷â<9„k7ëú¬šUi\ÿéȧøüaÎlÁ;âŒH´ý®ID|ü�Xø·1âìï¬MÛPÌ Å¾2ªÅ²ßb­Ûk¼[J/È¿„GÈQ׫m¯o{AVQò"@ˆ D€"@ eïR£©U¤ahâ„0™Q‘Ó¿‰‚Ã�é”byJÏ"K¶lhžæŒÄ6©]’ÇÁ—-ßWl 0ÐlÖ៳Ë·K¶!ƒØ¾qÉݤV— 3t_‚UÖλ’k¬‡ÏÁqáðN)–u jÍt‘©»j*Gÿz±%t�Y÷ʳ͠ ~ SÙÊ�vª{¡ãÀùxÅ.\ÿ€šò4©,à;DY@טÁö`æìE,0];˜¡Ø6(A­'Ø qO„8A¨ÖѬ;’îMÀ©�†j3S+ ²¹¥½™ éãÿƒæl1ï–áp4üBKýF^’‹ké\MÊ/.Êìt<9L™ZÝ/ô™ž¢ú#nýß,Ësª§¤P º}3˜üÜ´ØÅ}7„=â§ð{Äs:4iÑ Ãæg°ùöͧ&-`Êü\j{§!é)„0CqŽ5Ê^Šð¢gÞžœÞ!z¾õx×3ãîÒ·¸JƳœ‘Øáƒ~O§bçß'Im6cÖ6€É–¹8ý3ühÄÄ; ÿF2[y·{�ôZ�UœÑUi¤±É–Ãvå;¯g»Ã˜õ›dgûžŽR‰E�›ø£ËÀÌŒ®~è%Ç^z²�îƒ}££T £b´Åဖì»bÙ�ú Î](A»­,*°ãóy’1Õk<†(VÑ“³BCžËàÊŽGˆš![™‰ùƒ:İÿ-†bäþ†¼ÊÑvÆmãÑ•øþ¤”9jÄß`�5©ô|V¥r�K?>Ê!|Ɖ­ÄšÅãþ¾öÉÖþµ a䈲ßb'¹oj›Ð–\¤ä¬Ì=)~ �ª Ô´m¯g{AÒž\D€"@ˆ D€�ÆEà¶ÆUªÍ­N ìâ ®ÓA˜q‘ŠŽjZÞíÑž3ø>ÈõR±y »¾œ'¡drcTŒÄ¶�Ÿ°9Q�)̘Ð>äK±9Ñ�¨!ªfrj£^—qN¶4wR^Q3kT¤–‚kÆÇ¢Œñ¼u)m³7ÉÃT‰-éšx·µ÷ kUug°˜ºzã%®ƒ–™ßo¶>ÕÓ¾¤f–ºê|o´.;m®ÛOOÍÒÇW»Mó…  ;7±MªŒÄ‚[°?|(ÎdÊŽäs“»Ö dcÃg¶¾¬0¿ç1QÃH,©â¦úN�â¹äØü~»ƒžy;$�> ,{“l°BïR!3–Y¸yË´èªÜÏ–íqüí{/6pkdÿN’Ÿs¹áç‹EÍY¢®|çunw¸qPØìÛì+\ªãÔKŽ]™l&å› МIÉçkÒ!Í¥€¢â’ÇêªÌþë¬K8 A½Ÿ§Œ§3g…—�[²pϨhp»5(RʽÞa1æÙÒ–Ð8YùÆËÃw˸ìýû°Â.—H¾Ú#À 12c†²á*GËN RèÕí8§øá#ü+S$ M(÷ƒK  /“|^U@p¥m/D."@ˆ D€"@ˆP#PU·Z #õ–@aÖN·Hê£XÆ×[Y„ë¶°,¬}'›‡y®ü‚m\‡œç�qp+ÊC¾IÙÁÅ–tsCÞYÎRz­H¶÷«­8ËY¾,¶SˆrV_ åÔF½ŠÎá<§£`˜—Ïá"ëÌYC>VýrÎì‘4õƒnŸ<)„󧥎SŸÖaš†#ãåCømû&>¶—r/H"l.“´”¤‡·»-T<_>©¯>¢`rˆþ]U;<Ûõb‰v[QaÿZ…xÍü÷üUÞÑZQr¹ß.ñɋ­ïŠÝ8ÙçyÜ~ú´trá±r¸L ÇÇ8ÊIé=j„b M.Òge 2nÆþÝÛpæÌ”³ª}äÒü+xÊ—*0—@ϼ3 ë_WÞõÇ6¯�*ħ%Fi¼ ÜÜÍK)Ûî¡v[Kùו]ØÉ5Ib‡<¬9ˆÉËC°NZ¿?ŽŒ4®|çk£Ý!Öø Vý½/Ò¥bàÝ}ÜBƒ™˜^Ë¡—&ßÉ™”rM|Юk,[ÚÀ²ŠÍ»½|MH[aÛ²„å ~ÄøËEÔ*çBœ–í#Û^³½#WŠù¼Û �8[:Y9…lïaiK’üïa/7ó4iüÍ•OìdS€ÎäBB�€|!h©¸Ò¢BÉÃöo©�[x‘û-æ×]sùõ˧-÷¼ ÌÓPÕ×Úö’Âä"D€"@ˆ D€5d(V£Ba –@Á9iÉ?Ï®ƒÑ–›|"«T…×¹€f¾¾¢/ÿ(ÛoKô±~¿íñÆv.À�Ó·SWm#C�:U «¡œÚ¨—ñÂQŽU,î�WQ¸ŽƒjÈÇ¢¥ çŽIW!½zk\Ï˸ Ì µí"Ûڜ⹒íeºîã¿c×Iiv‘©áˆ°“#ÌðÐG�")˜¨ÎŒâÛ<¤wÛu±ÚüÜ|Böä?Ü­5~ì÷kþ-ÈüöZ>Ù¹Úò(ƒk®œ;Î Ž»”.Ö±³™iâóÏÞ³¿+¸AI2ªû—Ò3/cÔ<®¿ë³±ÿ ô�éÿ�¶±¬‰7ÛUÞöæ DhˆÜ`(ÿÎ@¯®’QN‰²IsaU K¹Žf‰ºò�—ëãz{Ê;òaôôz {Åg*G×Ob¬*Ì`Õ!¶/zÜó(â"…•´½ä(K(»xÈ©™”Ê|· m'Ë·¾àÜ 6k¼»¸·rÙɯ°‰3þß?~˜�ñ_oÎ2ýûÈ ZæCY.«'¡¶‰uðåiÞ^y_.ÿRÊĶÕèo·ä¶M®Z& ˆ;{4 4]ã¦ò7²» NKßUOÍßE%8wXjß¶èîx‚Km{ͪP D€"@ˆ D€X T§œ �zN §OH�­Ñ÷õÔît¸~ üb¯üb �IÆæêV¸Ì@&Æ·“ÊöôÌËÕw�.ïzc.‹ß°o„Æw‡Á�ïéÙ­[ÈÇ{Ê>øÅhÎäö>\2æ´j«m¤qå;¯»#ÃÞ\�ÞÌø¨<ØRÔ§v¿‡U ’�ºh¸9�ʔ̯—¹è¬SR€ƒ™”R"‹Ë?¢£”—Ï d,Á¦Ï‘â˜151\±D‹ÕŸ³TdÙÅÃÜ–.±h§l§HIU\nhÝ®»^|XÚž%ó›�š[<>z�v›]”@ŽÚ" â÷bZÊß-|¹×¯^â½ ·ð[L2·‰h£ˆ·zÙ·.“ßK½ƒö{OÈáRÛ^] %D€"@ˆ D€Ž€ö¯@.9‰@ƒ ÀF›Ÿâ:Ø �šÇ…ýßs³¾bÑ)Âf +DöqÉØìÙõ%£Xñ[,°¹Ä‡~úVª› ÛVìør‡;×?Ò¢]_ÄÄt’Òºàâ;};Ý¡±¤qÕÔLNmÔ‹í–)u4·Vî•XuUj%EÍøXT)Î=, ðJ@p3uóަKÁÑj"y ÷} iNQ þ<ãkÜ+lÒgw˜°gƒÍHÌ"#ºÈäÉ�:ècW,Øà.ðËIÙÀÕ¯c®¬áöÞc’þ°“vsnsç,D7G…†W*ëÐ>*a€.±‘5¨C¶þGúžxv�ƒi“‡¨4(ËÞ$‰…‚Â#ì-#ôÌ×àܤ,z½ë�öqËwBH°Ú÷B¨döo‘Œk¾cäÖ¶9ñ»4“ϧu[ÕûP�T|x“l–¨¶‘Æ•ï|m´;í-‡xw$ŸC¥1û6¼ƒÕ¥g±`ÿ¯(f†âªÖ}ÐKØæln/_Í™”¶ ðgÏ@ó’âfC1. '¿˱eÙ{b*ß¾©ÆÔÚ圛)}ójÒvõfFpáX6j8€‚ë&\ûj®ÔÖÂ`Œ|¤›XOrÜ lËn…ßèÍçÆxzׯîP|7+¯œ…´0u,Ú„ù¨VèÒ•Â>Çím[fWÚö6t&D€"@ˆ D€mª]áÚÉ)†Ô_…—ŽÉ”sÓº»sÒ°ƒ3D=ØŸël-G¹4eåå2™5÷” ›[[u&™SÂk*§êe<‡óâr™�ˆPì•èTutOTS>E.9 iÜ^cŸÈ 6“ZJçÛµwÿ°®üÓRG=‚SÐGÕHÌŠ¹²?Ië."ÀÐÑ®S?G}¤ ‘K�€Z�|Ù¿¬²FoDáå×àªò)<Ž+ÜÞÔ^Ãî„–IG½,yèõìò€j�e¯¦^j§Þ++€4ÞæQœk“³|¶r°¡•¢l'¼ÍÚ =ûP4·ó±oí;Èåf¤Æ>óÂd£µœ�IIt&Pˆ çòE™šÏ*pèûåb:`8z+¾™¥lYjñg”_¼Æ ôBìÙ¶Y’Ó¦3Û‰]kÛK‘‹"Ј ˜ ‘y– Õq/‡{ÓÖ­æošz€æbÆv¤_¸®ª‰GË.HŠ W�£@ž@ Ží?£äÞ]¢ 5쯨¹œÂìL\1÷U¸#8">*Ý*¼Æä&D€�úC€^ÙõçZ�&.¸Ìèp‡O¢KŒ¿Bj ¶þ¿,ðÜ×3„Kã‹ÐNÀÚ‰U°û'í¦9²žËèØÉ:³­Æ!aHXKÇéµbk,Gÿz/¤s³ ì÷JÔªB­†×˜� ›QqZš­髆Á'¹™Ôí3©›¸K?Ê|Û¶×�ÁîÃ�'I�i¬ôv]Ú Jp[òS}8�äÔ à×ç~¶7â*TšãspöÓ]h7õn»Ôùë>oŸmÕ?Ê.�Ó7âôÒ)y˜¯¸Lì•Ï_Á¹ãû{i[7Êb,ºË‚ÈS%ù,ì¬ý{Q6Ð~‰xILÊ*ÝàÁ5˜[Z¦ÜÀŒ=êCŒ'Wq,&Qu Wzæ%Öõߥ׻Þ;,FZvlY×ýÙˆITt„±å^¿|‡hˆ°VÊö�:v�eK[+o_‹ÜÑle ÊÜ´…ÜrÆ,²M´¦‘Ƶï¼þíEUì¼nÂþ Vƒ—§g�÷¼­‰åª6Z3)í”6ø ¼#{ßçfš}9éðÝï’1?bÈTtW¾QJ¨MÎòÙÊ�ÁÊ»I©‹š¿%ÂØ˜†ƒ'-q§¶ÿæKÁpüÇómpµüVëdB­Ùøeg>ÇêÃ’A9dÈØíÎ÷,x©�yAá~~ûMÔ)’ûŽªÔÖ¥¶½Š< "D Žb×�»™ÁÊÒR.+óF�þ½Ä¿'êH“[¡˜’#+СÇdKU£áJú$�Aïõ•F ¾y&ghèWÇu*ÌÜ�Ý'¯ÂCú¡Ç)VÆŒ°~ˆ0t‚!TÙç’Ý gÉ!LìÑiæ²±³xzKÝSÎkTc9%X1¨ƒxçí»‚iqõŒ‘ó(% Dà–#pÛ-Wcªp#%P‚s‡-�£¶ î]ù™­»ÐdBúS°‰›Å1|2"d“NÜÊ͘¸ú>þbXSPå¨@þ™=X¿h¦ÿs•Fk¶J#[R:N¥•<ÕqÕXŽþõÊ;Å/¿¬²Wbuê¥WÚó¸Œsç$EÚE†IÞÅ:ÔΘgÆ�j3©¥+]¼û‘^Ägfnãq¬™y'6Y;M-±D´R.�ygtÑGQ>yí „Æ£UŒ\¾à dürQ `.SÆç88•ÛO¸Í´6¨m+íÞ ¨(¼ˆœoÿÛîxZftöMN Åež{±íÅ%È¿(ÝO6¹¦c«qlÁn›—zúÀ·&?% ·¨Ë ¡¡Ì8c;²^Ã×iÇm>Ù¹0; ŸLŠÆÂoÉÂ…ÑÒ÷!?|¿GÏ|Y;ÞÆë ^“…{¶ë*[‰ÀIϼ R½÷HϦKïzÏææe‡mÕ=õÙ4ìÈ–dWÇW¯ ‚¼ÕÐ ­U%ÜÞœ„ö-–¼Ù2£À,¼YioãíϾ´e>‡tÒ^¢Úµï¼Žíã,L„õ;Á¨1*æ{Î>åfªFÜu—ý3¦—A‹Ç˜L õëÏmi";r5o.µ=³6¾Œ½âàÂáxøþN²êÈY¥”r.lײ%Èöf¨Öá…¶�¤ÂgÓÚ†ºü(×bJ’ÉUCò!LûíóÃ~n  *»œ†÷çÎáJŒ!ïK–4w ~ËÌæ¼öü o~°”“Ãv^ÑjoÛR¹Ô¶· ¡3 uMÀ”± }ú D¿~ýÌöÁ;óêZ ky…øáƒù˜?>fÏ~ûóªû-»IjW§Xw)u;ȇÃJQõÙåà@»:®Ó™ï^ÂÀ�–{×vKgv_ßÓÂZàO1£ñÉ�ÇPoî(7´16s<KL§âpAN³v’<ǽ%R:›«0ãÌŸ-<«³ñî×ûëW›‚t&D€4r4ž¯‘_à[¦z•�)vªYkÍ::L:ޤäûàU^€ÃÛÞB–¸ŒKùÆöçŒÖlIÏ!dÍغHr~|3M@ï��Àìƒâ+¹¸˜µÇw+î±æÙ+Øq#Ì»5„ˆ ¬ý%9G`úîthfnÄ——Â=øQŒx"±Öäè[¯ äžå–_¶Û+ñ&Ýy®p.â—Ò6ÀÐZ}äc™b&u«òר—7ßQŸþm2‡ÿ �Xð¹ƒßãÇíŠ�ìÏ2+C§PŠ.�Ë�Núܤ+ÑÀŠõGä;©¸Ðo–¨wΣñÈ:!÷´†ñ·uÈ_ÉfYªàEcì�bn‹£|öPlš­Tó2£sôP~¡eÐ@ùÊYØÏþšÜ� ÿûî@³P_ÜØ¿9K·È¤ø¾<\fh’E’Ç7Ä �ÌfúNÓüìÛñú%ö�?[º-ï\2v/EŽõÛÑSÙ¡íéÍí-ÊÞñ?ŽÁ¹ÏãÏ÷ÝÉ–—?Ž}[çàû6YžsVŒ{öMùhÙÆ~¶#=óâuhÝÞõM:¡ÿ±øx£m°ÛA¬{ãNìŽ5c(fs½,æ{ɯ7B‡â»wÖlWû(Ø= ¯ŒE@s–ðÚA± bÎf5Øii\ÿÎëÕî¾»9l¶uÎòaؾœ Ðê>�¢¢Ô¦˧qð'Ës&áÌŒ«öí;]äTfcã'Ÿ¢ÀÃSÖ ›—ÁfÊÚŽ«oáËE¸Ýæ/+E¹_<6T»�ÕÌnË!žcŸ™PåÒÌzq 岎æ«Kñþ”¥ðô‹…�ùF,A‰gþòÚ ‡:Evg­u³¶ƒ=»¿‹~áÜ�Í•Iκ% b-zïIÈëû2º†°ß=YÛ°}÷f™R÷ÏHEDY�Š'ß¿Ñ'’^FGöé;óÓ͵´}…Äžìò—šX{;Ì_%/äJÛžCN"@ê–ÀïÛ6ØøÕ†}˜Ù÷A»ðZ(9Žy§#ÍZ�ç€Ñˆ ªâÝSëJé\@¹4tgÊd’u.©–Äù`ì.#ù†uˆš{Sí{QS-å)ß×’6±î’¹Õ¦zÎX‰qýØß¨e¸¼b,‚TÝZ�&îZ™¸ÛÒ g¶ÍÃôÔ4KÒèæýX\›ïL-)  D þPX&ꯢ¤pD òòI\RK`ÚŒ¿”wn˜“E¼„©SW7ôxvǨ ÏcÁïIM;°‹�wI!2W«¶®žÃ#w%ÆÞ/#¡õ¸º§$[+p¡J«2³¦g�åèZ¯Bd�‘:{ªÚ+ÑVåÚ?ל�ñÂï¢á‚áVèXW9r3©•�õaÿ†(ÖQ/ÍþÊÄ®/'*î‰]©PF0ëðVt¸é¥�J(H…€Gt âýŽý“׉±å«#{µèÞ³W#önõŸ�“ÝļJ‡ûÐéè¾à¯rCoÙEY²Ê_˜¡Zø“…Z=1ÓFfµD¦I å¤ Œ%k¤wsiÖ¿ñýrÎèÃe¶›ùÏŒ|ÃÇ Ç‚åÒ,ÍâÃïaÕa.sšŸs!ˆ‰…CmÿRzæÍhÌz½ë… w|d>bw?€ƒÜ`6³�ØFÃj\¼Â½ä¥Þ~ñîŽ1cžÂÛüýkRˆe2itøÎëÔî8w”o}å#ëÀRög«ˆò<#ßœ£j¸ÔEÎµãØ±ûßÒ3­,Þê?º]>k^Í0Ø�¡Ø»y„yvm1/Ïïy tfif�8óE[Ü>¸oüüøÆË²¨Ò«¥ú{%ÀSÑ~‘%fï°;¹åÕ…ØX<6r€2ùo � œ?¡þ0emŸn&Q»Þ~D¿v>¢ŸwxG>Ä®î[8Èžú‘ äàü6g©ù½ÖÁŽ7(fÉkÞ¶·•Eg"@êšÀElþHúMe+=cîFdÎz†ºî…”ÍŽdãï¸É·6ÝúÙ-°;æÍ`ƒž›²šâäŠ^þAàWrn¦þ{»î¯U"}:^Ün¡¬è<¶¾?+38MVŽÃ3 1X;!Ž ¼�nè:ff%±ºßî W®šç˜‰Ì@_dzÈkF±D€�[ƒÀm·F5©–��@¥©Pê´b{ž=ûÊ»Q­´=‡†ÙÿxFlè©% Œ{³__ŽØaæ§öá1}G,Çèûìg®(s…õŸ�ŸŸƒ¨ÈX6ŠÞ^n@Ü]N5è]‘£[½*¯àªØ¡­¶W¢²öuç¯)ãnècD4üµ:>­ƒ\…tí¡ÒYޱ ¿AïHõ{Â3x8F¾ñž"u’ÜÑÍNŽ~úÔû†^Rà“ï#þ‹ÂKsÜG/„­Ø‚»ÿÒK³ªîNüjÓ-f.À{3pßâ¿ÂOÑßÚbÔbD.˜è@¡ø.ø‰[FfMÍ(B‹€aà|ü}ê»èà§•‚…3cHoöí¸£¥}ÏV`Âë˜4æyÕ½…Õ¢}„WÙ;!BŸ€ŽaŠ‹Îâè™5‡>ïzse›„cÄüŸ‘ÜWú.X "¤ûËxö�õè,aiÝ^ó%…à„xeêD(îgO¿ô}æ¼ÈÂIÛÃXËH£Ów^�vG˨Ç™ ©­êŠeí»åxuÉ»ˆQ¬ôaK®‡œ²kW¤ö¦M°ç€;ïtÜÆk"0Ädö?ÆéYzpV«†GøÌ~ó+$õ _?û¶«§�µ—Ô2òa×ÄYîBpÈ W£ußñùÈ]L0•ä‹åôžð ORÖ|#ÇcÌ0$Ný–EHs9¢ïK\,’&lÄ‹Ï<%–‡ˆ.Uß?,uMÛöRAä"D . TdïE*oD _ˆíGKD9ô#àÞÓæÌÄ´™ìoDoqK#ýJ¨{Iu_¤z‰Éc�2bFXÿÆN˜†éåH_Ë óܱnâ;ÈàwrQ·�Ó }ÇNÃÌ™ìoÎ4ôµÿí| Á ª"@�?é ±³2¥S‹S†ñþªÜ¶øêœù´‚[ͯfKïÌY0Ϋ¥S W†Ùü‚ KXÑ®ãÿûß…ìL‡*rO²½>‹�,Ö·¶A›ðÇK;«È1^ÉÆùóçPÂ}n¬�ãÖ´9šûÀ¿E¼=nç±ÖKåÞ´ ãåLœ=ɼ·Špß·Ep {ÑMS� Ö PÓÅ,¶úwÊ…�î·£iHkø…Ax ×åQQ˜‡’Ü\ÜÈ¿Š?Ø"b\gï ÐpDàÑp_?u‰°Ze³gö{ß›Ø7Ã�ýyù6G‹€0:óÜV–àÂé#((6ß4¸Ý¿BÂÃá­5è¤Zš5ÎÄ%À7f¢¹rÉ‹öaí¤†9 _×w}¥ ÆR¡kÌ žÞ^–%Ê/¯ÇôW¦Zo‚@ }câU-(ï’2c‰åûÓÄ ÖöÊžE}±ú°Å0$,ÿ;k¢Ò8­”¢ŸßåvcSXpW .áºmiB7o´j�V-ƒì—s×R]/9Zòor¸ËœuÖÿÄOàãmsLcÒâùª3¾u.¶NÅ5–w™ ZûísVø²W‘Ð~mÖ�ͼlÑNœ+�Ÿ} —¯ZƒùµFkÖ†¢Ï¡è(I£'púôisç7ýÚ©º~2Í©tõ)ѱÏþ‚¨‘KÌ*E§,Æ‹«0nnšÙŸ¸h'¶Mê]·ê–ìÂþ}`›ã�˜‰+-ò”½}þøgºíΧcB´ãþSáEœ=“�«ÂE?:v@��Œ-9PÁd=žÍ®Ëîq;Û´Cx+×´7ía½×“±¯x-⨣—«Z.Ÿö¿û0zØVxK\„+Û&95 Ìå‚ëB›Ü”}ö<.^eW�=îîhÞ¼‚ÙoŸê4±XOÅÅ̳Èλ*jíj@ÖÎrþ³Ê%yÙ8s.ìñ…ÇíÞhÓº-‚ü«¥œLynMúÓŸ¦°šŸ`Â+JXtñ¿ìïëYp«ùµÂ…ÛdUufEšËäÓ)Ãx¿Í]“3ŸÇ‘['ø…CÐQëpÇçq6ŸGt»ú‘ƒÔ?^fû¢q“pj¤¢w‹ptd�íh¬õªO×É»¥]Ø �€¼Xc[ø»Ù‡[‚ËOø»ÙŠÜ"åûºòÌ6ñAXd<ÂnVTM‰€®ïzfÔõö–d ®#?�üž@”Fb!ƒ‡·�|p\Ñl²‰…øè„žÂ©Î—ÛŒ�ËpóŸKJë%Ç%%j/³ËœuT­2g=VŠFb¶èô3S�‘XG\õF”‡Ë¿}ÜÞ�ýÕ›*‘"D€Ô�B¤­Z"–Öç¡?ã!ÿ<Àj(Nûèg\d†âP1…þÓ±OÐ4jœ¦àé}Z`ºJ¬ÒÈ·‹­úØŒVlÚâc*ó¶ÏGË{l’S�~ãCD[m,™_¿€Ã,s<¢§|…/G—az�‘¢ñZRg¾J�E;6dûìfŒßŠèh)§ÅŦr÷ù {>|¬Zç‹»¾Æë3†aIšRžÅŸœ2›6} J½J�ñÃ:|¾fæ.‘ ¦J)Bþ¯Nb3L—ÑéÎä!g(.3�2WÖÞê/<†fMÇÄ…êœRmÀ›“¬Â0Z‚Þ} 'KϘ­4aPÆšWãÑÊàð¬“S^ˆ�»íJË`·â§GňÎZ–ê|6Ú#­öx³~%‚´Éhñ§ÉvráijhŸÉùÙû#åS8Bõ¹çÄŒZ–Žcí˜K-ÉÆgïü#Sí¯™M«ÄQ30óµ—‘dÐbeIyì‡0}àD•÷‹OLÁÚÅo"¹³òµ•b;—àÆ}œ•û§§Ê1¼éNÌ�øR×ñÀ’>1e>ý×XÐäp?:�ÆM€ Å�ûúRíˆ õ„@ÎýïtœÙ[w¥¤Vsá�üOÄ í\�\”´&þ¸¸ »Ÿ_ÎöÐVX­ª%̈rc$º}ø´h\ýÕ¢@‰‰€cvvž Dß„nr£®5CîžaùöL1{Ôc�j,a\‚ô ›q{¯�0¨=l¥ÙXó¿Ï Ø&Éë)ÜSUG‚-1�‰@ À‡¯N•–êŽx �ÄÕ@e! ›µ§öõ#í«I ðVqv°w„#¨i‚dÊX‰½Ù/"9¼öº"+ŒEÕTÚ’¼èº°*�tº'0�µ2+߯�ÿå@o6/±‰Y¶ä>hÇýö1æ[f’ 2C”Åf,&ºVbXÌJÌÛš…iIÚ£m,ò2 ã쎀|a{X' Å…øúåG1ÌjÈ·“e XÇê¶n§®¤+fx–¤�#‘¦•‘Ï¿d%>Mÿ #ª0‚W!ª~E—³e�8òö‚~=ÆAírÙ²/™<K>š�£{æ 3wïØâ�<|0º%l�¥p‹+cÉDtжErÉõ’ÃDV”ã4«»9ù’3ß(¦¤‹‹m÷,ê"¤x›ë`[g­öŽ þšžÐ.«¼HX5ÅrihT²£}{`¥-¡Æ9må\6‚÷1$M‹ÓH‘‡OþÒã–8€”¶G-ÁŒ¯ŽbÎcŽûÊLâ+2™ÛßÇ€q“5Ÿá´%Ë‘ý3;¶akèMÁD€44µ×:kh$H_"@ˆ¨E&­]S:[ÉÅRÊ{ ?}é¨m—¡ø—-:S óJº:H"D ±ÈùílÚx›VÅ"öÞ!èÙAÍP‘w{6.ÂÞ“’‘Á/ah¼Æþ ¥'ñÚ—QÀþ"ŸB�»îAÛÐVðiR�¬ÃßaÓš¥’‘˜Aì=qÛA›" '�Bì_·ÙŽíåy¿a×îÍœpŸø8\vÄ #'hP¨=Õ .)ë"�‹»7p‡ˆ7Û:£1ŠH§›møê—SHáØ�áŠ^­ºcÞŒ(mÚ”‰ñ®l@êÂ4IdòÌKh�ÒR)èûyÙ3TH/A}‡b ›{l±éfàãoÒ‘¬µMJá¯XÊYƒfM¾_1 ±™E°ÂΓ2oïŽì´e—* ˜Þo:gí×4Lv쇔”öÖUhšÂxz=–p³Ý¥j8p™ðõ_Z`˜Â¸˜2k1Jè�’KHßõ¦Ïµ&hçÁ¤Vn°ÖÌ‘œ2ýºß‰¶m[À£ì~þêmÌ]i«tFÆLBçâ—CV”P¯½WòØlù*Ž’ŒOÐ’‰ù#1eÆI@+ÆèÛ�GBœdœ1Q�wDñZûÙëÛgW‰“±xídtõ¸„ÿÌc2Òø´ÝzÉ1—àÕý¦¤€Ý‰Ö�غp‰†ÙX©“îÃfš'•Âü¤²GuÃôTîýL™5ìIå2²5¨»9=X«N»{ÞéÒ*ðܱr#qr ?þ:¶òAÉ¥lüm+{7YŸ{ÕÁBaÂÌë–â `Kñ‰˜µx<:¶À¥C1r²4òdî°(„ïcK ;Xs\**©ÌH,�äIdÌ"W‘ñ#[(Mxvù'ÜR:ýOˆ@ã%@†âÆ{m©fD€�FIàSY£¬W½«TÍ)ªR¬ð“— �œúý Åi:ˆƒÌ`|p£¯áH™ñŒÆlbÀ˜}Ö¬'ÿ�MìOëˆþ†DÑlb->^CÆ“ø~ý[² 6I=ŸYЏ6�‰À-F€ÚS·Ø¿•«k¯kØÌ8ë=£?,sbƒpϨdq‰Þ•«Ò°˜Škk‚š[h_L›Óצ;'ãÄÂ(Ñ`³xÞ\LPŸ²É圌^œŒ…×™Ã×MþÙÌP¬6Ï÷؆Uœ�+Ãî UȲ÷.Ûwcã¬+môMÂC‰w²¥«mKífà•~Fòœ$ûŒ,$üÁIøðA)ªâXGf(–#¥XuWá®%r#qôìüa®lyè“G`Zê«X·`$þªLe&§;[ê8‹ÖÎÅ“÷÷F�d�2ú`òX<ŸòÂî™hUb%VüÈVKV£¨®çMÕ²“±Ù¢¯÷KåÔKF|Geû:ï�ä¯K4–íüc{K÷GRòpŒþ,=FZŸvßßõÛG›[…¥p;RSÓ¤²gáÔæ™0X{ôû>˜Œ„—W93zɱiâfÀ¤w>´ùØÙ„ON/Á8Ë#Ã…«9ÝÐ{ì4ô梒[ž@”mMääe˜;s¬“3ã9!õÅYq çÚI°·Ð¢Ÿ±vÿ^ba#Æbæ\¶ZÁËp"\}o›ñ+.ÏÍêÍ–‚þá_ÜRÐIbø“£‘Ú¯lÅM|éÿ0”íïÌÝAŽ©05§,û³Çö•ÞË3ç`qövÌùëp»ãÜKˆ@#"@†âFt1©*D€�úKÀ�>߃67*\Vñ6ß–.Ë Uðˆ�»ö>Œ?ªNZE 7°­Ré DÀŽ€üÛ&¹;ìb¤zOÅCýãűúRœärói…Ö9—ã`ÉßÈñxtT º„Ð)‘#—^Ê.¤Û‰=ýã�ñ3�©ì8Õ«T’Cê?jOÕÿkDêDÀtk­“O‰Ãú³iÄÖ£[ÿ�Ìeµ­[……з®> &£M ó¹ÌèüÂÌqÉÍ ÅsÏ\|³*&Å)Ïú7¥Š'Î¥±t°¤Æ¨eG%#±58¨ï$ì[´=¬û"gÌ]…ŒÔ$qŸc)·½ËÄ/—k­’‡3lFi!ší©¼çõ²¼B‘Z­X§Ïæ³t ÈP|&'.^D`…Ð�áÆþ!ý—u˜6rºlælòâWÑ[ÑÄ.Üõ¹u&½ͼŸ·2#±Ò|熸s°áÐz‘Ñô¹ßaÒZÉHš¹õ?Ü@„DløR2[$ûà±9Ë1cn¤¡–þ½äð2åî —V�“ÝÆE¦j,¡.×¢^øØ{ç´¨H4ž~¬�è“9¼‚�Ä æêCBòðyêt)yâÍŒ‰q g¦([ºG˜#ó+»ÛçmÀª q-ÁY�ë>’ÂáÙ¾Ò3!EX\‰O> ̵μ^·'Mc­×¤ÛWHK #y îVŽÇ%c®xÿ(KÐKŽR®Ü_ó»D.Gðé¶ ‡½è:ÉÀwi5Xrÿâ>|”&©ºè­gíŒÄb¬ð®b 7ØfsoÝu†Š¥Á:b:¥ƒÝ—SUŒÄÊdä'DàÖ À·on�S-‰ D€"@n:Ÿè (¿1–u£°ñù^zv+ÜôªUO�&^ðoÎþª—M-µG³  j‘Fj•€p‡Ôj õU8½Ëêë•!½ˆ¨K6¯‘ŠKˆnüÄ[¯.È ®+-–bÌ]ó+f=ø˜Ìà*e®O.<4nS<Õ¢ÔÂ�±wv²læèo«—J 3£Ë@CmÚÄ!àlèR^ærkÙ‰3¨ Qµc*+9ó»m~7+#)w «ùQQˆý[6àë5°sçAóìWÞD•‘!-Á‹ùæ¶Í «9…ÚYê´xß¶,³Ûô+Ɖ�\½Ù,Ï»îcÏHA�-w`n>üÊ…HÖƒ_0(¹_ŒýÌnkºŽ÷q3÷m™¹³^r8‘äÔ"ÀV{J`·‰mëð%#£pbÃ,¼ðÜ0ôéÔþlàEU™’K'd³Ö'÷¸ kØ-Äß+Xxš¤LQQ¹äqàJyî!¨Ý½²P �˜@Uï¥F\uª D€"@ˆÀÍ$ ˆ©1z3¯•Mˆ€è]¦E’Aˆ@ƒ%P‘‰oSÓDõSÆP¼�8r3¸Zgf.Y‹£‹«r«(ð&:‚îÆfNeó{…cVý�‰Þ�,UÃÊéi7ûÊ �(ê-FIŽfÚæ_¯vèÇf®´®Òmº.,“­XÏX’¤“«5nwÁ}ì‡ù>P¾ ³ g"•ëÙºYƒkû�š2–d�ø}뤙 ßшŽÎÀÄ“pÇ•èmgms‡—b㌴49 '}üЃV¡ÞNæ²O¦—{ÉbO £æÏÂô�ÖA&,Ap"üYŽh$�ê‡~?ŠÑ�õUo¸{(ÄfÀé[H™U!ÉæíÞ‰†ÛXЙaƒ:ˆ D€"@ˆ D€"@ˆ Õ$`:µÜâ¸Xòæ{èšß&“u#xu+¿|ïJlûý]DÛ[תYr$wëŒqó’±dºÅz»ð_ß!õ±IfÃNáÎuV² G2OrbÛž"G:ßÀ9«‘XHµag&¦9X®Ø‘$çãVâ|Ñ ÄÕÀ}ñÇÙˆâ a–2£1*¥Ú°I²7;7;ò_ˆ•if'Xa kïÙäeXúŽ´_0ð/d¬›‹˜‡Sa™(½}&õCñбU˜ô£‘2¥Û\¦ªÃˆ|£Þ½õ†ÖÚ†=7o…eÚAQzÉqPÄ-úàLœÚÚCúMV8‘�u+…¿…˜Ì†¢ì¼ü/ôÒ¸èV’Ñ£RÐ/Љ;ȘChs§ø—•;7óØ)a”ˆ�OÀñ[¨ÁW�*@ˆ D€"@ˆ D€"@ˆ@m8²‰[vZ( ƒ?&;.é£Í0©w’ãDõ$¶çOVC1ØÂ[3ŸÅc† l]9]Ô0zÆDÙ’Ôb„ÒáЖ×mØŒbÛºÐI1Nž•ò«í6É·G6Þëg›)dOƧ;߯£½ vûû$ŸŠWŠe¸0�Y”QgŽ"“°í†è䙨·øzL´Öiå8¼Ÿò�C£~òâOñá¶±‹GÎù+L‚Ýôe³Ô £ÃQ²’õ’#J;†¤IH/�c{`ÿï{ñÓŽXb[2@L½}†wÅ•m–(b°Ì1 Ÿ.ûÑdÅ‘Q! ú¸M_q$�"@ˆ D€"@ˆ D€�ÆO [>â¦Á:YáŒÔo‘ÉíÃêd¶ê'ce8o>SïÞ‹®õø×wé€éwü˲µ9ôÙ'ï¶E;>3e4çð™Î€MR� –5²àŠù�sẦBÚ*²÷€Ÿ#¾ìè*ŒP1 ÊùÍqµEÖÛ5ÃvÜ„‚-¦.ÓŸ[†<ÑgqèUm^Îé‹×¥8ïÕKŽó%V/e¹ËOjõÊSKíæÎ/Э–¢anþèÌÅŒ˜0 ®X‹ÿ–#}ëb¶;8w°(k�ñWˆÅ)žK~ßj.'9‰ º C±n(I D€"@ˆ D€"@ˆ¸5T\Ü ¶‚ªxÌøj²²NáÔ)Å_VÒ×ÎÓ�-V½ý”Â0ÂÅêæôjŽöœ0;s©”N$O”Ì‚i}�¯¿X…4[²èYHŽvríæ´U8 ´(ZåT\f†b›Lv.SZЏ8Wœ>íî`ómÇ:¬ÜpÌæqúlÊÏçÒÎ@Rg-[¶­’fs™œwÖ…½Üym¬)Ã1a­tO c:–mç/¬Úv•f¯Û±%Õ.Ã’�ßëxÝoÇ õԜرÁa zÉqXˆ ‘͹'õ&]ó ~Tƒ¦%Ø·Ã…{ÚÍÑI°íÂ$r¼ŠŒÖµÚ­a^­B!ÝA+ñË‘B.59‰ ú E ôgJ]$ðGa&Û—å{\úqJ‹‹ÍÒnó †Wd{4‹í�À]Ñ"T}©”dãÂŽLü¡6äOC¯?à‡à¤îlyœ ±MFL⨭2ÜÖ¼# e òLqù`.`.Ï>]ºÁ›µ�˲!çhn«†2õÊËàÙ!-meדzÉt”y*P’± çÓ~BáÞ“(·]·à¶ð½ã.´¼·‚;‡â6Yæq©^Jaä'D€"@ˆ D€"@êŠ@Ö¯ßqûo&#ùÁ8„kÙL[>‚QH…Í{QJ¤@IDATIJfÓŒíW»ªº#V°ŠZgêæ]Œ1Z j«šø$Ó}®E÷Œ¹6Ž¥¬8ÌH>êÅaÕΪˆIòÍÇ�4¢³"HÿþcŽå(ÜÝÑA_”]n)@ìÒ’‚ä.ú%2$i–à%#ßÁó�²emµl½,™ÉT//¾ ¹Ì’Ùüÿ9\¬—*ù w}ŽÉi\Rg�¬OL<ÖmÀ¡’ Î-í-fª}GøŸŸÆvOØöçžžú9Ʊ僃ÌE»¡GÿaÀ\ë( ¶<õÿ½ð&U{3h$=<`{Ùš�•KñëÛ#�d)„«d6¾žÈMGçb,N½äØ Ö- ¬S¬$ëŒe/ëê?©’ˆ¹ø‡Gë¾ËûoÛ^b5*Äš)´ ú0gš† ·ÐžÅÞ1Ó­·Ðä×WáÖN¨ÁÛK£ &D€(ð_yEy‰@](Á¹_ÅÑ™«T 6²ÁqWXÌY!¶ÍDÄïþüwpÙ‰µ8(��0eböð�¬÷Ø:JD«S^8±3§áá{¢á/^+)ñ¯ßá®Y4Ú¶ò•"Í®PŒ[8 Óm{�¯›ˆ»^ðÂú¹c.GmN]x1>ž�‘{PLeKò"à •W•3Ù( Л@!Ž�‰F63;uœÛ�lÄ¢Ÿ²qïîéTvÕDìi&óÈ„†Áɵ/¡×Pƒj(Ê«ñ bé²Ù·ŠrT’kÕb½Ê2–#­ß?´ËæcÒU®™+õâe“›"@ˆ D€"@ˆ¨;…°œ³mŽ˜Éô©¦†zñ³#3VbßÅñ`hmvMú q| ›¶g3æ¥"Ê7£R¦ M€Å�u£xà©xPÍúÂUãÎãÞP,Ä��»ìfwr™T�Ó¿-ú �Ç·Æù=«0l²m^ª%ÃW/$ªä¬ÀþÏÞÇw™&xr]_W3¹Ž´uã0cþe6Âv”¢´´ ÆÌ`Æ%³ïgñé¨é¹ÒšŽÍ’îÑr.Ræ-Ã�>x\/ĉômX5Ýj LN° ´œƒ¢1$‘aM³xWN샃;f!uÜ´÷6bϺe˜8×&Ü’¦Zÿ݃él"mšKÆÂ‘h¹ðM$'·³ˆ):ƒ®Ï­ÁœÇ4úêªUXÍw~ôy6Ó|‰8K^˜U<žÍ*¶<¡xþ“ÅHí1ÑZ@Æõ‰ÀÛ£fàïÃú£ KTx.ÛŠÔ…«;½’ðï‹™³¢‘f³8¯›Œˆ¸ß°l~ :ß^ˆuÿïaÌåžCÍÚè%‡P‘· o¿³™uÊr7"®b§ÇÄé3P”À݉¥¥h“8cûªÊ™LŸ.÷ƒ=©Œ¦å˜ûpæ&ŽÂ”>m̃n°µi»Ç‘:)I2ÜZÓêv ½ϲlc6ÒR¢éÞøtâ=𹔎wÆM·ì­Ö­‚+Êq:m%²?á5eú%ÄÂк%Ê/ŸÆ–¯ÞÄ\~Íþäg‘¤ò Jzží�ž*ꓱp"¾�‹þŽþÝÛì9Í>q[×°•ÒÌEÊgÕL'"@ˆ@UܪJðÿÙ;¸¬ªüÿ&ÙD@QQ\@AS-DM�QÇ¥RLýe¦-.Ó˜c¥•:šù+—Ÿ3¨ÕßšÐrË$Ë,JÍ¥ÔTAYDÖøŸû<Ͻ÷܇û°^ð{_^ïY¿ç{Þw{¸ßó=‡ò‰@}¸»g…‘‘¸?\>y]`Å~»—ädá^ô$oÿYR«¬’íÜE°c?Úÿ(2]å6I�­0«D½Ì½9[‘3~L.O¡RÍ&ðU8/¼�ÇŒFy=fa‰¼ƒËpï¸XÉK^€% ñ‡˜$ Ñü öÒ7±=¬~)ÔÉ8ŠÆFâQóá³”�òtk�’Ü,äÅG#ùÓ�¶§jÞÕÕê—BŠ"@ˆ D€"@ˆ õE åôƒÑDßâÐ ¯J›öè7„•�¢ÑØ‹‘*Ó0W*¨¼'½‰eïm‘<;…ªá[Dô‚:¾¸°RC±•ç(¬‚b*åe³†WÝhe䄸nÞD‰„^ ýÿ‹÷Åb‚ªÑ:Ç?šWÎVÍ×Â뉞ÂbN†/`†b…£… &ž8 Å”u²ÑkË¢’¡N¬­;&¯˜ìˆYaÛ0¯Û©XtøRLd»róÁüްŽ3+ ˜ˆ™aäò(Ì?ì Y½hDDȺ挻g¢®¶ÉêË<Í_ Eøƒ¡—yÄyÛûÏFòI`ä€9Ò´âÑ᫘�~•I% T¾_/ùësÃ<ÑËYÌehÓ„$1ÐJNÁÍ3X´Êø\)±‹D} YA«ÿbÒP +o¼y`¶ŒâäꌭœÜ XX—†bæ3ÿôâõÌ0ËyÂG°óÅöêmEÈá*„¯c†\å#‡Ë¶­•¼õlÈÁì=ɰzy$fl¯ýh¬š7…óFVÖ@¹{Õ(Ÿ¢D€ÈPl %×'�įÜ!7(L+}‚MQÌY-lìaíê —Ï¢ î(.þïYXVzõƒ×?_…C¥å M›0ŸâÚÁ—Ðw„«¬c%!kÿ1èå¯^(Ëêüvü�>sÐ+ð}uªª¢¾ÒÃë—Ü£Ä.�ªçhµðs Z8DZ‡ØÌÊVŽ®pè?ó¾Áooœ®äœU³_²2"D€"@ˆ D€"@ê‘ÀíüúSó1¸3÷Ç„fî}±šLÅu7O^¼ÁJz›(­Q²™;–De!hûçß±'"-Ú\ MX˜ óËU¶Ù£ß¨ Ù�–ù?N|¼îÄB›¡a8ÉÖ7ž5T6Ê­†`ÛÙ0Lö7õí©9º°Ò‘r�ª…ÚÁBµ #&¯�Bÿ¿}Šw^žÞÁ‘/Ä<`½þl9oq+ïÉÈMl�•ÓžÀªH¾†!ìŠ]Û6`´õÙPÜÎN7“ŸJéòI6>X•Ž›ÖbõœUåºÝή*笼ØJSøË¸�U¥úú„¾ŒPf(7^ôÕI6ý´°0¶~s ˜�¨¬ |ºffTàúë2 3§†âÙÞj~ù®˜»/ ÞŸ‹±‹Ä–ÄØrÙ¡ë±sõ lvëc|Ð-T?4j#ÇÌÚAn¼¡ÊΙûÈ%ÈŠ Âçñ÷÷“ÌcÝèF­ÎõS ½ø¢ös‘ü³F>1C2îËù!Øõ1ü®®Dç‰z˯�…ÊuÈÖ_¶ ívìbž¾F}�…!tñV¼¹0ÞjsS‹åÌ\1}sžþ”yÙÏ7VB,a8²éñÏDèsåïUEAÎ ÊÎZEwEaŠ"ð(ø“�­ªŒŠÊ©å§ññÊÂb~uŽ|Y!¬7•&–¯ÊQ˜QX­œZºqšoÆd´`{—²²² Æ$±�a+8�ŸÝÇ€Í$­Û\Ø:¿>l�ßšlEÑ[ØTÈË Uû£wü8)FMV •éqœé‘Ïœz…¿}˜ñzàÙ7Ë�ðR¶¸|Ït÷¯X÷ÌÍÓqn‰ÁPì»OšUéTe;  _)q¸÷ó(Y�_�à°ñÕ4xµê—Ø6‰ D€"@ˆ D€4pñññ: ßo¾»Jšnry½Jå¨P}ÈÀûCœ°(Rß^вŸqtÉàJ�Þ4¾¢ÇiP� «’<Ä]¹†”»÷ÙúgÅ0wô@OÏrßœ*®Y�d$Å".1ùÅæ0g†ó­Ѿ£mxË©zƒI1¬n†Þ™À¼\Ý;ÂÓµâocê’švjI^b¯Å±óž¯clÎXµrt€³›+ì­T-»å€dÄá÷˜DöíR8Oë.ŒuU?|Êâ´’#Klb¡¶nôï‘Á> ÷C+Wwtót­öwÏ‚¼l¤§¥!3ã.î³{]¸IZ0§šŽ^U>ç2Yî>Õ�vŸ¶h‡¶Îpu´¯¶n²\ müéOšÏ$]c;{¹éÌeìøÛ…£¸ÇÕÊTTV̫ʑ5+µ+–7Nããb¸&G¾NEaã þƒª1Z´Š¨ë}nZô+}ÏÙHÌ”ïô�±ôƒ¤>O"µEˆ D€"@ˆ D€Ô�¼s_HFb¡Ñ&?^£¶u“Ù™ÙÀÓÇw…]^}38º{ëv>µªáÚÔ­jM¡œ™�#¼ýÙ^‹ÎX9z"€íµÝ´’S[=l}+{øT>¤2ý­Ø ™îÂ^ûSÆšªÝ}Z™®”OˆÀ£M ¾mT�6mê½*³6îÜT.§‘z)[µ\}'>Ö+žKúKÍf¾ó%gЖ’] öýÊFƾÓr¿™·u[Os"¡ D€"@ˆ D€"Ðd”ÄaåtnÝRæ<ʳrOÛ&Óê D€"Ф �¡¸IŸÞFÒ9ÛVhÆ©š6fã´0ç¢ð›Ðº¤€ý3½ÿabmâ? šÃmÆ+²nQ«qýœzq�­Qð!÷«à²£dÅͧÓhz¤ÚõKÖˆBD€"@ˆ D€"@ˆ¨9�Œèï±iÓ&¶/ÇXóÎXÅ-5ºzÙørköÖ¼%ªIˆ D€�‡K€Ü.j] `ÕNƒ€¤ã"ŽC¸:Àñãç£ÃÄ¡°÷î;¶¶IõG5\Æ•�qEkâh¾ä yÕ¯|nÑÀf:¿à‚«¥êòSWD ëWÓ`Q¾t=¦4¬~5ÓŒF-ûU�g€š"D€"@ˆ D€"@š.�›GWcμÈòœµ / ®á²dvåÅQ  D€"@6�êÛÞ¶ÆÔ~$`�.ëÂdÏ]C‹÷¬ÃõgÆàLorzÇçü ±§ãt+ k �÷fV“ÛþÅÊÉÇßD|tžoÀ¡ºë—¹¢×–®õû—NeýR(G"@ˆ D€"@ˆ D€h@ tÙ.¤ož\ÍYÕrä–Šä0…ˆ D€"Ð@�¡¸�œˆG]�ÇÜÇàÉß¿DËö¦H¤"OâÇ<‰CÃþ…ôlóE›ª^Aúc•¸?æþt/ Húßo ]ë²\­CuÕ¯’g‘Ï)kÓÅ™‹Õ}°²~Õ½Ô D€"@ˆ D€"Д øÎú ÉÉɆ=¹Êðù’ ¨®/±ÏÌm’œôŸfUÓÈÜ” S߈ D€�†B€¦žn(g‚ô€™ë ô?‹¬ãßâÆWß ;üJÕ¸D…á÷®çÐí÷hïZÑ%Ü>W÷ÀÅ^MHuÒ¬ÐaÞÄïY¨¯t`!âãÆ¡‹§Uu„hXöáöˬ�;ŸâbC�þ(Cµí¢Výª­TŸ"@ˆ D€"@ˆx” ˜YÙÕ-ƒVëÍ̆ɱ©µ@ˆ D€�º"@ÅuE–äÖ�€Zÿ?ÅÐôxâ÷ŸÐû«08‡ö7’wW–ï«Ô³·™r–d#U�šy��û(¹ü�ÿ¨ùزôÊCµ_¶­t†bQËì_oˆÁZµêW­!D€"@ˆ D€"@ˆ D€"@ˆhâÈPÜÄOpã\=á4h z}¸A'?�5ß¡=Û‘‘Í'ÔeØ�þ±Tn |33� ѲàúÕ _lÞí?j6zŠÞP„"@ˆ D€"@ˆ D€"@ˆ �2? g¹‰ôÑÂssÆZœFfB½YŠaá3n¾"ÌTÄo>�sK1¡Ñ«Ý/+;ð½.¾š`d8n´(Hq"@ˆ D€"@ˆ D€"@ˆ D€<2ÈPüÈœê¦ÑQ3¯�J¯âzí–=<ÿµHj±tC’.ç ™”ÒXÕì—™Z’ûZ¾YrœBD€"@ˆ D€"@ˆ D€"@ˆ  Ÿ€YÃW‘4$ ‡€UÿgàÜ~5Òn :Büó‡ŽrµÐ¤zý²B»Wæ éx˜¡ÅC¸ñK ‚]k¡U%D€"@ˆ D€"@e)ÑÇ•|_�…Swû»«æQb$P��¸Y€y1Ì›·ƒ»«M½u2%&·ó‹Y{æhßÝŽVõÖt£hˆø4ŠÓDJ"@ªE€<Š«…‹ × �d<ˆ»y•KÏûiò¥b.°q°•bõp„ך9ú¦Ú»ÔO“õÒJõúe3p¬Â³;ë™7�ZÉ,àùI)4Eu½œKj„"@ˆ D€"@ˆ@c#�‡ÝSžÀ¨Q£T÷¡Ó¿F%Ÿ[‡Iß ä]þ�»uFçÎÝà1òÿÕã¹g×á$_ôéÓ‡í¾Øú;]uÊÓD|”<(FˆhÈPÜ4Îc#ïERßxg:=Žß>;ˆœlµyŒKp÷Èœž*z± ]~ö®9Åç¢ð“URÀþU´—T‹Ÿuð 85n¦²ÿ†±¸ô˪'¼× ã¸Bt×鸙TÞÚ_’ƒ˜7ŸÂñ¾c‘V>›“Q7ýâ   D€"@ˆ D€"Ð@ X´©@±ŽÌ¿“¶G†€¹…ÜÕœûìèïñþò÷ñþû˱a÷9TçËŸ]G¹i+N 9õÑŸGûüSï‰hš*²²5ÍS¯$s¦3¼f-|§Í ƒý€>°iç€?2ã‘ùiòuÓ=ËêÛ†½„V^Á—q¥Gg\‘«˜ ¹|Ÿî&³�2\Ñù“éÈ|þS–.‹ë{kýr˜¶nûü�|\ìÿ!\éë�Ä¡m€+JRpï—pïÀeC�þ•¬ç\Í~ù×ß´CbéHˆ D€"@ˆ D€ÔLÿ*!„)ÙfÞ9g7¢Û¨¥úxŽþ@ÿ?"Š‹äŽ&ÁpUÈi•„Ž®Æ¢¥‘úR>-1u‚?ì+©CÙD€"@UšÙU(Ôïú'Pœ¨l³ôø!d »2YŠ™¿†ÇÇ{JñÚØON6¼ð�* ²5-ñ)îU±|EŪÚfE2LçÕe¿Ñcç/øãù�H= k�ÿÑjÄ$ÇåP.JåH-CÕý¡–ÍQu"@ˆ D€"@ˆ D N XÙ;•³æµvs¬ÓöHxÃ%`æà‡Õ‹—Í™ŽžýPÝ…çÌ-ÚÉ�«�G²\™BD€"@š>šzºéŸãFÐCxíýî §Ã¼}Åê64^ߟÁ���Ú(‡ÇÌ-+`"÷1s6�‘Usðµ«hz3Ot {ºœ4sANe›WÀÍU¹ l¿ÌÜáóY,z²V�;ßapûüC89ת_F "@ˆ D€"@ˆ M‹@u¦ nZ=§ÞX¹Æë+—àõ%lŸ ú �("@ˆ ÚP³µi#™¤�j°r÷ƒ÷Ba_�¢ì ä§¥áÁ½ûø£¸ã±ŽhÙ¥lì�,�Fm˜yOÃSéÓŒR«õFÿô[U-ŒVã?ÀSl¯îæ0íSØ{<åÊ1Û Û”ÃðñÑ çþcì™Í*0¤çaûT[L 7TdèÚ1Ä#ç¡õŸæq2 ÁЭÈý|:*ºíÌ &â?˜4v‘B¤NBÐbœÜ¹ Žuûy½ å¾Ú½;>^…¾_|�|B°zébÌ�P'¾‚6áÚð©u¿ ¢ñbs_èŸ8A ‰D8³‡¬GâÇC°i¨/VñÜ|#ê—•ðáN|ô§/Âw†ARh("ÃÅ‹IÏiýωx*{º�]¥7׬�à­Hã#µyvÈròð)»¾gTÚ[ŒIÍObÕœ—±T傚µÛþ=®u{YÊêQˆ�&A *³Þ6‰ŽR'ˆ D€"@ˆ D€"@ˆИ@Þ9Lµõ¨ÐH,´¾ Ë÷\Ó¸q5qøôE_t3e$Ö)³c»µÆ»cÔÒj/'?3^/‹/£×MD7U#±P$}[ãý#I†¶U›³­#ä•· :¹@EII—±K2Öµ�skÙH,ÔÐsŠFt´ñθ]ËÄbÅäœ[bˆ¥v¸4µà…óáU´ÍðubÆA#±P)r8ÍÀ©¼Š$Ô>ïòî×0e^Fb¡‰è,š8Í_ÜŽ:VGÑ¡Úð©}¿Šq[ÐF7¸ÀÈH,¤G̃‡“‘‘XH�^ß×vC1µ}A¾�£ÛŒ�ÄBâ¼'<ʉ…ôu»awœÚ}Pûg‡ _Ü $yÄû†»=¡j$ÊGnù Ij*‰ÂèHˆP!@cKT P D€"@ˆ D€"@ˆ •(Á÷+§33'·…ÌBØÓA—¶6È»�„ ¿ÆÒu†Jû WI« à]ê$yßé¥aYØ ìÒ·/dF7½‡¯�·ŠzÜÏæb¶?ç^¨«¤•;½ FÆËY«·âéîHŠÜŠKez‹†Ž†wâ9„¸²mœ­:bh(3iÔýõR:&{VmV¹Œ˜(Ù~4ÆŽÜ]†bÖ¬N°¶p5G~ü~lá¼%Å Žõ0�ÿ·Bïi«±8¸�Õ,-�‹–<Ÿõeç/[�Ö(ä*2Ó³£Ÿ®<—h:èŠõÿœˆˆÁÚ)‹8ÙáX¾ûfû›®[Ës Ù<æ9<âP<Þ­Z·¶`×óÏø�‘¥ËkËLñóaú”sÍ®¥•T¯-ú¥»»ÄÎûÌǾu�øvþDlÓtjû`õ¾uhwj=¦¬2¸oùWÖO0é?ë> ÉùcçÍ�º‡gØaýÐÒ¬ûŽÝ`ÞñÞ ­ž²Hù±�¥3˜w¼ä5„ùËFÁw}d?Â#…Žž9ru "@ê…ÀŸX+UÙïeS{3–g¼ ¿ˆø]øM î,,îìõqž›Â.ü.váç…°·0ì¯>a·5ì“SØ[²]˜éXØ…9^Z³½�aw`GG¶;±ÝÙ°·eG¶»²Ý�í»=Û…_GlïÀöŽlïÄvO¶wf»Û»°]xstc{w¶÷`{O¶ �÷^lïÍv?¶ ¿.ú°ýq¶÷c{¶°} ÛÙþÛG±}^mD€"@ˆ D€"@ˆ  š@\\\™°¿˜²ºJ{ƒî ¯\ñ•²ù@ûF¥ÛCÖÿÌçÊáée‡·®. ;œ(§UÊ� “ä"(¬,·’òBvúÏ«å:L'ŸY[Ë’‹•‹ÓÏ–-ö‘uFÐú²teÍäD……*ô8m=«l-ýçõŠ2>‹iâuȹ|c¦Søþ¨êi¢êÙõ!Rƒ–™¸F¸ºÅW¶Jå«zî¹êeW¶rÜC¶–=à3+ ç–m á® áZ¼«,‹¯ó ¶lYWÆgYYÕ¯j^PÕÂW¶Îb×ñú²“±ÊëFª]œ\ÊéƒÅe‰F×¼T¶ÖíøÔº_Ζ±q †ëħì@²¡s‰ûÊØ‡véú™¿O<;ée«¹û~ÛùªP^× ‚ŠËÌ÷‘ä€q�5ä¤ÿ¼LNŸµKq}iõ ’OUyæÂsdþÖŸË=s.[2¿,ª*K¹ M°ëR˜ã_°Y ¶+Á†%ز›–`Ûl\‚­K°y ¶/Á&ØÂ›˜`ld‚­L°™ ¶3Á†&ØÒ›š`[ll‚­M°¹u`»Û[œ`“ls‚�N°Õ 6;Áv'Úñ›ž`Ûl|¢½O°ý 6@Á(ì‚mP´ŠvCÑŽ(ÚE;csVVØE;¤h—Ž¢½R8ŠvLáÈÛ8…°±Tˆ›²› éªâΊÕ|¢�"@ˆ D€"@ˆ D€"P=lÊÖx©†žŸ0@Š)VŽžþ:f ßuëjËÀKɃVãðæòkuš9úcå÷ô3Ö ¥Ù¶ßÆðöj%GVE …n½‚éþÂ7kys<Ì�*%D¯Ú�è)ª4Îû ßþõ[ôþß�!F„cI222t{vA —“‡¨ÃR<8PøÞ_ñVPl  âòƹŠê9•N]m\_Ž/Æþ•t)Íʯ¬Z-EýRøËGÎÑ$ä=}3¢6ÏE€§òº‘„›¹böê}òõŒKȬ>Itå�šóÑ´_>Ñ]0 ›SG�åIa–©.‚�HØlá=T°Gé·ÌübPqý„`§63¸õlX†-´§Î%Äì=;–aSL�^wϱ9á¸ø@"ÖN\n}m÷ÁX¹o­býe¾…‰ ¦�¡ØJ'D€"@ˆ D€"@ˆ D Š¢ñmdlËÖA±”³ø8R–»þƒ—tnDr r„¿Ë¶Y>• gj%G–haÆ_'©ò›ï_§r‰[pôr67><Î6]zCÂ}qœšçþ3NNNºýÉ5'e¥  Û‰}ð¸·h¸“‹ÔuHpéªÉö¬Îe͸®}ïa2ã̇oÝNçf§o:1·êÇR\ç|ªÚ¯ŽŽºéAuýgS¤Ji(¼;ŽÂf…޼áWŸXîw'ÁÙP¿uì#Œ ôѹ 9fN]Á¼™¥Mº¾êìÙ!56ެË7\[$Dà‘! ¸:ÓFˆ D€"@ˆ D€"@ˆ¨›¶`öˆËÉn™Ò ×,—'b@×°··Ò͹X=¡5+�wûš¼V+1¯Ï@ì jƒ;wî”ئ K�”“srŠ¥ˆVr$�b€­ÍëgÊ)Ô`x Ëêf­”"l!½ÂÙ¦+†±ó)è�ßò`/ÌЙ�ã{u‰B¢w�DÆ’Á:C}Ar4·†µàùÙx>G ³œªovR²ZÔC—²ãÎáÀ·»q`ïI\ˆd×´ìË€G+®}½·¬h •Õ< Mú•£ìšÜs–Á;·WÁ~^ùY �Zħóa¹T�=;ä&0ëå¿(=ܹ< "@jJ ^c5U�ê"@ˆ D€"@ˆ D€"Ðp ¸"ôýeX4j©¤bdøR»~óAHèP û7L�0¸n æÂ²€ü�ÈH>^A˜¯ª•ãæì,ŒÍ¿r æ9”yA†fh.¸/L‹+`Å­¡p¶G¿QAlºîH�b'¢0ÛŸY,³/‚³3Ãe8Φü#™Q8ýÒE±ð™ÿ¸nI)¡�ŠŠÕ ‚JµspŸ7F*3kË‹Áûs&aQx´R–Q”Ï´³–|\ùdÍõâÓ€ûUcPuõìàòë*,½J D@[d(Ö–'I#D€"@ˆ D€"@ˆ � בK{¸%Æ �§ðjÔˆF3pE„¯Ã<ÌÂÉô#À±~>Gú„ÎÂPëJÏC~~&<][š,§•y=*|€›#±�~àd^¬t?n(œ=ŒbF j"üd4¶N÷AöùHCŠ.™ý�ƒ¿¥`dˆ;bOÉÓPÒ½Þ<ÌEMêãÈ�3ж½,Ø K�ŒÂ>A¡Ú»=kJ\g7ëÖ…KMçäWÅÀ-¯ó@y>M£_•�ÓìÙÁ5T5ã;”‚)FˆМÀcšK$�D€"@ˆ D€"@ˆ D€×°ÍBO#§˜¥ñ±¸b÷m�[«+q%øíà~Yxè6ìX2¡¼‘X(QÓk]–^�¡¦Ú/†Ðè¯ñ3¨ŽÎF^Ü)DìŽ@D¿Cv£º~ê‰%�8�Z�«{ÄùQ÷‰¨ �Âl¤eå¢Y3 ´ÔöN.°`aýV€ÌÔt”6c몔úµ+l-ã#+‰W®£Pè”™:xy¢ü”;†.Óá¡ÈMOE~©Ð|1šµp‚ƒ�üÇkQN*²ï³t–[ÚÌNöºpý+[‚˜#ßábV`ጡfë{Õ×-ÑäïUî>e«†¹té [éYTÿgºz-rº›µaÏwMŸ1�áÞ(ÉŽÁw‡/‚Ýpî9ƒ½í«‡°¥ŸZtOÓªù©Wqãn>›j�=O[yÁÓ¥þΓ¦„5ùg¢æÄH  D€<ªÌlà<G“;`ˆÛ(½*c‘“/L—+ÿÍU%<ØMÅúVm]!Ø/õvÉp¿¼þþÕÿÍ¡•Q/é¹ç3f#X9£´.»$�Š¥‚`¿m�,N\^¹ –œË WKpÂã£i�8‡¾Þ6µnÕßîv†óp»v7ÇQDè“èPOötè$¶Z‰'·\¬á… �/YÙ±xâ “wMöïG�71ÐTûÅžj=ƒêêZ¼öíbŒ�i$>'s�"€_ݨE‰húêéõÜôAR5$�—„›¿GÚ¡_�Ÿ–«ü˜s´|â)´9­*°Œäœ;Žì»Å0é*oa�.�ÐÊÓÑt£®äEÇ� Ó2ÿ(fÎ'�³+I ¨)qûç`ËAéOô]ð &vÓÿ—ý¬Y³Qªj¼o=ã'ÅK (i/þ³v¥A]OL[·Ý+_"©±t¯ièYxëßš ýÓ†uÉê¼½áeèOS~XŒcwÅ®>ÌsX€æ�Å<Ý߉õûC¾Éß«ù—ñÉÚiúìTÿùÝh<éÒ8~"%Ôá3¦‘Ü ?`ìÄyº›ÔgõIDyˆ7lÝ Ÿº…Pué1_ÏÄŽó™ú Îo`ùò©šj¨º&µ/Ù䟉µGDˆ D€( ¸vÇ–©L­ƒ„ Ù&t¢äŠ (¦+Í2–ŠªŠXã‰äÜŒ••m5 íÉH,óh@!Å•ØRyí™+¢6ÌîámvŶëû‡¼‚� FùF~r”d$†£]ë‡y–Ås\µcvbÝ>cg¾¡Þæò¢£•®ÁÚ•j|j×E�jg#%!S’Õ¦·_£|VH0úܬ|b4þg¢ÜO "@ˆ¨�‚h,2Ÿ‰69}iÌîµX%‰òA‡¶¶R¬¢€MûžÜ´Õ˜µd;2*ªWÌX·L.1|Š$3]g§Dc;¼ö§±›�'×b!­ä(„ê"áS&a{´òRö¹Mè3‡›wzþø+~h²ªuȹ¼–•§¸öö×2å…ˆÏâðÔý0rÅðPaÁeåØGúƒV™¡³2ç<ΙgFs•2%•sÖèEXSQñšg�ÁA’násÞÇ)å¥Ãò²±û�¿Ape¶ùF²5Õ~ øëîÙÑHN.©Iˆ@#% ü®ÑH;Aj7 ùÇÿ§¦®«´3YsFâ7‹_ÐwŒ{¹²æÂÈÅ›å’UN#mΤm[„�_½jô¹OYü1ag%2c³#ÓFÔ¤Ç_•’-;ö@Õþ–ªPàaÐÍþ0¦6�ŒØ(¹éV¾pQÚyä¼J‹;+ieÛµŽŸ1toH¬UÄG‹.±0±ÒÌ @G/7Óe)‡"@ˆh\JŠŽul¶ÐùË04°<Û9¡8=‡v½‡Uáœ51ä%»Vñs¤ãX4ˆ4|*Š^7NëÞCHˆÁà˜“€/ïÅÊ ž3ÇàW²¢Ý5zÝ x¬û‹×ÿÃüÚ÷³‘tíï]ŠðHCµ�@©¾ÐJŽ(O>FcŠoküº~žî×·ÎìÀÄyÊoa»ÉÅÅP]rÛ¨ÆÑÌÕìÔ€×|â°>’„žÃF±0güF(úu4¶~ ÅKpnûðm\,¹¿ÃîÆ�d!b¿Ÿ)¥……í1mñt¸›¸”lº?…Y¬üC�Uc»aUP(æh¯3:?xpÍ;>�¥sƒkìå,©S‡ï �c¤¡…p h}ËÂV`8»vòãÏ`ëÄ9Ò”ÓÜ]V‡i#º©öK SwÏmØ“"@ˆ€¯Sµ¢”Fê�@Áyœûÿóh¹ütû[?öƒ-—MC½Wæ}*)�õüL$_ýnÍÄ3h::Lé!,ìbØr‘óóAæ©|ZLŽ¯Æ¹ÍƒðÄ‹~rš"dg6…NÉ�BiªêÇ,,QøË2dr¿YU(B$yˆg€Š[ÛòŸ5b‰xØJ�v㼤„­�¯aÚq)©ØG®«q’~ÎìÃmD (J»„TI/OöᘆMI8(@ˆ D Ñ(âgÇEø:f€U~ÞQôpÛêÐ ë+ ³¹ŒF.�ÂüþX'YÁ¢!E�3îž² ì1{O2¬^‰[ÄrÑlzä)œW³Q•µ�µ’chKp÷ÕaÁuó&*Œ¬¢F‹÷Åb‚;çM+f°�[œ�¬Æœ¥Fª0sC ³Ä®-±Áp?yñe›î�Ì4 Ɉ‰ @¨Ú‰Ù7¿ãÍÃÒÈŠ›^·h‘Q� _À Åj¶g¡¤•7Þ<° [F‰Ób³4Ý€NLP,T1›p@ç*²`‰bVhùÓ£²T­cŽƒçb׬E˜(qfÓyÏ ®Wú6BæcVÎ:l‰¬u“• Ђ�Výâï 6¡µ´ñ:JŸ…¥\m¦Ú†fÏ mô¬Š”ºbT•¶©   ƒM=Ý0ÎÃ#¯ÅÝoÑÏQ° ;„þ/Ž€�£=,ÝÑþÙøå®ÄeÄí45µ¾˜ÕˆgÐeü³èò¬¸ÏBß°=þýK… `I8î²xê›ÆÌB¯W_…�aïñâ,ô^ü/õâ”Jx…7›&'¸w&*™…ˆ@C!��DnJÜv�‘±UxÆÜ•9º{8Ë �D çæeN›îpnIcU9 $D€"и ØxbQØ2„ –PÓ[èâ­¸’UŒÉÞ¦,{&êÚø`mT:„-榡–˶³S™âÍÌÓ7GáÊá­©P-ÌZ¼?ï|–™vT6­ä¢#qhN31Ep¶�MÆÊÙ;Z¡Q]sV4V•ˆz>)øì¶�qèÉC´òÂÄù2ü�qýÔ3ÿ^‡.¢�êÛÁ¢’âî#— +ög¬Ÿ? Aj×g;;¨\=°²“Û™«•`ùfæh+«Ë¥¡¬0as.~ÞºXjÍ8ºl²ö­Â“íä;kzËEjÒ†�ý2‡tªŒÎ¥¬c[´àþô0·’׃³àÏ-76CyÎå ;ų†;ÿljôr´µ|vgJê( ÖâÜšÛÉý—/výrŒät "ð( ÇÀ£t¶l_óp{ÛY»ösà3Þ[ŽB6Á/ÁmP’�ë ¶|�ü{*Œ¾ŠJEüX29ÇÌu|ÞƩ9b›7ð€ 5kU�¿UJŠßü’Ù))hîêÚ §Ô‘ÏRíCù9Ⱦ“…ûù()fׂ¹5Ú8w€sëjœèZªQšu�ó ê…Nnú¶‹rRq3ù6 ™^fÍ[Â¥SWØ6«bc…yȾ—†œ{9(|P¬[gÛÒ¶-\ÜÝa]U¬©ü¬8ܺu%Œ‹K§ž°7Lñ$¥³Ÿ¹N�}à`]ñkB*_K9ºÞf#-%wrï¡„ Þ0kî c#êVEBå‹•æ!39Y÷™\Ö¯-ÚÂÑÍ¥Z¼Ê ¥í  3)YwÙ=+œ§¶àáÄi¨¬Å䦧 ýNÌZ˜ã~æ=´pñ‚‡K%2òo!�3¶vì¤÷üÏM�C*“%UoÜÆ}ö>µtéÈîyÙ“¥¢º|^~VRÓ„÷²ðÍÏÍ̬Ѳ�ì[ÛC#Uùæ(Lˆ D ‰pÄÈÙKtûGyÙHOKCfÆ]ÜþgÿZ8º²e'<`oU“ß/"*¡�•º]L©ÊÑ;x:öE…"ƒý�—˜ÂÌaÎÞõ-Z´‚C[g¸2焪h¥•ÜzÏFTq(â®\CÊÝûŒQ1Ì=ÐÓdzOëúà\ªrïÉ›QÆvõÍ !k£P¶V=WNµÂäÍel—S´ Ù{ÆÜµl¯²PLÿ¼Œí•T°òÁæ²2Ô‘ÚF�Û`ðô•({fb.Ç!ã¾ðÛ—Ý[­„{Ë“Ý[úâ“™Þ“+Ó[_´ÿkɧ–ýbçàsvÊwÙ´ŽÞÓÙ5Ëvã͇�ð2•“nã3eeÓ�‹3�õª�mž¦ûS^±ŠS*¾g+®K¹D€4mUù=Ô´ Pï>�Œß‘z\VÃü™a&~ÛÃel3Gè ßÜ�”¤WÐYuJYžZȺKWEr“ÿXpsëƒH6Ðê­s0~l<Å_’ �;’�‰G¾Ãï¾A.?Ï ×-KçIøëÿ̇ÇJŒG\�šsnÆÈU�‡¡MÁUìý÷k8u]ž*V_ÀÓ>Ÿ@O¹<*ÌÀ¹cûpöô׈M4®+t@·Ë1~|�Ê:ÈÙØ¿d ޼›]¼z!õú±";zbü[ëñàÛyøî¼R~ð‚_0¢›ÈJ+9\ÓB0?‡¿X�Nÿh”¡�vý1&±5£ÔÆ=ò’½Ž ;¿Ñ%YöØ€·ç ÀÙ=k°ÿàNòuaO¿²#|«oP('ŠªI {_§tÆYüù­t¾¹[?ÛÈ&Sn–¯àù/ã“_€86…Øž¯>Àµû¾Õ<ýÊRø›˜“¬(í"îˆÍZ GóŒñÑÚ¹ O]}¶'ÏüF÷sK›8ÖN^hö•ýøbëB$r†l}>{fÌ܆Áˆ—‹· G‘SéU|4篈Õå²û{Å×èçTÁO¾üóX7²dtn3b^ßS–M¡z%Pšu‡ö®Á‘Ó'L¶ké<£_XŠ~ª×µv÷˜6ïUå2 mz¨ òËÆOasØ;ˆ{7õXƒåóF«zŠ$ŸÛ�]_¾ƒÔr÷CÆÞóS^Z_—ʆ• ñÌØ»{¥º}t^Ž)ÏUú2y²(ƒ"@ˆÀ#DÀÊÆžMÌvÚ>fpt÷Öíµk_9lL4™fOö—xͶ†É¹f}¡ZÕ `åo¶W£J£(ÚTû%Á׿Ù!‰£ D ÐÔÓu•DV�@ÑÍó Sik= “6Øù÷ç’Rñ S÷›K«J°7þó‘¢`©"Ö4#ítÝŠÀ¢£Ð¹us yq9¾?5»Jã$‡Ý«æàØiÓFb¡_…i;±cÕ@ì¿’]çÝ̈ç>x§}€ÿùW#± F&N}6û¯ç©ê”vr vìü #±^Æ•ƒs°bÉÇåŒm§À¶rÐÉW‰…¤8ìY1ºœ‘XÈ9²u»,O+9‚`Ö{}–ÎmÒH,»²&Þý×ǨøŒ±ufå©Mmؼ^Ÿ/y{T�Ä‚Ô8üz!A”ß ÞÕå3(Eù ¸.w2ñÝŠ�Ø b$Ú*L܈ÿ¬ú\±4�R‡Tìÿ—¶l7a$ ßý;V<޽Qʪ†XFœa¡0avÁ�سQÍH,ŽÃ±�GàÓI†šj‡Úë#J�;ð:Þ[«f$J°gÓeÍÇÿ‹Ã²cy6ªfvheU.è{«â»'ê‹%’‘p@à@ŸèÞ�x«4à“¹ o°wEEFb¡í´op!ž[Û€WH³{L£÷ªøî0èØ±‹þ‰¤rÎE|úú@…‘زÇ;ø§ª‘8‡×�ƆM&ŒÄ‚PöžßööãØoâž×µ[xÛ_÷Á>®ÈH,”ÌD,€–ý(üPÔ�¡ÿˆ D€"@ˆ D€�G�е3ÞûkÎYu��»è½X^Y3/_…GGaFNùB†”Rå•  é<.ý=ñ{Rå¼ÐYp®ÌéD.ÝHCåVË@ä–¥Õ§3šÿi–oŠ@\Fý›ŒK‹o+x*Ìþ%JÐ<~4�¢–!’uü's[�1è;â „LÛ€�I¯¡³ÑÒ�ÇÖ®CZ�~øÍCÂ%½¡˜¿ÂïÝ^#ÞÁŸÇ½É�£ïñïNBM¥´8Ù «^èÜÿOZƒñÓÖ`ðà1JÌ ½'RiÈ*J3LO[�©/Ûjþ<íxµ/ˆ˜ÜÁ=¸qÍw�á¦0ë)Û´’£—ä^ù+Ö¼£ðömÓãüy2;gã^A± pLü_ˆãSŒÂ¹H¼*çß¹ô®Ü“‹¸ô˜„^ý'ÁÃYo,rºöò’ (Lô÷ 硘“ä±i‘½MË{µ(ùªÞƒ×0pA¤iëõžš´ƒûŠIúcÚœOU£ž‡Ãÿ ƱD¾x ƽƒ§ØÞËC>×B‰S7*žb-i€�âÈ<ôƒßÁÓ³7 €¿X¥+̨�¨v£²kC }½²Ï}ˆ-{õÞñ¢žý_cýz~½Ä$űmwnŠ\GxxÊý�¿Ææ¸3±•¦ïÇîÓò½cü]dïcº7L€3$kÊ'+›·ËÆ¡ á™øÔä0<=sžñ‚âæîfôb3è¤Ù=¦Ñ{UX†!Ë ›ðžq妃Ͻ¾+þ1W¤Á#@çÑŸ±!žVYÃ.ƒ ˆ.É×+Ћ½ëWêÞ‡=”÷Ʊ�ËMÜ«@Tøk¸Àµ)¼[û²wóÓ3Ã0~ò;èë7Ò»›M•íØLê€. å3Q)™bD€"@ˆ D€"@ˆ¨_ò—Àúm—Z#�¶Öª¼õ@‹ÖU¿,s¯1ÓàW¹:*^>?,çÔ‚¾óÑoå4ùl팭Ò± ò[l^Í ‘:“H,�#ì@Pè2,xy"‚¼MLÿ­±æiž![1·?;ÿº°æ°w“ Xw™†¿¿5Ro”cFKg� *-)†M«á0aúõêÉÖoT6‚‡žl|aÆ*f‹v§jU¯}¬4q˵hò¶õ[‰—g�“Öf|rÔXì]¦à-ÜÉטçäp£©£Kƒ¶ð<#†=Oî»NÉÀÑ=öY|ôÖdÄ ]·n éºK}ȾÉš™üYËß…'ãão›Œeïú€'L3=¤.Ï™(OÇk�¤•�¸œX¿öIG �M½†M£*^Ã8j®ùŽ\׸÷®Gbðx�[�汦÷RŒcƒ8ãá1bžýëp‰9ð.qÅÅ@IDATŠÒÏcûŠÕpmk«oßÒ/¿»ùºÁÌ iåÆ�¿u>l�Z]i;´­«kF¯Mƒü_Ë{5#Ñðü.°ÁO-ØŠ¡ÝÄiÀÇ!ÐïßxoÓF‹L¤ßÍŒ®ýÄoàÎH,x .à�K£žFß=sñÉÁ rvâ×ë 1Ú‹”­` +Øê9¼ôÎbiºkÿáèúåL|vDœøœ»Æò¥)ÙõâµÑ‡ÉbÓ@´I¾/ÁîÙiï}ˆîÒ»q*úE¾� Ûwú¥?¸wvãâfpîâ\Ò÷=÷ÒEölñS ´Ò.ÀñÏrƒ5†ãÙqýd9toÈ,ÔBó¹öÃ&î\bÊŠ�ðuâFôôŽ¡ãÿŽÜÔ3ø&ü0[zƒ¿–eµºÇ´z¯æ¤ÆpýòC;Ã4èqÞfïdþ:v`KìdK¸È�áB—?U10Ä…½ž†{g²÷aPÔçxoãJC­ñíWñÒ¨®œÌ?ƒï¹Á.Áã¥gS\÷ zK³q™�“3è§È„iùLT*G1"@ˆ D I°kÒ½£Î"@ˆ �”@Õ-r�´ƒ¤vÃ'�wþ$§$3Tc3rð¨ZÍö¬ØM¡è0øïÿ7=gÕª7ÖRflÍÿ‘Ó±™íï¥Dãðî/ðïy«ØºÅò¾ÂÎLÆX¼þe<7a$¼]Õ?D˵jjfí·Ž¢qÈHN38›ønTRmæ4óß®–%¥y?楗jH©Ë`é�ë¸-µÌl­ÅÅsFsB¦#ztñd†bÑ;JÍjÿç?†?/Ë8lç‡à'{PoȲ0Ê¿VJi‚qþå N~˜¾áKNŒì]ïòFb}{nA¯ ×W;qAò‚î…NnÊgµcg_VØÀ(íWd”N…‡ÑK3ÿJ8¾»nè;t›üîù ¤Ó½!ÓQ iÉ'×Î]�é6s¹ÒH,å¶.ý0y!gÐçò„ç«&÷“©Õ{5ãšÜ/x¢]³<¶ñ3FˈPt ¥©ûñÙ1YŽËè]˜ÒSYˆÅì}§âi¿-Øq^ÿ.È»—_®L~â¯ò=fõB�ŒÄR…föè>j1ºK r@»g¢,“BD€"@ˆ@S%À9G$Ï|×TûLý"D€�‚¼1jÜWíÄìßÂÅ Ùç°àÉwñø¶m˜ì£üÖ#¡#К@“w¤ÔÉÓžÀcÆŸö+hƒyÅòŸüÌšWP˜eµŒD.hƎͱ° Fb!ŽC8ç> qЉ#uEÒ¥ùÙÈÎʨឭ˜BWì—½«&Ì]‰£e�xö0Vϳ ÇH¬š7ÝÜlá;õ ì>ÓDÖ2VZwÔ&³5Qãhþ­kœ•›þz¤‘‘X/º™u[© K·¶*Rv yˆ¿&¢�î}¼$9é×�Iá6þC$CiQÊEÉ˜Ž–v†é7µ’öÁÿD\ÒÄè5s‰Š‘Ø Zë¾è×JTó’Õï×ìDÞøÈîzfDP3‹’èø°0ÞùzD�Edd$ÖiÖÌš›ÕÀ­[)ŸõÉǾ�¯Qæ‘ù ë""%ÁÑá«01ü$NæE€)1Ré‡(ÍCÜ…qîôQ$$œGžÀ�3îÚ‰Ó@ƒýyfiä]§¥ö© gdq­¦ÁWÕØS€[ñz/`¡°M;7Uc²�—Ÿ~¿û—bÎàvóŠ4Þ¤i| ks9—yLÆŠS[³µ»H^‡BÛ²AÊ«W©NvŠèÉ<׺Ö×JkåÒwŸHm ëUz3ƒWvzªÊ 34+M@ªxóZù”F QPÚMÙkƒ‰Ä:t| o¦×·ðT ê5_”v‰3àºÁ¥%#gàÌßHÊ[ú̓¯�­V@9À`8‚˜0”–æà>wvêÊ[iµÓ'÷Ú÷’÷³Ð‘Áîo¢?lJzÞÁ³‹4ÐCª`ݶ;:½3‘˜šÍÖ–G­fžØˆß¸wKð ÓÊË�„Q >pOn䛉¥×žÃèÉSг‹;¬«ú¾Òäãz[Û÷*· ƒ µ0ñ¿¸Â‰‡×J,_8NžÅ‚ÏÃYÇq”\dù¸?Ìr2�Y`<ø�yA›™!ã7'=[Þ¤T”£z¼€ÿŒ¨ÑK1jÐ8·nè?tT;A‰D€"@ˆ@C&`f×:œ©­!w�t#D€fǸu «¢esú8gÓ1Û_þF£ËŒÄ¶}°E*�'n1¯b{)…D ®�¡¸®È’ܺ!`f¡\O˜ÿP^…Íl\áöì›pîÙG†¾i¨qqßÄÀéYï*HxE8Ç—šµ®nX3–ef㈀�éè= \&ùbQ$_¢†V^D�†K¹_lß(O +¶ÇwÄ$ݱU\jÍV!‘‹àfŒl„ué`ÂÛ1É‚‡»aëèÕA JÇÒ¬‹ˆøäŸ8u=NJ«,àÁÉ)ͺ.ÜZ –¦‘ø¶=áÉ­ÍO1Ý®S[]sZÉ’pñß—Lìxû‰ÊºdÈ÷„G;µò�ÄyM· ~nU”HÅê—€à­~Gj2=:©ÿØÍá×ÕV\·‚Gúiœâ œý‚H+ (Q°Âw¸–=Æ ƒ©gBI>îsÂílåëPK}~; ·Â¦Äí¡:ÀD_¤„{¶¹tì bpw„«§™‘©«í[˜ÜðGHéUìül§Ü›˜bíf9‹BõEÀýƽ€#ÜúÔ…iÿÅžµlg*´ñ/ÿ?cppL]§¬œ÷˜¾ÇÚ¼WKï$)—aÐ —ÿ¿ù;²KÇÁ¹Cxæ•£Šw{á±9XqLQQȶk�rï_k¯±èkõ~“î¡L\Ù?—íL’U/tî5}žøü½Ê/]PQ[”Gˆ D€"@ˆ DÀ˜€•÷t$N‡ÇÐERV9cq9#1[rÙì˜í#Õ¡¨Kd(®Kº$»JìdåU©l¹BÒBªår*L0ó �Û 7‘|\_,÷“ŸQÄ Å5Wa[µË4ƒS‡^°,̃�eu½\ò�wÏ­[(§lUÓ§$OïM¼uí‡Ø©â$¼†äÁNvhÑ`Ÿ86†õ¥þµòd^ˆ�`acÁKËÜ¢WÎÿ(eÛvíVÓ<Ä3ªxΡɣ» ³eÎMÄKª™´­l|$%íÇŠ 9/h!Õ¶Î]ÑÚΚõIð²lŽâä�Ü:«L޳|­äÜŒ*é6Kþƒ9ß¶U œ¥±Ê)¦Û·g£Üئ•dÅs}Ö‰®ÖVV*¢ÂÛY9½vµ„Sá:'��(?UÀk´3aðJ�¿*ébÙQiè)Ì»-屉ËÑÅC¾Þ¹ }ÐÈ›±³W®ˆòZ÷ÒWÅØj(~ÿøIÏùá7Úé“­ð0p(»ÛMm�#O�~pˆ\à í:ú1C±þ¹—{I˜‚×O÷Ü‹ûz äG”'žžj¼~º,…BõGÀÞÿï˜;Í›?ÛhôÜgƒ¿Ñí§ö:à©_ah7£‘Ç5µ¸Ç„y[´z¯æßŽ.×Ñ‚�ØóÃd¼4ª«"™�¤Äœå£Õ Y´T)ïí‡ÙÚé8•˜©ÌgSQÇžö�øºÇ;XÀÖ>W΢¬F1"@ˆ D€"@ˆ ¦¸¿ÎŒÅP1çbv÷#Obf$^|–Œ4ž(Ó”xJ'µ& òŽÖ2I¨�ÓÈHȃ“©…Úsï‚ÿ@oÿx‡¶eçØ¡¸†ê¶ZýjVè÷ü—èWýŠU¨Q€¸s‘Øóy­‹(W^0çø„.ÆÒYÏbäØ4ЧEZäR…‘ضǘ1c"Üì#*¿ec×Ü%"gÏö|¦¶á{7!ÍöÌÖOå½uù†òÓ®p^RÝá܆ƒÌÖ*ýLa$öDðìõâïYn@Cî¹–X!y¡õ�3÷]<ƒ›^º½‡Üçüd®íöÞò‡p…Ñ5í�õµ’“ϦΕ xbð´Åp¯|,«QŒf6ë`´« ª4�óšf†ÃNÒôÚRCh Òâ.KšØú˜¬!pe�ü¶^òu+TÎÏæ×rqG Æf¡lQòïœA”%p·×:Ëâçý*s[ò¹ï¸ë¶ºrÆiÍôaCZ”*(cœ::¯jyÚhá£n,wìæ ì׊‘ö+2J§Âãþ |qð„$®Íˆ÷àßZŠRà!p |ËúNµK§qéüϸtáäJŠå2ñÃÚWáò¿_¢»4ÀGVZ‹{LË÷júun¦¦¥×Xð÷Ñ8ÖÕ8bxQ&î]ƒ¸à�á©z/³Wã¤Zöx †t{!Tº•”£e{/õrÖž÷æ1%�ÇåK¿àò¹ˆM”Û*^z}Ù¯?Ã\ÐFˆ D€"@ˆ D Ô�Ŷ˜c$Sg$^IFb#,­cü'Ó:nŠÄ�ªÈ»Á¾š0ç_=«0WMbÝ—zÌÜôýºo½z-d'Eãð×_`Ù¼UœÇ0/Ë×/ÅsF»Á¯£“ŠÃ_}#)oÙc%^Ÿ§¾ÖaQÒ’‘X¨àîQw–‘\ÞªðÖ•TÕ2®DÉ Î>pä¦ÞÌ>»“[«Ô^¼O Ž–Û pæÀGrªGwNN.É7wg©\ÆõSR¸M'/Éø¬0º¶ò3LÏ­•Ö¤o h‹n�ðäú-)U�@ömÙkVý¸éµ«!„ŠÖ¥Á§]'¥XRÀÈ€Ë_·B™,nðœÙÚ¼\?7~Ù+‰žC7½²âZg L èó%¾ø“üœ�ó_´Ò…Ɉ3Î¥½ºwàtWoýúµœPÁ3ÆÚ¹›nÚ]ýàŒó¸ÃZ¾·kgôƒ)í)Ë¢Pà `éˆ.þ£uû8¬Dæõ£ØûÑ\ÄJS®_ÀÕÙèîko¤¯÷˜–ïÕÜà–a°dSœ¿=Oï½>ø¹×pdÍýO`ÏÞó& ²l÷ÚhÝq0|}»õ»æQ{w? û¨—QšŸŠ³ÖbÏAù~¿sîä2C±r¾�š·G5‰ D€"@ˆ DàÑ% f,æi�‘˜§Aáú$ðX}6Fm5݆‚s€DÞÑXü¡V�¥Ý;ù—3ŒÙŒ?’rÙ•ï']R”0Õ¦¢�áݚюս¹Äâÿ˜‡s›ðâ�?¡µ‡/&ª‰ƒ˜÷ð¾“ÌË´, +çNhFbF5ÿ6nqžVýþå!„nÃò$.Ï…Rê…Šë35R!3´}ÁE*R¾©ÙRT\DÜyÚRŒƒÖ5µÏ¦DüG©²l7[iFÒ¬/ÞÂ…ƒò‡t¹�ºsø a¡RE¬Fò.âµ±sØúÃÆºaYØ>Ħ?ÀÑÏW"$À5Ej,¹^âÌÀ!¯+í wÃ4ÉÆmç_ß�üÆ­ס×)ó Š—�8m¼{p:òše %.SJèÔ¥�ÍÌå3aÛ�­µ¬È#y8üÉ\Åú�9/ÄÒ;I¸-UxÚfsm³5�ÛÉ.Ò9oMg϶ºÚZÉ„Y;óëÍžÀ¥«j7»¨tUŽJoçÖ]Ü%CDUjS™ú#PÄ<íå§.›ÖÜU²`*”ÈI�‘¯iÅu«/ÖºS/¹|Ú)ÜâŒHr[cuÓ®=O â'g³­p)VíZd÷Øÿã× Ž!}å÷• P+}`Ýí8$×/\Wè+Fâö,Ã1ÂŽüŒ\²!è7Îq;öØ‘+¶áüÆôSö¥|}Ji8Ì^­æ*s¥kr�iù^U,Ã`<8Ä ƒ§¾Ãá�Ãî]‘\\ Úµ«§Á�Ó?qñR²¦3~]cKKz§hJ—„"@ˆ D€"@qyç°ñ?Ñå!„¿‡/ÏñË­•/B)D ®�¡¸®È’Üj0ƒËøç¸òl]¾ç· Oái˜�k f Ÿ+å0í ɸË%KÁRIa} %Ù)Hýæÿp´÷óŠ)¬mC%Yä\AÚÔ'qôï[�™’g$(ˆÙƒ˜5§åôö`+Ûôäô²PxYÍZ†'cñ ì(–Ì�§£h9hPJW® ³ÐËg9ß§\ Q�xâC¼»æ…,ËŽ=jæ¨�b*’Ž›7弎œ·®œÊBù7‘ yC;ÀÃE6ÖêËÉ×^îéÿ+ïi•{—<޶$fôm+O�™;Z2¸YvãTÙ7¹�>Ò´æåUÊàÖ'¶dòÆâvŽü Šøz¯<0C/­ç>ŸŽˆKò@ Ûà¥Fëð*¯u¡ÞoáÛÙê¯üV€¨/çãÎcßcÒNØDÆâ&4Äššh±!êJ:5aþ¡p´IÇ �<¾ ¿¸îFë%S`cq éKÂÄoÛú¾‹àìX!‘âåãñÃò ‹è3ÛχÏxw® ÞÐV¾ çØÞlPì‡ô†�«-œ;ˆÔ�qeÙ§ý7&) _ŠÌ†±j‰¾!!è;n&� ‚§}#5 ó´´Ö±¿cH¿sdV¤½‚?yœMÉ|g¯D,›2V°ë蜭Øé‚L´õj_wB97¹é°=áÉyëòê%GAÔðCÛÖÊDZ•5?-ïlûÇhÄMúº²ä›¾Ã‘cŠÂv½iKßÇîpn#ËI¿.ÎÛv�=móù¶ù5�FWaznýu¢•]ÿ›uŘ�œ±ëv¼í‡Ÿý^Áã}z£yq6²o_C|ÌÄ&Æ�y¾ey£ˆ�Yzçºì5ÍÖ™íT‡SŠ”¡C ܉?+Õ´ìÊ{–KÉ,`ä!ÞѫܽjÑqzY­ÄƒÁóΑ™X÷FŒ Û 8½ïÅ×hõ ^~¦ß»p”ëë2™jÍÜ««â;¸tô$Jk²^ï`ú0Ù³Q¨‰>:a6ð8Çöþh}ŸýãLš �æiˆŠÜˆ+‰JS6 œ@Ô‰?:z žÔcº�™¥ß uo"ï¾³�2Ì®ùßO 7í¶¼õ,�™¸w <:¶cvý|¤^úÑð¼—;×Y°ÐLŽ‹!Mî1 ß«ŠeT‡˜!àÙE8ø–赟‰=_|�>†uŒÅ~y¿ 6 Dœ‘ •ÝóK~ DÀ¨¿Â“=ós³Ò�’xWO#Ó-û;—›‰Cxï¦"©ŸMÄ±ÏØ-¿qèÊQ9¶¶FAz<.ü¤ÿÍ ¶ ŒÁاÊßór>…ˆ D€"@ˆ D€T‘@63·îƒ-\ñ eûðÁã1è3j‘”:‡‹q6³ý+¶}H(@4 [4F"ˆ@Í ØÃû¿ß#»ÓHé#pYËßäÖª¥ƒÏ®WU=:³Þ’ñ ±1¤Òmƹm~MãÒtÎè*MÏ­•IxŽ_Ž€ßƒqŠ[÷5õüFDœ—Ë(C�Lr̹uMòš†U/8»Ÿ*Qì¡ÈF|´høgSÐz´Wׄ­±Ç]ªù.3ç5\Xû�$£0ñ¿ˆØô_).¬&á¥å/—['\q­K…Y €åvІZ.Ãã5,\ø´ê{¨½>bKnOÍ3ºï/¨Ü÷biáÈÏÀ§Ëak·ÇцEå�)½0aÊp¹….�¸Â]ó…i?â·ƒl7¡•LjÏð?*�î1ÍÞ«y¸#{û›ÒÌi4þê·Z^âÒBD& ÃÐŽÜ@K?„Î~k6m”©œÀ)f¦kp7óïê¡~¯Úv›‰·ßÚΖ¤ì§'z�Ã[Þ-7U´P®”»ÖÁÖê}‰ÉrQ 0Ä<ÑwÒv,s¦Î_µK¬­>’ÜfžúûÞCžŽWÊc�0m2·T?#_�—ÜãŒÄ̬=ú-øÒ€ žÐà [:càˆçЦ•ú9•kãõ¦½Ëžùãû•ó²×—ÑîÓê½ÊO"mrpSÞÿé÷tƒľž<.Ï> ¦9ø¿Œåï~†^&î ±œ­Ç žü¦)ÿîtêö4zyŠEM{±{þ3¼½e|�fú0Q�’‰ D€"@ˆ D€˜&`ÂH|f¥`$Öoî#— öÀ2… ÁXLÓP+�P¤ üIÙU•QQ9µ<ã4>^YX̯Α/+„Õâ¦ÒÄòU9 ÆyµrjéÆib\0=µ`{—²²²uìØä¶?ØGüœë7pÿÞ}]ßÌ[:À¦cgXÛÔ¯|IvòÒÒð ó.þ`«ÿÁÔ1suG›nž°¨_UšÜ9Ö¼C¥yHŽ¿Œ;¹‚¡É-ìÛÂÅÝÖ¦ µš+PwóÓãpãÖm¶ú"»þš·Dçpn­n@«;-êH2;oiIב–q�uÎ\··°mƒ–-�aÏúØNŸ†àòðéX[̈D†àlî>ø7‘Ë æ�Øš¤I1H¹�i¸~¬Ñ’­aÜÎű×NÒ®³5êsó™:ìâÐíÝ]ÊM_[±®Úé“�t7o ÷ûgëÀžgl vËê¿x®}ù >9"Î.0sÃÞ79ð¢â¾5ÜܼèM°õ�£S0dýYì›ëßp•­@³ÿÏÞýÀYUÞwâÿj �€�$øb0ePñO þð7BÓŸ¾šk«›T±…ÆIòl Kvu»¤ «ÙDɾR”¤‹y‰ÙfµMa“â¾tVk±FüØ@ˆh$ȈL£L`’ù�;sï�{gÎüf`æÜ÷MsÎsÎyÎó¼Ÿ{/¾øÌsÎá·öEcòßo$ïÁ––ö_š¨ufŒ;ëìsúÑ�}—êÛ®Aú÷ê[ûwÅîÝ?�¦ä—OªrŸ�äïÅw¼óŒäïŒqqz_>#¿nŽÆ7öÆþ7^�7å9¥êô8ã̉qæøcùîè§£ @€ÀË/¿Ü†p׈‡û„qï{>Ó§ãD€ ^�æ�Lj)ט›I\w$+;ù\L)™Y¼èÁmqß SK´ë§œrÊÒ¤q;’%èänüÚš,¿ÉÿÌ­§mwWÖSy¡®Þ~&—l»féq�ËJ· ëÇò³ôœžÖ;ïËmç^¹6v÷êi_é9}=®ôœâúIøW§âµ­èVàÔê1ñΚdéöˆ³£j̸xgn91—s•ãxÛÈ8ë}—ÇYÇSÇ =÷ôñ“ãÉ’ÉW2nï>÷âdÉdïtjÀªâ]“¦%K\¨:Þ�<Ï÷ønLßí“ôkÌqöë×ÿçÛ±®G\xó§3÷ÇÈ–:†Ÿ>.ù.L–ÁÒ Aú÷êéc'ÅùÉr̯·Uǘñ“Ú–c®Ã‰ @€ @ Õ“¯‹½›WÇøY‹£§�8WÕädfñ«“;Ê%aqݪÍC&$îƒC¹€ x��æ @€ŽZàÀsqßütñvòqö_Æ¿¹|ÜQWã @€ @€�c7ó–8øZ]r§Ò ÅÛMwW[î6Ôû_ûXŒJŽõ"p¢Å'JÚu @€&ÐÏnøûØ“<ùûȾïÇSÿúÝ’+MŽ�,þH7Ï0/9Ì* @€ @€@¿ Œ<ŠàwÌQÛï UaE Š+rØušÈ”À[?Žúöã`J§.½ù«1clÊE @€ @€T´€ ¸¢‡_ç  @€�,~mk—�ø´wþ~ü?¶<®xߘ,tQ @€ @€ègAq?ƒªŽ p¢†¿o~ü»¿ú½øuþÂo«cFWŸèf¸ @€ @€CH@P<„KS  @ ’FÆ‚¿?mi‰¨ªŠjƒWò›!¥ïÕ1fü{Rʳ_4²æ–8rhA$ŸŒ¨ªŽgÄõ� @€ @ ¿ü3sIª‡ ´@[@ì¯î�fVÿÐÈÄ>CoÜ´˜ @€ @àä œzr/ïê @€ @€ @€ p¢Å'ZÜõ @€ @€ @€ p’Ü¥ï$€Ë8é-;ã®…7Ç“FwjÊ�}ÅíñÕÏ̉�}âcsløìGâîD”·à@ÄoÝßü|Ý_¿S·m @€ @€ @€*@@P\ƒ¬‹zhþe<¹®>6¤ôʵñåŠ[bÏæ Q_ŸÒ€‰CIñÀÕ)×UD€ @€ @€ȸ€ 8ã¬{zH¾JgòÖÔÕÅ…ÉI’ÿ�¾bZŒèµ‚ã= *&̪‹Ú¤£G'¼°.64tÔ9¬cÕ @€ @€ @€@? Šû R5²!P÷s}Ì8¡Sx«£îóë£.ؼýŠqÁâlpê @€ @€ @`� œ:HÛ¥Yœ$�Ã-'éÂù˶9¹×wu @€ @€ @€@%Š+a”õ‘ÀQ ?ŠcJ€ @€ @€ 04ÅCsÜ´š @€ @€ @€Ç, (>f:'èY qÏžhîù{  @€ @€ @€œAñIawÑÌ 4?pÖY1â”yq×ý�ÄÎF‘qæÇ\  @€ @€ @€CH@P<„KS‡–ÀĶænˆe ¯‰)cGÄUÿ\<òìN³Œ‡Ö0j- @€ @€ @ “‚âL«N�|�a]šP¿æŽ¸æ’)É,ã«âs÷nˆ�ûÌ2€ @€ @€ @à„ŠO³‹Tœ@uM¬=´7¶l\‹jk:u¿>îX¢W†–¦öÙÄkïþR¬©oh;¾&ù³}-·9:ÞîÓÙæâ @€ @€ @€�þEõ¿©‡´@u\þ±¿‹Ë¤ͱóÙúøûVDz{6t¹B.$®™¿<îXôGqõ¬šéÓÙÅH @€ @€ @€@ÿˆ¢úÇQ-ºhÜÕ›þñ¿ÇŠ%+Kf —^ËWÝ|ÝÕ1uÂÑÎb.­Ç: @€ @€ @€�¾ Šûæä(G)ÐÏnX÷ݽ8¹µtú©µÉìáÛ>ùÇ1gæÔ§)%@€ @€ @€AñÀ¸ªµÒš^Œ¿˜·8ê»8ÔÆŠÕ·Å ø»1y\u—½  @€ @€ @€œAñ‰Pv� £Kz]»hE,[xCÔΜâá« @€ @€ @€'E@P|RØ]4óÕïˆKëêâÒkÇ ójcòñpæÇ\  @€ @€ @€CH@P<„KS‡�@Õä¸}ýú!ÔàÁÓT_Jƒg,´„ @€ @€È®€L&»c«gŽAà@ìýYc4‰8ÔÒU£ÆÄ˜ê�ÿšhnjŒƒ‡’ëU�ˆýûC»�B€ @€ @€ p4ŸMkK€ÀI¨�k¦ŒíhCíê8øØ-1²£dÖšâþß‹ëSª.}ÐsÊnE @€ @€ @€Ç&pê±�æ,2#Ðr8vw×™7G2¹xÀ_‡ßèæ¯œ˜ëwsuÅ @€ @€ @€�Ì ˜QœÙ¡üûÍžÇâ_?õõˆwŸ~�}+޼õ¾˜vß¿�±ÕÇQM%Ÿ:rZ|qÓúØ}xx /u8|8†O¼4Æ”– ÈzuüÞW6Æ9oFùõãpÄ;/:×�N©” @€ @€ 0¨Ńzx²Ý¸–×_Œƒÿü½~èäÁøUK?TS±UŒŒsêbÆIëULž}uL>i×wa @€ @€ @€@å ¸õtå�ùàéñ°þjÊÁþªH= @€ @€ @€*BÀŒâŠæÁÙÉá5¿ý̼øÍq7¯*NyÜ•¨€ @€ @€ @€@ÅŠ+f¨cG«cä¤Iƒ±aÚD€ @€ @€ @ Ón=�éáÕ9 @€ @€ @€t0£¸«‰ @€ @€r-ñ«}�m�º;uĘ8mdû?ÿºq_nI:S5"FŒéŸgØý¦©1~u¨­Ò8mܘh›‘ÕÒ‡¶©U�Ãüëû�{i0*MÀ_U•6âúK€ @€ @`ˆ4íÛŽD 6,âÈ‘82ltL×Sз/6Üûßã'‡“6GLû袘3©zˆô¶Ÿ›ÙÜ{öh·Kª>’ø�?!òÙiñb{žz8Ö=¾'ª»aj~N,¼¹.Æ¥ýKrKr�½å×6zlŒÙMeÅ«ÐJÓ–xö’�F.¾=uÉßÅñÁd­)v~ôòøÙ¶dõÌ¿ˆËŸþTœÖ—ßÿŶ»~”Ôôþxÿ‰ñÉÛòHÃ×â™y_l«ýŒ‡ž�|pL�WjÚ·/yÉ�Qòþ>2,ÆN'I¯Ç¶ÚI€ÙHûë=›=Õ+ @€ @€†Ž@sCÜ8~zl(kq]l9¸>ft“ï{ôÞ˜·øŽâ«~çO“ ¸¸YQ+ ÷ßÓ—ëÕ®Ú�Ý:£Ìaçw¿Ëî¨/++ߨ‹ß™ŸÅ)æûÿ|œ5weùáË�ÖÏÏ./;Q[UÃ#ù•‚¶ xØiËW}Û¨üê¤ÓÚgþ÷ûÊ©Ãß“œœ ŠGuÔ9¬#‚~[Ç廹Ȟ¸{üYÑñnÍV›ön�9ãº9E1ègAq?ƒªŽ @€ @€�ãhyíGÅ�¸¦¶6Έ7â�ó¯�óSËö«í‰{—–Çn¯¼ü³è6U>þ&âšãGϽÒÞ¾šš¨=#Ñ«�ø“«ÎïÔæ¦øÁ3ÉŽÜ«¦.Í:³}½øç[ñÖÄëãݘh55ÉØ4ÔG}þœEç┳ý®ÐÅÞ�Ô•–CµÉØŒ>#ê7ôfŸB¨}Rçâ P)‚âJiý$@€ @€ p¼¿z)þ毾|ä#qå´3ãmÇ[_çï}5w¯àÜ«.îߘÌ"îå~¼ûýÛ¸£¡ýŒÂŸ/ïùeaµÂ~î�m›Û1ên¾?ÖwšE\Äh~%žÌO:^ôï¾÷Ý0¹¸«/+“ën�­É»6Ä)gÏk;åâK&öåTÇTMŽÛÛ·'óŸ7Ü6#æÝ“ŒWÝÅqn/ïsp @ ?Åý©©. @€ @€™h‰ý^ŽüêÊøÇÑçÅ¿ùÈ&�ñÄ Œw=óL»dÍñÞ^ó’ÙÄ‹ÖÆÆ‹7Ç5‹×Ä�_þ¢ûÑhÙÿÍ?Æž¿û§ âÝ?{"øÛuñ­Í;ÚÎ=qV|ì¶OEÝŒ euäžéûðÓÉYçÿn,¸úÝñÄ7ˆußüVì8�;lt̺öcñ©Eu1!ßæÆ=Ûã¹y*ž|rs<óüŽh;,9î¢9ׯŸ~ì£QS80•��~#¾óâÏóõO-»vûFSY-^«>6¼pfìßzkÉùÍQ¿òúX’Ÿ…û¥š®§Õ×oˆw^¾?>33iuó³ñg]R¼-s±êd%wÜ=w,Œµ[Æ‚šŽxðÕïýçX²2iKͪ˜wõÔ’k·ŸÝøÄßÄÜ…ËÚ6jïÜ·”Vš_oÚý|þš51õìîõ:fmׯùgD45î‹C-#bLò@â£ù‡ãŸ¾Xõ/�IÝ_.¥¥ý_ô›”*�RÖŸEi×ìsýM»âÉü[oÎ¥“ú|š  @€@œÚ•¨ƒ @€ @€� ÈÆ~ûªxìÅÝÑ/¡\rKäçòaì¬içôZ…g×®ŠùSGÆ[Úçíö4"{w´Ïn;&Ï_¾*Z¿>Ö®ZI5×_^Ô¶¼/æÛ•;¯í´šù±jíC±þ¡µ±|~ÛY1ëýíiióOžnlkçÇŠÕƦÍ[bë–ÇcíŠEm—Íý±ðÖuÑTÜŠ˜2óÃí[ ›â•Òm¥»â W¶‡ÄKcõŸÏ,9³cuwÃsù�Yqþøî#ß× oÒʹg�ŠQcÇÇøñ£bØô›âþ§vuTØãZSlÝT¬ cl�ÇôÎaÅ÷Ê©£†/6lT~¶ô„â¯9÷óÊi§çO…d?µª£þS†u\¿§k4¿ò|þYÜ5qÁÙ'W¯§vÚG€Ùèþ¿²Ù_½"@€ @€ @` úq†qËÞWbs¾�×ôüÌÛ}Oüm,ËÏÈ\±â�ÚnÝ;ñò¹ÉÙIxY¿)~ÔtkÌ옰[ìù«Û WÈÍ�M/­Ž9“ ÖÅ‚›>Ïþltñø¶•ÆW‹íj;kÕ¦X}ëœâí‚ë®[�Ü®úÙ=ªý´ê)‰—^ª‹É“Ëo_]3cvLŽqåõmi?¼íÏñçOËomˆ­»›cÆÔŽûnï|ø¯ce~ïò�ŸŽ©©ÿºÛ;¾Ÿï[òÌÛ‰§—\%·ÚOÞN{¢a],œµ.v¬5>_×Ë,זݱ9ŸÏŸunt{¹Î׈íêi1c×+�jç®}*ÎíTz¼›cÿä+1ûOÊkyÛÔ?ŽÙ»þ¸¼°—­×Š¡þ…ñþ³Nª^/-µ›²(Pøe§,öMŸ @€ @€8Ñý0øñÕíÑžýööÌÛd6ñ'ïhïaÍŠøØìqmëÆ Ï÷ztÖÊãëóEµ±qï%!q¾xÌä$¤m¯¯pnÓO_LæÞ¶¿jVlŠJBâÂ1“g̈q…·jL>$nInëÜûö5Fcò³©9™*üŽN!t¾‚ês¦&±uûë…¯ªm»�õ_^¿¦}»vu|úêòð¹ãÀÆ>>óöPòHåÚXt烱yÛ«±wÿþxí¥-±jQm±ª•óîŽ�-ÅÍÔ•–½;ŠáùeÓû;ŽM½d† [âÇ/æCýÚ+â\9q†ÆVW 04ÅCcœ´’ @€ @€ÀÐ8ŽÀø§Ï=ÙÞךžŸy[6›øž[¢�V+$nëâé®÷oNB×Ýñd}þK—ÅÕåyp·Î»·~?¿¯&þêcWv{\qGòüÙ ÷~6®:eXr[ç±Ém�ÇÆØä稣âʃŽ'ŽŽÅ’•êsã²Úö‚ç_xµ¸ç©/ÿE¬Ëo=¸zAù-±‹G%+M;ûøÌÛqqË�Å}Ÿ¹!fN�ãÆŒ‰ “gÄ­÷mŒ‡–æn¡�{Ýÿújsûj7ÜYõkãâs 3²»9Xq'�ÆØ±¹ýW"j¯ù­âÌôNÙ$@€& (0Z @€ @€ ùÀxå?ý¤�¥Ï¼½ ‡gÞ–Ì&NjÞÿú–xdÃ†Ø°á‘ø§§vôx­æ×~T ]oþÈ{<¶cgs¼¸9ÕÖÞ³'¦ wQºÖøìýqʨ³cÞâ•ÅYÈÉS�£¦&YJ¬»bj§Û5�‰isjÛŽ¨ôÅhÌ­íy$-«o+«Y¾1þmÉí¨Û Kþh~e{þ™·qŒÏ¼­Žÿé'Š5îÞ—Ì<îáõÊ ¡þœ8»ýÑÌ=mW™@ÓOcS}{ɬég—í²A€N„@Ïÿ5s"Zà @€ @€dW`\MüÑGçÅÌ)}œ¶[öÌÛ÷w Q;˜JgçJï¹ñšdþk××�~ô³$Ÿ-ŸéºÿÕmùëâòi}M7÷ǶÂ]‚¯½¼û½m5ïŠ/\²0�ÚXûøê˜wÙ”SÝþϱ-»Žag_ß¶ÿŠ‹ºÞ®yÊ…%ûê“ÿ?~ÖÒÿúŸ®)ÞŠû+Ÿ¾:zúGÝ×ò�Ln`}¬Ï¼=ôæá|ÛkbꄲùÎùòÂ�æØþdþų.ˆñ…b?û$м{k1ÔŸv½>¡9ˆúU §ÿ¦è× ©Œ @€ @€� 8Ú€8OÓ²÷'%ϼ�Ø Xùlâºùó£ü‰¿bݺöóå=¿ìRÇ®Ÿi/«¹"&—gÈ]Ž-4îŠgÚïs.ž\,N[ijø§X™ßqçæˆ3ËÃè­ÿø@~omLŸ4ªKãÏ¿0_öB<ôµ•ñКöÍùkÿ*f—WÕéÜÜ3oó³©�ù™·Í±ñ+KòõžÇnãÝéR¹Í–×âûëÚËë.î>Ô/žÙ²/žøÞ–x3_ðös.‰Ù�ž]<ö„¯´Äÿùë?Š—Öÿ4ÚnÃùúÏâíw=}ôýÖ’×^|!_÷ü˜zNÎÖ @€@¥ Š+ý ÿ @€ @€úSàâBîÚšŸ=›{æmz*Z:›¸nõ–XËŒÂéùŸÍ1÷ÀˆX˜dÅ~ù‹Nûšbû¦ö¹fîÔ^fwœÚ´ûùüìÏš¸ðì®ánÇ‘¥kuqeçË{�ÿTx>q\çŒïúO´ÕçL�º¤š ‰Ä‹óét,�¿^PzÓêÒëÖsϼ­oÛèé™·ÍMÍQ=2=˜Ü¹aEܘk–/Žé釵_°ñÕx>é¹uêçH~4¿ô�¸òšÂLëd¢÷ŠÍ±õö>Î4ï¨f€Ö£ññä^�øMþ §Žíi6õñ7c϶¼^íeqnOÎÇ)5 @€�TÏ(NeQH€ @€ @€ÀQ äâÿ÷?Īÿpsßo3�r�ÝÏçŸy³"=�Ýk?yGþ̺X>¿sHœÛÕÍù#ŠÏùÍoGÉ­­/¼ðüoã\8%÷swÃsùÍYqnO³lsG)ܺyC|eÝù¶´ÄÎ'î�«Îš[¼ÝpÔ]»æÄÕï�¹µùËåÜùøm1©¼¨ëVsÉ3o§v÷ÌÛÆXóÛ#búÇïŠGŸÝû›¢©©)w5ÄýŸ�SææB×Åš^nsÝøÓóÏ_®�i“ÓCýÒFîÝQ˜AÛ^úáËzíQéé»Þ´;š w$Ï_iÔä�¼tc<÷h}Û•jç\Üç_XXµ @€@¥ ¤ýgH¥è/ @€ @€Ç*pœ3ˆË/Û …gÞΟ)“mcßkcY~’mí�ÿ_ÌL½utU¼ëÌŽš[:V£eÏŽ>Üں䄶ՖØñýü³k/îuöçÈ÷^µÉyõɲnñ•ÉR5ÉìàÂÜसíU7wz¤6?‰ §Í©M*¨o;.êÖÆ'f÷>ó¶ù'%ϼ=¿›�³é•Ø”4¤¡aYÌ]³¬½þ.ÖÆCÛŒNwÌîrÔî§¿Ÿ/KBý^sâ–øáS›Êê˜ö¾±eÛ'sãÈOž‰_•5 6F�5€Ó|›_‰ï×·_𢠻 õËdƒô»€ÅýNªB @€ @€øut„iý4ƒ¸Lªô™·WL�®1]süïu…p³6n_8»ìôŽ�êxÿ¬ùí›õ¯Ç�’¤¸å­ýùÀ¶..?7=¦í¨§°ÖM?o�y뮽¨›p·plòsÜìø›×¶…Åí¥ù�¸fQ<´i},ÍßAúŠËß[rRéjUÞ]_,xðKíýšÉÑ3vëbêÄ®zmV¿#.­-VÝeeÑŠ㥃�ÅuS{³iŽ=—¿GuêŸÕÛ”¤ÆÇãΕ%Qùü£nr7mìÒª�/øÍ›å1q\þÛñŽl^ókÛ#¯ž?xó�—vL½ýõ=˜Úª- @€ @€œL�·UǙ߿síõÇu{én»PöÌÛsS«Žëîk�ÖûRvu*ªX´îm@IDATYð@´&KçWõÔÑÚº sq/Û#ã†Z“¥—ÃJv�›¹ ;r]ìzõgQ5bXr3ì1a¸¶[]_·µ5î.9¶ËjÓS±zM{iÍò�qCÕW_(<óvnt›�WMŽÛk�O75ÆþýûãPÒ®aGEŒãÇ�‹ê>ÿ‹ñÞØ–Ÿd]wYZ¨_Þ«gX•¿Mu®|~lY}CŸÂïòZnë´~*fïúÔÀ] SÍûüb¾¤.¦Oì-”ït²M ÐO}þk¿Ÿ®§ @€ @€†ªÀiçÄÍŸþÄ€µ¾ã™·ïzgòœáäÙ¹1rdÊÌâkBÿV\52&M>Úp_Ü»xVþ9ÆÉs‚?{uÛÔñÌÛ8BDs2 º¥*áKÿ'àê‘cbB²í+7&-¹¸ûÀKñh~‚ð—§…ú%577ÄÝK6 VmþrÌ8Z–âÙCy%“ÆDoTÄö­?hïHm¡þP @€À�Hÿ¯„!Ñt�$@€ @€ @ K»Ÿîx†í�´?c·nõÖXKþ^ÍYêlY_šãÑû¿ÏìýU<¹îŽØ�`—®ÿ¯Ý<ƒ¹ìäö�ܳ‡ëóåk®�±m3’çÇÖCDM¿ÝByO|aÔYqGÙåkbú¤$ùìáµýî*Þf¹öÎÇãÖÞ~ÜC]CyמG¿gÍí¤7kZô¬7”{¬í 0ØŃ}„´� @€ @€@…üâ@{Gkjڃᆆ†¸æò‰Ùï}Óóñ¹…ËJnÍQwç¦øBݤ¾÷ýЛùck¢�/±k¨»"º{Tqß+.9²ù�Ø�ÛL.Ð6B¹kÄÜ8g|ÏÿÌ|FÍ�±jÕeÃωënîî¹Ò%×Éèê�×÷·õ¬ôý=wÆÙm·#Ïh—u‹¹À)ýо¾ÖÑÓqiû:—•n÷¶^Ø4?K�Í­§mwWV8¾/?OÍ×ÝùØ´òÎe…í·%u¼=YÎomm½'ùéE€ @€ 0H^~ùå¶–Ý5âá>µðÞ÷|¦OÇ9(Kûâ‘o|'^?œôiøØ˜þÁÙ1còÑß:K"úB€CCà”SNYš´tG²ä~cé×ÉÒš,¿ÉÿÌ­§mwWÖSy¡®Þ~&—l»féq�ËJ· ëÇò³ôœžÖ;ïËmç^¹6v÷êi_é9}=®ôœâzÏ¿êU<Ì  @€ @€ ŒÀ¸¸ú†SµZ  @€Ýäf¨z @€ @€ @€ @€@ Š+h°u• @€ @€ @€9A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€A±÷ @€ @€ @€*L@P\a®» @€ @€ @€{ @€ @€ @€ @ ÂÅ6àºK€ @€ @€ @€�* @€ @€ ¼Àg]×§‹¼üòË}:ÎA @€ŽGÀŒâãÑs. @€ @€ @€† €ÅCpÐ4™ @€ @`è œwÞyC¯ÑZL€ �Y3Š3;´:F€ @€ @€ @€�tAqº‹R @€ @€ @€dV@PœÙ¡Õ1 @€ @€ @€¤ ŠÓ]” @€ @€ @€ @ ³‚âÌ­Ž @€ @€ @€ @ ]@Pœî¢” @€ @€ @€™gvhuŒ @€ @€ @€é‚ât¥ @€ @€ @€Ȭ€ 8³C«c @€ @€ @€H§»(%@€ @€ @€ @€@fÅ™Z#@€ @€ @€ @€@º€ 8ÝE) @€ @€ @€2+ (ÎìÐê @€ @€ @€ÒÅé.J  @€ @€ @€ �YAqf‡VÇ @€ @€ @€ �. (NwQJ€ @€ @€ @€�Ì Š3;´:F€ @€ @€ @€�tAqº‹R @€ @€ @€dV@PœÙ¡Õ1 @€ @€ @€¤ ŠÓ]” @€ @€ @€ @ ³‚âÌ­Ž @€ @€ @€ @ ]@Pœî¢” @€ @€ @€™gvhuŒ @€ @€ @€é‚ât¥ @€ @€ @€Ȭ€ 8³C«c @€ @€ @€H§»(%@€ @€ @€ @€@fÅ™Z#@€ @€ @€ @€@º€ 8ÝE) @€ @€ @€2+ (ÎìÐê @€ @€ @€ÒÅé.J  @€ @€ @€ �YAqf‡VÇ @€ @€ @€ �. (NwQJ€ @€ @€ @€�Ì Š3;´:F€ @€ @€ @€�tAqº‹R @€ @€ @€dV@PœÙ¡Õ1 @€ @€ @€¤ ŠÓ]” @€ @€ @€ @ ³‚âÌ­Ž @€ @€ @€ @ ]@Pœî¢” @€ @€ @€™gvhuŒ @€ @€ @€é‚ât¥ @€ @€ @€Ȭ€ 8³C«c @€ @€ @€H§»(%@€ @€ @€ @€@fÅ™Z#@€ @€ @€ @€@º€ 8ÝE) @€ @€ @€2+ (ÎìÐê @€ @€ @€ÒÅé.J  @€ @€ @€ �YAqf‡VÇ @€ @€ @€ �. (NwQJ€ @€ @€ @€�Ì Š3;´:F€ @€ @€ @€�tAqº‹R @€ @€ @€dV@PœÙ¡Õ1 @€ @€ @€¤ ŠÓ]” @€ @€ @€ @ ³‚âÌ­Ž @€ @€ @€ @ ]@Pœî¢” @€ @€ @€™gvhuŒ @€ @€ @€é‚ât¥ @€ @€ @€Ȭ€ 8³C«c @€ @€ @€H§»(%@€ @€ @€ @€@fÅ™Z#@€ @€ @€ @€@º€ 8ÝE) @€ @€ @€2+ (ÎìÐê @€ @€ @€ÒÅé.J  @€ @€ @€ �YAqf‡VÇ @€ @€ @€ �. (NwQJ€ @€ @€ @€�Ì Š3;´:F€ @€ @€ @€�tAqº‹R @€ @€ @€dV@PœÙ¡Õ1 @€ @€ @€¤ ŠÓ]” @€ @€ @€ @ ³‚âÌ­Ž @€ @€ @€ @ ]@Pœî¢” @€ @€ @€™gvhuŒ @€ @€ @€é‚ât¥ @€ @€ @€Ȭ€ 8³C«c @€ @€ @€H§»(%@€ @€ @€ @€@fÅ™Z#@€ @€ @€ @€@º€ 8ÝE) @€ @€ @€2+ (ÎìÐê @€ @€ @€ÒÅé.J  @€ @€ @€ �YAqf‡VÇ @€ @€ @€ �. (NwQJ€ @€ @€ @€�Ì Š3;´:F€ @€ @€ @€�tAqº‹R @€ @€ @€dV@PœÙ¡Õ1 @€ @€ @€¤ ŠÓ]” @€ @€ @€ @ ³‚âÌ­Ž @€ @€ @€ @ ]@Pœî¢” @€ @€ @€™gvhuŒ @€ @€ @€é‚ât¥ @€ @€ @€Ȭ€ 8³C«c @€ @€ @€H§»(%@€ @€ @€ @€@fÅ™Z#@€ @€ @€ @€@º€ 8ÝE) @€ @€ @€2+ (ÎìÐê @€ @€ @€ÒÅé.J  @€ @€ @€ �YAqf‡VÇ @€ @€ @€ �. (NwQJ€ @€ @€ @€�Ì Š3;´:F€ @€ @€ @€�tAqº‹R @€ @€ @€dV@PœÙ¡Õ1 @€ @€ @€¤ ŠÓ]” @€ @€ @€ @ ³‚âÌ­Ž @€ @€ @€ @ ]@Pœî¢” @€ @€ @€™gvhuŒ @€ @€ @€é‚ât¥ @€ @€ @€Ȭ€ 8³C«c @€ @€ @€H§»(%@€ @€ @€ @€@fÅ™Z#@€ @€ @€ @€@º€ 8ÝE) @€ @€ @€2+ (ÎìÐê @€ @€ @€ÒÅé.J  @€ @€ @€ �YAqf‡VÇ @€ @€ @€ �. (NwQJ€ @€ @€ @€�Ì Š3;´:F€ @€ @€ @€�tAqº‹R @€ @€ @€dV@PœÙ¡Õ1 @€ @€ @€¤ ŠÓ]” @€ @€ @€ @ ³‚âÌ­Ž @€ @€ @€ @ ]@Pœî¢” @€ @€ @€™gvhuŒ @€ @€ @€é‚ât¥ @€ @€ @€Ȭ€ 8³C«c @€ @€ @€H§»(%@€ @€ @€ @€@fÅ™Z#@€ @€ @€ @€@º€ 8ÝE) @€ @€ @€2+ (ÎìÐê @€ @€ @€ÒÅé.J  @€ @€ @€ �YAqf‡VÇ @€ @€ @€ �. (NwQJ€ @€ @€ @€�Ì Š3;´:F€ @€ @€ @€�tAqº‹R @€ @€ @€dV@PœÙ¡Õ1 @€ @€ @€¤ ŠÓ]” @€ @€ @€ @ ³‚âÌ­Ž @€ @€ @€ @ ]@Pœî¢” @€ @€ @€™gvhuŒ @€ @€ @€éUéÅJ  @€ @€èO�—_~¹?«S @€�ã0£ø¸øœL€ @€ @€ @€�¡'`FñÐ3-&@€ @€‚ç�wÞlµ& @àÄ îÀà{óÄÛ»"•%`Fqe�·Þ @€ @€ @€ @ ÅÞ @€ @€ @€¨0Aq… ¸î @€ @€ @€ @@Pì=@€ @€ @€ @€� WØ€ë. @€ @€ @€ÅÞ @€ @€ @€¨0Aq… ¸î @€ @€ @€ @@Pì=@€ @€ @€ @€� WØ€ë. @€ @€ @€ÅÞ @€ @€ @€¨0Aq… ¸î @€ @€ @€ @@Pì=@€ @€ @€ @€� WØ€ë. @€ @€ @€ÅÞ @€ @€ @€¨0Aq… ¸î @€ @€ @€ @@Pì=@€ @€ @€ @€� WØ€ë. @€ @€ @€ÅÞ @€ @€ @€¨0Aq… ¸î @€ @€ @€ @@Pì=@€ @€ @€ @€� WØ€ë. @€ @€ @€ÅÞ @€ @€ @€¨0Aq… ¸î @€ @€ @€ @@P<4ß­C³ÙZM€ @€ @€ �AÙÕTAñ4M&@€ @€ @ ËÍñðmóbúUWÅUÓ§ÇgÞ~\�mÞùp\uÊô¸*©oúUŸ�íÍÇU�“ è“@K4îÛ;·o�ímËÎØ³¯1Zút®ƒ pbªNÌe\… @€ @€ÙxêË7Ŭ¯íŽÚ3rýy#Þ}s<²þÖ˜ÐoÝk‰Ÿ¿¼!êÛ+½ç­ãª¹å­ŸG}4DòGò¿ ¤jç†ÏÆ”yߎÚv˜ckóoD̽#6Þ}]T[ Î"pršvņu÷ÆÝ‹W¶亴¦6–¯¾-n™_“FvÙ©€'T@P|B¹]Œ @€ @€�¡-�„@KÖµu¡¾Ø‘%ñ/;Åu“û/Ú쿚Š�,® /®õïÊ[{~�TØõõÇYï?�CIipœ-L=}ûý7Å ÛßQ·6®_rÀTªÌî{öþ˜{ÉÂܯeôðª�•‹sKM<ôÒÓýú½ÑÃEí:FŸëc„sÚ�pëé!3TJ€ @€ @€ÀÉhÞùϱ²ÐˆššÂZ¬âÇÅõJ]9rø@ÿtý�ÃýSÏ ®åHé-½4Ç‘|}—;¹�ÏÞãSB⚺ù±hÑ¢¨ëøºÈ7´!öü2÷+^ƒYÀçz0�޶õ‡€Åý¡¨ @€ @€*BàÇßÝØÞÏ\èÓÐ1opÝ׋//¨‰1¡�ÞÉé7=Û®JÂâa�÷'oýk,¾äÆŽ[ñ.ZÛ>3;âHç85Ù>}b&»0tf±��}OÄ\²¸¼?µ+bóƒ·ÅÌ …yå÷Es㮨_o\³°øë&åçØô>׃~ˆ4ð(ÅG æp @€ @€*U`_lüfþÖÂq;Fý·â¹}·Æœq•jQ5fBLM–ÔWË[1±dGÝÅ—ÄÔÉ“KJ2¶::cýÑ�Zâ‘»?ÙñK¹#篎½Ü�¿ªÇLŠ«|>Žü^]|rü¬>LìØìàÛås=øÆD‹Ž[@P|Ü„* @€ @€ @`@šâã#¦Çš¶ÊÅÖC÷EÍÉ|píž-±®¾£§kß/\97îi+ª�ÿ¹yWÌ©›Ôq@/kûv>[~ðr4Åð¶ÿ�?÷qQͤäÙ¼UQzã^ªißݼ/žýþ–xùgImÓúFŽ�Ô\“Æåj¯–N3‡wÚ>Š&6îÚÏýpGìoФ¯‡ãpò$àóΟÓ§N8ê¾6íÛ/nÿaìλ%ƘwŽ� “Î�³'Œé±¾–ææhÉ·»ªº*Þ×ýdÖ=€=ŽN ïŸÔ£«×Ñ @€ @€8N�#ñz±†×ãÍB*W,;±+;ÿåEG´(fÏþí¹(âžö$;îy(y~qÝ IÐÛË«yg|ùÏ®�%ë:jë8£.ÖoýRŒ>³£¤·µ��|9®½fIIÛ:Ψ[±>¾ô{½¶¨ã„A¼Ö´óÑøüŸÏ�•ºidíÒØøµÏÅÕ“ ·úíæ¸¤¸y×Sñ…¿<î(Mþ»^KWÝ+o�ÓeL›·ß#.XØåŒbAý²8kزâféʪ-ãÖ½·±ôëƒW`ç#ߌҷäüµ�©ý”¼ï{¾ü}:?ùe›¯Æ›·î)|UEm¬XýgqÁèŸÇúÿ¼$J'î®[xW|æ£¤ßæ¿y{Ü6vzñ¯½ÛÉÌû;?WMŸM?y!¾ºøŽŽÏA2÷ì…ãÐ}¸ÓB[e ±dÞõíÕæÿ¬�¿4f½wD¼ñƒÍ±fC}{éèο64,FŸ›ì*|}ÖÔÆ¢_³¦�cG�ýI»¾¾¤¤]I çMYÛ’ÇL-¹á€|®Ü,5¸~Ž×x xkrÁe_–Üìåî–·%û:/¹oÓÒ%÷T÷Â’û(,§%ë…%÷‘Î-¹¿isËéùåíÉÏÜ’û/ƒÜ2*¿äþ–Ï-ïH–wæ—1Éϱɒû;<·¼+Yrÿe7>YÞ�_r7~yO²LH–³’eb²¼7Yr 9;YÎI–Ü×ÒyÉ29Y¦$Ëû’åüd™š,$Ë’å·’eZ²ä¾¥/L–‹’åâdÉÝÛá’d¹4Y.K–&ËÌd™•,W$Ëìd¹&Ynmõ"@€ @€Ô;wîlÍ-^Ç phKëüˆÜ?8'K]ë–ƒÇPG?�²wÓŠ|;rm©i]ÿÚ‘|ͯ¶./¶1Zk–oìöŠ{¿³¤Ž¤žÚ­/*=üHëæÕóË�Iê®[µ¥ô üúÞÖ;k 6í?W¬©ì¸#{/ñ+{’ËÆ²»>•5¿}cÿã­µ%¾¹÷ªMåýÌøÚã«[“dí°«]ݺ?¥ºC/=ÔqLrüüU�·F²üðƒ­Û6­m�_×yŒÊ�*ÝÚ¶¶dìêÖ¶– mé�Ö{2ß›·´Ö•¾ïêV·÷×T?¾çn]]ò~¯i[¯Y´¶µøõÕ6û[ZÚ¾¯ý»6ZWlz-uŒ¿³¶¤¾äó6u§ï°ä´#¯¶®]T^ߪ-iŸÆü%:}7ÚP³hUë¶ý�>E‡ö¶nZ½¨5º8l]]›|ÿ.]ݺù¥½Ý~¦7ÞYWÖþåÓûYÚùãý\ˆYiÁz2f·&K.³ÊeW¹ +—eå2­\¶•˸rYW.óÊe_¹ ,—…å2±\6–ËÈrYY.3Ëeg¹ -—¥å2µ\¶–ËØrY[.s;'YÎN–\—ËärÙ\.£Ëeu¹Ì.—Ýr¼\¦—Ëör_!ïËe¹ °�æ²ÁBNXÈ 9b!W,äŒ#’csK!‡,ä’¹Ÿ…¼2÷³�cæ~–fœ¹õÎ9hn»»Ü4W~J—ä°cå.ä58 _Pƒ£5ZA€ @€ @€@^ %6ÿχ:4j®�K'äþÍ7÷š׬¨Í­´½Vþ¯ØÙRØ*ýÙßY³¬¤ .ÿ‡Ûcr‹¯ª˜yËWãÁEÅ‚nWš¾Ë:v×Þ¹9n¯Ëý{zÇ«jÜìøê¶; †àÚ³ü—¨/i÷��ï�[ç”÷3·{Âì[bÓãwvY¿8ÖooêØÎ¯µüòç%euqÛ¢ÙeÏ9íØ92¦ÎY¬ï�fÝ4°ËÃÑÈŠÑ`h  @€ @€�Šhi‰–.KDË¡7#É]ò¯ñæ¡$�ír\s®h`_-/ÅwîéHek¯¯m›¾T¸è´]SXM~ÞßÝÖ5 Œæe·®Ž¥‹cVn^S—WuÔ}|U—Òί<ù­’¢š¸m~nÂV×WõÔk"™i74_Í q÷’ Ŷ×,ÝŸéö¶ÞÉÔ±Ù- �¾U¿£xnq%7Ç«øz%^~màÞÖ”œx͇rwÊìx�™ve䢇BˆòÍÇ^Œ[jrwÝ,y, ½#VüÁ%Ý!#Ï¿¼¬¾’ZŠ«¿8СGòŒÝYåS‹Çåî²yùµIëê ­+Ù5èWËçf6ܳ:î¿ìõhNf립ª“_+øvÉŽÞ,Ùj_­Vú&iˆë§üa¬Ýøc^íŒèøXÌÌÝì¶íÕÿïùB͹Ÿ—MŸXºY¶^úɈá]¿kËfÖ&¾{ݽ±?I”S?�ÕɧqsÙ§1ùEŸärÅ~–]ºl£fùÂãü.oŽ] ÏÇóÉò“ÝÉ÷dÒ–Âkx2>?úVÉwa²»\¼pdÿü`ÿÒ¹+6.«/iß{ãÉÍJ÷ŠB6]5¢*Î|o.ÜÈßžºáŽø—]ËãºI%�VíJÎï~zÝèŸÌÔëþ5,ªK÷oØÑö<Üî"˜ï,=¸ûZßžÔ¹Š}oæ ?/ŽQÇIãâÏÙ gÍíB'“®×­i[ ÇÖ.Z_ûbò Öî` úY¹É—@Ù÷Wêl÷ê¸è“«ãÎkÇèäk๿Yk:îdßÉn Þó…KÌ�óÎ*ýµ‰Byß~6—u´oç”uà­ÎáséÞŽõw¼½‡_¢é8¬ÓÚ¾¸wÞøXÜþ;�öõ°™Ì8Î}»Ju'»N”YÏ­°—@Ï%ÿ¥Òó�ö•@áöÒy[éÂ5Žªa&@€ @€ 0¨ªgÄ7î�C�3„aÃbØþ§ã÷Ïž›ŸV_ý‡¨)ÇŽ°Û·ì|:V–�­Œ)£ÊKÊvç7ÖÿóKqÝ SÓv @Ù±+ÐŒ®rùúmñéÙgDîQÕ]oŒ[~ñ#GŽÄ°c»ÌìÌU5aN2=øÇ÷O¿ý›¿2ýÄÿzÛt×¹¹ñ;§ÿå§ÿ«éÇÿþÜ¿w…³Ò†½úl9=üpeBñè'¦_=7¬t…Wݦ¿þ*×íþ‡Îÿõ·Aþ'ùõ9Žåu_þ²éuî¨UfN7ê^³ù¾ô¥/ŸþÞw¼iúñ{Ÿ˜>ú�·Ÿkq×{~ur�ò\ŽÅe'pÃô·^ãßÒ+ÓãÁÙPöõÎ�ð†éoüwŸ�?sÆû/¨xôϦßråo¿çŽâ�xÚ|'øƒWœz—î3ÛåmO“fX²»ÚÍúïz�]�ý ú2(>¨ÇQ< /{ @€ @€ ìˆÀÞ~ìÊYï[ßþ¡éÞ{ióuï3¾~é—î�þüC~Àxeú—ÿÚ Œ>ó�“ºëŽ÷þzño�}ä#šîvÚ̽޷»ï-›ùÉL¶‰=2ýÊ?ku+”^xøü_ {Ç?¼{ó¯Cïúºfzé«¿gºçín¿ù•Ñó'ÉÏðÄgÜðSÃu9¼ü¿|íäÿ7‘·½ýý þÇ‚óoÚ~Þù¾çtíu_p&Üü™óþßÜýwãÙ†oó÷æúo·ç^žá¹Êÿõ¹?ÓÏå ‹%ß×ˬp¯;3ÛÚÔµ[2(^›èò~ú¿ jß@µÜòЀ @€ @˜>qÏÏNþ{¿å•_S¥rã×¾òÜo ¿íŸý¿ÓÓEôuÿñôú7ºòw½cúPú7B?:}à½Å s÷+ÿîëÏ%þÑ{î9·ÖâÑû>0ÝvE«#³×Ý2}÷�n`{å;§üË)´pcOn~cû‘ þÉéñÒLÝuùËOº¡ï§>³ùWVÛ× ¿ê?9ÝýÁé#2G;;ÞNÜtëô½î—m§+·Moú'¿YÜêÚÚß�¿“w¾x”¡ÄK¿í çþ|»íüŸS×wã£O�ô|Ó �Ɖ7ßÏî»uúÄ~åt›?�ïþß¾çÜŸé>[ò—|_,³ÒÍ.�×fW=³¯å' Ã0ÅcÈj/ùX'Ô€ @€ @€À�Ï ©—ŠŸ~å}ïtM^7ýg_SøG/¥ºák¦oqsÍé]˜~ûlR<½ê wJ¹±W¦W½êû¦ûÎ Ÿ~ñ‡^;½áüßvíjÎÜën~Õtç­gë+w¼rúî÷û±ö4=þ‰ŸŸ^û²7œ‰ŽÐ{ùëÿ‡ÉÝæô–W¾`ú¾ŸüWgxO�?2Ý÷‹?9}÷7\;½àß:ýú9¶[á£÷ýãéó¯}ÙôC?ù‹Ó'yúáø.ÓÇñ‡¦W½íÊÓ±[¾ñk»þ]ä/ú’¯zºfÚüNøÿÁ?™>þhÇTÚUá#�ë¦oýŸßwîàw½áoLÿÍÿüôp|ÅÿÄtåž{Nk¿ó±ÿìõ ¯˜Þúö[ÏÊ7ñ|Ã?œþÕƒñ&·’G>qßô“?ôÝÓµ_ø‚é?×½guk{×\{î7ŠßöMo™~9žéɇ§÷ß7MßüÎÍŸ‘þ׿;βèûúP™uÜ÷‘K˜å <ÀÍ/åsu°ëY�Ú™^Ø]ô9Z@€ @€ �³ß {îôœ}þ4óÑßžÞ붯~ÕôU7´ðÜ0½â[6¿6|÷»žÞ5ýËÿ—¿b;`¾ñ¯ß wo;û ßûÞ6½ì ï™~àÎ×L7=ç3Óï¾÷¶é�WZ{(ãôú·Ý9Ýöu·)0½óÛ_6ýÂ`úï¾ö¦é3ŸúÝé¶·øA÷Ó²ãrnüúéÇ>pûô’o>»—·½ö릷½öÕnß4Ý´ù]Bûîÿ7œÞy×wo›÷Å­Î\‹Þ7½åµ¯šì÷¶o¹õuÓ·Ó:ýµ}ñôœÏ<8ý?ï¹mzו3µyßûí_{>PX]÷Õ_?ݾÉé¤÷½ë ÓK6_·Þúêé¹›¿÷ê»|ÿ§¦ÿúŸþìô/m¾L…]"�ënþ¶écïÛ¼§ß®§?Mïºí›6_Óôê7Þ>ýÍ}þôç¿÷[›wôîpüíû{.¸ú;®û¢Å+ÞücÓ[ßò’émêråŽéë¾äŽéÖÍŸ;¯ùºÍwãC›ïÆOÞ?}ðŸ¿sºâþ¿•K¿ »ù-ìÿ~3À¾ë-Wžê~×ôÊ/¹kzÝ[ù_>}æÿíôÜvÇdÙÍ?/?ÝçÎõTAÕ,ý¾>HfÕ;ÞkÒæcš‘­½ñ®ú®}Î ï·Ïÿ´ºð›]p{¡q�Ë‹¾à¡R @€ @€ pà®{ùô3O|zzÒ~)óšk¦ëöøÓ̇?ü/Îý;Á¯{Í+¦žÑÞK¾þïn«Añ4Ýu÷‡§7¿âl°Á·@IDAT§íÑoœÞô³÷N÷áËž&Úoß1óñošîý‰û§—½öl8u߻³ñXm°z×ÙÐl÷›_ýŽécü�¦—l~Sðìº{Ã-Ýβ6–Mïó‰óÑû®Ü5ÙWézãOÜÛ?Ô½ææéû>tçôÎWž ï­ï•+çÏù-ÙóY—NDüP Üümï˜>ú¾ÏŸ¾úÛŸ£^=êÝïzç¹?Küùßú¾žþfò˪ï¼ÛðüÛï7ÿ½àóšióŽÿà§?6½ð5/™ü·ß•ÍŸ;WÞ´ny£ùÜ?´Å+Þü#›öWŸ °7‰»ÞvÛ¿³ï›^7ýÀí<Ýáþ�œæwãÒïë1Ó½ˆ=ÔYÕ¡žë@ÛöüÕÓåDZ‹hiÏ¥õå»%@€ @€ �$pÍ5×M×]·ùÚ Š÷yýÉÇÏmwËôÍûËݺì^sóßšÞêþjÓû~ë÷Î`n¸ezÇ4½ûö[ó&·¼qú…?z`zßígMžûÜksí&zËw¼czàCï>÷×3{ñïüÐôÀGßçþ¶ÕN×ïåÓÇÙüRíÓ× ŸÿOû=ÎÍï{¦'ºwú‘Ûýßí�TÞrëtûÛß=ÝóÑšà®{ñ7Lï~ûíÓ«Ïð&M6\_ýÖéƒ}húÑïhCõM_ÿ¦éÓÜ;½û6{Üz«ã~&|εåçy¦Â;F/ý¶œþâcšÞþÆú{úºÛïœ~ã�OO?øm·<õ?‘<ón×xç¯ù‚ç»w°ô[ö¶÷5Óó_xö®?7ÿuüí!¯»yzÓž˜îýà�œû7‹ŸyÓtëënŸÞý�{¦_xÓ˲ôS±k§ºìsç|\óÒéŸx`ú‰x�ëtÞ½õ�wNýµŸ¾ãï|ÕYâEÏ�z¾_¯ÎììÔ[:ËZZŸaÙEÏlŸ£‹­ñ[²½=jº,c~Ýò•±™Öb>®u´öàcÌÖÄûœÅüZ~W½Ï™o_öÿ}åç>÷¹ÞX.@€ @€ �%ððWOö_ñzBŽuQ}ðw¦ßû‡ÓæÔ�®}ì±éú/~éôÕ7ßTUÏùä£ÓïÜûá隦/yÁµÓ'?sýôÒ¯ùêé¦.h*\=ì²ä“�>8}ô#Ÿxè±éy/~ÁôÄ'7ìžwÓô¾hzÁM7tó{ü‘‡§þôO¦‡þä4=ïúé‰6ðž÷%Ó—ÝüâéK7}¸.ŽÀ)ü¹ùäæßÌþ£?¼zðÁÍûyÓõÓcoÞ×/þ²éÅ_þ¥Ó ×�±]ë�ÛµGýäôàÇ?:}ü÷˜{Îó¦|ÁÓæn§›¾ø…Ó‹6®Ý°Ï¿â©ã>þȃÓoäw¦O^û¼éyO|rzìú›¦›_ü•Óß8½çögi�Ù¬ÛpEÏzÖ³Þ´YþþæËþeøÿðÔ— fíËÖv™UL6‹©F³v•´–óÚèǼֲê?ת�Y»Ô'úÙº³¸]¾×6’öêÒjR.½z{ÔtY.Æüºå+?b3­Å|\ëh�aŒ•Ö~èë5¥¸i|Î|ûbP¼�À@€ @€�À) <�1çƒN‹nžÖóänN›@Ç Ø™ÙWiø[Šg= nW,æµ–5�ü9Ö×Ôü˜³µ]Ú»:ÿYËye¯Î×<íÛÀ‘kK`È Úþ#gÑ®p Ì�•êÖ>ûÒ}–Ö¯}?‹ú�Ú x.ŒÞ‡Ú««�c�Ö­>µ³’ƒ @€ @€ @€@�ÀZ3«5úôöèÕÕîûès Šû®»za¬o©w–+i�þeä @€ @€ @€Ž–@œaes.Ý\-'Í\ÏQêÓ«+Õ}üÅûxˆûØ£õ2ù3È—mÕ’‡ @€ @€ @€ÀÚ4«’µþÞ_{¿Þ~û8Ã>öè½ßYºSϺñMÑÏz¬ÑÇî¡Ö+ÛÃbŸýÜç>÷˜sA€ @€ @€ @`_žšQ}v³_iŽ•¥6ËôµØZ½²ó×ö=™Üe÷>ì–®–·\–Ïb¥—)ÓúØØ>ññZj@€ @€ @€ @» ðÔŒê‰Mo›Yéò³¬ZL¹hKõY\µµœiZùÞ>Ò�Œ=ÖA±=ÐÞ‡:çaµz×òYÎb¥x<_Iëu¦±oºÿ±�}ì!ŸÀ‡ @€ @€ @€À® <5£ú÷›}lf•ÍÁüJó¯¬nD«=²>Ê™må½vÔ/�w´ÏÞõÇ:(žj­ Ô'{ ²˜�½�÷•é,f—ý*ÿ§ï¹çž?¾ºâ€ @€ @€ @{"ðÔŒêÓ›ílfe—fXÛÕ²y˜ú�ôŒZ�cÔ®Õgtß½ë/Ó x—pG^˜¨µuŒÅ³F�­íÿÎøËŸú©Ÿú͇zèwck@€ @€ @€ 삀ͦlFµéý—›¯øÅq®•!ÓX¬÷Ñöö¼tºË0(î}Qzu»|IZgðyû¦{üWõW?þ3?ó3Ùå¡è @€ @€ @€ °Ù”ͨ6ëÇ7_6³ÒågYŠyÛÊ{í®üÞ3ôêvuÎ�÷=¦A±=Œ‹x ûÚÓïÓs¯¦± üß}×w}×ÏýüÏÿü•�Ï@€ @€ @€ ��°™”ͦ6ü»Í—ͪüŒ+Û7νZú¬ÇœØ¾öñg‹÷êsçÓ xÞ�þÜ=ý¼Æ|¿¶^>fÿ‡Æ§?ûÙÏþé›ßüæ».@€ @€ @€ �]°Y”ͤl6µéoÿ>±~›ØÏ¯´uŒÅ™—tÞöh¼¾å¯Ño�­s^HþÙ+ìú¬Î5]–Ëb¶•�Ë—m奓•^k³Þ÷y—®ËâY¯ó}½o:»²˜½œŸý³?û³Gú§úþç?ÿùO~Ù—}Ù_¹þú럵‚@€ @€ � %ðÈ#�\ÝÿÆo¼Ðs°9 �c!ÀŸ›Çò¤8çe"`ÿ&ñ{Þóž½þõ¯ÿ¿6þ'6÷þèæëÉÍ—Í©â 5‹mdéµqmE±¿eñ,&}fGõY�£�]ÖA±=°8Ì­Å¢V[Õh-��›o—4ÛUy-]f}å-f/ñ“ŸûÜçÿ¹Ÿû¹?Øü�ð>öØcŸ|ö³Ÿý›�ñg>ïó>ï9ÏzÖ³žcB.@€ @€ �ý`à±_Þì?þÜ<þgÈ?�ÍÌé±O}êS|ä#ùý÷¿ÿý¿öýßÿýÿ÷�þè�þÊ&þðæîÛ|iHo¶wðj:¯­­•ózíÛ3}¦­õQîd­ —^½=jº,—Åì¬>._V÷¢uÉú>¦Ét¥XÔkíõ>6êÛ_®^ò³1gkü_»ùúüÍ×õ›¯/Ø|]·ù²!±åb�õµ˜]Ú#®Ϭ¯S>Æü:óËl³}tyßb~íý˜+Õ+žÙØ/Ó”bKjK=‰C€ @€ @€N�@m°×º÷‘ÚLc~í};‡_Ë�Öëbίk~ÌÙºSÎ[;ƒýUъŵâ¦ùìæë3›¯Ç7_¹ù²á°ýUÓöo[Î÷±º¸V/å6’«ûÖt¾¦æ«—×Ôb>'_ÖzÈÊ=ÇÔç¤-é¼VÙX[Ó¶rê9¢ó5Oû×<íž#`kÙ¬g­_+/J™.‹I?b­�]vNï_ ºŸ3ß¾ìSÖ¾Yíùj€lý²A±Åç|mÊžQcZËj­{lMc9»¬¯.ï[,®K1ÕËfuÊyÛ«ó5ø€ @€ @€ ¬C@ó’V·]¦‰1¿ö¾í¯u´µ\ÔÚZ_±.Ƶ6+­�Íõ5ÌÕ@Ø~{Ø|­Õ×ïi~¼zu±®µ¶¾ñÊbQcë–®•ÏzÖbk÷«í5œ;äAñÈÍä%»‘úL›ÅzÎß[g:»²{TiÌêÕ¬Õd_ÙÐx#=7L¶µÕ–~ËXyß?Æü:óóÖûÖ;[?>ÇDZ¯—®SÞ×*æm+ïµÑ_R{±† @€ @€ \š}̹ßVm-Ÿå|¬äÛ9•+Ù–Æ×E?[×bøjOÓZÌ.óý—´>&?Ë©‡Ùx©.Ƴµiç\Y]+õÑf=–Ög=÷;•A±�³RÈÕr%èsjJ½,®ÆÎè}åJg·¼.�IVqo•3k_¥Ë¾©mÏøãV¯˜ùviæókùV«ý¼oy­eU“å¶êm/é,&­zH§µÏ+&MÌ).ëïU±^»¤¶wt€ @€ @€ �S#ÐúÙ}í~Gj3mŒÅµí­˜lo,êµ6ë}õó±¨Ñ:ÓøÜR_g1›]~ÿ,cÒ[\g‹~¬™»ö{õö¨ÕÔr½ýBwJƒâ¹@íaÆA^íï{”|멜Y»ì,Ñ÷ç+ékš«�Ç×+¥Þ¶Ö”óVµ^c¶V^¾×(¦¾ZGkù³µ]ê¿]m?c.®½¶æ«Nšl/ËE�ôÞ–j½€ @€ @€ �q½?ƒ¯éFr^ë};¹ÖÑÖr-­ÏËW?[—bÊÉZ�]^¿�l?¥ËlV§>Ò�h|m<ƒÖÒd}¥±¾Ÿê²˜r—Â2(n?f{IjÃÀ˜×Ke5Þoï´Uø~òk}¢ÆºÔΫs¨§ÖªS¼ÔCyéÍÆ˜ÖêaëÈÃÇ”“µžº“U\Öǽ¯|fMg—Îi¾bæÛåsÛÈÙ§×Ötgx€ @€ @€ ìšÀÈÏì3휘¯É|Åd��üÌÆ˜ô>n¾Ö>ïc÷—¯‘ï­×–ü¨·uvIg9¯ñ~Vc±O¬�ë¬>ÆX;Ç>(¶ÀíÜ­]ukùZ.öÑ:Ö´Öª+ÙX_Ò).½¬âÑZÞ_ÆH1ù7ßWzßÇ|_'�b¥µzho­ÕOuŠK'«xÔgyi-g—zkícW�Kê}mçvÈ @€ @€ @—ž€~Æ?D«v4ïõÞ·³ùµ|YŸWLV9­½õ¾é처âÙÚǤ•µœ]¾~Ù~*îõòe½>ú¾>æjkÕÕ4>õ­µ¯-ù±‡×Õr¦kå}¯ƒó�}P<¨=°lp—ų˜öŒ¹¸–Î[¯‘oÖ.;“b¶ö¾­u)®:Åc½âfUãýXo9õ�oÖ_Y�Ïûú·µÎá­tª�ÖòYLuÊ›U_ùfk—õÕïÍçLóªÃB€ @€ @€ °kþl¾Ö+Ëe1»K—/+ ZËú:ÅZV5^}[g1�ÃÛ’6ÆU£¾ZË*®:YË+'­¬�Ë/Õ)¯ÚÌFM\ûš,—Ŭ¦÷ýNÊ?”A±ÀÇáÜ\ØÖo­^:ƒïé}Ëǵj¼•Ƭ]ñ|Y^ÚmÅ3k7ë-f{(nkù²Óe1»T³]�ÿôgŽ=²zé•S7íQ²Ò™•&Æl­3Äþ%­â¥s)?bÕ«VS;_­Ž @€ @€ @u½?ƒïÑeš«­•“µ“Ë—ÍbÊ™õ¾iíŠqi¶Ù³¿V�·±—ôŠ{ëý¬‡¯�¾×›o—bò¯ÝG+ï¤W]õUܯ½¯üR»fÏ5{-º¯C/º‰ÎbƒÞ;Ô‹:_ëýÚÖÒ™µ+öÜFÇ>ÕËWY_íåãæ+®:¯UL5:Ÿj×:ÓûXVïóÖOû«÷œXÖCýb.®¥Ë¬iýÏîsø€ @€ @€ �¹?ÏÏ겘ÝeŒûµ÷½VqÙ,§˜4Þzßtv)&ßÖŠÉ—•Ƭ.im-�¬b²ÒÊZÜ_Š«Þ[¯›ë«ŸÕk¯V/¯ó¾ê²˜rÞöê|ÍQú—iP¼Ïd/�†”qéÏQÓ)çõ™/�Y]~oå-'?ZåTï­ï¥¸öRNñ’õ:ù²ª‰k‹+&+­l)îk½V¾Î¯u�µ½²kN¯¬1@€ @€ @€Ö#ÐúùýhÞë½o'öëÌWLÖ×(æm¯ŸéD0ælí¿2�?—÷³^>¯^%«zŸWLÖ缯¼¬Ïá/$pŒƒb{JC»Q±—_{¿Ö×ëÌ·«t>i½.ƶΆ¤ZËj8ZÚÃt¾§ô—­rfý¥sú˜ùÚ[ûXLZõÎtÒXÎ.¯ÝFÎbµœ´²þ<Ëj¥õVu‹g󺥾ßgi/ê!@€ @€ @—…À’ŸÝ�ÔfÚž˜4²z.ZËZ\~´ÊŸÖY>æLc—ų¯«Éð!�…ÕÏ[ï{MhóôÒëÍ÷_ªÏb>'ßlv©^9[÷\^ç}«�ëž~%Íš½J{¬?ÆAq €=€8”ë�Õú–r¾·÷3½ò²™¦'¦z³¥KƒÒhMcZg½,ç¯Öž¦ÕùäûzùqO­e¥3[ŠY.;OIŸi­Gé²>þ­÷µø€ @€ @€ ŒXógóµ^¥\÷1ïÛÝi-Û“Þ¬÷}}æG½_›^—âÑZÞbvyëý,ûDýÕ†3>zûHçÏ6c»s%¾§½1é�Ξڠxî°íƒ~=êë ª3k—ï¿�Ô?}½†Ÿ½=jµ½¹ìtÚßß“üLcº_³>Y}«¿Ï/õŤÖg„Q­9@€ @€ @€Îèý|M7’‹Z¿Îüž˜4ÞzßîØÖ>–­EF¹hÕÇë|Lý³˜Ï©¾d¥�¶¤ÏâV[«WÎjGýXcëKy1(®?v{±4,ùYieKš,®˜ Ñ*_³±FëZ�å¤3k—�?»¤³œ÷£V9Y¯÷1÷=¢¦¤SM¦WÎ[ÓÙUº¿m–O@€ @€ @€�@ïÏú{t™¦‹y­e�Ÿ|Ù,¦œYïKã^}ie­‡]-�ô^7Z7·öê“�Ø/‘\ Ig‹’_ª½´ñSÛÃÖàÏ?È,Þó}FýlõPNVñµ­úG[ÛÇ´ñŠ\½Æe¥Ó~ÖGZédãq�鲘ՕâÊ™Õ9Ìo]ÖO×H�j°€ @€ @€ ì—ÀœŸç—jJq»#Ÿó~-'�¬×*Öc¥ñõò•3«/ËùKqo}>óMkW´ÛèúŸ=ûH³ÖîY¿Þ˜�!Ó®u¶½ô9†A±Aö¼]�©íãsÞ·³øµ÷ã9•“�y¿6MéÒpT6Ó)m¦UÌ´þÊΠ~^ç}Ÿ÷¾×˜¯œlÌ_Äú�Îr÷Ïž€ @€ @€ �c$�Í3zî#«ËbêåsÞ·¼_gþHLÚÌú˜ùúÒJyÅM§Kµ%k:Õy›é£6Ó¨‡öϬ4²5�ßS:_ç}åek9iÖ°ûÚgöY�aPl7g m�7÷Êê³ØhßÃû¾�ÅíÊίÜVqö™i•Õ>²Š{«\´Òĸ­ãUœú¸÷c}¶.é³xoÌö1­]Ù}l3gŸYß³, @€ @€ @ÇD g6�ÝO©n$.­¬öÑZÖâòe³˜rf½/­�EM–Ë4Šy½ú›ÕÕÊKg6j}Îû~oï{�|åµöVûYÌû^3âg=²ØÒž#õ{ÑîsPl@5ÐÛåÍ-ÝgN}Vc1»²{®å¶UgŸêíkbìLÝçiXm¬ög×þ¦Q¼÷Ú'ö�ëL—Åb]ÏÚŸ¹G_Ò¨�òž‹bX@€ @€ @€.†@ïÏí[º˜�k»;ÅduÇ~-_6«S.³>Vòý¾¦‘.‹û¼tÞ*?bã=ù~:CÍj¯LSÊi�¬¦›Sã{-­÷½jþ¾ö™ö9(®Ýð>s7û´¿Ïy¿7Ÿé|L~kÿ˜ÖŸE¾¬zöXß7êý™2�Îëlís%_u>¯Ø¨µveçÜfÖÿ¼ˆ=׿ :B€ @€ @€.�Ö a4ŸécLkY#-_6‹ÅœÖÞöúQgk}ÙÞºˬ4½ÖzØ%ë}ßßÇÍ�WÔú¼ïíãæûœ÷¥ó1ï+/[ËIsRv߃bXƒ·9@Õ§ÕÃt5M)ïãòeí¼Þ�çÏrYL}|½�µ¦Õ½HcväR½jJ}¤‹ýu>Õ{ësÞ—&‹Y.‹g1õÁB€ @€ @€ ��8ãˆúÑ|¦�1­emÏÌ�±¸V�âÞF?®}­å”/Å}Þ4v©®×ªæjñSõò½Õ^±¯×È—Vk³YLyŸ“/[«õõò¶•¯õö}Z~Ï>­Ãù}Ї¸b�¶dv•rY<ÆüÚûÚ§³|é<–³:ùá©üZ½jµìgyß§–W/_ýl]ŠÕâ–[zé¾–ö¡€ @€ @€ �ã$�Í=ü�ÌÉÇšÒÚÇ3¿SÎ[ïÛ=ØZ_~íý,¯˜Yie}.æ·êò§×G_}ËÕçïÅëÔ«‹ù¸¶º,V‹·r–?™ëTÅzÈ=ƒÓ9Ïúg½}<úÚÇוΩZå­Öש—l¦W.ZëãõZ·tÊëñlZ·ú©OË–ú¨®•—nWÖßï®ö / @€ @€ @Ëèçù­.-]–�±ÚZ9Y;Oæ+Öc½¦æ+§=m­˜·ŠËJ­ò%ëõæg—¯µ¼­ã%��+æõ%?Öùõš¾ß;{ïu*ƒâÎ�œ1gëV>«‰1ߣ䫯òvù3)¦¸ïa1­½ÎâvihêûY\5òÍú+ÖI¯=|^1Õ+WZ+~V÷µ‹³d\v±=!@€ @€ @hˆ?·oWl­º˜�këc~-_6ê±^ë}õ¶˜�kíc^+߬]^çk÷š«O}(k|¼¥�yÕÆ¸Ö>ï}åGm«G+?ºßAèmP,Èqº–õ¬õS^¶¶W�&Ög5YÌê�¶ÔÓtþòÃÜxÏQkuÒË–z)žé|ézm©_o=:@€ @€ @€.7�lþÑC¤Uóqm{Ę_Ë—�ú׺f³œ�EßÖ­˜Î%­¬ÅýåãòeMg~v)mÔ*ïãYÌç3¿§FÙ¬�ÅZùR])¾v¿Ò>ÝñCëàʆˆk_=}¥‰ÖŸE9‹Õ|Ëûû0­]>fk÷ý|Î|]°–úHç­¯Ñ~Y¾óùcò#×c:;g… @€ @€ @ '�ÍcÊÉ*ŸÙMV׊íªokßjþPÅÙ¡0G3mOÌú�ô’^6îáãÞ—.Æl­+ž£–³ŸW³±�żÖò¶–ÎçL[Š[N—zhm+oúMì»ÆZ÷«ûô==LJ @€ @€ @àp ègÿ#',Õ”âÖ;ËŘ_Ë—�=²¸Å¯YŸó¾ö°˜¾|Ì|»”“ÝFÏïsÒdõ½Zß#öñ9ë/ó¾×).ës5T¿¯^µ}VÉÓ 8»a{pÙÐ/ÓöÄÔ/ÚRm¦SÌ×ÄXimq»ü=)¶Íl?}Þ"™Fzi3M-×[¯¾ÖK¾j£íÑÄ­­·Î«ØÚÖŸ¿w/_S:Oo¯R=q@€ @€ @€Àe$Ðó3ø^.=½jš,cZËÚÙF|iÍzß÷ññ–¯ºØÏ¯£¦'5ÖÃ.ŽÝf¶ŸŠKsµu¬±^1öT蜉:­Ï‰,Öî·à(ã¥Ç>(ŽwlCC¹?Ö—Ö¾—4sbVc—?£Ö±_Ô^-|êC9ÅÔOk³™&Ƥ·zŸ‹kéd[yédGõª+Y�ÕúÚekùW|@€ @€ @€ pô4XãFzzÕ41ç×Þ·³úõˆ/­·Þ÷½-žåb¼w-�ïc¶¿¿|^u>o¾4>.mÌek_§~sc±.®u®¸O)ë�n}jƒâÑ`VCÌžAc¦W,î­—F}£.®­^5æû:[ûK9Å|�bÒø\óú¨­­Uw(ÖΪû³3éì>¦³F­âX@€ @€ @€‡€~ֿƉZ½Jù,cµµÏµ|å½õ¾qðkï+çcæ÷¬½Î÷QmŒE½åíRÜÛmæ|N1Y¿�ÅüZ½¤õ6êb­×F_µ²1)Ö—}P¼æC¶ICIïÛ=kÓ©^51fk»âK«º7m–Ëb¦]ë²þºçìLkí³¤�ÎWêÏ-f%}-{Õ´ä @€ @€ @XN`ägó5m–‹±ÚÚçZ¾ò5ësÞ7b¶ö±‘µ¯W�óý²œÅâk,_ŠùZÕ(sŠc <{PŸÉçÐZu¥|Œ�¬½6óë±™ÆÇÌ�kñó9‹Åu)Vª�qí«¸úùµb^ÏásÒ«‡r²1/€ @€ @€ ì›ÀÈ0±¦Ír1V[û\ËW¾Çf3?®õ |ÎbZË–b±Þë³Ëë’6‹E�_Ë7k[1é[¶Ô'Æm}R×)üF±=\?¬Œë]=°l3ß.�­•óZóc½ÅìRÜ|ßÛÖþÊrYÌ×ìË YÛwÔ�5ÙZ1³ºwóue,•‹Ök}.ëëóø€ @€ @€ ìŽ@éç÷­[u¥|Œ×Ö>×ò³¼b™mÅ,ï5Ñ/­�›j¥‰1å-n—Ö^¿Íœå´özÅTï×Þ÷}½ï5òwiãÞq½Ë½wÒûÅ}WÃ9õ.Ùì!D­i“Þ¯£ošx?™F½¼Ötv)¦õ6ºý¬å¤3�¯õkïK?×úûšÛƒ:@€ @€ @€ ~¾¡X�mÕ•ò1^[û\ËW^ÖîA~f[1Ÿ�~¶Ž11´xüŠ9­ÍÖ´^絊ë Ê)×ÒÉz�|åJVº5­öZ³çN{ò X05è\„õT?ï÷öV�lVs~]ò­�åtùá¬Îk9¯±µrŠk�i-¦K:Õ)^²¦ïÕ–zì*nçÒýØ:§�ù¸ù1ó%�Åã¥ýbܯ³ý|€ @€ @€ �gèùü3«òHO¯š&˵b>ßò•—µ»�ŸÙ‘˜×š×"¦\Ìkuq­zÅÍú˜ü¬Ÿj|Îûê%]´ÒÊÆ|mík¼_«éͭݯwß.Ý!Š»n Cd`ÍA�ï'_ÖÇbvio¯‰¾×™Ÿå½F½-f—í‘Å,§x¦±¼®V~T'½Y?>Þëûzï÷ÖÏÑ­¹�õâ‚ @€ @€ @àbôþœ¾¦Ër1æ×Þ·»öëÌW,Z_ësÞ�Ÿ3?®¥Ïr™6ê£Æ÷‰Z[Û¥šíj»ö±šïs¾>öÍtÒϱk÷›s†�Ö<{…î„ÎiÕS›izb^SòíÌÊE[Ëy­÷c�åb^÷:åÍÚsµØÕ‚ÊGì×¾ÔrK¯žo ¯)ù­sø:i-–Å-_Ë©ÞëJ}¼€ @€ @€ �Ã! Y@ÏÏø¥ÍN_Êe}}l®¯ºhíl>æýZÎëÌ÷k«³ËÇýÚk¥ÉbW›¸>Òø^Ñ÷5ÞW­¬Ï©‡b²-mÌû>YN}½�º¸öÚQÍ^C{_ôoëÆ×Jöô±=kºV>–^¶7ïõæÛ¥sÕr¦Ëô¾¾¦±\é²ýÕ»¤¹¨xñë=£¿×V­×úþ­:¯Å‡ @€ @€ @`]¥Ÿß·vé­Ët16²öÚÌW,Z»ó~-çu5?Ë©¯r¶¶ËÖ>×%�ÅíŠzßKyoÍ÷—ô²>Wó[úV^½{uÒ—ìZ}Jý›ñ‹7X¸‘]�>Ó(V²:žò¶–oÖ.;§bWní5–ókïûœùº÷–Fy«ñ—Τ˜_{_ù]X;›î£Ô¿Gãk3½´öò}F|õ¯ÕìjïÚžä @€ @€ @ÇN çgðsï±Õ»”Ïâ1æ×Þ·³úµ|YŸWL6æϬ�y_=|ÌüÖÚ×IëcæÛ¥^%�ò[õ™^µŠûµ¯‰}KúXïu>ã~í÷òñ’?ª/õÙküXÅÉ€×pµ¼Ïy_ð³˜rÞF]\{­ù–·ËÎíµ>nùVÎ4v©ÏvõÌOŸ÷~OmÔÄúgîvñç?‹öyµÚ˜‹ëÚ¦Õe÷/Ÿ·\¦‰5¬!@€ @€ @Ø�ø³û%;õôš£‰5µu)çãòKÖX®”÷ñ9~­Ær­¼�Ï.¯Õúj¢’‹5Ò{«ý‹kÅ£Ít>æýžZ¯©ÕzÝÁùÇ<(…i©5ü«i”‹VçPÜÖ™_Š™^ç2�]¶ö¾Åj똋zŸ—ošC¹ìLbÏTË™6æu¥~±i­>Ê/é{©'€ @€ @€ �ݘó³ùZM–kÅbÞ¯[¾òÑ-‹Åx¶ö±5|=)ë•õ³¼ÏÅu+gz»|ïmä,æó1—ÕI#+�Ö™íÑduG;†A±=ŒÞ!݈¶÷aµzƼÖfí²³+fkù²Š™Õ}–r×¥¾¶öuÊ{µêÓ÷}öåûû�{Ör^ëïÑÇͯå¢VkÕh-+öZc!@€ @€ @Ø�ÒÏïGNPë1’‹Z¿ö¾�ͯ3_±hUãÙºóùšŸå²s˜®¦µ»¼Nko½ïµêmy»âz=ûlåÏ”ýÞHÏmÿ VTàØn×@ÎÈÕê|Îû›ÅJ9ie¥3ëcòe³¼Åâ·¦Sά¿|�~¯.ÖÍ]û{÷=JqÓÄ\¶6]öŽ˜Ö®Z®”¿ZØøPÿš,Û»¦'@€ @€ @€@{¸„Qëçûµ|–‹±Úº”óqùÑÚ=[,ƳõHÌkk¾Ï‰¿Å·Xôµné²Z‹ùË÷Êâ>&_5Z›õ1ï{MÔÅ\m]ëY«ÛkîXÅ%(yd×£÷ùÑê<Šk-›Å[1Ÿ�¾õµû´¸]ÞßF¶Ÿb‘é|�÷}ýRߟ;öÊrYLu1×Z[]Ô¨W�µZ‰¥�Íõcï¹}¨ƒ @€ @€ @`�ÑŸÕ—ôY<ÆFÖ^+_ÖîTþ›Õ´b>Ÿù:S–³XW�Y»¤‰þÕdÈ×bY½zG›iÕÛ[ÕùXÍÕ×zí=÷ì•v\:Të©/i²xŒùµ÷íöý:ó“õ5Š•l¦�±Xëó™_Ò+žÕX,^^¯\oLú¹¶ôMSŠ—öÉô«Å³\Ö_}d3 1@€ @€ @€“€~¾/ÛsJiÍÆK¹,ÞŠù~Þ·:­e}ÌûÊϱYM)VŠë,ÊÇu-®œYï[»|ÌûÊe1å2k±x©‡ÅK~­&ÖEíE¬ý}ÌÚ­ß(¶ƒdCÆY‡ÚqÑܳ.­óõòÍÚeì³uæKky]b^Ê)îû+¦f•oÅ|~-ßΣûˆ=c.®MŸÅjqåÌ–öµ\¼lŸìé‘Õƒ @€ @€ @`>�ÒÏïG:¶z”òY<ÆjkŸkùÊ/±Y­�yßøÙÚÇâZŒcÜ×xMôc]–WlÄjÿ‘ÓέÝg ý*g]kPìáÛàÌ@êÌÞ×CªÅ”+Yõð6j-çc¶¶óXÌ.ùÙ¥Ù*Ï߇¯U¾É{m�¯{ëÑš&ê[ë¬F{ÅZÅe-¯K|µîµ¾G©fnïR?†@€ @€ �Ë@ çgðs9ôö.é²xŒ�¬½V¾¬Ý£ü5¬ïá}íS‹•4Š›µË÷(ù[åy­bÑú–+­}�4¥X–÷ÚCôW=ó.Xsz÷ÔdšžXÔøõˆ/m´ö²Ä˜­³XÔz�÷¥ó±Q?ë1“~Žõ5½~Mg9»Äa»Ú~f1åk9i¼ÕûZ|@€ @€ @€‹À耭¦Ïr­XÌûõˆ/í›ÕΉùšßÞÓ•´ÊGëõ>çý�××ü˜ËÖ#1ÓúKgõ±–?§¦ÕsZó7Š››�ˆÀ„ £-Ý^�Në!ß[‹kÏšo¹xù:å|L¾¬4Þ*­×ìÒ ¿GoL5¦×e÷Ѻ¼Þ´=5­žä!@€ @€ @Ø�øsþž]{j2MO,jüzÄ—6Z»¿³u‹Z¯ñ¾t>æýV>ÓZ�]ÊmWç?•“=Ÿ=[)홯JàÙÕì²äœÁZOM¦™óu#¾´²FJ~Ë–´µ:Ÿó¾žP-–í§º]Øì›Q±Ú~QÓZ[¯¨Q,‹û½-ßÒx½ï«ZÙ¨c @€ @€ @€ÀþèçõÑŽœ@µµš’Æâñб‘µ´²Ö[¾loÌôª©ÙÞ\¦‹16ï×t>çýZ½t¦‰—Ï�úÖË×ÄÞ'µ>•ß(ÖÓÀTѯ[ÎzHïý¬NyÙš¦–S½Y»lÓÚçÌו峘ôÞz��ïÓ×½jÏѵÕÅßË|»ÏÒeµºj:i2ë{dy‹Íí]êG€ @€ @€ pôü ~.‡ÞÞ5]–‹±¹k_'_ÖîY¾l³œò=¶¦Ér>æ}�%‹µr–�—úĸ­•“Í4^ý’ÞÇcï¸öÚ£ò�qPlðçÞbm\g¯GcuÒɪ—Ö-›õPM–‹1ígÖøX­¿“õ¹èK#óKÖþžæôÉêu¯vÞxÕr^+�bY/åFmì=Z�€ @€ @€ �eFV_Ó—rY<ÆjkŸËüјôÞz߈ÖÖY.‹éÉÄ\­-—õÉôÚ·dÕ§”÷=¥é©‘6Ú%µ±×^ÖÇøWO˜Ò/‹ÇX\Ç~>Ÿù£1é[ÖŸ#j-§K9­Í*&›å|L¾ôÑ*¿¿iZk;SÔ蜥¸j,_Ó¨OÔ÷Öøz|@€ @€ @€.Ž€f²='‘¶6(å²xŒ�¬½V¾¬Ý‹|Ù,¦\�­iFs5½ÎÙ£‘6³sb¾&ú¶Î.�3Ë}ìÐ~£Ø`kh9nO}�¦¶wVß‹š¸¶=+Ù’ÆâÆ-«ó9óí’v»ÚݧÎw(Å£NëLŸÅLoq»jïQ�fÛåìS5g‘3¯¶×™ € @€ @€ �5 Ô~v?²OOŸš&ËõļÆûvv­e}ÌûY^±9V5ÚCëÌf1«³«”S|«Ú~ÆXkíû×úø\�÷Íjz4Y�bKëÕg{hƒb»)ZkøfýFzy}ËÏò>¦ûñûû¼ùvY^ñš­i-§+ö‹q­÷iu_Ùž1×VÓSÓÛåÙo#gŸÒ´tg¹çûä ¢€ @€ @€ �ÞŸí·tY¾'5~=âgZÅva{zöhì]0�´Z›ÕåsÓZ¶óùèÛºuù}ZÚV~Í^­½ºó‡öWOûƒ×|Òeš¹1_7×Ïê[ËêÞÍ–zzMôK51ëÖ^·¾!Zy�§¥³|Kc½¤“U, @€ @€ @ÇO@?ÿ—mÝQ�Î4Ùãqm5>æýZÎëäËú:Å¢íÑXM¬ëY÷h²ý-fWoýV½ýT��õú±6®{û˜nIíÈ>«kOqPl�4ôôÀZ±˜÷ë_Úhý¹bnîzNOϤæëL5Íš¹žo¢’Æâ¥œÎ(MK—é{kT‹… @€ @€ @àb ø¹@ïÏù}MíôÒešl¯Y{mæ×b=9i–Ø%µÆ°T_ã«_ßëǾ¾—r½1é�Ò2(>ÿØüpÔû¦òkù²­|¦Sl©=ÛU©g¦mÅÔ«¥ëÉgßTµºLŸÅÔ£–“ƬézµªSMf¥ÁB€ @€ @€ °?ÙÏì9ÅH�iKW–ë‰y�÷m¿Îüјô-ë÷öZï—4kÄk=,—]:›å¼µµ\ÔžôzÍ!`µ´wO}M“åzb^³†¯Ñ¯»èuÏ™¼Æû:»�E?®}�åìê�•´W›ú(—ÙlßLG € @€ @€ �ã'0:,¬éK¹,ފż_g~³§£xÉöhJµ»Š÷œÉk–ú±ÞÖvéþ¶«ígS¾–ÑH›Ùž=²ºjì�£ØÞ3¼+i²x‹ûD�_�ø™V1Y¿·b»²¶WëŠ{·ôKóK_êZ½åjùxvéecž5 @€ @€ @ÇK@?ÿ—í½“–Þò¥+ËÅØÈÚkåËÚ2¿S®d}Ï’f­xm/ËéÒ~¶õÕCÖ×+6j{zôhF÷]Eèƒb»I /K7\Ëg¹ž˜×x?žÇç2_1Y_¯˜l-'M´%&Y<ÖÆuV“ÅT—åÖˆeß,Y¬w/«�S¯:ÙÞýÐA€ @€ @€ pñôó}ÙÑõÖ™.»²xO,jü:ó}ÌΡu´Y.‹ÅºÞõœ^V£+Ù,§˜ÏGßÖþò5>îýL“Å|MÍ_R[ë»JîÅ¢4¼ì�g:ó¾ß¯'.�l©^ù^›õiÕZMéR­Ïg±‘¼iç|d5Yl¤¿ÕëËêF/ÕF;Ú= @€ @€ @ëˆ?·×zΪ5Ûs•tY<‹Ù1î×Þ�ZŸËüјô²~?ÅZv­š¬�ÅtéZËÆ¸_{_úh{4¾fTïkÂßå Øn°5hì�ÐÓ£¦Ér=±¨ñë¹~V§˜¬ç¦˜¬ç¥XËÖj|N¾úim6‹ùü䛨¤µx)—�mD›Õû˜ö®Y¯Ç‡ @€ @€ @ �@ígïÊõuj«¬_ïUÛ»Ô'‹·b1ï×#~¦ULÖî]~´µ\Ôj]«±œ.ée-._ÖÇT'ë5ŠÕôҔꔗíÕI¿ »³3ìr(K÷詯iJ¹,c~í}»7¿nùsòª‘õ{*íR�¯÷¾öñ±^¿¦³œ]¾ÿ6²ýÌâY¬UãóÑoõ‹zÖ€ @€ @€ œ�Ñ!\KŸå³˜Ìâ>æý¨÷¹–ß›ÏtŠEëÏsZ×4YÎǼŸõóùèǵ¯�9[Û5Ûh9^«Qm¯Æë£_:WÔÍZïú7Šý¡–äzêKš‘xÔúµ÷íÞüºå÷æ3]-Ö“«iü3ò¾¯QÜǼ¯|�]úB·ê-ßÒøsŽê}-> @€ @€ @ÇI`t>У/Í'zãQW[÷ä¼F¾¬=µÌ¯Å”“õ=“ÍrÓ%�¬Å3?‹•´±wÔeëRlNÜjtùs+6b—ÖwíÅ ø™˜â´¶îÉyMËÏòµXoNwéõY,ËKwêÖ¾áüשß/÷@€ @€ @¸Lü `ή§¦¤é�G]mݓ󚖟åk±¹9{çT+ëcÑ·µ]%í6{öéugQ¼”À>ƒK÷ꩯiJ¹,cµuOÎkZ~–�ez{—mÅ|¾×�ºžu¦±˜]þ¬ÛÈÙg-'U�FÚš]«Omr€ @€ @€ ¬C`­�aOŸš¦”Ëâ16²öÚ?Óf1{*ŠG›åæÄ|�÷µŸ�™oWo.j¯‡zÅJZåýžŠEÛ£‰5~½´Þ÷*ú§öÅv£µ�^)ãq�õõšµýV¿,ïczà>&_6»§+i}\{•숶ÔcIܾ‘ÖøfRŸh—œ�Z@€ @€ @€–ˆ?·×zY×ílÁzõ\5])—Å[±˜¯­}.ó³˜Ý«â²kÅZ}|>ú¶Î®ìŒÒùœbÑ–4¥¸Õ×r±ÿÁ¯�iP,˜­Ác-_ÊeñY{­÷í´–õ±’Ÿi³˜¯/åMcW+¿U�ú¾ãÕc‡ðÍhg(}�Ý j@€ @€ @€2¥ŸÃïrNÐÛ»¥+å³xOÌk¼oÜüz®ßª›“oÕø³{­�×|˵®Ø·¥Ÿ›ß×>sÏw®îÅvƒµae)—Åcldíµ%ߟµ¤ÉâYl´—éíjõªibÎÖ­Ëï×Ò®™·oL}­Ù·ÖkßûÕÎB€ @€ @€ plöýsvíg¶÷jiKùÞxÔ�¬½¶å·òÆCYó~+_ÒZÜ_=}Lïu=ëLc1»b¯mtûYËyÝÑøûÚ­µWoŸš®”Ëâ16²öÚ]ús{÷ÔÙË\Òµr1Ÿ­-f—ßcÙ~–âÒ´òÒy;§Æ×ãC€ @€ @€ pzæ [5¥|o<Óù˜÷í‰øµ÷k9éd{´^3·Î÷˜ãÇšžu¦±˜]þ>¶‘³ÏZîLUïáu-¿w¿VŸjþ£Øn¨gÐWÓŒä2mŒÕÖ½9édõàüZ¾ld1÷Zí•Y¯ó~Ü»U›å‹}ï±s¾Q¬fN]ÏyÐ@€ @€ @€ p\æÎ zf 5M–ë‰EMmís%ßž–r²>6ê—zø>%��{}ô{Ö¦‰WìóKÖ»ì½ä\ÅÚ}ŠíK‚þ&zûÔt¥\ï‰E�_—üȤ¤›÷uq¯O_ã}¯ÏzÕ´±–5 @€ @€ @8s|=u5M–›óuÞ7Æ~=êûúÑÚQ}|JõþLªñÚZL¹h³zij9iÖ´{Ûo߃bƒ´Æ@±·GKWÊgñ‹ëìÞ¼ÆûQësûô{Ïu¶n]þ>¤ÍbÊa!@€ @€ @€ÀE˜;˜ë©«iJ¹,cKÖ¾ÖûÆÞ¯/ʯ�#æl�]þìÊg1Ë•âªÛ§ÝëY.bP,˜k {z´4¥|�±¸¶{ó1ïÇ\\{­÷{u¾fÔ¯íssÖY�ÅìògÝFø„ @€ @€ @û#0w8×S×Ò”òY<Æ–¬kµ>·–oO³§WÔÅ·À÷P.ÆâºÖ3Óªo­nTãõ™ß:GV³8vR2ÿ'IDATÅ©5ŒÌòY,ë•é|Ìû­úšÖçJ~ì_Ó™VWMçs¦o­Õ³ÇÆ^±¦•7}�&öe @€ @€ @€D`É�®§¶¥Éòsc±®¶ö9ï¿.ù½:__«‰¹¸Ž}b>[[¬teý¼¶•÷Ú£ô�}PlÐ{…-M)?�ÚÚz×¹]ôÏXÇ}2M)fñÚ•õ®éÉA€ @€ @€ �9– {kkºR.‹÷Ä¢¦¶^#·F{n¾�÷c.[—bµ¸å–^ñœKûíµþ² Š jkðXÊ÷Æ3]ŒÕÖ‡”ËxÕΧ—6j²>5­r½6Û¯· @€ @€ @0K‡}=õ-M)ŸÅ{bQ3²®i÷�ë}>ñ\z³Gã­:åOž ØDïÀ°¥+å³øÜX¬«­w‘‹¼j{è%Ÿ£‰û¨W-ÞÊ©G<�â½vi}ï>è @€ @€ @8¥¡bïôÔ×4¥\ï‰�j¢¾¶ÞEÎ8×úê9D�âÑ–t¥¸ê[ùQ�ôg/Û Ø@kHXÊgñ¹±X7²Þ•6c÷Ê4#±’Öâveûm3gŸ=š3õyoIíùN¬ @€ @€ @8U½ƒÂìþ{jkšR.‹Ï�ź‘õ®´Æ²Õ;ÓŒÄJZ‹ëŠgPü$íEŠt­á]oŸ–®–ÏrYÌî-ÆG×±Çh½×{¿Ä=jZëx>õ-Åc?¯/ÕÌÑÄšÞÞY1@€ @€ @€./�¹CÞº–&Ëg1{:Y<ÆF×±ïh½×{_oSŒ�®K}â¹¥[ÛÆóÎí¿VŸYû·†w³šÎ(Zë½}ZºZ¾”Ëâ1׆*ÆmÝsF=òxöV<ë­oK}½&úsjbÖ€ @€ @€ @ÀÌèõÔÔ4¥\o<ÓÅØ¡­3ÖñŒ™ÆbveÚm¦žkժLjÎ×d~í¬™~õØ!üF±ÝÔšC½Þ^-]-_Êeñ‹ëìþ£&®çÔÄ­u¶ÇH¬¤µ¸®xŽíÑ,ÑûÚ]ù£÷°«sЀ @€ @€ pL.|�–À=S�¾¥)å³øÜX¬[º6t£=zj2�ÅìŠûm£ÛÏZ®U;ÒÇk޿̃b{8­^-_ÊeñžØÍ5==j¬²ú9z«ñW©¯×ÈѪf‰Ý÷~KÎJ- @€ @€ @à²h ׿0²_¯¶¤[#žõˆ±Ñµ1ÝEMÖ·«Å[¹ž¼iNò:ÅA±=¨‘A^K[Ë—rY|n¬§.jâ:cÒ£Éê,fWoýV�ë•“Íz*—ÙQ}Ö£ÛeïÒžÄ!@€ @€ @Ø �8Ì\s—ÑÞ=úš&Ëe1»Ç,Þ›£™S³äŒz†Ù¾=¹ÒÞª�¶¶OÔÅúІakžg¤WK[Ë—rY|ÍXO¯�½¨Ktzѳ¥ÞªéÉ{í}¬÷ëÒ™½€ @€ @€ �Ó&°æp´WK_Ê—âö¤²Üš±ž^=š¥g-Õ[Ü®ì ÛÌö³•Ÿ«õu™?²oV¿ZìP~£X7´æàn´WK_Ë—r#ñLÛëÑßµu¥ž½Ï2;�j£ÑÆZ[/­Ïzƒ @€ @€ @à´ ,è�Ô·´µ|)—Åw[»¿½aYÏZ¼•ëÉ›æä¯SÛöôµ|)7ïÕfºµc5~Ù^5½åì*Õm³gŸ½º³Š3oIíY<@€ @€ @€ ðL¥¡å3•ÏŒôÖ¶t¥üñ¬ÇÜXVgT²x+ikñV®'o•Îæ5GéŸú ØÊèà°¥¯åç䲚}ÄJl²½KZ‹ÛUªiå®?õQëáuÞŸSãë×ðá kÜ= @€ @€ @ÇHà†xsÎÐ[SÓÍÉe5YÌÞ…,¾�Xio½ŸÙzr­¾êámm/¯;JÿÐÅ‚¸öðm¤_�¶¥)å׈g=zcÆwD[Ò×â­œåuegQ.³£ú¬G)¶ËÞ¥=‰C€ @€ @€ p1v9íÝ«¯éJ¹Rܨg¹,6¢Íê³X©çœ¸ÕØUÚg›ÿ<ô~ãw*y8¶öÙFûµôsó¥º5â#=F´zmJ5–¯åzꥑíé'mͮէ¶9@€ @€ @€N“ÀZÑ>=ÚšfN.«Ébö”³x+i׌[/»Jûo³í¼t²­~ÒõÚµûõî[ÕêoÛ¡×ð�öëÑ·4µ|)·F|�zqJ½zžQ­Vý{úxmæ÷î“Õƒ @€ @€ @s,þõÖ·tµüœ\©&‹g1c¹V¼ÖKϬ´—òØ�C°­}¾9ýzjjšµs¥~»ŽÛ+TÚC¯W+?ª“^¶·¿ôKì>÷ZrNj!@€ @€ @hØç0qî^½u-]-_Ê]TÜž\iï%9½µÞÒD;§&öðëµûùÞ‹üc†­}Æ9ýzjZšZ¾”+Åí¡—r£ñZ¯V®'ß«1�®Ò=(?b×ì5²/Z@€ @€ @€ŽŸÀšC¾Ñ^=ú–¦–Ÿ“+Õ”âö”r¥x­FoT­vD#­lO_i{ìÚýzöìÖò_=­›ØÅ oNÏžš–¦–_;·v?{µžsžWO?õ-Ù5z”z‡ @€ @€ @5k Gzôhkšµsk÷3Öµž=ù^�éüÕÚ×kOÂ?–!Û.Î9§goMMWËÙKUËRNßµ3IÓº/¯‹~oÿX·t}Qû.=7õ€ @€ @€ <“ÀE çîÛ[×£«i)gOmîyü¯õð:ïÏ©ñõ™¿‹žÙ>³cÇ4 ÛÕYGûöê[º%ùZíÜœ½DµÚž¼^ÄVédGõªËìš½²þÄ @€ @€ @¸¼Öþ�öêÕ·tKòµÚ¹9{›jµ=y½‘­>ÒÉŽêUײ»êÛÚw( õ´nh—ÀÑÞ½ú]MSË—Z¾–kÕöä{5¦³«už­ªü¹´¾Üy÷™c>ûîé° @€ @€ @ 'pöüèÍÁg¡ìéðȽ÷h[š%ù]Ö�VAëÕÍÕ«îdì1 Š}C·9=GjZÚCÏûÖ—<ŸÞÞÚcÔîºÿèyÐC€ @€ @€ pøF�£w4§oM�®¥9ô¼çÝ:«×îÒ?”stÝ#ƒâó˜æ {kzt-M+owÓÒ,Í‹X«�t²£zÕy»F߀ @€ @€ ¬M`�aáh�^}K·4o,÷ÑCϬµ—tÞΩñõ'ãëàm—çžÓ{¤¦G»†f�ö¢÷ôÑ7ĈV5£{øº¹þÜsÎÝ�:@€ @€ @€ŸÀ¾ˆs÷©ëÑ®¡Y£‡½!=}ô&�h—Ô¨¶e眧Õs§ùcü�b²ëAßÜþ½ukêzz­¥™Ë¾gÿÞ}Í^½{¢ƒ @€ @€ @=ÖÎéÕ[Ó£Û§ÆØöì7¢‹Ï«·¬;Ùõ±Ývyþ¹½Gêzµ=º�½È=º�ÿ¦Õ¯UëûŒúKÎ<ºz@€ @€ @€›ÀE —ì;ZÛ£ïÑØ“ìÑõhz{éíéí)½ìÜ:Õ×ì.{×ö]œ;…aÙ.ïanïѺ^}�®Gc/N¯nT«—r¤¿jjví~µ½ÈA€ @€ @€ �%ÖÎé7RÓ«íÑõhŒm¯NÏaT¿´Nõ5;÷Lµž{Ëë_=ííz€¸¤ÿHí.´»è)ö#½U#»¤V=æØ‹ÚwÎY©� @€ @€ @àb\Ôðoɾ£µ#ú^m¯Îžê®´ñ�Ù'ÖžüúTgû¸�¹{ŒÖ�èAë¿IFÎãëJþÚýJû‡ @€ @€ @»"°ö°rn¿‘ºCÐÚó9‡~së|�–¿�=ZgX”?µAÜ®ïgIÿÑÚ]êwÙ;{!G÷ËzôÆö¹Wï™ÐA€ @€ @€ pö9\º×hýˆ~DkO~×zÿv�îåk{ü]÷ï9Ã*šSø«§=ˆ} —î1Zhzñ=—ê2»f¯¬?1@€ @€ @€ phÖ8Îí5ZwhúøLGÏë/Õútûº§%ûÌ­­ÕÛË?§ÆÓ,­÷½2×ý³=‰A€ @€ @€ �»T.í?§~´fT/®së¬~I­öï±ûÚ§ç,‹5§:tÛ×}-Ýgnýœº95ö‚Í­‹/çZ}bßµÖ‡~¾µî“>€ @€ @€ ìo°8—õZɹ}æÔÍ©1>sëÄvi½ú´ì¾öi�cµü)Çöuokì3·Ç¾ëôâÍÝWõ%»«¾¥ýˆC€ @€ @€ �}ØÕÀqiß¹õû®óÏkîÞ¾G�¿¯}zβšæÔsû¼¿5öZÒã¢jõ2.Ù_=æØ‹ÚwÎY©� @€ @€ @à´\Ôq�}—ô¸¨Z½=KöW�^»Ï½zÏ´Šî2 Ùö}�kì·´ÇE×Ç—séyb¿C]_–û6û>Ǿ÷+?�þÌ1ž¹ÿîPB€ @€ @€ pˆŽqè¸ï3ï{¿Ò{r(ç(�ïBâ ØêØ�ÏE�ç¢ö­?²€ @€ @€ @%5½¨}�Cé<gØ÷(�Ó!œçÎÐ÷ôPA€ @€ @€ �Ó&pÃÙC8ƒʇv¶ƒðöõ?†Ceuˆç:Ä3õ?i”€ @€ @€ @àðâàóÏdOîPÏuPo½ñÇqèÌý|"~,çÔy±€ @€ @€ @`WŽe°yèç<ôóíêý™Õ—aÝ,lW‹Ž�Ý1œqô œâ=�2@@€ @€ @€Àa8ÅAå1ÜÓ1œñàÞX†nËÉ11<¦³.2ûë×ý±f'@€ @€ @€€0‰uí1q=¦³®û”VèÆ€kˆOµ8V–Çzîõž� @€ @€ @€Àå$p¬ƒÖc=÷A½e ×ÇÎôØÏ¿þ¥# @€ @€ @8 Ç>`=öóÔ[ÄPpw�ãÔØžÚýìîÉÓ€ @€ @€ \,�S¨žÚý\ìÛñÔî ÿvÿ.ãËp�»SØ€ @€ @€ ô¸ ÃÓËp�ýO|e%¾•�6Ú]fÞ—ùÞ¯i@€ @€ @€ pŽÀe�^æ{?÷ìzÁðnׄóþpϹdQXeTˆA€ @€ @€ p zö?%Xõ³ZEÉnŒ‹šð áÛY1Ïeghi @€ @€ @Ø;†�{GÞµ!Ï¥ ÓnD ÃvÃunWžÇ\rÔA€ @€ @€ †Ãò”LȃHŽÁ³I ‚ @€ @€ @8: ‡ð‘1Œ<À‡’‰ç”@!@€ @€ @€ p°ì£ÙŒä�? Âñxn0„!@€ @€ @€.„ƒá Á>SŽóÙR%Ïñ�žg� @€ @€ @§O€Áð‘?cŒGþ+ÇçÙVà�‚ @€ @€ @è&ÀP¸Õñ&ϳZã¤<ï5(Ò€ @€ @€ œ.†Â§ûlÏ݃Ãs8.í‚÷àÒ>zn€ @€ @€ �KJ€�ð%}ðºm„"�­à=©Ñ!@€ @€ @€�ƒàÃ{&u"€õ8Žú0¼KGýø8< @€ @€ @GD€!ð=¬C=*ýC}2—ë\¼‡—ëys·€ @€ @€ LÃ^Þ‚ %À€îBñ³ùà{ã€Gƒ @€ @€  `(; 9 @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @¸ìþ]¹ÿ½ˆ2tbIEND®B`‚nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/quick-compiler.html000066400000000000000000000040501376321042600247440ustar00rootroot00000000000000 nearley

nearley.js2.0.0

Quick compiler

Enter a nearley grammar here and press the button. nearley will parse it into an AST and compile the AST into a JavaScript file. (Note: some features, such as loading built-ins, won’t work on the browser).
JS.ORG Logo

nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/railroad-demo.html000066400000000000000000000642141376321042600245470ustar00rootroot00000000000000

Railroad diagrams

This is a demonstration of nearley-railroad, which visualizes nearley grammars as railroad diagrams. The grammar used is below. You can play with it in action over here.



main


_ AS _

P


"(" _ AS _ ")" N

E


P _ "^" _ E P

MD


MD _ "*" _ E MD _ "/" _ E E

AS


AS _ "+" _ MD AS _ "-" _ MD MD

N


float "sin" _ P "cos" _ P "tan" _ P "asin" _ P "acos" _ P "atan" _ P "pi" "e" "sqrt" _ P "ln" _ P

float


int "." int int

int


/[0-9]/

_


/[\s]/ nearley-aa39ac4ff36054b8c6276ce0c098e13dbb4a18a7/www/railroad-demo.png000066400000000000000000000355651376321042600243760ustar00rootroot00000000000000‰PNG  IHDR÷“LjWiCCPICC ProfileX ­Yw�ïãûýïwîãœó<¯÷ëý:¯uÞãuà#’££ÃQÌDDÆÅ8[š{zy ã' àá� È”ØhcGG;ð?�ï#¡5>R ÉúŸlÿ½�% 0–â›ýb)_ÃH‰Ž‰Û éb‰qÑ4übö¨ Ä+4¼�qP{Àîÿ ‹oð¸:›€Ó€ŽH&ÇÀhé ”`(‡1¶±FP#a·$ˆ (!dHãm†<òQ4übiÿÉ þ&“ýÿÊ$“ƒÿâ_¶ÀžðÅfÔØèpròÆÃÿç%"<úkã�WbHŒ•3¼³C¿•„EÙÒ0âK‘þ› f…¸• -ú�ûCâ­Ü ¦ñOPbM¡/'ÄßÈf¶ó€¢�s3þ�%É1mð£L¨qÖ®¿±{L”óoù¨ÐÈðÍ´ü€rP©!�ÖðáÀXsH‡: Bƒ¨ÖÃX¡Î¥„¸z@ õD5'PÝ7CÌqgl˜ Mšœ¡”S}ƒ'&Þ™¦³8¤¿ б ÙyÐĈXˆ6ä£E)ä�wqCºz\ˆ«¤Ã¾h»€@3sˆá{Ñž�‘n¿õA‡DÇ™ÐäÐøS¢Ã7òê‰>nI£‹B\›àò§ow\Œ+�ý† %ÛÐòꌞ�Žs¤ù„¦Ï"°¦À ƒxxúƒ( ¨ýsMsðéW‹ ƒ �ÂoÊŸ-‘ðêRÀ ybÿö3Ùh  �¾ú—ú«¯ÚhMØèÞÀ7D`x1=Œ¼ÁS£�ÑùÓO˜é�ž8sœÎ g�“ùC¨u8ôetºÝ‹nE7aô-t3º}“†ël±á�à¿osÞðh´�ú‡Gù‚òŒòÊŸ§¿¶’!…¦-0ÿã“â`þÓ¨èäjpHœ°1……­#)ŠòªÊ*šÐÆt_�7Æj„sàuÍ8ŒþC †9Ý2ÁîšD-LùHî(ñ1 ¿äah7, LðËà‚@ HC›T�&ÐFÀØà ¼À6èõµN©`7Èy E T€sà"hM ´ƒnp<�Á8Ì�ið̃ï`A%~%‘H’$#’7)Žt�TCºCzAZddcTd´f `Lg,f¼Æ8Äø‘‰À$ÁdÌ´�)…©�é2ÓÓ3�Y’Ù”™Ì¼“¹˜ù:óæ6––ý,çYzYÞ±âY%YÍYX³X+Xï°¾bC³‰±™²QØ2Ù*ٺئÙqìRìÖì¡ìyìÙûÙç9X9Ô9Ü9’8Š9nrLp¢9%9­9Ã9ó99G8r psråpÕq qýàæã6âäÎå®ç~Ìý“G˜Çœ'ŒçOÏs^ ¯,¯o"ïiÞ.Þ9>v>=> _._#ß?Š_–ß™ÿ‚€ €¥@´ÀI�;s‚œ‚F‚¡‚GÛg„Ø„ „¨BG…n Í s ‡ Ÿîžá±‰)éY•uÍ­}.F/¦-$vT¬Cl^\HÜ^ñy210úîiøÓÏc cË㻞aŸå>g~^ø‚ÿEùK™—õš7'Í&û¦\¦Æ_Q^½ûze:ë éMá[¡·5ïTßµÎXÌ<œÝ2;ý>úýò\ö–%¥?^ùdô©oÞs~úsÌçõ/û¿ò|­þ¦þ­cÁqáÅ÷ˆïË?ryÏ-i/õüôøùv9q¿rbUfµeÍvíÙzÄúz49†¼±@Ã+*(€/Õ�¼`{=ã¯=×\"#�bwDy�êDÇb$0³Ø2œ/^?NWN¥W¥_a –’â73É0㘧XºXϲå°Gq¸sšsypGðdóžáká˜"‹‹‹ú‰¥‰K\—“ú)Ã'k ç/Ÿ©P£8 ôU…[ÕP�¢ž§Ñ 9¨õQ‡¤+«g±É_§A‘á£~ã·&kfÜæŠf–VaÖ©6mOÛÕÙßÜÜç0æøÆé› âJtãrç÷òó’ò–ߢꣻÕt›­¯›…å¿“r  4°!¨+x,d>”.L8\'Â%2**7ºj{{Ì‹Øåxî�DפíÉ)õ;R?ídNWÛå¶;)£$³=ëM6q¯Ú>ܚ¼GûWJæ;$ª<üàȧcL…*ÇÝN$�,)j/~{ŠtZ£ÔçLfÙùòÁŠUüg�«Ïí­9w¾çÂëÚõ:îzåK– >�1—s®œ¾zéZkÓ�æîëwZnܸØZtswå–Ñm®Û³í×;vß±ì$tÞëÊî6î^î¹r7¬W´wìÞ¡ûv}ľÁ…ýÞ‚S+ƒ†¤‡f�},ûøýÈ…'a£ò£žÖ�mW_|Öú|÷ ‹—¤—ÃE“Û¦D§f^]}½wÚ÷�þ[±wÌ3ØYÔ{ú9¾Z·|Ú;ßòùÛWõoI m?ð‹NK%?߬(®Æ¯µ¬¯oÄ_ ¹„òB³ 1[°ôØ‹8O¸ª©§#¸ ÷é³LˆXâÒFk&F¦Qær–pV-6<Ûsö>ŽnÎÛ\7¹›y.ó^â«å¯¨¬ª.)-«¯–¨‘¼(Õ }E¦E¶]®KþžÂ�â¨Òså*ÏUŸ©�©?Ñx¬ùHk@ûžN—n»Þ�MWô/Tågš$š†šm5ßlad©b%lÍllæmŸÙuÙ×n>â°ÃÑßÉÚYÙ…Çq�qr¿áQå™ï•â¸ÅÁgÓV©ml¾ˆïG¿qr¯¥*àH`VÐîàŒ�LjfhFXfxFDfdfTFtÆöŒ˜ŒØŒ¸Ýñ»v%¦'¥'ïLIÛ‘ššš¶cgJzò®$˜ù™UY­{†³ßïCçðæªæYí÷;�xp~eAË¡‡‡ßY9ÆR(u\ÿ„ÓÉ ¢ÔâC%•§ZN”¾:ó£œX!R©Yesv[u Ì�âóuÚk‡/¾­ûy‰Ø بtÙøŠóUʵئ¬æ£×«àÖÙúèæ«¶Ù[o_lÏí¾cÖ)ܹÒ5Ú}¹çà]j¯é=�{ßïôU?HïwPxˆy86Ø0”ýÈgXå1öñøHÓÜQêSÛ1Õq¡glÏ™^°½™Ð›ô›:òjxZúÍþw`&ç½è܃�9óN_¤¿1,,þø´4»üaõëFüå@'b‹Œ¢¶ > ÃЋ˜ ,7¶§�»W´«tÅÂý^U†—Ä<Ò&Òã)&gfæ.–ƒ¬¾l*ìöaŽ*Î$.{n!îž{¼e|IüÒ‚ˆà˜Ðeá|‘PQ 11±5¸Žj–,”Š“v”‘–Y‘”«’OV°WQü¬Ô®|HÅOUQuI­Ž.šÜšãZ¥ÚdQ�IÝR½m›ø6=Ñ?bà`H22*2¦˜È›|5½a–engÁn1nYÇ Uë%›Û¶{íì9áz¢Ü�ê¨èøÍ©Å9ÝÅܕ޵ßí�»«—ǘçi/oiï�[®ùìÚj³�sÛk¸È"{øËSP”±€+�AÁ¶!rTê‡Ð‡aW ##=£t£ù¢W·¿Œi�­ˆËާ&Ø'ª$q&-'O¥ÜÛјZœ¶ggtºÏ.ëÝšb™¬YHÖç=o²§÷Îìû˜ó%÷{ÞÏýkQù¸Â!Òaæ#ìG¹Žñ 9!~RªH¶X¡Då”úi­R½3eÆå¶”ÊÝU¥gÛªÇÎ-žç¼ ^ët1¢.·¾úRgÃDãÊ®«jךB›÷\/ki½1Òú¹�xKò¶QûÖŽwŽwÖuuw?ïùÖËtOé¾[ßžm¸‡¾ƒ=�l‡§FJFÇRž�}I˜¬}}üíàûøOùߌ–jiñÿU{£Í 8¸;­2„œ7\ʨh@BÎU8’pÕ(×€¼hˆ×É¿ó0€Ötx€Pƒw2à^ò*Ÿ&DqERàð²€âC™ BQGPm¨Y47Ú�ˆ®A?Ã0c,0ipO6÷a!pï5�“À…à.à>á5ðiøn:f:ºº+B á ½5}9ý*ƒ7C3‘›˜B|A2#Õ2r2îfüÄäË4ÄlÁ|“E“¥�U‘µŽM‰í2»{‡-Ç(g0ç"W·,w�?/³Ô„oš?W@Y`D0]HZè‘ðN9‘§¢ûÄtÄfÅOI8Iâ%Û¤¤•¥çdjdƒå¤äfå/*Ä*ê(¡”ú”O¨¨ª©¡Õ†ÕÏj¤h:jIj­i?ÑiÔ=¨¶ÉF_Ö€hðÑð‘Q³ñ“Ó83?s{ SK+ku[e;e{•ͪšŽzNÆÎÖ..®¾nîižU^­ÞO¶,låܦëKñ;Hnóÿ H :ü’*J »"·DÝÚ®S'#Ñ+—r'µ`gø.ŸŒ-YÁÙYûjsŸàÎw?T|dèØâ á"‡’ìÓ�etNUåÕ?λÔ6Ös4¤^~uÍ¡ùÆ ™›'oÓw¤v.ôìì]ïÛÞ?4(öˆü8ÿIíÓëãWž—¿Ü5éúJðõË7EïfÖß×~ðü„™¯ûâù ³Ððƒ¼Äþ³w%sÍxcü@`Í�V„�0†Ñ�{a¡L!XXp†u€ä ‡R�{ûmSmÛ`×fß·ù¹Ãg'¬3¿‹–«“[´{�G£çˆ×ê)§­éÛê}'Éþ¶”=·—ƒõBR©·Â0ávÇ"'£•·ïŽy' g¤ñ$­ä”ÅTŸ´;éò»Ndà2³Þg“÷>ÍqÍÜïx`8ß«`â0õ¨~¡ä ¶"tñÒ©/¥ŸÊ¾T,�Åœã8/[kVpioã¥+/›X®[ÝȺÙu›¡Ãµót÷Ë^ÎûæBÒ³¥?ybú”4Öû,þûËòIñ©â×øé 7mïH3.³ÇÞ÷À|Ôüä?¿ÿó¥/Ã_¿.°~Wøa¹H^ÚñóðrÍÊ­Õ‘µÙ�ø£à×Ï Dà·o+p V�æÄ‰FÊ‘Xã1DÅ£.¢Þ¡%Ñ�èsè9Œ&sˉ Â^Ç1âq·ð|ø¸æ4 «$�;é)ôÏ<ž·§H¤Æ&¦nf* ËMÖ(6I¶IörŽ`NUÎU®î\7^ ÞE¾~þ�½‚T!amIQ.1¢8N-‰•¢—f—‘U“³•§*ä(^TV^Q•TsRß©qAó©6�Ž–n Þ±M]ú †’FžÆy&·M¿›Ë[„Xž·ú`£f›f×»™Û!Ա͙Ý%µÇ]Ü#ÃsÒÛtKÕV¶(ß²�Mg`fÐ×�@jO˜HxZÄxÔ¦è²|lTÜx‚ubK²BJE*_Za:Û®#™E{D³k÷iåtç¹ïŸ=¸«€çPãã£7 5Ž7žT.º\¢yªµÔỗrª”jÒ¹ŠózF.ÆÖ³^ºÜèqyíêÙ&ÇæÕ–‹­ÛÚXoõ¶gÜÙÔù­»önø=Í>äAÿÀ©Aê#µá…‘ºÑ­c˜ñ’ç’/*'¸&§ú^sO;¾É|[õîÖÌýÙ�÷wçn~(û˜ýÉs^zþÛç†/‘_%¾>ü¶cA|áæw÷ïó?v/-ñ.ÿdý™»Œ,'/O¯Ø¯\]Xݳ:³f¼V´öuÝ~ý,-þ±Ajª´Ù DX~|±¾þUüaV­¯/—¯¯¯VÀÍÆ3n‡ÿú?‡ÆLûŸ¨¤‡†º;›vÑîÿ>þŽÍ Ûïm¶�iTXtXML:com.adobe.xmp 503 147 LÊ€M!0IDATxí� XÕÚÇÇ#ÊURS3-MQ»¹Ñ€Ï°¶�æ /¡�ƒe�©¥x9%já§d`zð~%JzÔ² “r4(D·�A&¤P–�RÞ/ ›ûíø½³g³Øwö� 3þçñ‘5ëþþÖšÿ^³f­™·oßæp€€H”ÀŸ$jÌà @åÑ@@@Ê òRn]Ø Pyô�2¨¼”[¶�€T}@¤L*/åÖ…m  •G)pÒ6®&/eï¡ÓJmoŽ«©áz â;âqY¿nºa8h¯:hí}½–Ö¡×8ÓU•…Å}·ÀKïgÀt*„‚€´ ­›†úº+Q�>(ü“Šã!€€@;  =–ç*oÝ3/JÑT³ …Ѿ׹öRAÔ{»›üè¯<»üˆ¿‡†Ç5”ý~âûã§Ï]¯á½]ú ñöáÓG;KpítÎÑœ“•ô£Ò¹Ï�áOÈýº—_ZSIfeÞPV\t¥ž•ÑÉs�W§†Šâ¢ó̳“ç}^ÆêÄ R"@36:Gabh“�¡ùõM�ReM¾”[ÞäOë/$E³$͑ȵ01S3"Ÿ¦4?6T#'­èì$²„•knæå‰A,¹Ú™Z”'×ñM*ªÖ¨:œ  qZ36‚ Ö«FãjwC“HvïÚäâÿ6Ïì”åLëÔwJ”æH¿9â{3Gu™¶£Œy”åLêî±»€yqd_ê`Iæ5JÝÌþ8÷óñŸoèøþv­Zǧ  aT^ÃÚSù'Oÿ^|:/+%fv¤†6ì©~úZ¶cÆÈf�—…Æ'¥ff¦ÆG‡5g²{æ[ŸœV�Ö$¿52¥9€“-Œ�^h``6{(?ÕcQæ.CÆé æ=ÖK£Ö|Ña£Ä!�6€@@òôïUòã O¿0‘©%Bªòüxæ)[˜¤5r5CCtU30Zs>ÜÂ=ùê¢Ëó#5”^�iMæê¼ª³5*/“Ëe,gYtQ9›RÇÆ�<­‡œL²M8â3Kæô"œ=vŒÅ,ÈHOX[x«Víáì\ª1lÿ™f`º_þµy\-��z©I€=dËvÄ­ñ RzÞånEæýÔ�y]üç&f*•£"øÂ  !+z@�|V6ÑÀ_�;ˆ@ *OÃa ­$.aò‘j‰×†$“ÑËm¿æ3~ÊÜ¥÷PÝ ÒôÂÓšó&�ü…nšg~š ®–3×Háðæû‹;MJhöK,Ù$Ãÿfp�ÜAL«|ÐŽôýÞ%É�MiB’ð|Ôsù«›NyùV4Ít·’yÞžžž×ûÑú¹p5¿þ$H<…¤|v¼l®úš3Ç I<Ë«åÌ…ÒÔÿWådkyl|wǤm3XqZa8iП“Ò\I™«škÏÕ˜ì&ñMë( ÷4?e ŠÏÕÏêvù…ÜÌÌ¢R~B¼¾d¿&ÉÈýEêøÕEÑòæ� 8u>eÞ\tuþÂæÌ4\a{J›#Á w NÇÐò«E‰aM3æœ,1³PõÌòB4ó#å”-ÌÈ-¼Z­'Ü{2KÕO`ëKKò÷°Eô²8•Âê.i—‡E'ÆÇj<¤åE™©¼î¯B ™ß¾]]Z˜›ª¹d'©°$©ùgˆ“EîÉ/,Ñ]¿¯c?NA@@Z´U¾<[Î+­Ö!S-z©.Ü£åK'A‰¤˜™Ñr9­lÑñR«^rfuæM…à/€܉ì©òæñ«È;üíMzN]箽zvuãÎåì{sf›m‰Ï/Ÿ+3 òæeŽX  ZÌlk%±é¤¢àcß1êm®†2Љ7Ä~  `­§¯ÖeaY*ö®wÉd{ò—ÜYk .¼@@Ì àh•÷ð~qìBݵ–ò èÄÔ’òü—dØ jF£! €˜MÀñóòêª5ÔÔðï®ohhprñ0ó)­ÙV!"€€€@ ÍT   àŽž±q€I(@@€€Ê3p€€€ @å%ب0 @¨|x‡Z¯¸¶Ê¹u‹¶*储‘À¡C‡–.]J*Ïò|ê©§Ž=ÊNáÐ! —Ë ó$•_·nÝÓO?Í|¤áÀŒ�4ÚVÜÑjkkçÌ™3vìXM‰¿£‰Xe<Ñ#†D’xZ•A;M„±|;mT Ì$ÐÐÐ0qâį¿þZˆïêê:räHÅÓáïïïììlf>w`4R󜜺ݡ#;;»ººZ€ðÌ3Ï8pÀÉI"ÚPù;°oÃdI YšõëדIîîî‹/¦Ó.]ºHÊB‡S^^NÓ57n¬¬¬¤—,YB§)¹Õ �Ê·:b­G 33“&—…§k[·n¥Ù†Ö+ëNÈyÛ¶msçÎ%Ké1,MÙ�5JVCå%Ј0á%@âþØc��:uŠì Ú¿ÿ ®fOš4)%%…²6lØ�?þ(�U7Py»vd$�šš:~üx*ÐÃÃãÌ™3½{÷v`á’-êòå˃®¨¨ ¿úê«qãÆ‰ÝT¬±{ ¢þw.�O?ýT0>,, o¯~@$‰§�#l¯ÌÛ$©�åéVsWHAAA]]�íd;wî,“Éì¾{B7ƒ¶³µWÂÜ´�¹‰«ÿ 8ðìÙ³d2­¡å4íÓvkÕbòÖ¸6iá ­S¢¢ ðÛo¿µX‡ö�ºµdŽôôtÚ×àâT •e;7TõÎ)Âöæ]ÿaKýhYˆ�æ;ÌöÖî�v¹6…e6TU"l#Øö�Ü>cùwÞyGh¼·ß~[¿M‡êǷ‡ֽ.X° !!ÁŠ´V'¡ÛºÍ›7Û²cy«áë'¤ËIßÓL±÷ÑÙnf»X͎צ-l­¨¿iµ4j¬8û¨ÜYÌqOzß«Ÿƒíצ&[¢MÌõK‹�ÍKÕ©žß~û­PÛ1Sþj¬Ún†zQ˜›{WOúãÕËE7bÙá”�çûêÐnê “°,¨\z K§¬&,ÈFÇ¥”õKç�ÐÉdE~ö™ÖO‘Nû�*ùÎ~_;»…Ç'2ECàIÞµýƒoÜ5xä•—¯»{r]ÿüêës½¹‹ÇÿoÞ¾š�ݸªk…%c¼ø±Âå´â¥•Š4)rQé1xH�ÊìSYܰ­iˆ÷éȹ ~ëö©)[—…Ì;ØÉÐZèâä]Y79é9cïîamÊ,孱𠴞ÞÝOë)cbbHñÅøî~=ѳ�‚NtÓ7�¦Cu²²èÔÅÍøÁéÞ +fð¹ù�Eoxy^Úû Î+ò?Í�É$šcåÒÒZcÖÑÇèš©Ìr»ÜÝ/ˆãR8çÎNήNšý¼îôW£ޤLÂBÝ/Ÿ¶fUÚšw–¯¤<6ûáùtËg„¿tÍŠŸñӿųÂôc6yá°ßßKN˜©HÈ^Ÿ¹mlÅo4-£ºcèýøôìÝY|"¿·ß ÿÝzÒÍó~åÑ÷‘û›†`�—R“³äɎݳ–?¶mlGîÚÞçÃ÷p�±Ñ/¹ü¾›bT¨oÏoœHÎR ý| mJZ–óɸ‘±Â™Öc�†K�L(à¼äþgHåÞ„Ýy)»Ã2½2Z³‘šriúk ÖŽM™iü5ÙÐxà�sçÎiTHí$é¡5Ýúþš>æô=S¶sœa9N³C %žûdõô�dÁ]\ÀnCŸ™O*¯¼´7å 4€72¯ò•ç~¤)AÁ“þ/V;Ï$$oYÀeL g“fR†ÁS'Þo,³ËŽ×&}fä°ê B�µ‹±úhúë|‰P3ˆ¹�õgÁ|‡¸çåÍ·ÓH̪Ìwx•yu®žüIàxï„qGu ŒI Õžÿ"ݲT)"x‰÷‰Ž{cÕ«¯ÅÇ„Éèìà—)g‹’?ç%>tyêíS9åÉSy.,óí� wòÏ-Ê\>gÙ?–eGó ~­à†¾ùÑ�ìåªÓØ�$ñòù{Kó^ðaã³F>ˆµX“Ëí¹'úð^ƒ×•äå\ý�wÿz“ŸLo¨Pª~$8®SßcÖ%F,JZò°•RMØê@v¹462T}·†‡»%½>{ç•ø+ùØeÙ)$ñdIäÎEÓW-?n�$Ä(ÊùÀvuˆ ÿØÆË|K¿ÿ�—ø©IûhóGªÐ©ä©»ÆÓïAç‡&åÜ>¾=N®Y¯¹14Žá&l/Ù;™þÊ—§–î¢î¤ÑC4£k¹/ïK¦ÉœÀø©ª;E­ œè°óX^¿€öìSw:�Ÿ[ [ÿd?GÎ[†Ä'4˜Û�L³>qÁª‰‘ŽNª{Ô¼¨ðÉQÍYÝPÖ8uæ/�€1~üó��ÞÃ8Y»»ów9•³iÔäMÍ)8aØÃÊž¸´�p~ðµhó¬º@Q¯‘ŠsuíE§ò¿ 'h5]x7?Þ§-˜ýžŒ�°7â`ZD¤z`.›àõDŒÝ}«7wí�gMÉŸ4Õ¿‹SÇŸ Ù�æÉÑK啨s»gõçoÚíá˜þcÇ1�¥$-0°âÊ Ÿ½÷ˆ~ô7¿@ŽKóìÄÚÕ‡³«ª6�Ò_õj'A„<;;wá»ÓU�Fœ—¾œBC:ØHGx·a»Xjž�U^Xº®S †Ã`¨Nd‹NÙ.䚪vƒfvµßnâerÅ¢?ëß~š™ •+Ä´n—9#c¨8µ8NX¹ì‰�»Æ�û(/|EÖäÏú5ÞºÌGˆKŒ {¨cW{¥ä»/~ìÿ÷!Ü•䟵ó›âI³î-ÏÍT+d�Äù²4÷ÐØ!ît^úSÞ±ã\Õ@»®X±A%ña“÷êá¥+ä%´õu¨öSõOõcR>g%§ªë-e­ëäØ5Gõ.;ýç3·ä<ôÝ<¿`õ=µnWséÑ�î6 Μ)* è׳®¤H˜c¢¬œ:«ÄA6ïÑi½:q�Õ·ŠÓ�\èíßE«Rº'Vô.±÷]†ÎuÞaÀ¾ ÝØÈß«¿v,¹@<ú>!ç²\æ¾\ÿ¾—’ÿ£þ¥7P%Ö„îê$t/%½ª��íÞ™E0�˜¼šŸ«ï Gc×fÇŽ£¢¢ÄòeW¦ û3 5l³_qÏØÜ¿ZAŠòé1ŽeGãïÙËèåfAËÿò› °,ŠÍÊe5±8 # ΧlÖ0Ä ÚXûô¬ü½í™¥ý}âSnÈÃçÓIVøÌ ‘»þ½éƒÿ45&"öxq¥× ¯P€bKHwŸÑýg7_fÇ…ñÅÄø¾õÑ–Ïw¾±"xdø¦ð]%Üùäu£…«nâ^ã£$Oï>ìã”?èyiÖ²Wý½_VÕA="Øß;æä5ŠP{8R5TOYµvsúÁèõYä§Xµvk>Wq>5*y_DdÖIe/ïÇdr àzÝÃßEœKÞìß!x¦÷*rg…¯ñ2ç«*®çˆPZÛÊ%Œyzþ¤ð™ƒ–ÓIʪ·cŽ÷=–F‚\Á–ÿ�±aï¦íÌz}nHlLLÿÄÏ®k5ÖŽægßÎû3$22Røð7½ôfÅŠW®\ÉÈÈ Õë×�tÓaÌv ô ˆà»eZøìÑ|B¦|Äg-Ü’q×>›â5�fÒ¹M¾/‡töÞ'gÏ' =:ÿé_›ôÑsºƒéÛ·¯ðeWòì³ÏZ½U§¸ö|*î·•±/¢ÑÔä3ÿ1½1J§ø…\_÷ŠÚ4Þô<€N*ÍÓ—¯~¶º‚wX÷å0vÿeÕÛÊjËUû¤œ»x²{ÜÆ嵫µîÝ=;*Iœ¶·Àïý«±åC�5UUÕ¤àNnÝÜ„»eMslwW•)�è=q5••Õ N®wuñ0«�º em=çÖÍS?¶ÔÑÕÝÍE?P]_[ÞV&öþcºÉè–ßÄWa[´ÝäRupÒÈ¥ÎJJZ'yMYßѳ»Ké飢ŠåéG^²úú"ëŠU+)åf½à£þÅh¼x|ݼ£�ÛW-Þ5FÀôµÙž¿ìÊ4ÁôŒ�ÁPc4Ä­òšý˜ÞC²nœ1;[Ãé¤pa)˜Õ_f-j•ʰ闵ÁÓ#Ôcm>X‘šÿ’Þ4»�„âõ²EåÅÞL·Óqƒ_…µÍöªÏ¼Gnâ×Aq¹ÙÏ©e)wwÐÜI˜˜¼r†µHkάt f ïŠ2i¼ék³=Ù•i‚A7j ‰¸glÈfÚáM‹O‰ î—Û’mxa™1D†ý©,Aâ…:0ú†c;ÊwÀÔe‹j¿½TJ³=Îýÿü¤|²�´%ÞF®Òî?ì¿ k›íÎ�¿·>º”ßåu?[GãùdÆšºCEJúú‚kOß glÙÈærÏä¤õ£h�n�Û#CÕy3›»ÅkSø²ëÆ�)C¢$�ïw›&#î±¼`›ƒß‘mÇwX³ß{�åM7¶$CmË‹½ÿ˜nPsÞ�îàkÇt…m5ÿÚ´ËÛùm¯°~Lì8–—‚Êë¬÷¢ô»Ž„}lWyñöÓÍÊÖ‰šøÚ‘l7]IÛC­ûV”]¾´e{åõsh¿*oúk„¦Cõí´ÂGìßí´Âd$Ñ!`pì£ÇØ©Hû�1sÈŸhüéOü:iR�ÿþ÷¿&b¶‰í&êc— s¾ûJ|„>C|˜¶Ú¥t[21­–¦C�–KvJæpØwèíò�xÂn´U`9Û»±èú�i“i§ž@‘Æò¦cR¨Ãl·¼a-KaæµIL„|‰R‹pÄÁ>36–µCkƦö8yòdnnî ÕAï“««³ÃfšÎ�;Ëd2?ÕáëëK=É.?þvɤ5qŠ)ojzÛ«+®þcÚ^sæå5sh%Û5‹h ·u×f»�—o DRSùÖ`„­�T¾µ #hRúr©} ÚþÕ\ûÖ§µsƒÊ·6aämC€žú°¯ÂŠýË¥v$h—¯æÚ±>ȪãÊ•+P Šp<�þýûWTT|÷ÝwTô‘#Gjjjh�³3Û­êøµe‰ôÕÜwß}—#Ö«^‡¶dÉ’Ù³g·e…U6ž¾:Š4Ê�¶  ³ï‰½_ž>èïï/yÅ7ñÕܰŦmÑ2Ž+*ï8Ö( Ú„€±}Oæ|¶M*lÇB ~aÕœ=Sv¬C›g…yù6oTZ— Øi2Z2ûžl�%ì™"’¿‰Ñ¤„±¼& ¸A@Êtö=uíÚ•¾ $eƒ9n̘17oÞ´û~FqAƒÊ‹«½P[°Œfl,ã…Ø  .Pyqµj  –€Ê[Æ ±A@@\ òâj/Ô@,#•·Œbƒ€€¸@åÅÕ^¨-€XF*o/Äq€Ê‹«½P[°ŒTÞ2^ˆ  â"•W{¡¶  `¨¼e¼@ÄE*/®öBmA@À2PyËx!6€ˆ‹T^\í…Ú‚€€eþÕH6�ÚèßIEND®B`‚