pax_global_header00006660000000000000000000000064151612226500014512gustar00rootroot0000000000000052 comment=d50f981f3ffee8ffd668ca712a9e4d904ed1c5a9 mini-css-extract-plugin-2.10.2/000077500000000000000000000000001516122265000162625ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/.cspell.json000066400000000000000000000014621516122265000205200ustar00rootroot00000000000000{ "version": "0.2", "language": "en,en-gb", "words": [ "publicpath", "memfs", "crossorigin", "Crossorigin", "camelcase", "unreload", "cnfg", "sorhus", "sindre", "staticc", "deepc", "pathinfo", "iife", "IIFE", "fullhref", "Unexception", "fullhash", "truetype", "entrypoints", "plusplus", "hotreloading", "chunkhash", "concat", "nosources", "hspace", "vspace", "commitlint", "unreload", "cnfg", "tapable" ], "ignorePaths": [ "CHANGELOG.md", "package.json", "dist/**", "**/__snapshots__/**", "package-lock.json", "/test/js", "/test/outputs", "/test/cases", "/test/fixtures", "/test/manual/dist", "node_modules", "coverage", "*.log" ] } mini-css-extract-plugin-2.10.2/.editorconfig000066400000000000000000000003031516122265000207330ustar00rootroot00000000000000# editorconfig.org [*] charset = utf-8 indent_style = space indent_size = 2 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false mini-css-extract-plugin-2.10.2/.gitattributes000066400000000000000000000001251516122265000211530ustar00rootroot00000000000000package-lock.json -diff * text=auto test/cases/* eol=lf bin/* eol=lf yarn.lock -diff mini-css-extract-plugin-2.10.2/.github/000077500000000000000000000000001516122265000176225ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/.github/workflows/000077500000000000000000000000001516122265000216575ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/.github/workflows/dependency-review.yml000066400000000000000000000004501516122265000260160ustar00rootroot00000000000000name: "Dependency Review" on: [pull_request] permissions: contents: read jobs: dependency-review: runs-on: ubuntu-latest steps: - name: "Checkout Repository" uses: actions/checkout@v4 - name: "Dependency Review" uses: actions/dependency-review-action@v4 mini-css-extract-plugin-2.10.2/.github/workflows/nodejs.yml000066400000000000000000000130261516122265000236660ustar00rootroot00000000000000name: mini-css-extract-plugin on: push: branches: - main - next pull_request: branches: - main - next permissions: contents: read jobs: lint: name: Lint - ${{ matrix.os }} - Node v${{ matrix.node-version }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} strategy: matrix: os: [ubuntu-latest] node-version: [lts/*] runs-on: ${{ matrix.os }} concurrency: group: lint-${{ matrix.os }}-v${{ matrix.node-version }}-${{ github.ref }} cancel-in-progress: true steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "npm" - name: Install dependencies run: npm ci - name: Lint run: npm run lint - name: Build types run: npm run build:types - name: Check types run: if [ -n "$(git status types --porcelain)" ]; then echo "Missing types. Update types by running 'npm run build:types'"; exit 1; else echo "All types are valid"; fi - name: Security audit run: npm run security - name: Validate PR commits with commitlint if: github.event_name == 'pull_request' run: npx commitlint --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose test: name: Test - ${{ matrix.os }} - Node v${{ matrix.node-version }}, Webpack ${{ matrix.webpack-version }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] node-version: [12.x, 14.x, 16.x, 18.x, 20.x, 22.x, 24.x] webpack-version: [latest] runs-on: ${{ matrix.os }} concurrency: group: test-${{ matrix.os }}-v${{ matrix.node-version }}-${{ matrix.webpack-version }}-${{ github.ref }} cancel-in-progress: true steps: - name: Setup Git if: matrix.os == 'windows-latest' run: git config --global core.autocrlf input - uses: actions/checkout@v4 - uses: actions/github-script@v7 id: calculate_architecture with: result-encoding: string script: | if ('${{ matrix.os }}' === 'macos-latest' && ('${{ matrix['node-version'] }}' === '12.x' || '${{ matrix['node-version'] }}' === '14.x')) { return "x64" } else { return '' } - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} architecture: ${{ steps.calculate_architecture.outputs.result }} cache: "npm" - name: Install dependencies (old Node.js version) run: | rm package-lock.json npm install --ignore-engines --ignore-scripts npm install -D typescript@4 if: matrix.node-version == '12.x' || matrix.node-version == '14.x' || matrix.node-version == '16.x' || matrix.node-version == '18.x' - name: Install dependencies run: npm ci if: matrix.node-version == '20.x' || matrix.node-version == '22.x' || matrix.node-version == '24.x' - name: Install webpack ${{ matrix.webpack-version }} if: matrix.webpack-version != 'latest' run: npm i webpack@${{ matrix.webpack-version }} - name: Run tests for webpack version ${{ matrix.webpack-version }} run: npm run test:coverage -- --ci - name: Submit coverage data to codecov uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} test-old-api: name: Test - ${{ matrix.os }} - Node v${{ matrix.node-version }}, Webpack latest, old API strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] node-version: [12.x, 14.x, 16.x, 18.x, 20.x, 22.x, 24.x] runs-on: ${{ matrix.os }} steps: - name: Setup Git if: matrix.os == 'windows-latest' run: git config --global core.autocrlf input - uses: actions/checkout@v4 - uses: actions/github-script@v7 id: calculate_architecture with: result-encoding: string script: | if ('${{ matrix.os }}' === 'macos-latest' && ('${{ matrix['node-version'] }}' === '12.x' || '${{ matrix['node-version'] }}' === '14.x')) { return "x64" } else { return '' } - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} architecture: ${{ steps.calculate_architecture.outputs.result }} cache: "npm" - name: Install dependencies (old Node.js version) run: | rm package-lock.json npm install --ignore-engines --ignore-scripts npm install -D typescript@4 if: matrix.node-version == '12.x' || matrix.node-version == '14.x' || matrix.node-version == '16.x' || matrix.node-version == '18.x' - name: Install dependencies run: npm ci if: matrix.node-version == '20.x' || matrix.node-version == '22.x' || matrix.node-version == '24.x' - name: Run tests for webpack version latest with experimentalUseImportModule run: npm run test:coverage -- --ci env: OLD_API: "true" - name: Submit coverage data to codecov uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} mini-css-extract-plugin-2.10.2/.gitignore000066400000000000000000000003221516122265000202470ustar00rootroot00000000000000logs *.log npm-debug.log* .eslintcache /coverage /dist /test/js /test/outputs /test/manual/dist /local /reports /node_modules .DS_Store Thumbs.db .idea .vscode *.sublime-project *.sublime-workspace .idea *.iml mini-css-extract-plugin-2.10.2/.husky/000077500000000000000000000000001516122265000175035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/.husky/commit-msg000077500000000000000000000001201516122265000214760ustar00rootroot00000000000000#!/bin/sh . "$(dirname "$0")/_/husky.sh" npx --no-install commitlint --edit $1 mini-css-extract-plugin-2.10.2/.husky/pre-commit000077500000000000000000000001071516122265000215030ustar00rootroot00000000000000#!/bin/sh . "$(dirname "$0")/_/husky.sh" npx --no-install lint-staged mini-css-extract-plugin-2.10.2/.prettierignore000066400000000000000000000001541516122265000213250ustar00rootroot00000000000000/coverage /dist /node_modules /test/fixtures /test/manual/dist /test/cases/*/expected /test/js CHANGELOG.md mini-css-extract-plugin-2.10.2/CHANGELOG.md000066400000000000000000001144011516122265000200740ustar00rootroot00000000000000# Changelog All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. ### [2.10.2](https://github.com/webpack/mini-css-extract-plugin/compare/v2.10.1...v2.10.2) (2026-03-26) ### Bug Fixes * use matchResource for importModule when available ([#1162](https://github.com/webpack/mini-css-extract-plugin/issues/1162)) ([143693e](https://github.com/webpack/mini-css-extract-plugin/commit/143693ee021ef0f87ec58bb4e161d1f2d0cf3d30)) ### [2.10.1](https://github.com/webpack/mini-css-extract-plugin/compare/v2.10.0...v2.10.1) (2026-03-10) ### Bug Fixes * handle null module.layer in renderContentAsset ([#1159](https://github.com/webpack/mini-css-extract-plugin/issues/1159)) ([0233180](https://github.com/webpack/mini-css-extract-plugin/commit/0233180faf7b2a267da60134852877bc65859b7d)) ## [2.10.0](https://github.com/webpack/mini-css-extract-plugin/compare/v2.9.4...v2.10.0) (2026-01-16) ### Features * respect `output.cssFilename` and `output.cssChunkFilename` ([#1151](https://github.com/webpack/mini-css-extract-plugin/issues/1151)) ([54f775d](https://github.com/webpack/mini-css-extract-plugin/commit/54f775ddac6ea365b9023ab0624f8219695371b3)) ### Bug Fixes * prevent generation of a contentHash for a chunk when the set of css modules is of size 0 ([#1154](https://github.com/webpack/mini-css-extract-plugin/issues/1154)) ([4e4a95d](https://github.com/webpack/mini-css-extract-plugin/commit/4e4a95d16431bca442b7ac5d90c887142e3ce117)) ### [2.9.4](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.9.3...v2.9.4) (2025-08-11) ### Bug Fixes * hmr crash in some situations ([#1140](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1140)) ([f67c05a](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/f67c05a2305dbfc0f949ce9f11c96c32cb402deb)) ### [2.9.3](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.9.2...v2.9.3) (2025-08-04) ### Bug Fixes * should update initial chunks correctly with filename ([dab023f](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/dab023f4a7685bc20ef175e71dacd78d988e3713)) ### [2.9.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.9.1...v2.9.2) (2024-11-01) ### Bug Fixes * prefetch and preload runtime generation ([#1116](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1116)) ([58c6b74](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/58c6b7422aedfd3fc4d5f3553b196da40eae1f4b)) ### [2.9.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.9.0...v2.9.1) (2024-08-19) ### Bug Fixes * add `export default {}` when CSS modules enabled and a file is empty for the `defaultExport` option ([8f77e19](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/8f77e19a89eca97b05f1855d2c851592e98ff774)) ## [2.9.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.8.1...v2.9.0) (2024-04-16) ### Features * add support for link preload/prefetch ([#1043](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1043)) ([ee25e51](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/ee25e51a8d06292dd8643f5bf1d6c4faa51c4f4c)) * added the `defaultExport` option to generate default and named export together ([#1084](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1084)) ([74ae781](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/74ae78184fb5bfeec23b9d254ff8304c6fc854d6)) ### Bug Fixes * avoid reloading all csses when hot load ([#1090](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1090)) ([1a56673](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/1a56673d01c441967134beb5d9500a7d6d62e4de)) ### [2.8.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.8.0...v2.8.1) (2024-02-27) ### Bug Fixes * add `nonce` if `__webpack_nonce__` has been defined ([c7f0aee](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/c7f0aee5feaa1b8d047f575e94a91662eb8c314c)) ## [2.8.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.7...v2.8.0) (2024-02-01) ### Features * added the `beforeTagInsert` hook ([#1054](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1054)) ([6313bf6](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/6313bf629c1c76ec7b07dc60fef06e39702a63d9)) * support named exports with any characters ([b656c5c](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/b656c5c98dcffcae51f5208e961ce089be6607a8)) ### [2.7.7](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.6...v2.7.7) (2024-01-10) ### Bug Fixes * add ';' to import media queries ([#1051](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1051)) ([98acf2b](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/98acf2bbd08ba0988318c6d364b9aa14f84ed79a)) * add `ChunkLoadError` name to chunk loading error ([#1073](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1073)) ([e3f8375](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/e3f837574bdad9dc583028c6f9a9a2f3082d9ecb)) * adding media, supports and layer for external import ([#1072](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1072)) ([60c5331](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/60c53311c125425d2e742414ed6dbd59cea8cbe4)) * css experiment detection ([#1067](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1067)) ([82f4a47](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/82f4a47f3ddc7cdbba311bee50d85dd4b3e6bfb1)) ### [2.7.6](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.5...v2.7.6) (2023-05-19) ### Bug Fixes * compatibility with built-in CSS support ([#1035](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1035)) ([f576ed6](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/f576ed6a530db555d7442ebab1f9a09f3acff13f)) ### [2.7.5](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.4...v2.7.5) (2023-03-16) ### Bug Fixes * don't invalidate cache after timeout refresh ([#1023](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1023)) ([38d8513](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/38d8513f97983698b3b4417abb8bacaee0ea68fb)) * readable identifier ([#1024](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1024)) ([721bbf1](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/721bbf104030c96acff14ad2b7a23edc4f1e277d)) ### [2.7.4](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.3...v2.7.4) (2023-03-16) ### Bug Fixes * module identifier, don't merge modules with different media/suppors/layer ([#1021](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1021)) ([ad3729b](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/ad3729ba9d3fed328a170340eafb66e8c2a13bdc)) ### [2.7.3](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.2...v2.7.3) (2023-03-07) ### Bug Fixes * avoid to throw error when link doesn't have parentNode ([#1016](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1016)) ([6292440](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/62924409895ff6e0e4e599f6734c109ec40e6eff)) ### [2.7.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.1...v2.7.2) (2022-12-06) ### Bug Fixes * don't crash in web workers ([#1004](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/1004)) ([4d98d4b](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/4d98d4b973be27910b84194e6f7acb1d09f1e8ae)) ### [2.7.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.0...v2.7.1) (2022-11-29) ### Bug Fixes * preserve order of link tags on HMR ([#982](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/982)) ([6ea0922](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/6ea092258944fd0330b84dd3455bff9a15320837)) ## [2.7.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.6.1...v2.7.0) (2022-11-16) ### Features * add function support for locals (loader) ([#985](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/985)) ([65519d0](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/65519d0701b3c5d60585468b8220159cbbfbe6b8)) ### [2.6.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.6.0...v2.6.1) (2022-06-15) ### Bug Fixes * do not attempt hot reloading when emit is false ([#953](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/953)) ([b426f04](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/b426f04961846991e8ca671c6a4d48e6a83a46c2)) ## [2.6.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.5.3...v2.6.0) (2022-03-03) ### Features * added `baseUri` option support (from entry options) ([#915](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/915)) ([6004d95](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/6004d95cad2d18d9d080d913db7dc48f16bf888c)) ### [2.5.3](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.5.2...v2.5.3) (2022-01-25) ### Bug Fixes * types ([#903](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/903)) ([6650691](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/6650691f7e6a45004779566c909a0e48e9d67f04)) ### [2.5.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.5.1...v2.5.2) (2022-01-17) ### Bug Fixes * types ([dfb9afd](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/dfb9afdfb2ea6c816d6d4986fbb382dac300e7ea)) ### [2.5.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.5.0...v2.5.1) (2022-01-17) ### Bug Fixes * cjs export and types ([e836a00](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/e836a00cb164fecdb49e670e0552475477fa7994)) ## [2.5.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.4.7...v2.5.0) (2022-01-14) ### Features * added types ([5b5654c](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/5b5654c9847a615555660d79245b857536f72124)) ### [2.4.7](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.4.6...v2.4.7) (2022-01-13) ### Bug Fixes * multiple serializer registrations ([#894](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/894)) ([c784204](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/c784204772538ab8984e1c25e4501a7602b41ad1)) ### [2.4.6](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.4.5...v2.4.6) (2022-01-06) ### Bug Fixes * crash when `publicPath` is function ([#881](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/881)) ([41bd828](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/41bd828ba11baf2c1349b3a8103072e2d82fd4c2)) * do not allow absolute path in the `chunkFilename` option ([#879](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/879)) ([36e04ab](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/36e04ab8b5e55d429ce361841e77f6ddba934ee1)) * do not allow absolute path in the `filename` option ([#878](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/878)) ([76361df](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/76361df4220f62c18b3660af76ab8b28c56d0471)) ### [2.4.5](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.4.4...v2.4.5) (2021-11-17) ### Chore * update `schema-utils` package to `4.0.0` version ### [2.4.4](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.4.3...v2.4.4) (2021-11-04) ### Bug Fixes * crash with `[contenthash]` ([#869](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/869)) ([57ad127](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/57ad1274328512aebb20fa3b2c27fb9321f835a7)) * runtime path in modules without context ([#866](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/866)) ([e2e30b2](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/e2e30b280d51f313e3ac566af3b839e580b22ef5)) ### [2.4.3](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.4.2...v2.4.3) (2021-10-21) ### Bug Fixes * small perf improvement ([#860](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/860)) ([8c4846b](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/8c4846b3a55770cb7286b1f092e619204503ed7f)) ### [2.4.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.4.1...v2.4.2) (2021-10-07) ### Bug Fixes * endless apply of loaders, leading to memory allocation failure ([#849](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/849)) ([94ad699](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/94ad699baa1805a0646e7db1d69eb5997df6c8db)) ### [2.4.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.4.0...v2.4.1) (2021-10-05) ### Bug Fixes * crash with multiple webpack versions ([#845](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/845)) ([b4431cb](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/b4431cb60a6eadcf8c2b614f494faf899c73aaa0)) ## [2.4.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.3.0...v2.4.0) (2021-10-05) ### Performance * migrate on new API, this improves performance and memory usage a lot, you need to have at least webpack `5.52.0` (recommended latest stable), for older versions the old API will be used (except explicit enabling of the `experimentalUseImportModule` option) ### Features * added support for `supports()` and `layer()` in `@import` at-rule ([#843](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/843)) ([e751080](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/e751080ad6a81f196d5c26fb79b3c69b9429a634)) ### Bug Fixes * crash with the `exportLocalsConvention` option ([#844](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/844)) ([0f8d501](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/0f8d5015c95724b537ddc627758f67020d01ae0b)) ## [2.3.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.2.2...v2.3.0) (2021-09-11) ### Features * added the `runtime` option ([#831](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/831)) ([5cc73e6](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/5cc73e6b590632263fc6ea0a830df1322520c2f4)) ### Bug Fixes * better description for async chunk options ([34b65ac](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/34b65ac4daea5a977a75846b159becbc2ebb0632)) ### [2.2.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.2.1...v2.2.2) (2021-09-01) ### Bug Fixes * `experimentalUseImportModule` works with `new URL(...)` syntax ([cf81c4b](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/cf81c4b9962e74d666f6bb7d6473a9b6c06936cd)) ### [2.2.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.2.0...v2.2.1) (2021-08-31) ### Bug Fixes * order of `@import` with the `output.pathinfo` option ([#815](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/815)) ([831f771](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/831f771b3c5e59978dbc53f1ccc90e23a9e30e9b)) * source map generation with the `output.pathinfo` option ([#817](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/817)) ([f813b4c](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/f813b4c7b72383b8777da74b90830be20db6a483)) ## [2.2.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.0.0...v2.2.0) (2021-08-04) ### Features * add `link` and `description` for options ([#786](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/786)) ([3c5a5b7](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/3c5a5b7aba8ed855368a7e95d89420b97dcd1531)) ### Bug Fixes * hmr in browser extension ([3d09da1](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/3d09da1abb9250b39c6a15efd33950aa19efb0b3)) ## [2.1.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.0.0...v2.1.0) (2021-07-05) ### Features * support the `pathinfo` option ([#783](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/783)) ([a37713f](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/a37713f53bcecb9efc3f8a4d389c6274dae0bc85)) ## [2.0.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.6.2...v2.0.0) (2021-06-30) ### NOTES In the current release we have fixed many problems with `publicPath`, previously to generate relative URLs inside CSS files developers use different hacks: `publicPath: ''`, `publicPath: '../'`, using relative `../../` in the `outputPath` option for `file-loader` and etc. Now you don't need it anymore. Webpack v5 uses `publicPath: "auto"` by default, which means to always generate relative URLs, and now `mini-css-extract-plugin` does the same. **We strongly recommend use `auto` value by default (except when using CDN).** **We also want to show you that the [`file-loader`](https://github.com/webpack-contrib/file-loader) and [`url-loader`](https://github.com/webpack-contrib/url-loader) are outdated, please migrate on [Asset Modules](https://webpack.js.org/guides/asset-modules/).** ### ⚠ BREAKING CHANGES * minimum supported `Node.js` version is `12.13.0` * minimum supported `webpack` version is `5.0.0` * the `modules.namedExport` option was removed, you don't need it anymore, because we respect the `modules.namedExport` option from `css-loader`, just remove it * the `publicPath` option no longer automatically adds `/` (trailing slash), you need to specify, you need to specify it yourself if it is absent, i.e. if you have `publicPath: "/my/public/path"` replace it with `publicPath: "/my/public/path/"` ### Bug Fixes * generating correct relative `url()` for assets inside CSS files when you use `publicPath: "auto"` (default value) ### [1.6.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.6.1...v1.6.2) (2021-06-28) ### Bug Fixes * performance improvement ### [1.6.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.6.0...v1.6.1) (2021-06-25) ### Bug Fixes * memory leaks ([c68aca7](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/c68aca7c58b1bfb3d3f9f8db70fd814e50f82aa1)) ## [1.6.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.5.1...v1.6.0) (2021-04-30) ### Features * added new url support ([#753](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/753)) ([c76a1a1](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/c76a1a16b926e3dc8f6763d940ab6e4eb170c77f)) ### [1.5.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.5.0...v1.5.1) (2021-04-28) ### Bug Fixes * compatibility with named export and es5 ([#751](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/751)) ([3be81bb](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/3be81bb4e795fc9295c2c7e7a8bb71de9cead2d0)) ## [1.5.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.4.1...v1.5.0) (2021-04-17) ### Features * add experimental support for `importModule`, improve perfomance ([#737](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/737)) ([8471ac2](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/8471ac24dde3d7e874995f8ab4814cc94b4179e1)) ### [1.4.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.4.0...v1.4.1) (2021-04-07) ### Bug Fixes * ES5 compatibility ([43e081f](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/43e081f3a2767f3c00a29349a71ad17eca9cc168)) ## [1.4.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.9...v1.4.0) (2021-03-26) ### Features * added the `emit` option for SSR ([#732](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/732)) ([03b4293](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/03b4293023e85e89abf46a2e42d61ec8684cb318)) ### [1.3.9](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.8...v1.3.9) (2021-02-25) ### Bug Fixes * allow consumers to access `CssModule` and `CssDependency` ([#703](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/703)) ([6484345](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/64843452a7c07963637a749bce9628d808694eac)) * allow to use `auto` value with the `publicPath` option ([#709](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/709)) ([1be21d2](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/1be21d29053c32cfec26eb58aa5deabd65069c71)) ### [1.3.8](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.7...v1.3.8) (2021-02-18) ### Bug Fixes * deterministic `[contenthash]` ([#702](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/702)) ([2ff8e59](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/2ff8e592e13d54dc87fad4fcf5065136d4610dca)) ### [1.3.7](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.6...v1.3.7) (2021-02-15) ### Bug Fixes * compatibility with webpack v5 ([9b6b8b3](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/9b6b8b3a8393a62b7b7a3b38c0c52b694ed51e19)) ### [1.3.6](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.5...v1.3.6) (2021-02-08) ### Bug Fixes * do not crash on using `[fullhash]` ([#695](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/695)) ([dbb708c](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/dbb708cf181d8f3d69af11cc15f959f187e38ffa)) ### [1.3.5](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.4...v1.3.5) (2021-01-28) ### Bug Fixes * bloated runtime ([#687](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/687)) ([70ce174](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/70ce174941016174bb82ff46c808593a1e1b7e1e)) * hmr runtime on preloaded stylesheet link ([#686](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/686)) ([05e2951](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/05e29514952bf3ff3f30ec33c4bda66999d8486b)) * yarn pnp compatibility ([#688](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/688)) ([05b188a](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/05b188a055ee6663f8d307e99b22c51200fee320)) ### [1.3.4](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.3...v1.3.4) (2021-01-13) ### Bug Fixes * `identifier` for `CssModule` ([#677](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/677)) ([117a97a](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/117a97acaa5b37c5183b5b48264d7e524e8f5bc3)) ### [1.3.3](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.2...v1.3.3) (2020-12-10) ### Bug Fixes * serializing big strings in sourceMap ([#665](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/665)) ([f7a5e53](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/f7a5e5381ce1d2b822d49b688027d06efec2312d)) ### [1.3.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.1...v1.3.2) (2020-12-04) ### Bug Fixes * missing auxiliary assets ([#662](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/662)) ([f28c1e1](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/f28c1e115fb9aacbd87e3b1540adb7418a4cc375)) ### [1.3.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.3.0...v1.3.1) (2020-11-12) ### Bug Fixes * compatibility with asset modules ([#656](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/656)) ([bea1f4d](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/bea1f4d0c25abc6268b8076305e9879344ff1701)) ## [1.3.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.2.1...v1.3.0) (2020-11-06) ### ⚠ POTENTIAL BREAKING CHANGE Options are now validated according to stricter rules - no unknown additional properties. For example, if you have not removed the `hmr` option for the loader when migrating to `mini-css-extract-plugin@1`, you will get an error. Just remove them from your configuration(s). We did this because many developers started making these mistakes. ### Features * added the `type` property for loading errors ([#651](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/651)) ([be9ddcb](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/be9ddcba7f4b216aa52dcd64a0e450a312b7156f)) ### Bug Fixes * schema ([#652](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/652)) ([4e4733d](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/4e4733dc10fd8a8ecda5b47421b390a479b826aa)) * serializing big strings ([#647](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/647)) ([022d945](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/022d9459a6f158166e700c11a02b9063154c96bc)) * source map url for devtool (only webpack@5) ([#650](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/650)) ([5889d43](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/5889d43bafe8613a29e3a8156f0b5052b6ad88b9)) ### [1.2.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.2.0...v1.2.1) (2020-10-27) ### Bug Fixes * onerror/onload memory leak ([#640](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/640)) ([2b6fcf2](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/2b6fcf260b2fb13afe2abd052cff5dea184ef398)) ## [1.2.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.1.2...v1.2.0) (2020-10-23) ### Features * added the `linkType` option ([#634](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/634)) ([a89c0f9](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/a89c0f982716d1093dbe6b12de47e4e8df1543f5)) ### Bug Fixes * compatibility with webpack@4 and webpack@5 for monorepos ([#638](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/638)) ([60c3eef](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/60c3eef936245183451d63f1e080ce990553078d)) ### [1.1.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.1.0...v1.1.2) (2020-10-22) ### Bug Fixes * compatibility with webpack@4 and webpack@5 for monorepos ([#636](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/636)) ([3413439](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/341343924d96f5d0076f27b98c96f9439bff6347)) * error when reloading async chunk ([#633](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/633)) ([89e7a0a](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/89e7a0acf08f36711c916a4827ea6afff7028afb)) ### [1.1.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.1.0...v1.1.1) (2020-10-20) ### Bug Fixes * fix `onerror` message for async chunks ([#629](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/629)) ([883079e](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/883079e02b9d400fab4e8a955604036a3be50c48)) ## [1.1.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.0.0...v1.1.0) (2020-10-19) ### Features * added the `attributes` option ([e8a2d5a](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/e8a2d5a09ded967e0f4be145f1f52c1e5f7f6df1)) * added the `insert` option ([a5f17c4](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/a5f17c48cbf0c198ebc955032d11593434ef2373)) ### Bug Fixes * ignore modules without identifier ([#627](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/627)) ([71a9ce9](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/71a9ce91b377fff892068b87445372fe1c2db142)) * remove `normalize-url` from deps ([#623](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/623)) ([9ae47e5](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/9ae47e51f198f2e0258d0e87d6e708e57c05bf86)) ### [1.0.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.12.0...v1.0.0) (2020-10-09) ### BREAKING CHANGE * minimum supported `Node.js` version is `10.13.0` * the `esModule` option is `true` by default, you need to change `const locals = require('./styles.css')`/`require('./styles.css')` on `import locals from './styles.css'`/`import './styles.css''` * the `moduleFilename` option was removed in favor the `filename` option * the `hmr` option was removed, HMR will work automatically when `HotModuleReplacement` plugin used or `webpack-dev-server` with enabled the `hot` option * the `reloadAll` was removed ### Features - the `chunkFilename` option can be a function for webpack@5 ### ⚠ NOTICE To avoid problems between `mini-css-extract-plugin` and `style-loader` because of changing the `esModule` option to `true` by default we strongly recommend upgrading `style-loader` to `2.0.0` version. ### [0.12.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.11.3...v0.12.0) (2020-10-07) ### Features * opt-in to transitive only side effects (webpack@5), no more empty JS chunks ### [0.11.3](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.11.2...v0.11.3) (2020-10-02) ### Bug Fixes * better support for webpack 5 ([#595](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/595)) ([6e09a51](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/6e09a51954aee1c8db904747e0b9bc42d14e7b47)) ### [0.11.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.11.1...v0.11.2) (2020-09-12) ### Bug Fixes * cache for webpack@5 ([6a27b30](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/6a27b30fea43d2d179d7df5deb260887d6b45ccc)) ### [0.11.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.11.0...v0.11.1) (2020-09-08) ### Bug Fixes * added cache serializer for webpack@5 ([#581](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/581)) ([d09693e](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/d09693e7d50858c319a804736cf9609479140ad8)) ### [0.11.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.10.0...v0.11.0) (2020-08-27) ### Features * named export ([1ea4b7f](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/1ea4b7fe8305fcca7915d5c1dccd6041bab2c053)) ### Bug Fixes * compatibility with webpack@5 ### [0.10.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.9.0...v0.10.0) (2020-08-10) ### Features * schema validation ([#480](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/480)) ([b197757](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/b197757e26af717a302485293a2b95bc0eb6cf71)) ### Bug Fixes * add semicolon to avoid `Uncaught TypeError` on Webpack v5 ([#561](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/561)) ([3974210](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/3974210ec820f47cf717cd0829d4e4e3879a518a)) * enforce esm ([#546](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/546)) ([b146549](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/b1465491b1706e0f450cf69df4cf8176799907d1)) * partial compatibility with `webpack@5` ([#477](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/477)) ([903a56e](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/903a56ea3fa08e173cd548d23089d0cee25bafea)) ### [0.9.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.8.2...v0.9.0) (2019-12-20) ### Features * new `esModule` option ([#475](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/475)) ([596e47a](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/596e47a8aead53f9cc0e2b1e09a2c20e455e45c1)) ### [0.8.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.8.1...v0.8.2) (2019-12-17) ### Bug Fixes * context for dependencies ([#474](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/474)) ([0269860](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/0269860adb0eaad477901188eea66693fedf7769)) ### [0.8.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.8.0...v0.8.1) (2019-12-17) ### Bug Fixes * use filename mutated after instantiation ([#430](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/430)) ([0bacfac](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/0bacfac7ef4a06b4810fbc140875f7a038caa5bc)) * improve warning of conflict order ([#465](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/465)) ([357d073](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/357d073bf0259f2c44e613ad4dfcbcc8354e4be3)) * support ES module syntax ([#472](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/472)) ([2f72e1a](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/2f72e1aa267de23f121441714e88406f579e77b2)) ## [0.8.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.7.0...v0.8.0) (2019-07-16) ### Features * Add ignoreOrder option ([#422](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/422)) ([4ad3373](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/4ad3373)) ## [0.7.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.6.0...v0.7.0) (2019-05-27) ### Bug Fixes * do not attempt to reload unrequestable urls ([#378](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/378)) ([44d00ea](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/44d00ea)) * fix `publicPath` regression ([#384](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/384)) ([582ebfe](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/582ebfe)) * enable using plugin without defining options ([#393](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/393)) ([a7dee8c](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/a7dee8c)) * downgrading normalize-url ([#399](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/399)) ([0dafaf6](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/0dafaf6)) * hmr do not crash on link without href ([#400](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/400)) ([aa9b541](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/aa9b541)) * hmr reload with invalid link url ([#402](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/402)) ([30a19b0](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/30a19b0)) ### Features * add `moduleFilename` option ([#381](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/381)) ([13e9cbf](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/13e9cbf)) # [0.6.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.5.0...v0.6.0) (2019-04-10) ### Features * added error code to chunk load Error ([#347](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/347)) ([b653641](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/b653641)) * adding hot module reloading ([#334](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/334)) ([4ed9c5a](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/4ed9c5a)) * publicPath can be a function ([#373](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/373)) ([7b1425a](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/7b1425a)) # [0.5.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.5...v0.5.0) (2018-12-07) ### Features * add crossOriginLoading option support ([#313](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/313)) ([ffb0d87](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/ffb0d87)) ## [0.4.5](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.4...v0.4.5) (2018-11-21) ### Bug Fixes * **index:** allow requesting failed async css files ([#292](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/292)) ([2eb0af5](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/2eb0af5)) ## [0.4.4](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.3...v0.4.4) (2018-10-10) ### Bug Fixes * **index:** assign empty `module.id` to prevent `contenthash` from changing unnecessarily ([#284](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/284)) ([d7946d0](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/d7946d0)) ## [0.4.3](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.2...v0.4.3) (2018-09-18) ### Bug Fixes * **loader:** pass `emitFile` to the child compilation (`loaderContext.emitFile`) ([#177](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/177)) ([18c066e](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/18c066e)) ## [0.4.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.0...v0.4.2) (2018-08-21) ### Bug Fixes * use correct order when multiple chunk groups are merged ([#246](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/246)) ([c3b363d](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/c3b363d)) ## [0.4.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.0...v0.4.1) (2018-06-29) ### Bug Fixes * CSS ordering with multiple entry points ([#130](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/130)) ([79373eb](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/79373eb)) # Change Log All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. x.x.x / -- ================== * Bug fix - * Feature - * Chore - * Docs - mini-css-extract-plugin-2.10.2/LICENSE000066400000000000000000000020571516122265000172730ustar00rootroot00000000000000Copyright JS Foundation and other contributors 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. mini-css-extract-plugin-2.10.2/README.md000066400000000000000000000756741516122265000175640ustar00rootroot00000000000000

mini-css-extract-plugin

[![npm][npm]][npm-url] [![node][node]][node-url] [![tests][tests]][tests-url] [![coverage][cover]][cover-url] [![discussion][discussion]][discussion-url] [![size][size]][size-url] # mini-css-extract-plugin This plugin extracts CSS into separate files. It creates a CSS file for each JS file that contains CSS. It supports On-Demand-Loading of CSS and SourceMaps. It builds on top of a new webpack v5 feature and requires webpack 5 to work. Compared to the extract-text-webpack-plugin: - Async loading - No duplicate compilation (performance) - Easier to use - Specific to CSS ## Getting Started To begin, you'll need to install `mini-css-extract-plugin`: ```console npm install --save-dev mini-css-extract-plugin ``` or ```console yarn add -D mini-css-extract-plugin ``` or ```console pnpm add -D mini-css-extract-plugin ``` It's recommended to combine `mini-css-extract-plugin` with the [`css-loader`](https://github.com/webpack/css-loader) Then add the loader and the plugin to your `webpack` configuration. For example: **style.css** ```css body { background: green; } ``` **component.js** ```js import "./style.css"; ``` **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [new MiniCssExtractPlugin()], module: { rules: [ { test: /\.css$/i, use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, }; ``` > [!WARNING] > > Note that if you import CSS from your webpack entrypoint or import styles in the [initial](https://webpack.js.org/concepts/under-the-hood/#chunks) chunk, `mini-css-extract-plugin` will not load this CSS into the page automatically. Please use [`html-webpack-plugin`](https://github.com/jantimon/html-webpack-plugin) for automatic generation `link` tags or manually include a `` tag in your `index.html` file. > [!WARNING] > > Source maps works only for `source-map`/`nosources-source-map`/`hidden-nosources-source-map`/`hidden-source-map` values because CSS only supports source maps with the `sourceMappingURL` comment (i.e. `//# sourceMappingURL=style.css.map`). If you need set `devtool` to another value you can enable source maps generation for extracted CSS using [`sourceMap: true`](https://github.com/webpack/css-loader#sourcemap) for `css-loader`. ## Options ### Plugin Options - **[`filename`](#filename)** - **[`chunkFilename`](#chunkFilename)** - **[`ignoreOrder`](#ignoreOrder)** - **[`insert`](#insert)** - **[`attributes`](#attributes)** - **[`linkType`](#linkType)** - **[`runtime`](#runtime)** - **[`experimentalUseImportModule`](#experimentalUseImportModule)** #### `filename` Type: ```ts type filename = | string | ((pathData: PathData, assetInfo?: AssetInfo) => string); ``` Default: `[name].css` This option determines the name of each output CSS file. Works like [`output.filename`](https://webpack.js.org/configuration/output/#outputfilename) #### `chunkFilename` Type: ```ts type chunkFilename = | string | ((pathData: PathData, assetInfo?: AssetInfo) => string); ``` Default: `Based on filename` > Specifying `chunkFilename` as a `function` is only available in webpack@5 This option determines the name of non-entry chunk files. Works like [`output.chunkFilename`](https://webpack.js.org/configuration/output/#outputchunkfilename) #### `ignoreOrder` Type: ```ts type ignoreOrder = boolean; ``` Default: `false` Remove Order Warnings. See [examples](#remove-order-warnings) for more details. #### `insert` Type: ```ts type insert = string | ((linkTag: HTMLLinkElement) => void); ``` Default: `document.head.appendChild(linkTag);` Inserts the `link` tag at the given position for [non-initial (async)](https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks > [!WARNING] > > Only applicable for [non-initial (async)](https://webpack.js.org/concepts/under-the-hood/#chunks) chunks. By default, the `mini-css-extract-plugin` appends styles (`` elements) to `document.head` of the current `window`. However in some circumstances it might be necessary to have finer control over the append target or even delay `link` elements insertion. For example this is the case when you asynchronously load styles for an application that runs inside of an iframe. In such cases `insert` can be configured to be a function or a custom selector. If you target an [iframe](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement), make sure that the parent document has sufficient access rights to reach into the frame document and append elements to it. ##### `string` Allows to setup custom [query selector](https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector). A new `` element will be inserted after the found item. **webpack.config.js** ```js new MiniCssExtractPlugin({ insert: "#some-element", }); ``` A new `` tag will be inserted after the element with the ID `some-element`. ##### `function` Allows to override default behavior and insert styles at any position. > ⚠ Do not forget that this code will run in the browser alongside your application. Since not all browsers support latest ECMA features like `let`, `const`, `arrow function expression` and etc we recommend you to use only ECMA 5 features and syntax. > > > ⚠ The `insert` function is serialized to string and passed to the plugin. This means that it won't have access to the scope of the webpack configuration module. **webpack.config.js** ```js new MiniCssExtractPlugin({ insert(linkTag) { const reference = document.querySelector("#some-element"); if (reference) { reference.parentNode.insertBefore(linkTag, reference); } }, }); ``` A new `` tag will be inserted before the element with the ID `some-element`. #### `attributes` Type: ```ts type attributes = Record; ``` Default: `{}` > [!WARNING] > > Only applies to [non-initial (async)](https://webpack.js.org/concepts/under-the-hood/#chunks) chunks. If defined, the `mini-css-extract-plugin` will attach given attributes with their values on `` element. **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ attributes: { id: "target", "data-target": "example", }, }), ], module: { rules: [ { test: /\.css$/i, use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, }; ``` > [!NOTE] > > It's only applied to dynamically loaded CSS chunks. > If you want to modify `` attributes inside HTML file, please use [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) #### `linkType` Type: ```ts type linkType = string | boolean; ``` Default: `text/css` This option allows loading asynchronous chunks with a custom link type, such as ``. ##### `string` Possible values: `text/css` **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ linkType: "text/css", }), ], module: { rules: [ { test: /\.css$/i, use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, }; ``` ##### `boolean` `false` disables the link `type` attribute entirely. **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ linkType: false, }), ], module: { rules: [ { test: /\.css$/i, use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, }; ``` #### `runtime` Type: ```ts type runtime = boolean; ``` Default: `true` Allows to enable/disable the runtime generation. CSS will be still extracted and can be used for a custom loading methods. For example, you can use [assets-webpack-plugin](https://github.com/ztoben/assets-webpack-plugin) to retrieve them then use your own runtime code to download assets when needed. `false` to skip. **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ runtime: false, }), ], module: { rules: [ { test: /\.css$/i, use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, }; ``` #### `experimentalUseImportModule` Type: ```ts type experimentalUseImportModule = boolean; ``` Default: `undefined` Enabled by default if not explicitly enabled (i.e. `true` and `false` allow you to explicitly control this option) and new API is available (at least webpack `5.52.0` is required). Boolean values are available since version `5.33.2`, but you need to enable `experiments.executeModule` (not required from webpack `5.52.0`). Use a new webpack API to execute modules instead of child compilers, significantly improving performance and memory usage. When combined with `experiments.layers`, this adds a `layer` option to the loader options to specify the layer of the CSS execution. **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ // You don't need this for `>= 5.52.0` due to the fact that this is enabled by default // Required only for `>= 5.33.2 & <= 5.52.0` // Not available/unsafe for `<= 5.33.2` experimentalUseImportModule: true, }), ], module: { rules: [ { test: /\.css$/i, use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, }; ``` ### Loader Options - **[`publicPath`](#publicPath)** - **[`emit`](#emit)** - **[`esModule`](#esModule)** - **[`defaultExport`](#defaultExport)** #### `publicPath` Type: ```ts type publicPath = | string | ((resourcePath: string, rootContext: string) => string); ``` Default: the `publicPath` in `webpackOptions.output` Specifies a custom public path for the external resources like images, files, etc inside `CSS`. Works like [`output.publicPath`](https://webpack.js.org/configuration/output/#outputpublicpath) ##### `string` **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional filename: "[name].css", chunkFilename: "[id].css", }), ], module: { rules: [ { test: /\.css$/, use: [ { loader: MiniCssExtractPlugin.loader, options: { publicPath: "/public/path/to/", }, }, "css-loader", ], }, ], }, }; ``` ##### `function` **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional filename: "[name].css", chunkFilename: "[id].css", }), ], module: { rules: [ { test: /\.css$/, use: [ { loader: MiniCssExtractPlugin.loader, options: { publicPath: (resourcePath, context) => `${path.relative(path.dirname(resourcePath), context)}/`, }, }, "css-loader", ], }, ], }, }; ``` #### `emit` Type: ```ts type emit = boolean; ``` Default: `true` If `true`, emits a file (writes a file to the filesystem). If `false`, the plugin will extract the CSS but **will not** emit the file. It is often useful to disable this option for server-side packages. #### `esModule` Type: ```ts type esModule = boolean; ``` Default: `true` By default, `mini-css-extract-plugin` generates JS modules that use the ES modules syntax. There are some cases in which using ES modules is beneficial, like in the case of [module concatenation](https://webpack.js.org/plugins/module-concatenation-plugin/) and [tree shaking](https://webpack.js.org/guides/tree-shaking/). You can enable a CommonJS syntax using: **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [new MiniCssExtractPlugin()], module: { rules: [ { test: /\.css$/i, use: [ { loader: MiniCssExtractPlugin.loader, options: { esModule: false, }, }, "css-loader", ], }, ], }, }; ``` #### `defaultExport` Type: ```ts type defaultExport = boolean; ``` Default: `false` > [!NOTE] > > This option will work only when you set `namedExport` to `true` in `css-loader` By default, `mini-css-extract-plugin` generates JS modules based on the `esModule` and `namedExport` options in `css-loader`. Using the `esModule` and `namedExport` options will allow you to better optimize your code. If you set `esModule: true` and `namedExport: true` for `css-loader` `mini-css-extract-plugin` will generate **only** a named export. Our official recommendation is to use only named export for better future compatibility. But for some applications, it is not easy to quickly rewrite the code from the default export to a named export. In case you need both default and named exports, you can enable this option: **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [new MiniCssExtractPlugin()], module: { rules: [ { test: /\.css$/i, use: [ { loader: MiniCssExtractPlugin.loader, options: { defaultExport: true, }, }, { loader: "css-loader", options: { esModule: true, modules: { namedExport: true, }, }, }, ], }, ], }, }; ``` ## Examples ### Recommended For `production` builds, it is recommended to extract the CSS from your bundle being able to use parallel loading of CSS/JS resources later on. This can be achieved by using the `mini-css-extract-plugin`, because it creates separate css files. For `development` mode (including `webpack-dev-server`) you can use [style-loader](https://github.com/webpack/style-loader), because it injects CSS into the DOM using multiple and works faster. > Important: Do not use `style-loader` and `mini-css-extract-plugin` together. **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const devMode = process.env.NODE_ENV !== "production"; module.exports = { module: { rules: [ { // If you enable `experiments.css` or `experiments.futureDefaults`, please uncomment line below // type: "javascript/auto", test: /\.(sa|sc|c)ss$/, use: [ devMode ? "style-loader" : MiniCssExtractPlugin.loader, "css-loader", "postcss-loader", "sass-loader", ], }, ], }, plugins: [devMode ? [] : [new MiniCssExtractPlugin()]].flat(), }; ``` ### Minimal example **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // all options are optional filename: "[name].css", chunkFilename: "[id].css", ignoreOrder: false, // Enable to remove warnings about conflicting order }), ], module: { rules: [ { test: /\.css$/, use: [ { loader: MiniCssExtractPlugin.loader, options: { // you can specify a publicPath here // by default it uses publicPath in webpackOptions.output publicPath: "../", }, }, "css-loader", ], }, ], }, }; ``` ### Named export for CSS Modules > ⚠ Names of locals are converted to `camelCase`. > ⚠ It is not allowed to use JavaScript reserved words in CSS class names. > ⚠ Options `esModule` and `modules.namedExport` in `css-loader` should be enabled. **styles.css** ```css .foo-baz { color: red; } .bar { color: blue; } ``` **index.js** ```js import { bar, fooBaz } from "./styles.css"; console.log(fooBaz, bar); ``` You can enable a ES module named export using: **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [new MiniCssExtractPlugin()], module: { rules: [ { test: /\.css$/, use: [ { loader: MiniCssExtractPlugin.loader, }, { loader: "css-loader", options: { esModule: true, modules: { namedExport: true, localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, }; ``` ### The `publicPath` option as function You can specify `publicPath` as a function to dynamically determine the public path based on each resource’s location relative to the project root or context. **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional filename: "[name].css", chunkFilename: "[id].css", }), ], module: { rules: [ { test: /\.css$/, use: [ { loader: MiniCssExtractPlugin.loader, options: { publicPath: (resourcePath, context) => // publicPath is the relative path of the resource to the context // e.g. for ./css/admin/main.css the publicPath will be ../../ // while for ./css/main.css the publicPath will be ../ `${path.relative(path.dirname(resourcePath), context)}/`, }, }, "css-loader", ], }, ], }, }; ``` ### Advanced configuration example This plugin should not be used with `style-loader` in the loaders chain. Here is an example to have both HMR in `development` and your styles extracted in a file for `production` builds. (Loaders options left out for clarity, adapt accordingly to your needs.) You should not use `HotModuleReplacementPlugin` plugin if you are using a `webpack-dev-server`. `webpack-dev-server` enables / disables HMR using `hot` option. **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const webpack = require("webpack"); const devMode = process.env.NODE_ENV !== "production"; const plugins = [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional filename: devMode ? "[name].css" : "[name].[contenthash].css", chunkFilename: devMode ? "[id].css" : "[id].[contenthash].css", }), ]; if (devMode) { // only enable hot in development plugins.push(new webpack.HotModuleReplacementPlugin()); } module.exports = { plugins, module: { rules: [ { test: /\.(sa|sc|c)ss$/, use: [ MiniCssExtractPlugin.loader, "css-loader", "postcss-loader", "sass-loader", ], }, ], }, }; ``` ### Hot Module Reloading (HMR) > [!NOTE] > > HMR is automatically supported in webpack 5. No need to configure it. Skip the following: The `mini-css-extract-plugin` supports hot reloading of actual CSS files in development. Some options are provided to enable HMR of both standard stylesheets and locally scoped CSS or CSS modules. Below is an example configuration of mini-css for HMR use with CSS modules. You should not use `HotModuleReplacementPlugin` plugin if you are using a `webpack-dev-server`. `webpack-dev-server` enables / disables HMR using `hot` option. **webpack.config.js** ```js const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const webpack = require("webpack"); const plugins = [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional filename: devMode ? "[name].css" : "[name].[contenthash].css", chunkFilename: devMode ? "[id].css" : "[id].[contenthash].css", }), ]; if (devMode) { // only enable hot in development plugins.push(new webpack.HotModuleReplacementPlugin()); } module.exports = { plugins, module: { rules: [ { test: /\.css$/, use: [ { loader: MiniCssExtractPlugin.loader, options: {}, }, "css-loader", ], }, ], }, }; ``` ### Minimizing For Production To minify the output, use a plugin like [css-minimizer-webpack-plugin](https://github.com/webpack/css-minimizer-webpack-plugin). **webpack.config.js** ```js const CssMinimizerPlugin = require("css-minimizer-webpack-plugin"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", chunkFilename: "[id].css", }), ], module: { rules: [ { test: /\.css$/, use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, optimization: { minimizer: [ // For webpack@5 you can use the `...` syntax to extend existing minimizers (i.e. `terser-webpack-plugin`). // Uncomment the next line o keep JS minimizers and add CSS minimizer: // `...`, new CssMinimizerPlugin(), ], }, }; ``` - By default, CSS minimization runs in production mode. - If you want to run it also in development set the `optimization.minimize` option to `true`. ### Using preloaded or inlined CSS The runtime code detects already added CSS via `` or `

Body

" `; exports[`attributes option should work with attributes option: errors 1`] = `Array []`; exports[`attributes option should work with attributes option: warnings 1`] = `Array []`; exports[`attributes option should work without attributes option: DOM 1`] = ` " style-loader test

Body

" `; exports[`attributes option should work without attributes option: errors 1`] = `Array []`; exports[`attributes option should work without attributes option: warnings 1`] = `Array []`; mini-css-extract-plugin-2.10.2/test/__snapshots__/emit-option.test.js.snap000066400000000000000000000103041516122265000265750ustar00rootroot00000000000000// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`emit option should work when emit option is "false": assets 1`] = ` Array [ "main.js", "react.svg", ] `; exports[`emit option should work when emit option is "false": errors 1`] = `Array []`; exports[`emit option should work when emit option is "false": warnings 1`] = `Array []`; exports[`emit option should work when emit option is "true": assets 1`] = ` Array [ "main.css", "main.js", "react.svg", ] `; exports[`emit option should work when emit option is "true": errors 1`] = `Array []`; exports[`emit option should work when emit option is "true": warnings 1`] = `Array []`; exports[`emit option should work with locals and invalidate cache when emit option is "false": DOM 1`] = ` " style-loader test css.foo: uC86G4ZAUGUNgZ_8kGoW css.bar: gaVCpLpTGYrkNPCq0Aat css.baz: L2DsMGOk1eHgwznhgQ5Z " `; exports[`emit option should work with locals and invalidate cache when emit option is "false": DOM 2`] = ` " style-loader test css.foo-bar: zXlHvQRDVIOOddpg43og css.bar: gaVCpLpTGYrkNPCq0Aat css.baz: L2DsMGOk1eHgwznhgQ5Z " `; exports[`emit option should work with locals and invalidate cache when emit option is "false": assets 1`] = ` Array [ "main.js", ] `; exports[`emit option should work with locals and invalidate cache when emit option is "false": assets 2`] = ` Array [ "main.js", ] `; exports[`emit option should work with locals and invalidate cache when emit option is "false": emittedAssets 1`] = ` Array [ "main.js", ] `; exports[`emit option should work with locals and invalidate cache when emit option is "false": emittedAssets 2`] = ` Array [ "main.js", ] `; exports[`emit option should work with locals and invalidate cache when emit option is "false": errors 1`] = `Array []`; exports[`emit option should work with locals and invalidate cache when emit option is "false": errors 2`] = `Array []`; exports[`emit option should work with locals and invalidate cache when emit option is "false": warnings 1`] = `Array []`; exports[`emit option should work with locals and invalidate cache when emit option is "false": warnings 2`] = `Array []`; exports[`emit option should work with locals when emit option is "false": DOM 1`] = ` " style-loader test css.foo: uC86G4ZAUGUNgZ_8kGoW css.bar: gaVCpLpTGYrkNPCq0Aat css.baz: L2DsMGOk1eHgwznhgQ5Z " `; exports[`emit option should work with locals when emit option is "false": errors 1`] = `Array []`; exports[`emit option should work with locals when emit option is "false": warnings 1`] = `Array []`; exports[`emit option should work with the "memory" cache and disabled "emit" option: assets 1`] = ` Array [ "main.js", "static/react.svg", ] `; exports[`emit option should work with the "memory" cache and disabled "emit" option: assets 2`] = ` Array [ "main.js", "static/react.svg", ] `; exports[`emit option should work with the "memory" cache and disabled "emit" option: emittedAssets 1`] = ` Array [ "main.js", "static/react.svg", ] `; exports[`emit option should work with the "memory" cache and disabled "emit" option: emittedAssets 2`] = `Array []`; exports[`emit option should work with the "memory" cache and disabled "emit" option: errors 1`] = `Array []`; exports[`emit option should work with the "memory" cache and disabled "emit" option: errors 2`] = `Array []`; exports[`emit option should work with the "memory" cache and disabled "emit" option: warnings 1`] = `Array []`; exports[`emit option should work with the "memory" cache and disabled "emit" option: warnings 2`] = `Array []`; exports[`emit option should work without emit option: assets 1`] = ` Array [ "main.bundle.js", "main.css", "react.svg", ] `; exports[`emit option should work without emit option: errors 1`] = `Array []`; exports[`emit option should work without emit option: warnings 1`] = `Array []`; mini-css-extract-plugin-2.10.2/test/__snapshots__/insert-option.test.js.snap000066400000000000000000000037221516122265000271510ustar00rootroot00000000000000// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`insert option should work when insert option is function: DOM 1`] = ` " style-loader test

Body

" `; exports[`insert option should work when insert option is function: errors 1`] = `Array []`; exports[`insert option should work when insert option is function: warnings 1`] = `Array []`; exports[`insert option should work when insert option is string: DOM 1`] = ` " style-loader test

Body

" `; exports[`insert option should work when insert option is string: errors 1`] = `Array []`; exports[`insert option should work when insert option is string: warnings 1`] = `Array []`; exports[`insert option should work without insert option: DOM 1`] = ` " style-loader test

Body

" `; exports[`insert option should work without insert option: errors 1`] = `Array []`; exports[`insert option should work without insert option: warnings 1`] = `Array []`; mini-css-extract-plugin-2.10.2/test/__snapshots__/linkTag-option.test.js.snap000066400000000000000000000037531516122265000272420ustar00rootroot00000000000000// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`linkType option should work when linkType option is "false": DOM 1`] = ` " style-loader test

Body

" `; exports[`linkType option should work when linkType option is "false": errors 1`] = `Array []`; exports[`linkType option should work when linkType option is "false": warnings 1`] = `Array []`; exports[`linkType option should work when linkType option is "text/css": DOM 1`] = ` " style-loader test

Body

" `; exports[`linkType option should work when linkType option is "text/css": errors 1`] = `Array []`; exports[`linkType option should work when linkType option is "text/css": warnings 1`] = `Array []`; exports[`linkType option should work without linkType option: DOM 1`] = ` " style-loader test

Body

" `; exports[`linkType option should work without linkType option: errors 1`] = `Array []`; exports[`linkType option should work without linkType option: warnings 1`] = `Array []`; mini-css-extract-plugin-2.10.2/test/__snapshots__/nonce.test.js.snap000066400000000000000000000025651516122265000254450ustar00rootroot00000000000000// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`nonce should work when __webpack_nonce__ is defined: DOM 1`] = ` " style-loader test

Body

" `; exports[`nonce should work when __webpack_nonce__ is defined: errors 1`] = `Array []`; exports[`nonce should work when __webpack_nonce__ is defined: warnings 1`] = `Array []`; exports[`nonce should work when __webpack_nonce__ is not defined: DOM 1`] = ` " style-loader test

Body

" `; exports[`nonce should work when __webpack_nonce__ is not defined: errors 1`] = `Array []`; exports[`nonce should work when __webpack_nonce__ is not defined: warnings 1`] = `Array []`; mini-css-extract-plugin-2.10.2/test/__snapshots__/runtime-option.test.js.snap000066400000000000000000000037441516122265000273340ustar00rootroot00000000000000// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`noRuntime option should work when the 'runtime' option is 'false': DOM 1`] = ` " style-loader test

Body

" `; exports[`noRuntime option should work when the 'runtime' option is 'false': errors 1`] = `Array []`; exports[`noRuntime option should work when the 'runtime' option is 'false': warnings 1`] = `Array []`; exports[`noRuntime option should work when the 'runtime' option is 'true': DOM 1`] = ` " style-loader test

Body

" `; exports[`noRuntime option should work when the 'runtime' option is 'true': errors 1`] = `Array []`; exports[`noRuntime option should work when the 'runtime' option is 'true': warnings 1`] = `Array []`; exports[`noRuntime option should work without the 'runtime' option: DOM 1`] = ` " style-loader test

Body

" `; exports[`noRuntime option should work without the 'runtime' option: errors 1`] = `Array []`; exports[`noRuntime option should work without the 'runtime' option: warnings 1`] = `Array []`; mini-css-extract-plugin-2.10.2/test/__snapshots__/validate-loader-options.test.js.snap000066400000000000000000000110261516122265000310610ustar00rootroot00000000000000// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`validate options should throw an error on the "defaultExport" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options.defaultExport should be a boolean. -> Duplicate the named export with CSS modules locals to the default export (only when \`esModules: true\` for css-loader). -> Read more at https://github.com/webpack/mini-css-extract-plugin#defaultexports" `; exports[`validate options should throw an error on the "esModule" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options.esModule should be a boolean. -> Generates JS modules that use the ES modules syntax. -> Read more at https://github.com/webpack/mini-css-extract-plugin#esmodule" `; exports[`validate options should throw an error on the "publicPath" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options.publicPath should be one of these: string | function -> Specifies a custom public path for the external resources like images, files, etc inside CSS. -> Read more at https://github.com/webpack/mini-css-extract-plugin#publicpath Details: * options.publicPath should be a string. * options.publicPath should be an instance of function." `; exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { publicPath?, emit?, esModule?, layer?, defaultExport? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { publicPath?, emit?, esModule?, layer?, defaultExport? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { publicPath?, emit?, esModule?, layer?, defaultExport? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { publicPath?, emit?, esModule?, layer?, defaultExport? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { publicPath?, emit?, esModule?, layer?, defaultExport? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { publicPath?, emit?, esModule?, layer?, defaultExport? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { publicPath?, emit?, esModule?, layer?, defaultExport? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { publicPath?, emit?, esModule?, layer?, defaultExport? }" `; mini-css-extract-plugin-2.10.2/test/__snapshots__/validate-plugin-options.test.js.snap000066400000000000000000000254741516122265000311250ustar00rootroot00000000000000// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`validate options should throw an error on the "attributes" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.attributes should be an object: object { … } -> Adds custom attributes to the \`link\` tag for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks. -> Read more at https://github.com/webpack/mini-css-extract-plugin#attributes" `; exports[`validate options should throw an error on the "chunkFilename" option with "" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.chunkFilename should be a non-empty string." `; exports[`validate options should throw an error on the "chunkFilename" option with "/styles/[id].css" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.chunkFilename: A relative path is expected. However, the provided value \\"/styles/[id].css\\" is an absolute path!" `; exports[`validate options should throw an error on the "chunkFilename" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.chunkFilename should be one of these: non-empty string | function -> This option determines the name of non-entry chunk files. -> Read more at https://github.com/webpack/mini-css-extract-plugin#chunkfilename Details: * options.chunkFilename should be a non-empty string. * options.chunkFilename should be an instance of function." `; exports[`validate options should throw an error on the "filename" option with "" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.filename should be a non-empty string." `; exports[`validate options should throw an error on the "filename" option with "/styles/[name].css" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.filename: A relative path is expected. However, the provided value \\"/styles/[name].css\\" is an absolute path!" `; exports[`validate options should throw an error on the "filename" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.filename should be one of these: non-empty string | function -> This option determines the name of each output CSS file. -> Read more at https://github.com/webpack/mini-css-extract-plugin#filename Details: * options.filename should be a non-empty string. * options.filename should be an instance of function." `; exports[`validate options should throw an error on the "ignoreOrder" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.ignoreOrder should be a boolean. -> Remove Order Warnings. -> Read more at https://github.com/webpack/mini-css-extract-plugin#ignoreorder" `; exports[`validate options should throw an error on the "insert" option with "{}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.insert should be one of these: string | function -> Inserts the \`link\` tag at the given position for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks. -> Read more at https://github.com/webpack/mini-css-extract-plugin#insert Details: * options.insert should be a string. * options.insert should be an instance of function." `; exports[`validate options should throw an error on the "insert" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.insert should be one of these: string | function -> Inserts the \`link\` tag at the given position for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks. -> Read more at https://github.com/webpack/mini-css-extract-plugin#insert Details: * options.insert should be a string. * options.insert should be an instance of function." `; exports[`validate options should throw an error on the "insert" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.insert should be one of these: string | function -> Inserts the \`link\` tag at the given position for non-initial (async) (https://webpack.js.org/concepts/under-the-hood/#chunks) CSS chunks. -> Read more at https://github.com/webpack/mini-css-extract-plugin#insert Details: * options.insert should be a string. * options.insert should be an instance of function." `; exports[`validate options should throw an error on the "linkType" option with "[]" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.linkType should be one of these: \\"text/css\\" | boolean -> This option allows loading asynchronous chunks with a custom link type -> Read more at https://github.com/webpack/mini-css-extract-plugin#linktype Details: * options.linkType should be \\"text/css\\". * options.linkType should be a boolean." `; exports[`validate options should throw an error on the "linkType" option with "{}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.linkType should be one of these: \\"text/css\\" | boolean -> This option allows loading asynchronous chunks with a custom link type -> Read more at https://github.com/webpack/mini-css-extract-plugin#linktype Details: * options.linkType should be \\"text/css\\". * options.linkType should be a boolean." `; exports[`validate options should throw an error on the "linkType" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.linkType should be one of these: \\"text/css\\" | boolean -> This option allows loading asynchronous chunks with a custom link type -> Read more at https://github.com/webpack/mini-css-extract-plugin#linktype Details: * options.linkType should be \\"text/css\\". * options.linkType should be a boolean." `; exports[`validate options should throw an error on the "linkType" option with "invalid/type" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options.linkType should be one of these: \\"text/css\\" | boolean -> This option allows loading asynchronous chunks with a custom link type -> Read more at https://github.com/webpack/mini-css-extract-plugin#linktype Details: * options.linkType should be \\"text/css\\". * options.linkType should be a boolean." `; exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType?, runtime? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType?, runtime? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType?, runtime? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType?, runtime? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType?, runtime? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType?, runtime? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType?, runtime? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType?, runtime? }" `; mini-css-extract-plugin-2.10.2/test/api.test.js000066400000000000000000000010351516122265000213250ustar00rootroot00000000000000import webpack from "webpack"; import MiniCssExtractPlugin from "../src"; describe("API", () => { it("should return the same CssModule when same webpack instance provided", () => { expect(MiniCssExtractPlugin.getCssModule(webpack)).toEqual( MiniCssExtractPlugin.getCssModule(webpack), ); }); it("should return the same CssDependency when same webpack instance provided", () => { expect(MiniCssExtractPlugin.getCssDependency(webpack)).toEqual( MiniCssExtractPlugin.getCssDependency(webpack), ); }); }); mini-css-extract-plugin-2.10.2/test/attributes-option.test.js000066400000000000000000000034601516122265000242540ustar00rootroot00000000000000/* eslint-env browser */ import path from "path"; import MiniCssExtractPlugin from "../src"; import { compile, getCompiler, getErrors, getWarnings, runInJsDom, } from "./helpers/index"; describe("attributes option", () => { it("should work without attributes option", async () => { const compiler = getCompiler( "attributes.js", {}, { output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { // console.log(dom.serialize()) expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it("should work with attributes option", async () => { const compiler = getCompiler( "attributes.js", {}, { output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ attributes: { id: "target", "data-target": "example", }, filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { // console.log(dom.serialize()) expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); }); mini-css-extract-plugin-2.10.2/test/cases/000077500000000000000000000000001516122265000203375ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/asset-modules/000077500000000000000000000000001516122265000231245ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/asset-modules/expected/000077500000000000000000000000001516122265000247255ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/asset-modules/expected/main.css000066400000000000000000000001101516122265000263530ustar00rootroot00000000000000body { background: red; background-image: url(static/react.svg); } mini-css-extract-plugin-2.10.2/test/cases/asset-modules/index.js000066400000000000000000000000261516122265000245670ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/asset-modules/react.svg000066400000000000000000000045211516122265000247450ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/asset-modules/style.css000066400000000000000000000001021516122265000247670ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/asset-modules/webpack.config.js000066400000000000000000000007521516122265000263460ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, "css-loader", ], }, { test: /\.svg$/, type: "asset/resource", generator: { filename: "static/[name][ext][query]", }, }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/at-charset/000077500000000000000000000000001516122265000223725ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-charset/a.css000066400000000000000000000002241516122265000233220ustar00rootroot00000000000000@charset "utf-8"; @import "./ae.css"; @import "./aa.css"; @import "./ab.css"; @import "./ac.css"; @import "./ad.css"; body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/aa.css000066400000000000000000000000601516122265000234610ustar00rootroot00000000000000@charset "utf-8"; .aa { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/ab.css000066400000000000000000000000601516122265000234620ustar00rootroot00000000000000@charset "utf-8"; .ab { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/ac.css000066400000000000000000000000601516122265000234630ustar00rootroot00000000000000@charset "utf-8"; .ac { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/ad.css000066400000000000000000000000601516122265000234640ustar00rootroot00000000000000@charset "utf-8"; .ad { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/ae.css000066400000000000000000000000601516122265000234650ustar00rootroot00000000000000@charset "utf-8"; .ae { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/b.css000066400000000000000000000001331516122265000233220ustar00rootroot00000000000000@charset "utf-8"; @import "./ba.css"; @import "./bb.css"; body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/ba.css000066400000000000000000000000601516122265000234620ustar00rootroot00000000000000@charset "utf-8"; .ba { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/bb.css000066400000000000000000000000601516122265000234630ustar00rootroot00000000000000@charset "utf-8"; .bb { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/expected/000077500000000000000000000000001516122265000241735ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-charset/expected/main.css000066400000000000000000000006721516122265000256360ustar00rootroot00000000000000@charset "utf-8"; .ae { background: green; } @charset "utf-8"; .aa { background: green; } @charset "utf-8"; .ab { background: green; } @charset "utf-8"; .ac { background: green; } @charset "utf-8"; .ad { background: green; } @charset "utf-8"; body { background: red; } @charset "utf-8"; .ba { background: green; } @charset "utf-8"; .bb { background: green; } @charset "utf-8"; body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/at-charset/index.js000066400000000000000000000000441516122265000240350ustar00rootroot00000000000000import "./a.css"; import "./b.css"; mini-css-extract-plugin-2.10.2/test/cases/at-charset/webpack.config.js000066400000000000000000000004161516122265000256110ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/at-import-external-with-media/000077500000000000000000000000001516122265000261215ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-external-with-media/a.css000066400000000000000000000011601516122265000270510ustar00rootroot00000000000000@import url(http://some/path/to/css1.css); @import url(http://some/path/to/css2.css) screen and (max-width: 1024px); @import url(http://some/path/to/css3.css) supports(display: grid) screen and (max-width: 400px); @import url(http://some/path/to/css4.css) supports(display: grid); @import url(http://some/path/to/css5.css) layer(); @import url(http://some/path/to/css6.css) layer; @import url(http://some/path/to/css7.css) layer(layer-name) supports(display: grid) screen and (max-width: 1024px); @import url(http://some/path/to/css8.css) layer(layer-name) screen and (max-width: 1024px); body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import-external-with-media/b.css000066400000000000000000000001051516122265000270500ustar00rootroot00000000000000@import url("https://some/external/css"); .b { background: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import-external-with-media/expected/000077500000000000000000000000001516122265000277225ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-external-with-media/expected/main.css000066400000000000000000000012571516122265000313650ustar00rootroot00000000000000@import url(http://some/path/to/css1.css); @import url(http://some/path/to/css2.css) screen and (max-width: 1024px); @import url(http://some/path/to/css3.css) supports(display: grid) screen and (max-width: 400px); @import url(http://some/path/to/css4.css) supports(display: grid); @import url(http://some/path/to/css5.css) layer; @import url(http://some/path/to/css6.css) layer; @import url(http://some/path/to/css7.css) layer(layer-name) supports(display: grid) screen and (max-width: 1024px); @import url(http://some/path/to/css8.css) layer(layer-name) screen and (max-width: 1024px); @import url(https://some/external/css); body { background: red; } .b { background: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import-external-with-media/index.js000066400000000000000000000000441516122265000275640ustar00rootroot00000000000000import "./a.css"; import "./b.css"; mini-css-extract-plugin-2.10.2/test/cases/at-import-external-with-media/webpack.config.js000066400000000000000000000004161516122265000313400ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-entry/000077500000000000000000000000001516122265000245745ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-entry/a.css000066400000000000000000000000431516122265000255230ustar00rootroot00000000000000body { font-family: "Manrope"; } mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-entry/b.css000066400000000000000000000001311516122265000255220ustar00rootroot00000000000000@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@500;800&display=swap); mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-entry/expected/000077500000000000000000000000001516122265000263755ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-entry/expected/main.css000066400000000000000000000013761516122265000300420ustar00rootroot00000000000000/*!****************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./b.css ***! \****************************************************************/ @import url(https://fonts.googleapis.com/css2?family=Manrope:wght@500;800&display=swap); /*!****************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./a.css ***! \****************************************************************/ body { font-family: "Manrope"; } /*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./b.css (1) ***! \********************************************************************/ mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-entry/webpack.config.js000066400000000000000000000005241516122265000300130ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { mode: "development", entry: ["./a.css", "./b.css"], output: { pathinfo: true, }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-middle/000077500000000000000000000000001516122265000246715ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-middle/a.css000066400000000000000000000000341516122265000256200ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-middle/b.css000066400000000000000000000001361516122265000256240ustar00rootroot00000000000000.b { background: red; } @import url("https://some/external/css"); .b { color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-middle/c.css000066400000000000000000000001661516122265000256300ustar00rootroot00000000000000.c { background: red; } @import "./a.css"; @import url("https://some/other/external/css"); .c { color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-middle/expected/000077500000000000000000000000001516122265000264725ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-middle/expected/main.css000066400000000000000000000003351516122265000301310ustar00rootroot00000000000000@import url(https://some/other/external/css); @import url(https://some/external/css); body { background: red; } .c { background: red; } .c { color: yellow; } .b { background: red; } .b { color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-middle/index.css000066400000000000000000000000461516122265000265120ustar00rootroot00000000000000@import "./c.css"; @import "./b.css"; mini-css-extract-plugin-2.10.2/test/cases/at-import-in-the-middle/webpack.config.js000066400000000000000000000004171516122265000301110ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.css", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/000077500000000000000000000000001516122265000233655ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/expected/000077500000000000000000000000001516122265000251665ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/expected/main.css000066400000000000000000000010651516122265000266260ustar00rootroot00000000000000@layer framework { @layer base {.bottom { background: blue; } } } @layer framework { @layer base { .middle { background: green; } } } @layer { .color { color: red; } } @supports (display: flex) { @media (prefers-color-scheme: dark) { @layer default { @supports (display: grid) {@media screen and (min-width: 900px) {@layer base {.foo { color: red; } }}} } } } @supports (display: flex) { @media (prefers-color-scheme: dark) { @layer default { /* prettier-ignore */ .bar { color: blue; } } } } /* prettier-ignore */ .top { background: red; } import-with-layer-and-supports-and-media.css000066400000000000000000000002131516122265000336630ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/* prettier-ignore */ @import url("./zzz.css") layer(base) supports(display: grid) screen and (min-width: 900px); .bar { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/import-with-layer.css000066400000000000000000000001371516122265000274750ustar00rootroot00000000000000@import url("./test.css") layer(base); @layer base { .middle { background: green; } } mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/index.js000066400000000000000000000000261516122265000250300ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/style.css000066400000000000000000000004311516122265000252350ustar00rootroot00000000000000@import url("./import-with-layer.css") layer(framework); @import url("./unnamed-layer.css") layer; /* prettier-ignore */ @import url("./import-with-layer-and-supports-and-media.css") layer(default) supports(display: flex) (prefers-color-scheme: dark); .top { background: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/test.css000066400000000000000000000000401516122265000250500ustar00rootroot00000000000000.bottom { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/unnamed-layer.css000066400000000000000000000000311516122265000266320ustar00rootroot00000000000000.color { color: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/webpack.config.js000066400000000000000000000004161516122265000266040ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/at-import-layer/zzz.css000066400000000000000000000000271516122265000247330ustar00rootroot00000000000000.foo { color: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import-supports/000077500000000000000000000000001516122265000241505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-supports/expected/000077500000000000000000000000001516122265000257515ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import-supports/expected/main.css000066400000000000000000000002701516122265000274060ustar00rootroot00000000000000@supports (display: flex) { @supports (display: grid) {.bottom { background: blue; } } } @supports (display: flex) { .middle { background: green; } } .top { background: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import-supports/import-with-supports.css000066400000000000000000000001251516122265000310400ustar00rootroot00000000000000@import url("./test.css") supports(display: grid); .middle { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-import-supports/index.js000066400000000000000000000000261516122265000256130ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/at-import-supports/style.css000066400000000000000000000001401516122265000260150ustar00rootroot00000000000000@import url("./import-with-supports.css") supports(display: flex); .top { background: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import-supports/test.css000066400000000000000000000000401516122265000256330ustar00rootroot00000000000000.bottom { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/at-import-supports/webpack.config.js000066400000000000000000000004161516122265000273670ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/at-import/000077500000000000000000000000001516122265000222535ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import/a.css000066400000000000000000000002011516122265000231760ustar00rootroot00000000000000@import "./ae.css"; @import "./aa.css"; @import "./ab.css"; @import "./ac.css"; @import "./ad.css"; body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/at-import/aa.css000066400000000000000000000000351516122265000233440ustar00rootroot00000000000000.aa { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-import/ab.css000066400000000000000000000000351516122265000233450ustar00rootroot00000000000000.ab { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-import/ac.css000066400000000000000000000000351516122265000233460ustar00rootroot00000000000000.ac { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-import/ad.css000066400000000000000000000000351516122265000233470ustar00rootroot00000000000000.ad { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-import/ae.css000066400000000000000000000000351516122265000233500ustar00rootroot00000000000000.ae { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-import/b.css000066400000000000000000000001101516122265000231760ustar00rootroot00000000000000@import "./ba.css"; @import "./bb.css"; body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/at-import/ba.css000066400000000000000000000000351516122265000233450ustar00rootroot00000000000000.ba { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-import/bb.css000066400000000000000000000000351516122265000233460ustar00rootroot00000000000000.bb { background: green; } mini-css-extract-plugin-2.10.2/test/cases/at-import/expected/000077500000000000000000000000001516122265000240545ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-import/expected/main.css000066400000000000000000000004171516122265000255140ustar00rootroot00000000000000.ae { background: green; } .aa { background: green; } .ab { background: green; } .ac { background: green; } .ad { background: green; } body { background: red; } .ba { background: green; } .bb { background: green; } body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/at-import/index.js000066400000000000000000000000441516122265000237160ustar00rootroot00000000000000import "./a.css"; import "./b.css"; mini-css-extract-plugin-2.10.2/test/cases/at-import/webpack.config.js000066400000000000000000000004161516122265000254720ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/at-media/000077500000000000000000000000001516122265000220205ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-media/a.css000066400000000000000000000000341516122265000227470ustar00rootroot00000000000000body { font-size: 24px; } mini-css-extract-plugin-2.10.2/test/cases/at-media/b.css000066400000000000000000000000341516122265000227500ustar00rootroot00000000000000body { font-size: 32px; } mini-css-extract-plugin-2.10.2/test/cases/at-media/c.css000066400000000000000000000000341516122265000227510ustar00rootroot00000000000000body { font-size: 64px; } mini-css-extract-plugin-2.10.2/test/cases/at-media/d.css000066400000000000000000000000351516122265000227530ustar00rootroot00000000000000body { font-size: 128px; } mini-css-extract-plugin-2.10.2/test/cases/at-media/e.css000066400000000000000000000000351516122265000227540ustar00rootroot00000000000000body { font-size: 256px; } mini-css-extract-plugin-2.10.2/test/cases/at-media/expected/000077500000000000000000000000001516122265000236215ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/at-media/expected/main.css000066400000000000000000000013441516122265000252610ustar00rootroot00000000000000body { font-size: 24px; } @media screen and (orientation: landscape) { body { font-size: 32px; } } /*@import url("./c.css") supports(display: flex);*/ /*@import url("./d.css") supports(display: flex) screen and (min-width: 400px);*/ /*@import url("./e.css") supports( display : flex ) screen and ( min-width : 400px ) ;*/ /*@import url("./f.css") supports(not (display: flex));*/ /*@import url("./g.css") SUPPORTS(NOT (DISPLAY: FLEX));*/ div { color: blue; } @media { div { color: red; } } @media screen and (min-width: 900px) { article { padding: 1rem 3rem; } } @supports (display: flex) { @media screen and (min-width: 900px) { article { display: flex; } } } mini-css-extract-plugin-2.10.2/test/cases/at-media/f.css000066400000000000000000000000351516122265000227550ustar00rootroot00000000000000body { font-size: 512px; } mini-css-extract-plugin-2.10.2/test/cases/at-media/g.css000066400000000000000000000000361516122265000227570ustar00rootroot00000000000000body { font-size: 1024px; } mini-css-extract-plugin-2.10.2/test/cases/at-media/index.js000066400000000000000000000000261516122265000234630ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/at-media/style.css000066400000000000000000000013161516122265000236730ustar00rootroot00000000000000@import url("./a.css"); @import url("./b.css") screen and (orientation: landscape); /*@import url("./c.css") supports(display: flex);*/ /*@import url("./d.css") supports(display: flex) screen and (min-width: 400px);*/ /*@import url("./e.css") supports( display : flex ) screen and ( min-width : 400px ) ;*/ /*@import url("./f.css") supports(not (display: flex));*/ /*@import url("./g.css") SUPPORTS(NOT (DISPLAY: FLEX));*/ div { color: blue; } @media { div { color: red; } } @media screen and (min-width: 900px) { article { padding: 1rem 3rem; } } @supports (display: flex) { @media screen and (min-width: 900px) { article { display: flex; } } } mini-css-extract-plugin-2.10.2/test/cases/at-media/webpack.config.js000066400000000000000000000005631516122265000252420ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/000077500000000000000000000000001516122265000236465ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/expected/000077500000000000000000000000001516122265000254475ustar00rootroot00000000000000auxiliaryAssets-815babffe97b00a1f30b.woff2000066400000000000000000000000521516122265000345440ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/expectedauxiliaryAssets-815babffe97b00a1f30b.woff2auxiliaryAssets-a0de923c946d4ccb38b0.ttf000066400000000000000000000000501516122265000342440ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/expectedauxiliaryAssets-a0de923c946d4ccb38b0.ttfauxiliaryAssets-d4c409dfe110747b1763.woff000066400000000000000000000000511516122265000341740ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/expectedauxiliaryAssets-d4c409dfe110747b1763.woffmini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/fonts.css000066400000000000000000000005331516122265000255120ustar00rootroot00000000000000@font-face { font-family: "Roboto"; font-style: normal; font-weight: 300; font-display: swap; src: local("Roboto Light"), local("Roboto-Light"), url("fonts/roboto-v18-latin-300.woff2") format("woff2"), url("fonts/roboto-v18-latin-300.woff") format("woff"), url("fonts/roboto-v18-latin-300.ttf") format("truetype"); } mini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/fonts/000077500000000000000000000000001516122265000247775ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/fonts/roboto-v18-latin-300.ttf000066400000000000000000001052141516122265000310460ustar00rootroot00000000000000 GDEF{dGPOSh| GSUB7bOS/2t #r`cmapsXLcvt /yXfpgm"vgasp{ glyfw,jhdmxr`headYim6hhea vq$hmtx\]n$locagLl maxp\k name9y|postmd{p prepz/Wx`:d( o 9 а а  а  EX/>YEX/>Y9999 ܲ 9 901!!!!5!(<6 }wx^^^> <9EX/>YEX / >Y +X!Yа/01#3462"&o|,L--L,"//"!--; /а/а01#3#3PaQatŌUEX / >YEX/>YEX/>YEX/>Y 9|/ +X!Yаа а / +X!Y а аааа01!##5!!5!3!33#3!#!!McMS)OcO;OdOSMd;Sf]````G]fs0+{,-9 /EX / >YEX / >YEX / >YEX"/">Y" 9  +X!Y +X!Y"а") +X!Y014&'&&546753#4&#"#5&&53326Ȭfw_Oͳexgo?GÛǝ|xwmh Ŝm &48n5/7/EX/>YEX$/$>Y а / +X!Y +X!Y$а/$* +X!Y1 +X!Y01462#"&5326554&#"462"&5326554&#"'m|{agWUehTSi|`gWVegVThKKG]xy`I]yxdӂG^xybI`uvc0r0l)5{-679-а- EX/>YEX/>YEX/>Y 999 +X!Y$9,93 +X!Y01&&54632653#'#"&5467267'76654&#"WO[oǐ~Os}[Di.Ĵ1@RlZbtiQ||.NXղjvAMG#,zd.nJNi~wB /а/01#53Zfs(*m`9//0147&p|Bf?_dmLUJQ/~JMLS!*`9//01'654'7mցb```~p=iNMF&/EMMd}J EX/>Y/  /01%73%'i LhD!UUle{res?1=K1  /а  +X!Y01!!#!5!3vEyNypp</ +X!Y01'6753G[u4z}1P/ +X!Y01!5!!Pe<EX/>Y +X!Y017462"&-P..P-H#11F--/EX/>Y01#3m`l}-x H 9 EX / >YEX/>Y  +X!Y +X!Y01#"324#"327x_9+3<:EX/>YEX/>Y9/ +X!Y901!#5%3xt piP 9EX/>YEX/>Y +X!Yв9  +X!Y901!!56654&#"#46632!p|`wo̓j\6X{sҵf5b+,-9EX/>YEX/>Y9/_]/]O_q +X!Y 9* +X!Y*9!9$ +X!Y01326654&#"#46632#"&&5332654&##|gQxr{t̂wx˜xISqfؼi,&h|CK JEX / >YEX/>Y 9/ +X!Yа в 9 9013##!53!hxSn5epD%@\i9EX/>YEX / >Y +X!Y 9/ 9  +X!Y +X!Y 901!!632#"&'332654&#"G3uϾsU~FoPԿƷ+>#e$%9EX/>YEX/>Y +X!Y9/9 +X!Y +X!Y01# 6632#"55%"32654&KYEX/>Y +X!Y901#!5! }jkJfj  ,$-.9$ а$EX/>YEX / >Y* 9*/_*]/*]O*_*q +X!Y*9*9  +X!Y$ +X!Y01#"&5467&&546 4& 3264&#"326l~lR&9q*+~ڼ|+*qꥤE}e$a%&9 EX / >YEX/>Y 9/ +X!Y +X!Y  +X!Y01#"&&546632!#73$%26754&#"t@o|hoǂ*x(^g←lvth ÏrE宧,7&<!7'M;<9EX/>Y9/ +X!Y +X!Y015;~{az~'/а/ +X!Y +X!Y01!5!!5!BB=jj|=2EX/>Y +X!Y9/ +X!Y0155C9M/{a|TK$K %&9 EX/>YEX"/">Y +X!Yа/  +X!Y01>54&#"#66324632#"&x<9wxwڨbq+'&--&'+vQa>}uɬl~_"//"!--q;6B$CD9$@+/3/EX/>YEX / >Y3939/ : +X!Yа3 +X!Y+$ +X!Y? +X!Y01#"&'#"&7>323267!"3267#"$$32327&#"brazlwmMtM3 OW{ =\<9h b ZJX-C[oLf\ͣ+At~,#P&3fdm1 T 9 EX/>YEX/>YEX/>Y9/ +X!Y 901!#3#!k'u'HhPv p!"9аEX/>YEX/>Y9//] +X!Y9 +X!Y +X!Y013!2#!2654&#%!6654&#!{kqPq$gB9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632#!"3267|.),sԹ H9EX/>YEX/>Y  +X!Y  +X!Y013!2#!254'†ҤG!1.B VEX/>YEX/>Y 9 // ] +X!Y +X!Y +X!Y01!!!!!!Wvhi> DEX/>YEX/>Y 9| / +X!Y +X!Y01!#!!!Y{Xi"_ #$9EX / >YEX/>Y 9  +X!Y +X!Y" 9"/ +X!Y01%#"$'5!2#&&#"32767!5!@恵2{ϧqӉrJ$y[f,¸/_ɠ2!,xh REX/>YEX / >YEX/>YEX/>Y 9 // ] +X!Y01!#!#3!3|{{@|FrNEX/>YEX/>Y01!#3N{{G09EX/>YEX/>Y  +X!Y013#"&533267;|{Ǟ L 9EX/>YEX/>YEX/>YEX / >Y9901#33#{{x)EX/>YEX/>Y +X!Y01%!!34|hh3YEX/>YEX/>YEX/>YEX/>YEX / >Y99 901 3###[{ _ {Pz L 9EX/>YEX/>YEX/>YEX/>Y9901!##33{||Fz"!}H9EX / >YEX/>Y  +X!Y +X!Y01#"54$ #"32ƍP{Фm63*+  O 9  EX/>YEX/>Y 9 / +X!Y +X!Y01#!2#%!2654&'!3{uQhy#H$%9 EX/>YEX/>Y +X!Y  +X!Y01#"$'54$32'#"32蓈 URU{OL-ţ3** c9EX/>YEX/>YEX / >Y9/ +X!Y 9 +X!Y01!#!2#!2654&#!Y|lyı^ˌ) ǰXl'f ()9EX / >YEX/>Y 9 9  +X!Y +X!Y" 9% +X!Y014&$'&54$32#4&#"#"$&53326YEX/>Y +X!Y01!#!5! {`GGi=9EX/>YEX / >YEX/>Y +X!Y01#"$'3 65zhu'̶1EX/>YEX/>YEX/>Y901%73#3o ʇv↴P=YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  9017373#'#3-7YEX / >YEX/>YEX/>Y999 9013##3sXVHh2|1EX/>YEX/>YEX/>Y9013#3c{t$Zr FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!`hh]iX$// +X!Y +X!Y01#3!!Jf0/EX/>Y013#0u`uK'// +X!Y +X!Y01!!53#KHfM+9EX/>Y9/901#3#t+Z*t)rEX/>Y +X!Y01!5!rqeeg/а/]9/01#3mdN)*+9 EX/>YEX/>YEX/>Y9 9 // ? ] +X!Y 9|/ +X!Y # +X!Y01!&'#"&54$3354&#"'4632%2675#G?mُ}x!x+ֳʇ3dRY{tZN Vtao[xf9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326tpwrxs)Z䔧רqm^NM9EX/>YEX/>Y +X!Y99 +X!Y01%2673#"5546632#&&#",}srlpьsQpc\($ԭ#lc9/EX/>YEX/>YEX / >Y9 9 +X!Y +X!Y014323#'#"327&#"lswps߻y]]ۗ'+_-ZNe !9 EX / >YEX/>Y 9/  +X!Y +X!Y 9  +X!Y01"&&5546632!3267"!5&&?|y~Ӡ`YEX/>YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"!!򳳩D; 2;cnbd {qb(lQN&$'(9$ EX/>YEX/>YEX / >YEX/>Y9 9  +X!Y9 +X!Y$ +X!Y0143273#"&'732675#"5327&&#"lspq;Csܼy\*o')eTH,hmJ 9/EX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#3;mwyo)wwaj:Ǒv: ? 9EX/>YEX/>Y а / +X!Y01!#3462"&"xx,L--L,:9"//D..K5 K 9 EX / >YEX/>Y  +X!Y а/  +X!Y01#"'73252#"&4663,.<',,'&++:Ec /D..D/ QEX/ >YEX/>YEX/>YEX / >Y 9 в901#373#xxq5!c)z8"EX/ >YEX/>Y01!#3"xxN x!"9EX/>YEX / >YEX/>YEX / >YEX/>YEX/>Y 9 9  +X!Y01663 663 #&&##&&#"# YEX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#=nwyo)w:di:Ǒv:Z NE 9EX/>YEX / >Y +X!Y +X!Y0146632#"5326554&&#"Zy݌ y܍xɣ\k-/ |q`Np9 EX / >YEX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vwouxn*+mלڙje]bl`Nm9EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273##"5327&&#"lrpxv׾y`-i')&&,aiNG 9EX / >YEX/>YEX/>Y  +X!Y 901&#"#3632&+p!wu_2}w: eN%m &'9EX / >YEX/>Y 9 9+ ; ]  +X!Y +X!Y  9# +X!Y014&$&&54632#4&#"#"&53326$M֧xyvw;Lݲx}Yl=OrQ_~iTQYJTvTiunIOa9EX/>YEX/>YEX / >Yа/ +X!Y  +X!Yа013#327#"&5#53VALC/Q{pOb/ZX bb:Q 9EX/>YEX / >YEX/>YEX/>Y 9  +X!Y01%#"&'33 73#TlwExtO&:89EX/>YEX/>YEX/>Y901%3#3I{laj{:?:YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  901%7373#'#3f|f f{]bZ;<:0: SEX/>YEX / >YEX/>YEX/>Y 9 99 9013##3$̍~6' K:D9EX/>YEX/>YEX/>Y9  +X!Y01%3#"''26773<2Y+1>Xm&5h8cWj1W: FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!eeX{gYDl=- 9 // 9/ +X!Y901&&55#525667}l2h3ONIMQ/EX/>Y01#3ee l_=- 9 // 9/ +X!Y9016547&55'73" 窨Q$DDR?3~m1N ? 9EX / >YEX/>Y  +X!Yа/013#"&462o|,L--L,e"..D..w &!Q"#9//EX/>YEX/>Y +X!Y аа +X!Y01%2673#5&554753#&&#"E{ s͔xӺxsQr$#Ҝ#]F!q"#9EX/>YEX/>Y9/ +X!Y +X!Yаа ав9 +X!Y01!!53676'#534632#4&#"! Bb3 ݹ{} XZhh ^JRh"ӱhm_*A+,9 EX/>Yа/  +X!Y( +X!Y01%#"''7&547'76 7326654&& kNq⥛U|UVzV HQV㫫WXשW{q9EX/>YEX / >Y 9 9/а/ +X!Y  +X!Y аааа013!!!!#!5!5!5!3mq9f{b9rYXDXY/EX/>Y+013#3xxxf_6E%FG9%> /EX%/%>Y?% 9? +X!Y?9 а  +X!Y7% 972 +X!Y729%)а%, +X!Y01#"&'&5732654&&$&&5467&&54$32#4&#"%6654&'_{m[amDxϱEYujV\x>ĽXglvG\pd!0n89rqM^N`ged!/l͒sO^L-3g tYS`L8 sVbv8$ / +X!Y аа/01462"&%462"&,L--L,,L--L,t"//"!.. "//"!..k(7899а4EX,/,>YEX4/4>Y4,9/],49/] 9 +X!Y +X!Y94 +X!Y,% +X!Y01 &5546 #4#"3265%32$54$#"4$ #"$aԷ*cj~ljm£&"ݧڠUKJ_ԵZաࢍ[jvz̴31ЮZX%&'9EX/>Y&9/а/9 9 / +X!Y 9@ ,<L\] +X!Y ! +X!Y01&'#"&5463354&#"'4632%2675#"WuPQZgk|5s+3ludnz=U^GHf\WQ<,~{@&D|/а/ +X!Y01#!5!xL,jf 2;:<=9:а:а:!EX/>YEX / >Y +X!Y +X!Y 9/ 9 /  ]3 93/ +X!Y&39-а ; +X!Y014$  $7 $54$#"#!2#&54&#'32654&'#fKKvU#N$ݫݦbH8 fKZQiWjZXdẕ50G{}@mD$YJ[TEUI?9/ +X!Y01!5!k?av >9EX/>Y а / +X!Y +X!Y01#"&4622654&#"vdeƏsYVVBAZhΓgCXXCEZZT A /EX / >Y а  +X!Yа  +X!Y901!!#!5!3!5!ayobobC=fJf eLW9EX/>YEX/>Y +X!Yв9 +X!Y 9901!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7G&w '(9EX/>YEX/>Y9|/oq +X!Y 9% +X!Y%9%9  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]ISH<>JJ:`|xf8^*f|g>QLB|/а/]/013#;i`:e9EX/>YEX/>YEX/>YEX / >YEX/>Y +X!Y  9 90132673#'#"'#~xmbոWw:stƚ}S! + 9EX / >YEX/>Y 901!#"&&54$33lv tՋP{M # 9EX/>Y +X!Y01462"&,P..P,#00F//bM\9EX/>YEX/>Y ,] 0]9/ +X!Y  +X!Y013#'2654&'7 YqWY@\lNA7:,~3EX/>YEX/>Y9/ +X!Y01#5%3jDFZk B 9 EX/>Y 9 / +X!Y +X!Y014632#"&5326554&"lqhcstsl^rx_susC&Qsw''EX/>Y01d''EX / >Y01v''4/EX!/!>Y01XTM#\ $%9 EX!/!>YEX/>Y! +X!Yа/9  +X!Y90132673#"&5467677"&5462'2QwxҫjU,L--L,{viuȭoʇGmEO"//"!..9EX/>YEX/>YEX/>Y9/ +X!Y +X!Y 9 // ]  +X!Y +X!Y901!!!#!!!!!!q`JM #{ff=]d 8/ 9 / 9 9 9в 9  0177]fOVWOfOm^P^POl} )h*+9а&EX/>YEX/>Y9#9#а +X!Y$а& +X!Y01#"'#7&54$3273&#"%4'32ehkg zxwyPkФaٸT3ӎ#T+ H Y9EX/>YEX / >Y 9/ 9/  +X!Y +X!Y01!2!#!26&'/EqxxDf{kH,P#-.9/EX/>YEX/>Y9 +X!Y"9* +X!Y01!#4632#"&'732654.54654&#"xGSYԤT("%CzX\~~[g٩:`R08hO0 e4b=qM`T]wUzN+7?Ȳ@A9/а;EX/>YEX/>YEX/>YEX/>Y9 9 / +X!Y 99<9YEX/>Y9/ +X!Y" +X!Y) +X!Y01#"&&5432&''7&'77'&&#"3265+p~|d;*3Ή'36'oZehn{MCIjCgHyI9S`ҹgeH. S9а/ +X!Y +XY +XY +XY +XY01!5!462"&462"&.,P..P,,P..P,tH#00F//#00F..Yt#-h./9 а*EX/>YEX/>Y9'9'а  +X!Y(а* +X!Y014663273#"'#7&&53&#"%4&'3265Yy݌rdN^d^hz܌l\O^cdnwGEK[B?}DV-0H!)Gn=+ g?"`f9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vxxuxn**pלjeZc :EX/>YEX/>Y01!#3 xx:l #$%9EX / >YEX/>YEX/>YEX/>Y +X!Y9//] +X!Y +X!Y +X!Y  +X!Y01!!#"&'4632!!!!!27&#" zGW}tv :ih^N!.6789'а2EX/>YEX / >YEX/>YEX/>Y 93 93/ +X!Y +X!Y 9 9%в) 9, +X!Y / +X!Y01466326632!327#"&'#"5326554& "!54&^yۊ><~ƚs4:=ۍxƢ-~`wR|/ ʟ2/ +XYааа//]901#'#573omL u1 1 /а/?O]  +X!Y +X!Y014632"&732654&#"uqPOrnnMB21DF/1CsPnnPOllO2BA35BDj >/а/] а /  +X!Y +X!Y 01#"&#"'46323265 qRL9/?ZmV0D<=).A`un>8\x"*"B8FL@~Gvff@ba6 9/а/01#546HZwK3vp\>K 9/а/01'6753GZvK4ye) 9/а/а/01'6773pGSw4oweca2&DK &)+ 9 /а/ а /а/а/01'6753'6753pGYw^GXx4{ف4z 9/ +XY014632#"&5fSRffSTfOdaM(Q`bQs&'7l/9/01#53i'i+|{{a/9/01#'j>yO //017'JJy0r0;EX / >Y 01S% &'9EX/>YEX / >Y% 9%/ +X!Y  +X!Yа%а%а/@ /?] +X!Y +X!Y а"01!327#"5#535#5332&#"!!!1]uf trc pm]3"k&YZ,m#Z/ +X!Y01!5!Cf09EX/>YEX/>YEX/>YEX/ >YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"3#!#3䴴z~Dxxbo;g5mb(:?o9EX/>YEX/>YEX/ >YEX / >YEX/>Y +X!Y +X!Y а 01&#"!!##5356632#7bgpx|w{qb(b=(?&*+,9(EX/>YEX/>YEX/>YEX)/)>YEX/ >YEX/>YEX"/">YEX'/'>Y +X!Yаа +X!Y а а!а$а%013#5354632&#"!54632&#"3##!!#3򳳩D; 2;cnͼ}|w3xxbd {qo;g5kb((:?)*+9EX/>YEX/>YEX!/!>YEX/ >YEX/>YEX/>YEX%/%>Y +X!Yа  +X!Yа а#а$а'а(013#5354632&#"!56632#&#"!!#!򳳩D; 2;cn}xbgpw3bd {q=({qb((L [9EX/>YEX/>Y +X!Y99 +X!Y 9901!!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7~:EX/>YEX/>Y9/ +X!Y901!#5%3jDFZkW H9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632'4&#"325iYXZXF t{s~G &r '(9EX/>YEX/>Y9|/ +X!Y 9% +X!Y%99  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]IH<>JJ:`|xf8^*f|g>QLB; SEX / >YEX/>Y 9//] +X!Yа в 9 9013##5!'3!7iqov!XB2lp9EX/>YEX / >Y +X!Y 9/ 9 9  +X!Y +X!Y 901!!632#"&'33254&#"1B^|sh`E`ZS2[&uz{dECM^ `^ !9 EX/>YEX / >Y +X!Y 9/ +X!Y  +X!Y01 632#"&55467"32654&Kt|dž9igSK`^Y[wt@;/0^ngOQ_>3EX/>YEX/>Y +X!Y901#!5!onU(YO !-t ./9 а %EX/>YEX / >Y+ 9|+/ +X!Y+9+9  +X!Y% +X!Y01#"&5467&&546324&"264&#"326}H=FUTG=Hz{Thfge\HKVZIJXF=\cDgxxgDd[=dvw0?ON@DIL:LK;YEX/>Y9//] +X!Y +X!Y +X!Y01#"&54632#73$26754&#"Guz(@_bQMa_XYvxFV=03jjoeWEX / >Y01;EX / >Y 01lEX/>Y01`EX/>Y01>EX/>Y01OEX/>Yа%01KEX/>Y011P!kEX/>YEX/>Y9/_]/]O_q +X!Yа +X!Y +X!Y013#53!2#!!254'!!ֵ!4f†Ҥ1.;&%D;EX/>Y 01;&%u;EX/>Y 011&%;EX/>Y01&%DEX/>Y01&%j;q&%M@EX/>Yܰ01D&'yBA&)DAEX/>Y 01BA&)uAEX/>Y01B7&)AEX/>Y01B&)jA \A&-DAEX/>Y01A&-uNAEX/>Y01)7&-^AEX/>Y01B&-j^A&2 DEX/>Y 01}G&3DGGEX / >Y01}G&3uGEX / >Y 01}=&3GEX / >Y"01}#&3PEX / >Y!01} &3jG;&9D>;EX / >Y01;&9u;EX/>Y011&9;EX / >Y01&9j;5&=u5EX/>Y 01d&EDEX/>Y+01d&EuEX/>Y,01d&EEX/>Y.01d&E EX/>Y-01d&Ejd6&EEX/>Y3ܰ801^DN&GyWZ&IDEX / >Y!01Z&IusEX / >Y"01Z&IEX / >Y$01Z&Ij1&D{ /01&u# /01&3EX/>Y01&j3&REX/>Y01Z &SDEX/>Y 01Z &SuxEX/>Y!01Z &SEX/>Y#01Z &SEX/>Y"01Z &Sj&YDEX/>Y01&YuzEX / >Y01&YEX/>Y01&Yj K&]u>EX/>Y01 K&]jMYr`````=DGz a_u)5 @ F  y  I m R ^7f5m/f*F+= H R d2v zA`8Wc2L !!0!U!!"""8"R"l"#@#}#$O$%x%&@&''9'(i(()))))F)a))))))**6*I*]**+`+,R,-0-^-..a./'/T/0:0N0b0t000000161M1d1{111111222*2A2X2d2{22222233(343K3b3y333333444(4:4K4b4n44444455525>5U5`#+_<.R s dLUosml\w!eK<J1-oxooioboCoooMojoe<Mm%|TNq2=x!gG 7j}jyX4B,=7Z'0TMtIgIdo^rl"Z?plde{Zovl ee&?0 WD z[w]m fqek{]|jfj=TLG@|tSb~ss d6vXI0]j}UHtY~yld^p{u{j6,}lbl>a)dciDQ)!alaa>;oSL0[???L~WG;l`>OKW;l`>OKJ1[!2! !!!j}j}j}j}j}BBBBIdIdIdIdIdId^"Z"Z"Z"Ze{Z{Z{Z{Z{Zeeee l 7 E o,33f'CGOOG@"f :   hL8  ~1S    " & : D t " 1R    " & 9 D t " Z:~{zwtbY*ގ*4^ '  ~co11RS       " " & & 9 : D D t t "",K PXYD _^-, EiD`-,*!-, F%FRX#Y Id F had%F hadRX#eY/ SXi TX!@Yi TX!@eYY:-, F%FRX#Y F jad%F jadRX#Y/-,K &PXQXD@DY!! EPXD!YY-, EiD` E}iD`-,*-,K &SX@Y &SX#!#Y &SX#!#Y &SX#!#Y &SX#!@#Y &SX%EPX#!#!%E#!#!Y!YD- ,KSXED!!Y- ,*E- ,+E- ,' SX@cTX*pY#SX TX*pYYY- ,@ ZX+D+DY- ++ + + :0)+mYE2+~gP8+v`K6+dN:+G:)+w\:#+mYE2+QB4%+ 9/$+ w\:#+ v`K6+ gJ,++ E}iDsPttpu?s_ss/tOtottttu?u_uusousst_tttt?u/ so s?(s*hZ`VNnN`F`9 ! :[f ^ ^ v ^ ^ &  TCopyright 2011 Google Inc. All Rights Reserved.Roboto LightRegularVersion 2.137; 2017Roboto-Lighthttp://www.apache.org/licenses/LICENSE-2.0jdN %>E^yy y 0>DFLTcyrlgreklatnkern .E"(:@.@bt&4Nd~E %'()*/034568:;=>?IJLOQRSVXZ[]_8:;= 0%V.8EGHIKSUVYZ]VVVVVV[[X8:;=8:=V[m|(M AVa A Va[.9  AGHIKUa GHIKUJX2[S.9 L O P SW[ [ #X[ AaJ[ AJVXam|J P x -& v8{qQV %),4 8>EGIILLQTVV"ZZ#\^$'(./U[5 %%&&''(()).. // 00334488 99 ::;;<<== >>EEFFGGIILLQRSSTTVVZZ \\]] ^^  5 %%''++..33557788 99 ::;;<<== >>EEGIKKQRSSTTUUWW YYZZ\\]]^^   DFLTcyrlgreklatn*.AZE JCRT JFRA :}i_Y׬:o&kKY26ki]{,p}/ VO3o]fJR-TZ;RN&VC3? &ŭzs&Dأr,IЕtRa$kMmYU+b%kQmgvks{=l 5Z5[ bvi hMl->8bFk)K[Ʋf#( ؃=f~/mjʭƱ˰c=ziX,Hz">$,?u%d7׺Yʒs};:So}/ ;nwp>0Q,"̝sR:W)f+wϨ&ԩc$M:>]^eOxwIvh*_;~3Ӑѿ* 1{5ShADe5EʨGÌ&iջmsXzbJMJZӵ?܇TZ}Vn}Q;/>ZɵET:n󌺔M2yo[2 GS*d(0Qw3kV=%̟"C7p4B抿d$_h<6uVSrߣbfй/Iu{h"ȣ`?3wnգM¡эF:H=wNΦRi}vFK[yDWY8wPų]۶ۨNQmvڶ9W볢ߐ:I%*N(&as2tgbfkzfV3]2Ü`d gyX>ue2I*=,!C;C0 . Hc4(4)0]̐̔n̒2%)1O̗ Ҟ-F"JRJma=s{^^zrVq+R*7Hp{YK'$+iZ|/*``+.X"MwcCFJv-2Uu5\j%W˹ZKHRK.N6HMptjiW+CBH^ 8!XqǺ;VܱuH`̹`J]v1?CxMRa_5 9ȶm m ;M/yeu.ό38?XE -A,"LfEv̚ru5* h2O¦obr^ƆIQ3M͢@%@[Rq!6 N:Km]P!??͉Tq.S*AUڰ0O!Czd.+)5|p3N+ᖻ gYx'yU />*xc`fga`e``j(/211001400)gߝAIC,& 9+ @ z BxڅȞmEmN4+f+Ͷm{r am۶got"/#Ȧj _< -v\@*ޞ>> H(sXX$? ̷bp seX?¿!DzR*y\w&9s%|ҋ}/b/6Xb OΏAE4򭭲k+n{@wA6Guq'40]q507rwtϏ ( ~dYEc>9EV`166bVa{dv6`d%8vNb N<.`0.zd(nA< #/bۚOjz<p-eL 4x -'[t]ϝȗ9ap4`]wfwAten5aq T"E $) dunN"2u}/vk4zAg(,FZP:'\D]_ gA f /RFJlA"Rj0f~"C8388%+*a!{n D^.uD#l=bXQI[xڴ|@Gٽ;zISAO=cņl vTbwk;{1'(gf'̀ Uv@ Z+zkv_Q͎Zv+;mǖ*޴ki>TI}_Un)7Nݨ(}GH(/i ө?߭8=9 @_Ԕ%}@28}I×P nWyǎR.BRzA@u8Tu:oQbZ:$5bkY,բj\lPc& ;.&kU\Q6Zg`gaO]IEt~ =]"`%CUG:w %P0_Lg;@(XlcF>vWbz4۽t@XPt`v'Q(gM}Ҋ¿:XtQԡQԯV&q}Ԩ|mT.4rt L,#8K!r%! ؽ-lZ2D-7iF$iDHӮ9|XhV#Q&iR\|\\rRd)(]Mm (%hLgk`^}aEJkmРm׎ tVk14bfm>ش˺.n9&6?'kMKofzd: q ` ؓ-Ke!2F-A ь|Zȅ0ny's2jqf6deS_TȜrwѫF"F9|DW{|~ ܷH36%SlJo:QrXh2ʹC#Nd$P}P EԪBn.H? >nI`6R)cRN(t)F%pX9``@Akj+F&zSPhN__AZ+hC{_\1=Ӷw<ҿΟݼkf!Б{lvX'.8Vu4\mkgoV{LN# [c5_.D!XW(@%rMN$/c &@O2R &%n煵laa3ngw&ԣ]+~,OuC(Qݘ[Oޭ124cM|}!9 f )LK۟6q}y|S(,:v4LH&Ud]BL]KZK0VlHXʨx4R>:^e|]!|9<M>Q Օ?nBVu"*@^FMECVLz"Vȭȝ4?'Mo(΂eq*O>gb%pv~d7M+XO@{aqH>urwN^It\c ^PU`ECZ e]ʸ+ku]su붦 AxlӒFN̐hd]2~$Cxя৭]5o]Ao̓iCB#GWÂ^g35Ii+EO~"vٹ߱}ƒ{5TȊ7<*?~&3:6 N*Dʦ 0DCXwW%ZqM~ TE; F!!Y҆V!*Г+~s;%QΡbK͞dDW$ZĐqϼ N䌽6/glGag\ދv]{y2[O 0SDUҨJр(P" Bhd!h:P]U$Q%DTvF)spl11]VhT7bcM{I <:N) !odϤ>;ґw*̓3yn[j#7Aeہ6l ہ66a){XYQ^#d| Cѧh\K4Vhޟ>a0R x1|# ?)HѠQ4I蕟Fx<=N(ؠ 7-嬻mmr-xro&m15_+v.O?yg͆ omДs A4 X @u0{<SI^p/W`tpbLё w u+!ܴ"KOtOO|Qf|,?GP{G}yê3#k| d͆âs{P1  z9R3E'\h*EoixT9kTAQkZA 0[U" L^ FN)iҧkI9&Țjܴ 5C)d.F{`E>`:j0&2HHT)2sWs2?\5#3{c޶ly _8c5ޝ~ݳy'<6gK,8zHanմ7o44/' 3`)"6AL 0P,ʁԗ28"Rc$7 *:LKvRyog8S.Ht~;OmYVt8"?&M-OQ'zG 2Apq`/MDS ܏'w6tH/2> ~o0 T{шL(B#\d:N^v |b,: bE5o -dd9.M<h,* ,<%SX7 Kdɕ e ]h/iRWkZnP; ,TMi6]2/Qf+l" p! OU+.>^AM-_8yK2MtBa^qkW3>@!Jmww7ڮ ;/L:Z6"Na%sl!WZHBX8:񶼯aep/tEB~8>9@L4G`"~)LQf+ΐ+A_E"C(蓓 $Zw UݶU3 ɿh'Eo{r6S}'wJґ{.8hS -_ Qu+h7: J…x7e{$"tS I>1䥼F |+gTC,$`(RXðEc܊Wŷ.;!@*蝶. j%a+J7JOefQޣ2YއGʪۋ4+d $Lk7([ɸ(!\oA'd林TDLŋeY*Owo{EE~*`P%Dь=-='*>,D_imaDŠS%2nlX",G8UCLHb:8EzOey|a)¨3BK_n\^w,TEdݳSiPMSz)K/b^R%@F-rtTt$),2p룩6VѶQȚ~ icgg.Σ*wW}q`cb|GihM/[bj.JēSyGdljTVdaby~Wi{ȟwWv.C^K^^X,_IBݨ]!5 *qW`\HC)6|P t5G.+' ߖ;#E(sv34e<йSe|eg5kEAoB͙.ips #0+aZ+0G|"SEgi$B(&dN*z(8c52~yW^Ђ_n~΁(}G*xGkN]2zCc.oh ? @\,c iPx_ղ_/'0ۊLVaM!J?2L KJO 32? vX*ZGDqR;|\کCkNRT pB3LiUggߍgO#s FFc!'nR6];E,\#%\|PrdJjNRm&U=^UɜRЄ;T"\BH( ,9Q+H`0XN,@2L@5|ʙ8N;nm͜+-;1s3qlnƳpYh6a T>xgim=%{%|v|밮}z2wh;eɷc0l"WP@J6ͨX/^r+3B\TjfxUy jqhS$ =3ѻ_F' )o[=DYr@2W,AGIgByg`KGQ⥡,'VFp R>'Nۯp.g>^"}5ѫpcǺ,7tWTy}rxnEb:ya:1UX*XGVJK_%x1LSE4#XcfdR@3V/#{sƩ&~q){=0޺}8%ƃ b!Tzg {_f62 .i*rTU , gy؁q%*6wM(r%pDlySnO?miiϑ*/T \纄ϗ~_;Pzo`&ȐXI١b)#.Jenz.FylìQ(z;]FzAXCf|sRZьED*qI1]]O߂cMpJ:W 2z,McvB3~+'dSؼ$))Eb&kޘqt>aO(u,6հo.nvlY%nz3 \U˼*x>lrg_(  GF'@9hܱkCgC|q*j` ԐB3IC|*>cͶT)Hhel%/B,HǪ+ ff wh9BIHdAf2> ['֖'&%$ KZjwM<QZZ\3Ck}| )ByɃ&xc/ Œ PLb"nYhG[8j㆐uO^$Q`J{T2awʃ%K?]ڵR_Ƶ6?_,MR't/ ~ț)04nFPY89[&-r<~י*_\(@54p<ָ ^(JPGJ̕3ˣrkJ.*=rǍxR WƍJH972zčPU<|k|!q #%*$rG8xB_5VF ,WKեhr)r켃.q<6R"QJK8*Jo ԕ|YCMx31z)DgN هe% UEJy)>"#~0^#-Zʙx C-'$BS{-W#kutERoo0i|-ڷ?ɓrfg MR}ckj''.UQk<|m@; Z T0Wo\FA7&'P-KYM4lS|ァ >lٲeɧqTקK2g'ry4lه-L?Q+kThְpAViۦ ?=ڌ¿ynn~KA0@l=^k ]*U!V.bi=`@dVV61HCZ?~@eRVkq }i!@={RTѭܵ3֢x㑾~uEAG?r_$?Uj;T$$$2?E%2]1 bUW8*)1k^`;R-{6ؖ7w_=О=Κgɿ3|?a<=m[{w遲{Xp}w/K~] ~u Ad\w l1!RAJM2S:Sv3+"ʴ dr/`#+@Y5y#J7[y+iNXO>W{gQW_ll{!4LeTHH F j@nlP>tY/"tZZ)u:X)KXXfk$!s!8|,E鑢sRH[+Lq1z s8&DĮ̌VAYz< [q|Z}|cK5*{]z\Bc(\F}/^^>/M9g >e5}0K `ޒ=<-}Q#9r|PՐhhl`oPQ0+Ŏsz iI(YjM ԽOSsq.}G;/oU,%O ~/9yؘMz lV>{<|^]'[5V`j`SϠMedY> TP0ٚ^Ĕ $Y( EV;UzJ 7xiHP1j^:"7p-"E*WZ#uZ,6cxVKqaVAgUl9aw[d N!YN**)3d6EщW$P|tBx'lBx= Q4bH̓{э!l]ڶ6ݿ}߳'5&.:(Y:BMCַ4bViׯ{obDJ3THl=uU5'8̊$ Tpc&|0Y9ZTA28{ٰ+V]X.O3g/g,[~`{Ѫo_5w:S(Oսt =i+ xu,RzNxCh.CE騨ďf^; xA/C0 ̭?Ĝ .`)9#;XEi'GM.Z,;1*ڣclֱϛ҇OM%ex10r/04B gYZd "41wcZ=W6.|zvԳK[rWuhs묙Fk7nm5L˳7\ =oƈ]:XDl6͓T'b=@MFBK[hh# 3+z' 6# M|t/ 00ZXAN,E$p l ei|z ;?5qK.l<2_ޥvX=J$qJJ YI̵Gkҧ?-{ޙVa\Q/-#LF̺36D|-N p-/ EPAp{pdd>?Ne} I> >QOz3bGhB/ژX~pgNQ)GC,cr_w$B( 8+yn}K]@2%h5w ̓ҕQ{hWhng.Y2y;"n>d5A/6nd!ghzs>;}=tjee?*h0kq#5xH[ 笞5oѣΨK_e3s8udqElemkQ)\‘L j*NzJdȇkIL: ׬\$/.<3bK?fo0a3_?uacrڴBsqޢ#PUL5j`\_AͣsmIM(+xu\yfsV*;w9D +6(Fjj*5Z?@4l(y+R97@B`c FL /{g_N{SF"Wř*k4n~{B^,6wRwǦjx%#_Wh}&( ᐤNiLc=doƨT#frN41`\$lbr%$,%MrҊBj[roѲM67Nƛ>]a{ۅ_߽ nu҈Z[J,;}ճ{iahEެE0хWh,C(5DY4F BS4)V|e¬_:Oz˯ 0LOu *(U'jՕ1*])wN0f-mR ctNLukr`ࣺ&hvTHj4.=F̫@੸&w\=cv|w5KY=lܤFU&i@oVZۆ @h @kk˲ӛ3?] F[h(Ui3W&m_!`^?ڳSҲufZsISN#P5B^!ELtB9&8`8#A-Rٶc5<9`-~"w A*djr:7YD:SٙGئ`-)wѮYwf&M]LN pUv%g&MnZ2Uݺnow%mH2ea3totX B dB!*lJOX"$Edd8ACFK w?fŲ~&]AQ(PIFy.)B =٧RyA;| ހTGhoc@!d"XX)xT1YXqig*NA,T,ؑ&4"LS383l=X Ԓ$!AH&)lwy6\=i3+] 6t ] [6:!u>"󓾻)#wB#'|GH:fC&`X y֫UPwt2avr+&ZF-'Ǐ=8oY8F~шd,T│1ad yy" Q/ 㫶j h3fc`>ZHY=d8ev:1YjY aMW̪$AMpH @Ux %A5B=GO ҈'QD+22;4b_$idɭ¸tZ?#[ER}(5 Ws0UvH,Jj ѽW+s V&성 թa / )Tr CI0Qz-ІilrIP㉖E"vAI W9;IX?,C CPTawE|C/u^D!VB0=TaS9K\9[f^OƋVϙ̛_0Oo{GQ}Xn;))`BXpړ;'V)tXt:0 p`b{.vbQ@$ p`}7_$bT"N1c<^DK(*{9;e_14 *I&>eui{E^Iz?{ F>ѫjd-5躼0U+OܨФ:ַ[h)ZISkƱ#H a`(#\Qϸl0e^-M>ٌ)ÝL#wܖ8B IFGtk6P#oyΤ5 id3p̈.O 9`  c o;}@TSfZ0I*q"-cl1 waKК%XU<,$Ta$VE`Oݫ7U$8X:-0UOkۤunަIەSsWuؙ>bpS{}]oܺIС-Gl#Z dXv\Yj-4оQ6(e/{荄2FI^ exѤ8Kh <{ύXН+Ҡ63'/6u~uńLCt<Sm۾wU뛟&uF>XRHuicmgz vy_ 2ֳt|$!g֩Ngŧ:w5%,`:..JU?̞ = M(E*olW|/)SfϹj3_3 @Dz~a0U; R0i@7 X}10aк˂4b4rى[EWQl41JŽtj|jNm4pIJmK&3G+Wڶm۶zQmmZkD͠mԝ3ܓ8/9Hg-Vq3]V^gp] .#4X#B"5ZC>+=}d{l 2579KWk-Oy]UT<Ӏ^tzx@:Δ4,gk>)VR5zư?K9]@v1ߑF^|EU=5HΔ"^SnH | -hМ6[%u:FQ@B })iK@~SXӊѓ{͛5$l>XwrɿUFX֚OhGϨ}vPRfJUNSv&zaEji@O(u-Pg^g)0B_0go3v|pt\J Ej9kqҳbRGYcl dWCoBc2a>#*Jf \Sh, i!d L.5T$ݰj0DQ?#-U U"(O~o!H H<+oYwk'AdOiEP?r'g34"sF3riaFllaZ*}UT~bn#f(?^GN_ҵ䗑4Hkx<#Abs6m۶Qx۶m۶m[u+*+(Jn^r}f扶vN[!aq񓩬i鶙511_,,],,_5 m*[S7&Ӗj֔T44-MYrxM @E+X[Neg A+A,T, ~y!μqD\@" Kx9Z|W:nK̛WtI9V 1,8&auO*'<lXfժ=9C=Z"q׈ڹY3#8'e}, !7|"taɂ)3Vln*F5xc`fY ) X*xAa#6&^F @SNCa;cn,.=b.K6XS,Vw+lcA,v^@'UqR_EJ₫㆛dz%Kd&>>v\k3%\˻ 0 %X1# Z8#/q*\q}Ru궓܈$8@zKA!Bl~t},*ugJl;uKa.zwp~mB% BAV dF޺FdAeR#nm}/QNo}csh@ԏn(HN{jЂ?&lR~d XP{#%,wgΫ͐*L?w& 'G3.,\|Tobۜsw@FE9߸1/0 ɫZ*eah-fD(a^)moLƿ +} T-TB|ŀē w;ѫd0Oᆰru?bA?CUУxgmޞ**Omy(ᝪu®dўUO'MǦPǶe ab°Xq6ILDdHLŊ5M8%H22VZؑ{k#b㊎ΐ-L0cc$,XXBcG={Z80:&/uiX+NX]Z0)٧FxٯOV{SRQF Ci@l04"$Z"#U xr-x$)ǧP-(d͵p@fQRRFʂ2dd975)S&')KDKd朙R-ECsˤ(!*/dy$RBM(? 3 )k9*PWfbU3He2~:7m&B*G-?rT7a(!떚|·4x!bIJ5y@JZ(m NZ,]R44%.gB4IyטB9޽z>Q.Q3)| ek \ʮ$om3l4K8?~ZE>%XB+݄MmYshm2o3[sD9Co1&iσND=ІdA|^ؙbNiy? qL KwǖI0UNsiʈjA"~ VEP4PQ=Ֆ*jƍ BZYzk8`:5 )%jLUvF}qAyAO s2u@b *mZsEvJD(< &C9 UbAAC5]"u]?KL#\4xke 7cyQc)~ZJYbu{ `NW#FVI½ƏOV_˄)Ŝf^%.o%Wp&v]ᚠN00f(Y} @gvՅ#,IS4bsaŤSAp񬫃nHTT.e*f4Y4r E}YUg%f}z|<*<:m \~響t0NJe,;tv-+X[Z~0$',a I# c|Kd)a!mq`(k~;a=Is G e7Kl}Ʃ8MN&3TXzZW];‡T/D'B l92 ZcEAqWdK ixyd%10*"V6Ö9+f#4IІ`}xH6j12Oӥ 0]|> c@)kiTPFɽ>`ALQ*D޼n-Vl$xBXNn05n#J~4-4]<;؇}5pxCmBv- lҜь-&36Yi3a6!7nX-Kj|veTf_+)1H]}O& Wyq8,9rXn|ˋ3C# @tF9zurq :C e` fX;둃(*VNAbmOa.WYNY8V/ݯB[&p{C!h5R@.T0tDt:Ey~V t~aD2Lj9^)9B(KD4(=o>*706[gs%cNߕ2an -8~P/룆@M.@u:u7PX*6)eڍoOD/(9V!nRi["B07PqIRNt TCV%2PAMBh~;q8JL$ Lsˆ©%!g\ŦB^gD7>þ[Vs *X?ѯԣ|nGKoY&*g.Y,/[Sӂbj"pMKss;<DF!u,GW{MBM; }P`] Q*ZIumzZ3mz HP` K >bI%D8snr+ug]c5g2r ?v3hm#%7oL֖$w׈sxqiIa#s#p~cR̎,ۄ fډ~.SAavG7#K O#K%8u jQB=]E&j#-:*p8r'ᤩ(G}%Okڞ'ib #I`~bI4֚ny6ckw]f2&d-7^S'`o |+Z&֞ƟV&<w/P^'*.7[xeΈ_"'=\a;/;Ėۺ=MDG3f§(onbc`xgY%`L:_}"ŵ+TǏP܏$rUUqrٝ)]0NjG7G99jL-2z敊Ϡd>>J4LMVkosgt%~lmqA)6jh2Jo?IOvI7_myrhqv nVF-I!3LA1\4D}rYFMsMiVg/de?=ڍ{*C8jPGvSmHpX{XrKwqJ OMl ė*r 8G牌LHcs%&W{Dn eW_owuq?z,Z`[Y9)c Y晧*f"֛ Lꜙ֛RwkoܹoZn3Y<9b?m˞dc |',Yxϛ. ]Yy26/U4O'0*v/cl>2E4/E j鳽$շ[[mmv FLӛJ:w:G蝽X>%D94%怕Pٖc ?*1_=Z.->y{qi铛zɸ$^YZ~xo`5iqI,U5fo|~O:UI4 M:z"j@ y0c ߨo1ܔ Vchx?tYvEL:S>DQ~w]&M>P~DI$t]o~QJ%F@,>)jypefKQ$BI C~X:Ez;5[lSOfT7_n* ;E(y>~G:iO4^ğwJyoŒ9Ok5g;^ZHo| .2p<7 mIțDRtv'vZɤ1#E({:~|Yr#ϗIK( r O )\{wrc[eUG)%Ã{QmY`YyN*=SA`f_ٹ}ˎ&{Kr)@B*#*U'ӓA#bluI짂n W"eh"j< eYY  K OO#'(pP \0Lvh*۵ zɹcOWwQ7뚕 lCitxL,OU/ƫjCJ[?9pErq0TF뻒y]Uo bds:4doEp#N8;Dy y<hwïzA)\5Uau?Snl쾐Uo; Sc$wpۛŌCC(8BV9 C~L8fO(m3{l-i7txɧ2ԀN oLdWQ8"<{q%GoryQ^Ǐ⊟\mDShŧ\~1 ?;Lrnoy2@,}omguh-GUJ#FS̍}(xG(Ĕ)F+ ;.`h͔)Hg.M< w;/KV.n)2ax{ <;^gc).Ld *eZd3JzTZQUSyknik7|;ވmmh6Mbd&LH|.3+=-ٮۑW3."0K_%27t)q1]f'^.>~+7yO'8+[Qc-.萪ήLe`SE^Yx 7S\Kj4'0>9e"v(kdy#dT|jjoqXtb^:n-,ku^Uo+ {x3<>?=4[yZͺ %%Qg~&nf0c63m")O{%SQ- YF^.n~kpILsR3fp,ukv<1 qV] JytΊ3BABVAiXau+52Yirߠ amtXDDRA-rrP\J~ cca07C F S!?"¬">'Yg1bz|xxBl vp|pO\p:PVf$%68WOs,>?μH)'(k}LY:@SF F #5A嗇 j#$T\9DR()sd\NNNRGr%'f%s y}payZKEB,9x>M)8O cw(pK/' DGz:x~#v# l;H Foz= aaVx+Mj7`idEJ򫘤ݸ_&u%Gp/[WU&8rC^Dm?^". bFnf#^pǎlv7ytOaqF>ĞT4`@Vw1EnoLAA㈬ּ%]v!;9#EwK7"R~@S>gҴMP@XxHbYJl(ܖ5ۊ;ށ$ a ^gg6=\=|w9Lǩ6(l1TU'HU纠Ѕ0먷ehaKÃ] k&zww܏8S7iDPmwwc.Y5iu(T /yo((W/hQ)쬕h9Huw̋B, kq\Mg6'N ox:XXJr zJxf s֗[|2IVXF5߻<GU74v:4@܎nr 9hwjA,ksNj4)p1fb&1]l~5$(D\ѯ18c!+Ki9p(& ;Wa t[x,K/k_8ͯ`I[Xk7~?+>3!­ӏ=6S bJyTNinu qBH<>{dj&N-.g6fn}2#~ Dy8 1.nAA7o"`L+#YCjzrj5kf}pGcx`N&6!ǎ7Sq !˭76-१iCnNuAp(T*wzKQIIkgzhhKFK@UY6`a/Ir݃ξ)a#K4(B:'Û_2o7|+ꇫ)(&X:|4bsivB RW *RK4z ۅpdU@m=##뜙@"(Uu++nIXY1-* $Vj@ܑR'6#p4 ~:Yy~|׼*VgΚExru˂q}19jE:AwHolvtmE6ud3rJ{֩u ŭ]q$ʅT~\Qru)}HGi( 4{t'dž.ۙ<N)hԎX,Sf&=2++mX[:s6M>$sĉ <z׷ y}]V t~Cc9;fhrֻ'yu`};>y+U $H!`+ߞ4D<]GlLob i%4 ZiVR0Sׯ~a-ɡ2\/лnEh4ɑ餣M'|E$퉁L)+ygN5@DBĴOVd Y|a[9%,]tQ0^,7?CSobFSqC9xֻ(@]Q{5eHAn&*`0g7&ɀ;ّJO#*=.#`ɮ,fȰh%?'K߸{*(MG+zM 7 nAjR;CyjƸ"T96IHST`~>% `t ݬ7:)U.ESf}ejY#2v̡dU"X;2Ӷ'ȣl^N:0sMgpY%< ҍ4V ) @ !08tmR s>C})yFhL|ۢEJ}.'eN j;!:XsVJo`5%| "WO&CKJa^\ugq`Ki0{3c`Ck'VWJ1J>s\2eNyJ(TIkoeF)idIu^TL!b2xjnvjtX+"tଐ 7XWA^EWVǮ8d$]H|('XuYgMGWvibhpH {9@ߥߚ¸a@fF1j.;vQ `rb=.Nt ʸO@g[Sظ/Q3siM:q͎ BQ3ZS`1Bz8i&IC&,F}ٍJE?IjI>9ZA567r=$4jiclRu](^a`"y)$۳ECy)̦b)Һрhu#s4T-X-`Y. T;I١[yyP6~|܉%O#*frh20 b#0o?0mک R ~UJ6Wk5VTKBR֍bs!ce=SgT9]DXO𘌨"A:jVuQkT{ )q"T2e8-5pw|Ydq ~J78i\;_>,JOt^[ma i%lQe*3|qv}67gȜEP; ptЗ]AkP.}i}6l'cu6rrL~& ͋-U=6WT=53+~1}q 'zYS,j}'ġA/ԭV̥֝p8שaH;ٛ'(3uJX0 $h6J!Dsz ╷w@pEm6 )z8%MJ/(HHZu/zCR)*NaҰ;XRU7:m^$p^z㍡aZeieF cV'i6P\ %IizxHLQ*vCի7P T0 X+Tֹ6*U4t'\͞EmXc|3W҆s,I7g Qwi}L v#܁=e#NB/47B! ֊*V`>1MjaĆ:}Wwf!xNRwt~+˜\{Q Stb125umL>}YC% %+jϔv&sLi.T饤A:$&R9&cT*mI=/r,^]u\Et$W鑪M=ǓGgH͛Av(Sh lF_ұ5 6W)8BXOP s jL>whN+=Al溪y>;ᦓ7U 49.&ՂE[@g$)16KSqJNR&3*uĜ~)cW NSɼkchCΟ*F 8E/uęw1үF45I erWKd!ӈ%њfw XPPV4nNjrN׼G %$zjH ѣ?f4j i]Tux# OyDq^<YM̩W95!Ӏ:۴M1k8mLޤo^>40L۞bB)2tL)*IZ8͍ ږ %;MèMc5U1qsF47\wն)&cOU* 7cHe/55iM 䱳|:لZ6mwҎ,jeLRvI/ӥtmf?";T:֭^-ty{yIǐ9i s'3b_ꁽ+nkxJ ۇttRꭚ\6֌w{so}w+B ؟V,#ۙxCJE<"1O QC3o ,X x&m8V>#2Q+$9_#ֈSVfL sb i$mHRjD,tD4(L5TFr6LQE{G5PJ ٳ#tJBcXiW*# iM H0P Lf!]_G`4pw/ E4`Po q??\$l%iRN=UEwfBF: 8Z>mf Hc;h$9:Ս\>mX(LlsV!_N/y/WVk'yq,µܧm\Nk}gx|{{_eWčzMB' Ym' 6TIM Ō_eӸfuSsК<ĩRյ?dVC:̘ djS:UiA/xe] q铌 ȜIұeZ03m[Uu-pai'D TuS;O^;+.EkIѶ2sJ'dgf8ڔy1ͳ l*iuv*dP&QWU) 9O͈6"TV!ƪXU :K #<[[ġ:VZf#ělR#< 'fM6)^+JVLŐڙSF(4rAS-ɱ-\^k<Nkm3"!,e@X=`GgR7$HHH"UHv,yU(4O8p$2T̝ɕ.Y=5J 5SLJe`'J4y!$9Ȗ bBE\؝̝#)՟,ϋeN|d鍽fP֥͓.Szj{"Af#&`kxR͗ Kۆl@1$܉ v\^?X-B0\4p&3!)k#WDQ:Ga9{T)X{ U?_(P!*L 4#AtB* ,$g/Yt"*D*ʪ$ @JUmini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/index.js000066400000000000000000000000261516122265000253110ustar00rootroot00000000000000import "./fonts.css"; mini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/test.filter.js000066400000000000000000000001241516122265000264440ustar00rootroot00000000000000import yn from "../../helpers/yn"; module.exports = () => yn(process.env.OLD_API); mini-css-extract-plugin-2.10.2/test/cases/auxiliary-assets/webpack.config.js000066400000000000000000000024441516122265000270700ustar00rootroot00000000000000import Self from "../../../src"; class AssetsPlugin { // eslint-disable-next-line class-methods-use-this apply(compiler) { compiler.hooks.emit.tapAsync("AssetsPlugin", (compilation, cb) => { const stats = compilation.getStats().toJson({ all: true, }); const { RawSource } = compiler.webpack.sources; for (const file of stats.entrypoints.main.auxiliaryAssets) { const newFile = `auxiliaryAssets-${file.name}`; compilation.emitAsset(newFile, new RawSource(newFile), {}); } cb(); }); } } module.exports = { entry: "./index.js", mode: "development", output: { publicPath: "/", }, optimization: { sideEffects: true, }, module: { rules: [ { test: /\.(woff2?|ttf|eot|otf|png|jpe?g|gif|ico|svg|webp)$/, type: "asset", }, { test: /\.css$/, use: [ { loader: Self.loader, options: { esModule: true, }, }, { loader: "css-loader", options: { esModule: true, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", chunkFilename: "[id].[name].css", }), new AssetsPlugin(), ], }; mini-css-extract-plugin-2.10.2/test/cases/base-uri-in-entry/000077500000000000000000000000001516122265000236115ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/base-uri-in-entry/expected/000077500000000000000000000000001516122265000254125ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/base-uri-in-entry/expected/webpack-5-importModule/000077500000000000000000000000001516122265000316465ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/base-uri-in-entry/expected/webpack-5-importModule/asset/000077500000000000000000000000001516122265000327655ustar00rootroot00000000000000roboto-v18-latin-300.ttf000066400000000000000000001052141516122265000367550ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/base-uri-in-entry/expected/webpack-5-importModule/asset GDEF{dGPOSh| GSUB7bOS/2t #r`cmapsXLcvt /yXfpgm"vgasp{ glyfw,jhdmxr`headYim6hhea vq$hmtx\]n$locagLl maxp\k name9y|postmd{p prepz/Wx`:d( o 9 а а  а  EX/>YEX/>Y9999 ܲ 9 901!!!!5!(<6 }wx^^^> <9EX/>YEX / >Y +X!Yа/01#3462"&o|,L--L,"//"!--; /а/а01#3#3PaQatŌUEX / >YEX/>YEX/>YEX/>Y 9|/ +X!Yаа а / +X!Y а аааа01!##5!!5!3!33#3!#!!McMS)OcO;OdOSMd;Sf]````G]fs0+{,-9 /EX / >YEX / >YEX / >YEX"/">Y" 9  +X!Y +X!Y"а") +X!Y014&'&&546753#4&#"#5&&53326Ȭfw_Oͳexgo?GÛǝ|xwmh Ŝm &48n5/7/EX/>YEX$/$>Y а / +X!Y +X!Y$а/$* +X!Y1 +X!Y01462#"&5326554&#"462"&5326554&#"'m|{agWUehTSi|`gWVegVThKKG]xy`I]yxdӂG^xybI`uvc0r0l)5{-679-а- EX/>YEX/>YEX/>Y 999 +X!Y$9,93 +X!Y01&&54632653#'#"&5467267'76654&#"WO[oǐ~Os}[Di.Ĵ1@RlZbtiQ||.NXղjvAMG#,zd.nJNi~wB /а/01#53Zfs(*m`9//0147&p|Bf?_dmLUJQ/~JMLS!*`9//01'654'7mցb```~p=iNMF&/EMMd}J EX/>Y/  /01%73%'i LhD!UUle{res?1=K1  /а  +X!Y01!!#!5!3vEyNypp</ +X!Y01'6753G[u4z}1P/ +X!Y01!5!!Pe<EX/>Y +X!Y017462"&-P..P-H#11F--/EX/>Y01#3m`l}-x H 9 EX / >YEX/>Y  +X!Y +X!Y01#"324#"327x_9+3<:EX/>YEX/>Y9/ +X!Y901!#5%3xt piP 9EX/>YEX/>Y +X!Yв9  +X!Y901!!56654&#"#46632!p|`wo̓j\6X{sҵf5b+,-9EX/>YEX/>Y9/_]/]O_q +X!Y 9* +X!Y*9!9$ +X!Y01326654&#"#46632#"&&5332654&##|gQxr{t̂wx˜xISqfؼi,&h|CK JEX / >YEX/>Y 9/ +X!Yа в 9 9013##!53!hxSn5epD%@\i9EX/>YEX / >Y +X!Y 9/ 9  +X!Y +X!Y 901!!632#"&'332654&#"G3uϾsU~FoPԿƷ+>#e$%9EX/>YEX/>Y +X!Y9/9 +X!Y +X!Y01# 6632#"55%"32654&KYEX/>Y +X!Y901#!5! }jkJfj  ,$-.9$ а$EX/>YEX / >Y* 9*/_*]/*]O*_*q +X!Y*9*9  +X!Y$ +X!Y01#"&5467&&546 4& 3264&#"326l~lR&9q*+~ڼ|+*qꥤE}e$a%&9 EX / >YEX/>Y 9/ +X!Y +X!Y  +X!Y01#"&&546632!#73$%26754&#"t@o|hoǂ*x(^g←lvth ÏrE宧,7&<!7'M;<9EX/>Y9/ +X!Y +X!Y015;~{az~'/а/ +X!Y +X!Y01!5!!5!BB=jj|=2EX/>Y +X!Y9/ +X!Y0155C9M/{a|TK$K %&9 EX/>YEX"/">Y +X!Yа/  +X!Y01>54&#"#66324632#"&x<9wxwڨbq+'&--&'+vQa>}uɬl~_"//"!--q;6B$CD9$@+/3/EX/>YEX / >Y3939/ : +X!Yа3 +X!Y+$ +X!Y? +X!Y01#"&'#"&7>323267!"3267#"$$32327&#"brazlwmMtM3 OW{ =\<9h b ZJX-C[oLf\ͣ+At~,#P&3fdm1 T 9 EX/>YEX/>YEX/>Y9/ +X!Y 901!#3#!k'u'HhPv p!"9аEX/>YEX/>Y9//] +X!Y9 +X!Y +X!Y013!2#!2654&#%!6654&#!{kqPq$gB9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632#!"3267|.),sԹ H9EX/>YEX/>Y  +X!Y  +X!Y013!2#!254'†ҤG!1.B VEX/>YEX/>Y 9 // ] +X!Y +X!Y +X!Y01!!!!!!Wvhi> DEX/>YEX/>Y 9| / +X!Y +X!Y01!#!!!Y{Xi"_ #$9EX / >YEX/>Y 9  +X!Y +X!Y" 9"/ +X!Y01%#"$'5!2#&&#"32767!5!@恵2{ϧqӉrJ$y[f,¸/_ɠ2!,xh REX/>YEX / >YEX/>YEX/>Y 9 // ] +X!Y01!#!#3!3|{{@|FrNEX/>YEX/>Y01!#3N{{G09EX/>YEX/>Y  +X!Y013#"&533267;|{Ǟ L 9EX/>YEX/>YEX/>YEX / >Y9901#33#{{x)EX/>YEX/>Y +X!Y01%!!34|hh3YEX/>YEX/>YEX/>YEX/>YEX / >Y99 901 3###[{ _ {Pz L 9EX/>YEX/>YEX/>YEX/>Y9901!##33{||Fz"!}H9EX / >YEX/>Y  +X!Y +X!Y01#"54$ #"32ƍP{Фm63*+  O 9  EX/>YEX/>Y 9 / +X!Y +X!Y01#!2#%!2654&'!3{uQhy#H$%9 EX/>YEX/>Y +X!Y  +X!Y01#"$'54$32'#"32蓈 URU{OL-ţ3** c9EX/>YEX/>YEX / >Y9/ +X!Y 9 +X!Y01!#!2#!2654&#!Y|lyı^ˌ) ǰXl'f ()9EX / >YEX/>Y 9 9  +X!Y +X!Y" 9% +X!Y014&$'&54$32#4&#"#"$&53326YEX/>Y +X!Y01!#!5! {`GGi=9EX/>YEX / >YEX/>Y +X!Y01#"$'3 65zhu'̶1EX/>YEX/>YEX/>Y901%73#3o ʇv↴P=YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  9017373#'#3-7YEX / >YEX/>YEX/>Y999 9013##3sXVHh2|1EX/>YEX/>YEX/>Y9013#3c{t$Zr FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!`hh]iX$// +X!Y +X!Y01#3!!Jf0/EX/>Y013#0u`uK'// +X!Y +X!Y01!!53#KHfM+9EX/>Y9/901#3#t+Z*t)rEX/>Y +X!Y01!5!rqeeg/а/]9/01#3mdN)*+9 EX/>YEX/>YEX/>Y9 9 // ? ] +X!Y 9|/ +X!Y # +X!Y01!&'#"&54$3354&#"'4632%2675#G?mُ}x!x+ֳʇ3dRY{tZN Vtao[xf9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326tpwrxs)Z䔧רqm^NM9EX/>YEX/>Y +X!Y99 +X!Y01%2673#"5546632#&&#",}srlpьsQpc\($ԭ#lc9/EX/>YEX/>YEX / >Y9 9 +X!Y +X!Y014323#'#"327&#"lswps߻y]]ۗ'+_-ZNe !9 EX / >YEX/>Y 9/  +X!Y +X!Y 9  +X!Y01"&&5546632!3267"!5&&?|y~Ӡ`YEX/>YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"!!򳳩D; 2;cnbd {qb(lQN&$'(9$ EX/>YEX/>YEX / >YEX/>Y9 9  +X!Y9 +X!Y$ +X!Y0143273#"&'732675#"5327&&#"lspq;Csܼy\*o')eTH,hmJ 9/EX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#3;mwyo)wwaj:Ǒv: ? 9EX/>YEX/>Y а / +X!Y01!#3462"&"xx,L--L,:9"//D..K5 K 9 EX / >YEX/>Y  +X!Y а/  +X!Y01#"'73252#"&4663,.<',,'&++:Ec /D..D/ QEX/ >YEX/>YEX/>YEX / >Y 9 в901#373#xxq5!c)z8"EX/ >YEX/>Y01!#3"xxN x!"9EX/>YEX / >YEX/>YEX / >YEX/>YEX/>Y 9 9  +X!Y01663 663 #&&##&&#"# YEX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#=nwyo)w:di:Ǒv:Z NE 9EX/>YEX / >Y +X!Y +X!Y0146632#"5326554&&#"Zy݌ y܍xɣ\k-/ |q`Np9 EX / >YEX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vwouxn*+mלڙje]bl`Nm9EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273##"5327&&#"lrpxv׾y`-i')&&,aiNG 9EX / >YEX/>YEX/>Y  +X!Y 901&#"#3632&+p!wu_2}w: eN%m &'9EX / >YEX/>Y 9 9+ ; ]  +X!Y +X!Y  9# +X!Y014&$&&54632#4&#"#"&53326$M֧xyvw;Lݲx}Yl=OrQ_~iTQYJTvTiunIOa9EX/>YEX/>YEX / >Yа/ +X!Y  +X!Yа013#327#"&5#53VALC/Q{pOb/ZX bb:Q 9EX/>YEX / >YEX/>YEX/>Y 9  +X!Y01%#"&'33 73#TlwExtO&:89EX/>YEX/>YEX/>Y901%3#3I{laj{:?:YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  901%7373#'#3f|f f{]bZ;<:0: SEX/>YEX / >YEX/>YEX/>Y 9 99 9013##3$̍~6' K:D9EX/>YEX/>YEX/>Y9  +X!Y01%3#"''26773<2Y+1>Xm&5h8cWj1W: FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!eeX{gYDl=- 9 // 9/ +X!Y901&&55#525667}l2h3ONIMQ/EX/>Y01#3ee l_=- 9 // 9/ +X!Y9016547&55'73" 窨Q$DDR?3~m1N ? 9EX / >YEX/>Y  +X!Yа/013#"&462o|,L--L,e"..D..w &!Q"#9//EX/>YEX/>Y +X!Y аа +X!Y01%2673#5&554753#&&#"E{ s͔xӺxsQr$#Ҝ#]F!q"#9EX/>YEX/>Y9/ +X!Y +X!Yаа ав9 +X!Y01!!53676'#534632#4&#"! Bb3 ݹ{} XZhh ^JRh"ӱhm_*A+,9 EX/>Yа/  +X!Y( +X!Y01%#"''7&547'76 7326654&& kNq⥛U|UVzV HQV㫫WXשW{q9EX/>YEX / >Y 9 9/а/ +X!Y  +X!Y аааа013!!!!#!5!5!5!3mq9f{b9rYXDXY/EX/>Y+013#3xxxf_6E%FG9%> /EX%/%>Y?% 9? +X!Y?9 а  +X!Y7% 972 +X!Y729%)а%, +X!Y01#"&'&5732654&&$&&5467&&54$32#4&#"%6654&'_{m[amDxϱEYujV\x>ĽXglvG\pd!0n89rqM^N`ged!/l͒sO^L-3g tYS`L8 sVbv8$ / +X!Y аа/01462"&%462"&,L--L,,L--L,t"//"!.. "//"!..k(7899а4EX,/,>YEX4/4>Y4,9/],49/] 9 +X!Y +X!Y94 +X!Y,% +X!Y01 &5546 #4#"3265%32$54$#"4$ #"$aԷ*cj~ljm£&"ݧڠUKJ_ԵZաࢍ[jvz̴31ЮZX%&'9EX/>Y&9/а/9 9 / +X!Y 9@ ,<L\] +X!Y ! +X!Y01&'#"&5463354&#"'4632%2675#"WuPQZgk|5s+3ludnz=U^GHf\WQ<,~{@&D|/а/ +X!Y01#!5!xL,jf 2;:<=9:а:а:!EX/>YEX / >Y +X!Y +X!Y 9/ 9 /  ]3 93/ +X!Y&39-а ; +X!Y014$  $7 $54$#"#!2#&54&#'32654&'#fKKvU#N$ݫݦbH8 fKZQiWjZXdẕ50G{}@mD$YJ[TEUI?9/ +X!Y01!5!k?av >9EX/>Y а / +X!Y +X!Y01#"&4622654&#"vdeƏsYVVBAZhΓgCXXCEZZT A /EX / >Y а  +X!Yа  +X!Y901!!#!5!3!5!ayobobC=fJf eLW9EX/>YEX/>Y +X!Yв9 +X!Y 9901!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7G&w '(9EX/>YEX/>Y9|/oq +X!Y 9% +X!Y%9%9  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]ISH<>JJ:`|xf8^*f|g>QLB|/а/]/013#;i`:e9EX/>YEX/>YEX/>YEX / >YEX/>Y +X!Y  9 90132673#'#"'#~xmbոWw:stƚ}S! + 9EX / >YEX/>Y 901!#"&&54$33lv tՋP{M # 9EX/>Y +X!Y01462"&,P..P,#00F//bM\9EX/>YEX/>Y ,] 0]9/ +X!Y  +X!Y013#'2654&'7 YqWY@\lNA7:,~3EX/>YEX/>Y9/ +X!Y01#5%3jDFZk B 9 EX/>Y 9 / +X!Y +X!Y014632#"&5326554&"lqhcstsl^rx_susC&Qsw''EX/>Y01d''EX / >Y01v''4/EX!/!>Y01XTM#\ $%9 EX!/!>YEX/>Y! +X!Yа/9  +X!Y90132673#"&5467677"&5462'2QwxҫjU,L--L,{viuȭoʇGmEO"//"!..9EX/>YEX/>YEX/>Y9/ +X!Y +X!Y 9 // ]  +X!Y +X!Y901!!!#!!!!!!q`JM #{ff=]d 8/ 9 / 9 9 9в 9  0177]fOVWOfOm^P^POl} )h*+9а&EX/>YEX/>Y9#9#а +X!Y$а& +X!Y01#"'#7&54$3273&#"%4'32ehkg zxwyPkФaٸT3ӎ#T+ H Y9EX/>YEX / >Y 9/ 9/  +X!Y +X!Y01!2!#!26&'/EqxxDf{kH,P#-.9/EX/>YEX/>Y9 +X!Y"9* +X!Y01!#4632#"&'732654.54654&#"xGSYԤT("%CzX\~~[g٩:`R08hO0 e4b=qM`T]wUzN+7?Ȳ@A9/а;EX/>YEX/>YEX/>YEX/>Y9 9 / +X!Y 99<9YEX/>Y9/ +X!Y" +X!Y) +X!Y01#"&&5432&''7&'77'&&#"3265+p~|d;*3Ή'36'oZehn{MCIjCgHyI9S`ҹgeH. S9а/ +X!Y +XY +XY +XY +XY01!5!462"&462"&.,P..P,,P..P,tH#00F//#00F..Yt#-h./9 а*EX/>YEX/>Y9'9'а  +X!Y(а* +X!Y014663273#"'#7&&53&#"%4&'3265Yy݌rdN^d^hz܌l\O^cdnwGEK[B?}DV-0H!)Gn=+ g?"`f9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vxxuxn**pלjeZc :EX/>YEX/>Y01!#3 xx:l #$%9EX / >YEX/>YEX/>YEX/>Y +X!Y9//] +X!Y +X!Y +X!Y  +X!Y01!!#"&'4632!!!!!27&#" zGW}tv :ih^N!.6789'а2EX/>YEX / >YEX/>YEX/>Y 93 93/ +X!Y +X!Y 9 9%в) 9, +X!Y / +X!Y01466326632!327#"&'#"5326554& "!54&^yۊ><~ƚs4:=ۍxƢ-~`wR|/ ʟ2/ +XYааа//]901#'#573omL u1 1 /а/?O]  +X!Y +X!Y014632"&732654&#"uqPOrnnMB21DF/1CsPnnPOllO2BA35BDj >/а/] а /  +X!Y +X!Y 01#"&#"'46323265 qRL9/?ZmV0D<=).A`un>8\x"*"B8FL@~Gvff@ba6 9/а/01#546HZwK3vp\>K 9/а/01'6753GZvK4ye) 9/а/а/01'6773pGSw4oweca2&DK &)+ 9 /а/ а /а/а/01'6753'6753pGYw^GXx4{ف4z 9/ +XY014632#"&5fSRffSTfOdaM(Q`bQs&'7l/9/01#53i'i+|{{a/9/01#'j>yO //017'JJy0r0;EX / >Y 01S% &'9EX/>YEX / >Y% 9%/ +X!Y  +X!Yа%а%а/@ /?] +X!Y +X!Y а"01!327#"5#535#5332&#"!!!1]uf trc pm]3"k&YZ,m#Z/ +X!Y01!5!Cf09EX/>YEX/>YEX/>YEX/ >YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"3#!#3䴴z~Dxxbo;g5mb(:?o9EX/>YEX/>YEX/ >YEX / >YEX/>Y +X!Y +X!Y а 01&#"!!##5356632#7bgpx|w{qb(b=(?&*+,9(EX/>YEX/>YEX/>YEX)/)>YEX/ >YEX/>YEX"/">YEX'/'>Y +X!Yаа +X!Y а а!а$а%013#5354632&#"!54632&#"3##!!#3򳳩D; 2;cnͼ}|w3xxbd {qo;g5kb((:?)*+9EX/>YEX/>YEX!/!>YEX/ >YEX/>YEX/>YEX%/%>Y +X!Yа  +X!Yа а#а$а'а(013#5354632&#"!56632#&#"!!#!򳳩D; 2;cn}xbgpw3bd {q=({qb((L [9EX/>YEX/>Y +X!Y99 +X!Y 9901!!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7~:EX/>YEX/>Y9/ +X!Y901!#5%3jDFZkW H9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632'4&#"325iYXZXF t{s~G &r '(9EX/>YEX/>Y9|/ +X!Y 9% +X!Y%99  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]IH<>JJ:`|xf8^*f|g>QLB; SEX / >YEX/>Y 9//] +X!Yа в 9 9013##5!'3!7iqov!XB2lp9EX/>YEX / >Y +X!Y 9/ 9 9  +X!Y +X!Y 901!!632#"&'33254&#"1B^|sh`E`ZS2[&uz{dECM^ `^ !9 EX/>YEX / >Y +X!Y 9/ +X!Y  +X!Y01 632#"&55467"32654&Kt|dž9igSK`^Y[wt@;/0^ngOQ_>3EX/>YEX/>Y +X!Y901#!5!onU(YO !-t ./9 а %EX/>YEX / >Y+ 9|+/ +X!Y+9+9  +X!Y% +X!Y01#"&5467&&546324&"264&#"326}H=FUTG=Hz{Thfge\HKVZIJXF=\cDgxxgDd[=dvw0?ON@DIL:LK;YEX/>Y9//] +X!Y +X!Y +X!Y01#"&54632#73$26754&#"Guz(@_bQMa_XYvxFV=03jjoeWEX / >Y01;EX / >Y 01lEX/>Y01`EX/>Y01>EX/>Y01OEX/>Yа%01KEX/>Y011P!kEX/>YEX/>Y9/_]/]O_q +X!Yа +X!Y +X!Y013#53!2#!!254'!!ֵ!4f†Ҥ1.;&%D;EX/>Y 01;&%u;EX/>Y 011&%;EX/>Y01&%DEX/>Y01&%j;q&%M@EX/>Yܰ01D&'yBA&)DAEX/>Y 01BA&)uAEX/>Y01B7&)AEX/>Y01B&)jA \A&-DAEX/>Y01A&-uNAEX/>Y01)7&-^AEX/>Y01B&-j^A&2 DEX/>Y 01}G&3DGGEX / >Y01}G&3uGEX / >Y 01}=&3GEX / >Y"01}#&3PEX / >Y!01} &3jG;&9D>;EX / >Y01;&9u;EX/>Y011&9;EX / >Y01&9j;5&=u5EX/>Y 01d&EDEX/>Y+01d&EuEX/>Y,01d&EEX/>Y.01d&E EX/>Y-01d&Ejd6&EEX/>Y3ܰ801^DN&GyWZ&IDEX / >Y!01Z&IusEX / >Y"01Z&IEX / >Y$01Z&Ij1&D{ /01&u# /01&3EX/>Y01&j3&REX/>Y01Z &SDEX/>Y 01Z &SuxEX/>Y!01Z &SEX/>Y#01Z &SEX/>Y"01Z &Sj&YDEX/>Y01&YuzEX / >Y01&YEX/>Y01&Yj K&]u>EX/>Y01 K&]jMYr`````=DGz a_u)5 @ F  y  I m R ^7f5m/f*F+= H R d2v zA`8Wc2L !!0!U!!"""8"R"l"#@#}#$O$%x%&@&''9'(i(()))))F)a))))))**6*I*]**+`+,R,-0-^-..a./'/T/0:0N0b0t000000161M1d1{111111222*2A2X2d2{22222233(343K3b3y333333444(4:4K4b4n44444455525>5U5`#+_<.R s dLUosml\w!eK<J1-oxooioboCoooMojoe<Mm%|TNq2=x!gG 7j}jyX4B,=7Z'0TMtIgIdo^rl"Z?plde{Zovl ee&?0 WD z[w]m fqek{]|jfj=TLG@|tSb~ss d6vXI0]j}UHtY~yld^p{u{j6,}lbl>a)dciDQ)!alaa>;oSL0[???L~WG;l`>OKW;l`>OKJ1[!2! !!!j}j}j}j}j}BBBBIdIdIdIdIdId^"Z"Z"Z"Ze{Z{Z{Z{Z{Zeeee l 7 E o,33f'CGOOG@"f :   hL8  ~1S    " & : D t " 1R    " & 9 D t " Z:~{zwtbY*ގ*4^ '  ~co11RS       " " & & 9 : D D t t "",K PXYD _^-, EiD`-,*!-, F%FRX#Y Id F had%F hadRX#eY/ SXi TX!@Yi TX!@eYY:-, F%FRX#Y F jad%F jadRX#Y/-,K &PXQXD@DY!! EPXD!YY-, EiD` E}iD`-,*-,K &SX@Y &SX#!#Y &SX#!#Y &SX#!#Y &SX#!@#Y &SX%EPX#!#!%E#!#!Y!YD- ,KSXED!!Y- ,*E- ,+E- ,' SX@cTX*pY#SX TX*pYYY- ,@ ZX+D+DY- ++ + + :0)+mYE2+~gP8+v`K6+dN:+G:)+w\:#+mYE2+QB4%+ 9/$+ w\:#+ v`K6+ gJ,++ E}iDsPttpu?s_ss/tOtottttu?u_uusousst_tttt?u/ so s?(s*hZ`VNnN`F`9 ! :[f ^ ^ v ^ ^ &  TCopyright 2011 Google Inc. All Rights Reserved.Roboto LightRegularVersion 2.137; 2017Roboto-Lighthttp://www.apache.org/licenses/LICENSE-2.0jdN %>E^yy y 0>DFLTcyrlgreklatnkern .E"(:@.@bt&4Nd~E %'()*/034568:;=>?IJLOQRSVXZ[]_8:;= 0%V.8EGHIKSUVYZ]VVVVVV[[X8:;=8:=V[m|(M AVa A Va[.9  AGHIKUa GHIKUJX2[S.9 L O P SW[ [ #X[ AaJ[ AJVXam|J P x -& v8{qQV %),4 8>EGIILLQTVV"ZZ#\^$'(./U[5 %%&&''(()).. // 00334488 99 ::;;<<== >>EEFFGGIILLQRSSTTVVZZ \\]] ^^  5 %%''++..33557788 99 ::;;<<== >>EEGIKKQRSSTTUUWW YYZZ\\]]^^   DFLTcyrlgreklatn*.AZE JCRT JFRA YEX/>Y9999 ܲ 9 901!!!!5!(<6 }wx^^^> <9EX/>YEX / >Y +X!Yа/01#3462"&o|,L--L,"//"!--; /а/а01#3#3PaQatŌUEX / >YEX/>YEX/>YEX/>Y 9|/ +X!Yаа а / +X!Y а аааа01!##5!!5!3!33#3!#!!McMS)OcO;OdOSMd;Sf]````G]fs0+{,-9 /EX / >YEX / >YEX / >YEX"/">Y" 9  +X!Y +X!Y"а") +X!Y014&'&&546753#4&#"#5&&53326Ȭfw_Oͳexgo?GÛǝ|xwmh Ŝm &48n5/7/EX/>YEX$/$>Y а / +X!Y +X!Y$а/$* +X!Y1 +X!Y01462#"&5326554&#"462"&5326554&#"'m|{agWUehTSi|`gWVegVThKKG]xy`I]yxdӂG^xybI`uvc0r0l)5{-679-а- EX/>YEX/>YEX/>Y 999 +X!Y$9,93 +X!Y01&&54632653#'#"&5467267'76654&#"WO[oǐ~Os}[Di.Ĵ1@RlZbtiQ||.NXղjvAMG#,zd.nJNi~wB /а/01#53Zfs(*m`9//0147&p|Bf?_dmLUJQ/~JMLS!*`9//01'654'7mցb```~p=iNMF&/EMMd}J EX/>Y/  /01%73%'i LhD!UUle{res?1=K1  /а  +X!Y01!!#!5!3vEyNypp</ +X!Y01'6753G[u4z}1P/ +X!Y01!5!!Pe<EX/>Y +X!Y017462"&-P..P-H#11F--/EX/>Y01#3m`l}-x H 9 EX / >YEX/>Y  +X!Y +X!Y01#"324#"327x_9+3<:EX/>YEX/>Y9/ +X!Y901!#5%3xt piP 9EX/>YEX/>Y +X!Yв9  +X!Y901!!56654&#"#46632!p|`wo̓j\6X{sҵf5b+,-9EX/>YEX/>Y9/_]/]O_q +X!Y 9* +X!Y*9!9$ +X!Y01326654&#"#46632#"&&5332654&##|gQxr{t̂wx˜xISqfؼi,&h|CK JEX / >YEX/>Y 9/ +X!Yа в 9 9013##!53!hxSn5epD%@\i9EX/>YEX / >Y +X!Y 9/ 9  +X!Y +X!Y 901!!632#"&'332654&#"G3uϾsU~FoPԿƷ+>#e$%9EX/>YEX/>Y +X!Y9/9 +X!Y +X!Y01# 6632#"55%"32654&KYEX/>Y +X!Y901#!5! }jkJfj  ,$-.9$ а$EX/>YEX / >Y* 9*/_*]/*]O*_*q +X!Y*9*9  +X!Y$ +X!Y01#"&5467&&546 4& 3264&#"326l~lR&9q*+~ڼ|+*qꥤE}e$a%&9 EX / >YEX/>Y 9/ +X!Y +X!Y  +X!Y01#"&&546632!#73$%26754&#"t@o|hoǂ*x(^g←lvth ÏrE宧,7&<!7'M;<9EX/>Y9/ +X!Y +X!Y015;~{az~'/а/ +X!Y +X!Y01!5!!5!BB=jj|=2EX/>Y +X!Y9/ +X!Y0155C9M/{a|TK$K %&9 EX/>YEX"/">Y +X!Yа/  +X!Y01>54&#"#66324632#"&x<9wxwڨbq+'&--&'+vQa>}uɬl~_"//"!--q;6B$CD9$@+/3/EX/>YEX / >Y3939/ : +X!Yа3 +X!Y+$ +X!Y? +X!Y01#"&'#"&7>323267!"3267#"$$32327&#"brazlwmMtM3 OW{ =\<9h b ZJX-C[oLf\ͣ+At~,#P&3fdm1 T 9 EX/>YEX/>YEX/>Y9/ +X!Y 901!#3#!k'u'HhPv p!"9аEX/>YEX/>Y9//] +X!Y9 +X!Y +X!Y013!2#!2654&#%!6654&#!{kqPq$gB9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632#!"3267|.),sԹ H9EX/>YEX/>Y  +X!Y  +X!Y013!2#!254'†ҤG!1.B VEX/>YEX/>Y 9 // ] +X!Y +X!Y +X!Y01!!!!!!Wvhi> DEX/>YEX/>Y 9| / +X!Y +X!Y01!#!!!Y{Xi"_ #$9EX / >YEX/>Y 9  +X!Y +X!Y" 9"/ +X!Y01%#"$'5!2#&&#"32767!5!@恵2{ϧqӉrJ$y[f,¸/_ɠ2!,xh REX/>YEX / >YEX/>YEX/>Y 9 // ] +X!Y01!#!#3!3|{{@|FrNEX/>YEX/>Y01!#3N{{G09EX/>YEX/>Y  +X!Y013#"&533267;|{Ǟ L 9EX/>YEX/>YEX/>YEX / >Y9901#33#{{x)EX/>YEX/>Y +X!Y01%!!34|hh3YEX/>YEX/>YEX/>YEX/>YEX / >Y99 901 3###[{ _ {Pz L 9EX/>YEX/>YEX/>YEX/>Y9901!##33{||Fz"!}H9EX / >YEX/>Y  +X!Y +X!Y01#"54$ #"32ƍP{Фm63*+  O 9  EX/>YEX/>Y 9 / +X!Y +X!Y01#!2#%!2654&'!3{uQhy#H$%9 EX/>YEX/>Y +X!Y  +X!Y01#"$'54$32'#"32蓈 URU{OL-ţ3** c9EX/>YEX/>YEX / >Y9/ +X!Y 9 +X!Y01!#!2#!2654&#!Y|lyı^ˌ) ǰXl'f ()9EX / >YEX/>Y 9 9  +X!Y +X!Y" 9% +X!Y014&$'&54$32#4&#"#"$&53326YEX/>Y +X!Y01!#!5! {`GGi=9EX/>YEX / >YEX/>Y +X!Y01#"$'3 65zhu'̶1EX/>YEX/>YEX/>Y901%73#3o ʇv↴P=YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  9017373#'#3-7YEX / >YEX/>YEX/>Y999 9013##3sXVHh2|1EX/>YEX/>YEX/>Y9013#3c{t$Zr FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!`hh]iX$// +X!Y +X!Y01#3!!Jf0/EX/>Y013#0u`uK'// +X!Y +X!Y01!!53#KHfM+9EX/>Y9/901#3#t+Z*t)rEX/>Y +X!Y01!5!rqeeg/а/]9/01#3mdN)*+9 EX/>YEX/>YEX/>Y9 9 // ? ] +X!Y 9|/ +X!Y # +X!Y01!&'#"&54$3354&#"'4632%2675#G?mُ}x!x+ֳʇ3dRY{tZN Vtao[xf9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326tpwrxs)Z䔧רqm^NM9EX/>YEX/>Y +X!Y99 +X!Y01%2673#"5546632#&&#",}srlpьsQpc\($ԭ#lc9/EX/>YEX/>YEX / >Y9 9 +X!Y +X!Y014323#'#"327&#"lswps߻y]]ۗ'+_-ZNe !9 EX / >YEX/>Y 9/  +X!Y +X!Y 9  +X!Y01"&&5546632!3267"!5&&?|y~Ӡ`YEX/>YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"!!򳳩D; 2;cnbd {qb(lQN&$'(9$ EX/>YEX/>YEX / >YEX/>Y9 9  +X!Y9 +X!Y$ +X!Y0143273#"&'732675#"5327&&#"lspq;Csܼy\*o')eTH,hmJ 9/EX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#3;mwyo)wwaj:Ǒv: ? 9EX/>YEX/>Y а / +X!Y01!#3462"&"xx,L--L,:9"//D..K5 K 9 EX / >YEX/>Y  +X!Y а/  +X!Y01#"'73252#"&4663,.<',,'&++:Ec /D..D/ QEX/ >YEX/>YEX/>YEX / >Y 9 в901#373#xxq5!c)z8"EX/ >YEX/>Y01!#3"xxN x!"9EX/>YEX / >YEX/>YEX / >YEX/>YEX/>Y 9 9  +X!Y01663 663 #&&##&&#"# YEX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#=nwyo)w:di:Ǒv:Z NE 9EX/>YEX / >Y +X!Y +X!Y0146632#"5326554&&#"Zy݌ y܍xɣ\k-/ |q`Np9 EX / >YEX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vwouxn*+mלڙje]bl`Nm9EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273##"5327&&#"lrpxv׾y`-i')&&,aiNG 9EX / >YEX/>YEX/>Y  +X!Y 901&#"#3632&+p!wu_2}w: eN%m &'9EX / >YEX/>Y 9 9+ ; ]  +X!Y +X!Y  9# +X!Y014&$&&54632#4&#"#"&53326$M֧xyvw;Lݲx}Yl=OrQ_~iTQYJTvTiunIOa9EX/>YEX/>YEX / >Yа/ +X!Y  +X!Yа013#327#"&5#53VALC/Q{pOb/ZX bb:Q 9EX/>YEX / >YEX/>YEX/>Y 9  +X!Y01%#"&'33 73#TlwExtO&:89EX/>YEX/>YEX/>Y901%3#3I{laj{:?:YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  901%7373#'#3f|f f{]bZ;<:0: SEX/>YEX / >YEX/>YEX/>Y 9 99 9013##3$̍~6' K:D9EX/>YEX/>YEX/>Y9  +X!Y01%3#"''26773<2Y+1>Xm&5h8cWj1W: FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!eeX{gYDl=- 9 // 9/ +X!Y901&&55#525667}l2h3ONIMQ/EX/>Y01#3ee l_=- 9 // 9/ +X!Y9016547&55'73" 窨Q$DDR?3~m1N ? 9EX / >YEX/>Y  +X!Yа/013#"&462o|,L--L,e"..D..w &!Q"#9//EX/>YEX/>Y +X!Y аа +X!Y01%2673#5&554753#&&#"E{ s͔xӺxsQr$#Ҝ#]F!q"#9EX/>YEX/>Y9/ +X!Y +X!Yаа ав9 +X!Y01!!53676'#534632#4&#"! Bb3 ݹ{} XZhh ^JRh"ӱhm_*A+,9 EX/>Yа/  +X!Y( +X!Y01%#"''7&547'76 7326654&& kNq⥛U|UVzV HQV㫫WXשW{q9EX/>YEX / >Y 9 9/а/ +X!Y  +X!Y аааа013!!!!#!5!5!5!3mq9f{b9rYXDXY/EX/>Y+013#3xxxf_6E%FG9%> /EX%/%>Y?% 9? +X!Y?9 а  +X!Y7% 972 +X!Y729%)а%, +X!Y01#"&'&5732654&&$&&5467&&54$32#4&#"%6654&'_{m[amDxϱEYujV\x>ĽXglvG\pd!0n89rqM^N`ged!/l͒sO^L-3g tYS`L8 sVbv8$ / +X!Y аа/01462"&%462"&,L--L,,L--L,t"//"!.. "//"!..k(7899а4EX,/,>YEX4/4>Y4,9/],49/] 9 +X!Y +X!Y94 +X!Y,% +X!Y01 &5546 #4#"3265%32$54$#"4$ #"$aԷ*cj~ljm£&"ݧڠUKJ_ԵZաࢍ[jvz̴31ЮZX%&'9EX/>Y&9/а/9 9 / +X!Y 9@ ,<L\] +X!Y ! +X!Y01&'#"&5463354&#"'4632%2675#"WuPQZgk|5s+3ludnz=U^GHf\WQ<,~{@&D|/а/ +X!Y01#!5!xL,jf 2;:<=9:а:а:!EX/>YEX / >Y +X!Y +X!Y 9/ 9 /  ]3 93/ +X!Y&39-а ; +X!Y014$  $7 $54$#"#!2#&54&#'32654&'#fKKvU#N$ݫݦbH8 fKZQiWjZXdẕ50G{}@mD$YJ[TEUI?9/ +X!Y01!5!k?av >9EX/>Y а / +X!Y +X!Y01#"&4622654&#"vdeƏsYVVBAZhΓgCXXCEZZT A /EX / >Y а  +X!Yа  +X!Y901!!#!5!3!5!ayobobC=fJf eLW9EX/>YEX/>Y +X!Yв9 +X!Y 9901!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7G&w '(9EX/>YEX/>Y9|/oq +X!Y 9% +X!Y%9%9  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]ISH<>JJ:`|xf8^*f|g>QLB|/а/]/013#;i`:e9EX/>YEX/>YEX/>YEX / >YEX/>Y +X!Y  9 90132673#'#"'#~xmbոWw:stƚ}S! + 9EX / >YEX/>Y 901!#"&&54$33lv tՋP{M # 9EX/>Y +X!Y01462"&,P..P,#00F//bM\9EX/>YEX/>Y ,] 0]9/ +X!Y  +X!Y013#'2654&'7 YqWY@\lNA7:,~3EX/>YEX/>Y9/ +X!Y01#5%3jDFZk B 9 EX/>Y 9 / +X!Y +X!Y014632#"&5326554&"lqhcstsl^rx_susC&Qsw''EX/>Y01d''EX / >Y01v''4/EX!/!>Y01XTM#\ $%9 EX!/!>YEX/>Y! +X!Yа/9  +X!Y90132673#"&5467677"&5462'2QwxҫjU,L--L,{viuȭoʇGmEO"//"!..9EX/>YEX/>YEX/>Y9/ +X!Y +X!Y 9 // ]  +X!Y +X!Y901!!!#!!!!!!q`JM #{ff=]d 8/ 9 / 9 9 9в 9  0177]fOVWOfOm^P^POl} )h*+9а&EX/>YEX/>Y9#9#а +X!Y$а& +X!Y01#"'#7&54$3273&#"%4'32ehkg zxwyPkФaٸT3ӎ#T+ H Y9EX/>YEX / >Y 9/ 9/  +X!Y +X!Y01!2!#!26&'/EqxxDf{kH,P#-.9/EX/>YEX/>Y9 +X!Y"9* +X!Y01!#4632#"&'732654.54654&#"xGSYԤT("%CzX\~~[g٩:`R08hO0 e4b=qM`T]wUzN+7?Ȳ@A9/а;EX/>YEX/>YEX/>YEX/>Y9 9 / +X!Y 99<9YEX/>Y9/ +X!Y" +X!Y) +X!Y01#"&&5432&''7&'77'&&#"3265+p~|d;*3Ή'36'oZehn{MCIjCgHyI9S`ҹgeH. S9а/ +X!Y +XY +XY +XY +XY01!5!462"&462"&.,P..P,,P..P,tH#00F//#00F..Yt#-h./9 а*EX/>YEX/>Y9'9'а  +X!Y(а* +X!Y014663273#"'#7&&53&#"%4&'3265Yy݌rdN^d^hz܌l\O^cdnwGEK[B?}DV-0H!)Gn=+ g?"`f9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vxxuxn**pלjeZc :EX/>YEX/>Y01!#3 xx:l #$%9EX / >YEX/>YEX/>YEX/>Y +X!Y9//] +X!Y +X!Y +X!Y  +X!Y01!!#"&'4632!!!!!27&#" zGW}tv :ih^N!.6789'а2EX/>YEX / >YEX/>YEX/>Y 93 93/ +X!Y +X!Y 9 9%в) 9, +X!Y / +X!Y01466326632!327#"&'#"5326554& "!54&^yۊ><~ƚs4:=ۍxƢ-~`wR|/ ʟ2/ +XYааа//]901#'#573omL u1 1 /а/?O]  +X!Y +X!Y014632"&732654&#"uqPOrnnMB21DF/1CsPnnPOllO2BA35BDj >/а/] а /  +X!Y +X!Y 01#"&#"'46323265 qRL9/?ZmV0D<=).A`un>8\x"*"B8FL@~Gvff@ba6 9/а/01#546HZwK3vp\>K 9/а/01'6753GZvK4ye) 9/а/а/01'6773pGSw4oweca2&DK &)+ 9 /а/ а /а/а/01'6753'6753pGYw^GXx4{ف4z 9/ +XY014632#"&5fSRffSTfOdaM(Q`bQs&'7l/9/01#53i'i+|{{a/9/01#'j>yO //017'JJy0r0;EX / >Y 01S% &'9EX/>YEX / >Y% 9%/ +X!Y  +X!Yа%а%а/@ /?] +X!Y +X!Y а"01!327#"5#535#5332&#"!!!1]uf trc pm]3"k&YZ,m#Z/ +X!Y01!5!Cf09EX/>YEX/>YEX/>YEX/ >YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"3#!#3䴴z~Dxxbo;g5mb(:?o9EX/>YEX/>YEX/ >YEX / >YEX/>Y +X!Y +X!Y а 01&#"!!##5356632#7bgpx|w{qb(b=(?&*+,9(EX/>YEX/>YEX/>YEX)/)>YEX/ >YEX/>YEX"/">YEX'/'>Y +X!Yаа +X!Y а а!а$а%013#5354632&#"!54632&#"3##!!#3򳳩D; 2;cnͼ}|w3xxbd {qo;g5kb((:?)*+9EX/>YEX/>YEX!/!>YEX/ >YEX/>YEX/>YEX%/%>Y +X!Yа  +X!Yа а#а$а'а(013#5354632&#"!56632#&#"!!#!򳳩D; 2;cn}xbgpw3bd {q=({qb((L [9EX/>YEX/>Y +X!Y99 +X!Y 9901!!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7~:EX/>YEX/>Y9/ +X!Y901!#5%3jDFZkW H9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632'4&#"325iYXZXF t{s~G &r '(9EX/>YEX/>Y9|/ +X!Y 9% +X!Y%99  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]IH<>JJ:`|xf8^*f|g>QLB; SEX / >YEX/>Y 9//] +X!Yа в 9 9013##5!'3!7iqov!XB2lp9EX/>YEX / >Y +X!Y 9/ 9 9  +X!Y +X!Y 901!!632#"&'33254&#"1B^|sh`E`ZS2[&uz{dECM^ `^ !9 EX/>YEX / >Y +X!Y 9/ +X!Y  +X!Y01 632#"&55467"32654&Kt|dž9igSK`^Y[wt@;/0^ngOQ_>3EX/>YEX/>Y +X!Y901#!5!onU(YO !-t ./9 а %EX/>YEX / >Y+ 9|+/ +X!Y+9+9  +X!Y% +X!Y01#"&5467&&546324&"264&#"326}H=FUTG=Hz{Thfge\HKVZIJXF=\cDgxxgDd[=dvw0?ON@DIL:LK;YEX/>Y9//] +X!Y +X!Y +X!Y01#"&54632#73$26754&#"Guz(@_bQMa_XYvxFV=03jjoeWEX / >Y01;EX / >Y 01lEX/>Y01`EX/>Y01>EX/>Y01OEX/>Yа%01KEX/>Y011P!kEX/>YEX/>Y9/_]/]O_q +X!Yа +X!Y +X!Y013#53!2#!!254'!!ֵ!4f†Ҥ1.;&%D;EX/>Y 01;&%u;EX/>Y 011&%;EX/>Y01&%DEX/>Y01&%j;q&%M@EX/>Yܰ01D&'yBA&)DAEX/>Y 01BA&)uAEX/>Y01B7&)AEX/>Y01B&)jA \A&-DAEX/>Y01A&-uNAEX/>Y01)7&-^AEX/>Y01B&-j^A&2 DEX/>Y 01}G&3DGGEX / >Y01}G&3uGEX / >Y 01}=&3GEX / >Y"01}#&3PEX / >Y!01} &3jG;&9D>;EX / >Y01;&9u;EX/>Y011&9;EX / >Y01&9j;5&=u5EX/>Y 01d&EDEX/>Y+01d&EuEX/>Y,01d&EEX/>Y.01d&E EX/>Y-01d&Ejd6&EEX/>Y3ܰ801^DN&GyWZ&IDEX / >Y!01Z&IusEX / >Y"01Z&IEX / >Y$01Z&Ij1&D{ /01&u# /01&3EX/>Y01&j3&REX/>Y01Z &SDEX/>Y 01Z &SuxEX/>Y!01Z &SEX/>Y#01Z &SEX/>Y"01Z &Sj&YDEX/>Y01&YuzEX / >Y01&YEX/>Y01&Yj K&]u>EX/>Y01 K&]jMYr`````=DGz a_u)5 @ F  y  I m R ^7f5m/f*F+= H R d2v zA`8Wc2L !!0!U!!"""8"R"l"#@#}#$O$%x%&@&''9'(i(()))))F)a))))))**6*I*]**+`+,R,-0-^-..a./'/T/0:0N0b0t000000161M1d1{111111222*2A2X2d2{22222233(343K3b3y333333444(4:4K4b4n44444455525>5U5`#+_<.R s dLUosml\w!eK<J1-oxooioboCoooMojoe<Mm%|TNq2=x!gG 7j}jyX4B,=7Z'0TMtIgIdo^rl"Z?plde{Zovl ee&?0 WD z[w]m fqek{]|jfj=TLG@|tSb~ss d6vXI0]j}UHtY~yld^p{u{j6,}lbl>a)dciDQ)!alaa>;oSL0[???L~WG;l`>OKW;l`>OKJ1[!2! !!!j}j}j}j}j}BBBBIdIdIdIdIdId^"Z"Z"Z"Ze{Z{Z{Z{Z{Zeeee l 7 E o,33f'CGOOG@"f :   hL8  ~1S    " & : D t " 1R    " & 9 D t " Z:~{zwtbY*ގ*4^ '  ~co11RS       " " & & 9 : D D t t "",K PXYD _^-, EiD`-,*!-, F%FRX#Y Id F had%F hadRX#eY/ SXi TX!@Yi TX!@eYY:-, F%FRX#Y F jad%F jadRX#Y/-,K &PXQXD@DY!! EPXD!YY-, EiD` E}iD`-,*-,K &SX@Y &SX#!#Y &SX#!#Y &SX#!#Y &SX#!@#Y &SX%EPX#!#!%E#!#!Y!YD- ,KSXED!!Y- ,*E- ,+E- ,' SX@cTX*pY#SX TX*pYYY- ,@ ZX+D+DY- ++ + + :0)+mYE2+~gP8+v`K6+dN:+G:)+w\:#+mYE2+QB4%+ 9/$+ w\:#+ v`K6+ gJ,++ E}iDsPttpu?s_ss/tOtottttu?u_uusousst_tttt?u/ so s?(s*hZ`VNnN`F`9 ! :[f ^ ^ v ^ ^ &  TCopyright 2011 Google Inc. All Rights Reserved.Roboto LightRegularVersion 2.137; 2017Roboto-Lighthttp://www.apache.org/licenses/LICENSE-2.0jdN %>E^yy y 0>DFLTcyrlgreklatnkern .E"(:@.@bt&4Nd~E %'()*/034568:;=>?IJLOQRSVXZ[]_8:;= 0%V.8EGHIKSUVYZ]VVVVVV[[X8:;=8:=V[m|(M AVa A Va[.9  AGHIKUa GHIKUJX2[S.9 L O P SW[ [ #X[ AaJ[ AJVXam|J P x -& v8{qQV %),4 8>EGIILLQTVV"ZZ#\^$'(./U[5 %%&&''(()).. // 00334488 99 ::;;<<== >>EEFFGGIILLQRSSTTVVZZ \\]] ^^  5 %%''++..33557788 99 ::;;<<== >>EEGIKKQRSSTTUUWW YYZZ\\]]^^   DFLTcyrlgreklatn*.AZE JCRT JFRA YEX/>Y9999 ܲ 9 901!!!!5!(<6 }wx^^^> <9EX/>YEX / >Y +X!Yа/01#3462"&o|,L--L,"//"!--; /а/а01#3#3PaQatŌUEX / >YEX/>YEX/>YEX/>Y 9|/ +X!Yаа а / +X!Y а аааа01!##5!!5!3!33#3!#!!McMS)OcO;OdOSMd;Sf]````G]fs0+{,-9 /EX / >YEX / >YEX / >YEX"/">Y" 9  +X!Y +X!Y"а") +X!Y014&'&&546753#4&#"#5&&53326Ȭfw_Oͳexgo?GÛǝ|xwmh Ŝm &48n5/7/EX/>YEX$/$>Y а / +X!Y +X!Y$а/$* +X!Y1 +X!Y01462#"&5326554&#"462"&5326554&#"'m|{agWUehTSi|`gWVegVThKKG]xy`I]yxdӂG^xybI`uvc0r0l)5{-679-а- EX/>YEX/>YEX/>Y 999 +X!Y$9,93 +X!Y01&&54632653#'#"&5467267'76654&#"WO[oǐ~Os}[Di.Ĵ1@RlZbtiQ||.NXղjvAMG#,zd.nJNi~wB /а/01#53Zfs(*m`9//0147&p|Bf?_dmLUJQ/~JMLS!*`9//01'654'7mցb```~p=iNMF&/EMMd}J EX/>Y/  /01%73%'i LhD!UUle{res?1=K1  /а  +X!Y01!!#!5!3vEyNypp</ +X!Y01'6753G[u4z}1P/ +X!Y01!5!!Pe<EX/>Y +X!Y017462"&-P..P-H#11F--/EX/>Y01#3m`l}-x H 9 EX / >YEX/>Y  +X!Y +X!Y01#"324#"327x_9+3<:EX/>YEX/>Y9/ +X!Y901!#5%3xt piP 9EX/>YEX/>Y +X!Yв9  +X!Y901!!56654&#"#46632!p|`wo̓j\6X{sҵf5b+,-9EX/>YEX/>Y9/_]/]O_q +X!Y 9* +X!Y*9!9$ +X!Y01326654&#"#46632#"&&5332654&##|gQxr{t̂wx˜xISqfؼi,&h|CK JEX / >YEX/>Y 9/ +X!Yа в 9 9013##!53!hxSn5epD%@\i9EX/>YEX / >Y +X!Y 9/ 9  +X!Y +X!Y 901!!632#"&'332654&#"G3uϾsU~FoPԿƷ+>#e$%9EX/>YEX/>Y +X!Y9/9 +X!Y +X!Y01# 6632#"55%"32654&KYEX/>Y +X!Y901#!5! }jkJfj  ,$-.9$ а$EX/>YEX / >Y* 9*/_*]/*]O*_*q +X!Y*9*9  +X!Y$ +X!Y01#"&5467&&546 4& 3264&#"326l~lR&9q*+~ڼ|+*qꥤE}e$a%&9 EX / >YEX/>Y 9/ +X!Y +X!Y  +X!Y01#"&&546632!#73$%26754&#"t@o|hoǂ*x(^g←lvth ÏrE宧,7&<!7'M;<9EX/>Y9/ +X!Y +X!Y015;~{az~'/а/ +X!Y +X!Y01!5!!5!BB=jj|=2EX/>Y +X!Y9/ +X!Y0155C9M/{a|TK$K %&9 EX/>YEX"/">Y +X!Yа/  +X!Y01>54&#"#66324632#"&x<9wxwڨbq+'&--&'+vQa>}uɬl~_"//"!--q;6B$CD9$@+/3/EX/>YEX / >Y3939/ : +X!Yа3 +X!Y+$ +X!Y? +X!Y01#"&'#"&7>323267!"3267#"$$32327&#"brazlwmMtM3 OW{ =\<9h b ZJX-C[oLf\ͣ+At~,#P&3fdm1 T 9 EX/>YEX/>YEX/>Y9/ +X!Y 901!#3#!k'u'HhPv p!"9аEX/>YEX/>Y9//] +X!Y9 +X!Y +X!Y013!2#!2654&#%!6654&#!{kqPq$gB9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632#!"3267|.),sԹ H9EX/>YEX/>Y  +X!Y  +X!Y013!2#!254'†ҤG!1.B VEX/>YEX/>Y 9 // ] +X!Y +X!Y +X!Y01!!!!!!Wvhi> DEX/>YEX/>Y 9| / +X!Y +X!Y01!#!!!Y{Xi"_ #$9EX / >YEX/>Y 9  +X!Y +X!Y" 9"/ +X!Y01%#"$'5!2#&&#"32767!5!@恵2{ϧqӉrJ$y[f,¸/_ɠ2!,xh REX/>YEX / >YEX/>YEX/>Y 9 // ] +X!Y01!#!#3!3|{{@|FrNEX/>YEX/>Y01!#3N{{G09EX/>YEX/>Y  +X!Y013#"&533267;|{Ǟ L 9EX/>YEX/>YEX/>YEX / >Y9901#33#{{x)EX/>YEX/>Y +X!Y01%!!34|hh3YEX/>YEX/>YEX/>YEX/>YEX / >Y99 901 3###[{ _ {Pz L 9EX/>YEX/>YEX/>YEX/>Y9901!##33{||Fz"!}H9EX / >YEX/>Y  +X!Y +X!Y01#"54$ #"32ƍP{Фm63*+  O 9  EX/>YEX/>Y 9 / +X!Y +X!Y01#!2#%!2654&'!3{uQhy#H$%9 EX/>YEX/>Y +X!Y  +X!Y01#"$'54$32'#"32蓈 URU{OL-ţ3** c9EX/>YEX/>YEX / >Y9/ +X!Y 9 +X!Y01!#!2#!2654&#!Y|lyı^ˌ) ǰXl'f ()9EX / >YEX/>Y 9 9  +X!Y +X!Y" 9% +X!Y014&$'&54$32#4&#"#"$&53326YEX/>Y +X!Y01!#!5! {`GGi=9EX/>YEX / >YEX/>Y +X!Y01#"$'3 65zhu'̶1EX/>YEX/>YEX/>Y901%73#3o ʇv↴P=YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  9017373#'#3-7YEX / >YEX/>YEX/>Y999 9013##3sXVHh2|1EX/>YEX/>YEX/>Y9013#3c{t$Zr FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!`hh]iX$// +X!Y +X!Y01#3!!Jf0/EX/>Y013#0u`uK'// +X!Y +X!Y01!!53#KHfM+9EX/>Y9/901#3#t+Z*t)rEX/>Y +X!Y01!5!rqeeg/а/]9/01#3mdN)*+9 EX/>YEX/>YEX/>Y9 9 // ? ] +X!Y 9|/ +X!Y # +X!Y01!&'#"&54$3354&#"'4632%2675#G?mُ}x!x+ֳʇ3dRY{tZN Vtao[xf9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326tpwrxs)Z䔧רqm^NM9EX/>YEX/>Y +X!Y99 +X!Y01%2673#"5546632#&&#",}srlpьsQpc\($ԭ#lc9/EX/>YEX/>YEX / >Y9 9 +X!Y +X!Y014323#'#"327&#"lswps߻y]]ۗ'+_-ZNe !9 EX / >YEX/>Y 9/  +X!Y +X!Y 9  +X!Y01"&&5546632!3267"!5&&?|y~Ӡ`YEX/>YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"!!򳳩D; 2;cnbd {qb(lQN&$'(9$ EX/>YEX/>YEX / >YEX/>Y9 9  +X!Y9 +X!Y$ +X!Y0143273#"&'732675#"5327&&#"lspq;Csܼy\*o')eTH,hmJ 9/EX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#3;mwyo)wwaj:Ǒv: ? 9EX/>YEX/>Y а / +X!Y01!#3462"&"xx,L--L,:9"//D..K5 K 9 EX / >YEX/>Y  +X!Y а/  +X!Y01#"'73252#"&4663,.<',,'&++:Ec /D..D/ QEX/ >YEX/>YEX/>YEX / >Y 9 в901#373#xxq5!c)z8"EX/ >YEX/>Y01!#3"xxN x!"9EX/>YEX / >YEX/>YEX / >YEX/>YEX/>Y 9 9  +X!Y01663 663 #&&##&&#"# YEX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#=nwyo)w:di:Ǒv:Z NE 9EX/>YEX / >Y +X!Y +X!Y0146632#"5326554&&#"Zy݌ y܍xɣ\k-/ |q`Np9 EX / >YEX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vwouxn*+mלڙje]bl`Nm9EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273##"5327&&#"lrpxv׾y`-i')&&,aiNG 9EX / >YEX/>YEX/>Y  +X!Y 901&#"#3632&+p!wu_2}w: eN%m &'9EX / >YEX/>Y 9 9+ ; ]  +X!Y +X!Y  9# +X!Y014&$&&54632#4&#"#"&53326$M֧xyvw;Lݲx}Yl=OrQ_~iTQYJTvTiunIOa9EX/>YEX/>YEX / >Yа/ +X!Y  +X!Yа013#327#"&5#53VALC/Q{pOb/ZX bb:Q 9EX/>YEX / >YEX/>YEX/>Y 9  +X!Y01%#"&'33 73#TlwExtO&:89EX/>YEX/>YEX/>Y901%3#3I{laj{:?:YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  901%7373#'#3f|f f{]bZ;<:0: SEX/>YEX / >YEX/>YEX/>Y 9 99 9013##3$̍~6' K:D9EX/>YEX/>YEX/>Y9  +X!Y01%3#"''26773<2Y+1>Xm&5h8cWj1W: FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!eeX{gYDl=- 9 // 9/ +X!Y901&&55#525667}l2h3ONIMQ/EX/>Y01#3ee l_=- 9 // 9/ +X!Y9016547&55'73" 窨Q$DDR?3~m1N ? 9EX / >YEX/>Y  +X!Yа/013#"&462o|,L--L,e"..D..w &!Q"#9//EX/>YEX/>Y +X!Y аа +X!Y01%2673#5&554753#&&#"E{ s͔xӺxsQr$#Ҝ#]F!q"#9EX/>YEX/>Y9/ +X!Y +X!Yаа ав9 +X!Y01!!53676'#534632#4&#"! Bb3 ݹ{} XZhh ^JRh"ӱhm_*A+,9 EX/>Yа/  +X!Y( +X!Y01%#"''7&547'76 7326654&& kNq⥛U|UVzV HQV㫫WXשW{q9EX/>YEX / >Y 9 9/а/ +X!Y  +X!Y аааа013!!!!#!5!5!5!3mq9f{b9rYXDXY/EX/>Y+013#3xxxf_6E%FG9%> /EX%/%>Y?% 9? +X!Y?9 а  +X!Y7% 972 +X!Y729%)а%, +X!Y01#"&'&5732654&&$&&5467&&54$32#4&#"%6654&'_{m[amDxϱEYujV\x>ĽXglvG\pd!0n89rqM^N`ged!/l͒sO^L-3g tYS`L8 sVbv8$ / +X!Y аа/01462"&%462"&,L--L,,L--L,t"//"!.. "//"!..k(7899а4EX,/,>YEX4/4>Y4,9/],49/] 9 +X!Y +X!Y94 +X!Y,% +X!Y01 &5546 #4#"3265%32$54$#"4$ #"$aԷ*cj~ljm£&"ݧڠUKJ_ԵZաࢍ[jvz̴31ЮZX%&'9EX/>Y&9/а/9 9 / +X!Y 9@ ,<L\] +X!Y ! +X!Y01&'#"&5463354&#"'4632%2675#"WuPQZgk|5s+3ludnz=U^GHf\WQ<,~{@&D|/а/ +X!Y01#!5!xL,jf 2;:<=9:а:а:!EX/>YEX / >Y +X!Y +X!Y 9/ 9 /  ]3 93/ +X!Y&39-а ; +X!Y014$  $7 $54$#"#!2#&54&#'32654&'#fKKvU#N$ݫݦbH8 fKZQiWjZXdẕ50G{}@mD$YJ[TEUI?9/ +X!Y01!5!k?av >9EX/>Y а / +X!Y +X!Y01#"&4622654&#"vdeƏsYVVBAZhΓgCXXCEZZT A /EX / >Y а  +X!Yа  +X!Y901!!#!5!3!5!ayobobC=fJf eLW9EX/>YEX/>Y +X!Yв9 +X!Y 9901!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7G&w '(9EX/>YEX/>Y9|/oq +X!Y 9% +X!Y%9%9  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]ISH<>JJ:`|xf8^*f|g>QLB|/а/]/013#;i`:e9EX/>YEX/>YEX/>YEX / >YEX/>Y +X!Y  9 90132673#'#"'#~xmbոWw:stƚ}S! + 9EX / >YEX/>Y 901!#"&&54$33lv tՋP{M # 9EX/>Y +X!Y01462"&,P..P,#00F//bM\9EX/>YEX/>Y ,] 0]9/ +X!Y  +X!Y013#'2654&'7 YqWY@\lNA7:,~3EX/>YEX/>Y9/ +X!Y01#5%3jDFZk B 9 EX/>Y 9 / +X!Y +X!Y014632#"&5326554&"lqhcstsl^rx_susC&Qsw''EX/>Y01d''EX / >Y01v''4/EX!/!>Y01XTM#\ $%9 EX!/!>YEX/>Y! +X!Yа/9  +X!Y90132673#"&5467677"&5462'2QwxҫjU,L--L,{viuȭoʇGmEO"//"!..9EX/>YEX/>YEX/>Y9/ +X!Y +X!Y 9 // ]  +X!Y +X!Y901!!!#!!!!!!q`JM #{ff=]d 8/ 9 / 9 9 9в 9  0177]fOVWOfOm^P^POl} )h*+9а&EX/>YEX/>Y9#9#а +X!Y$а& +X!Y01#"'#7&54$3273&#"%4'32ehkg zxwyPkФaٸT3ӎ#T+ H Y9EX/>YEX / >Y 9/ 9/  +X!Y +X!Y01!2!#!26&'/EqxxDf{kH,P#-.9/EX/>YEX/>Y9 +X!Y"9* +X!Y01!#4632#"&'732654.54654&#"xGSYԤT("%CzX\~~[g٩:`R08hO0 e4b=qM`T]wUzN+7?Ȳ@A9/а;EX/>YEX/>YEX/>YEX/>Y9 9 / +X!Y 99<9YEX/>Y9/ +X!Y" +X!Y) +X!Y01#"&&5432&''7&'77'&&#"3265+p~|d;*3Ή'36'oZehn{MCIjCgHyI9S`ҹgeH. S9а/ +X!Y +XY +XY +XY +XY01!5!462"&462"&.,P..P,,P..P,tH#00F//#00F..Yt#-h./9 а*EX/>YEX/>Y9'9'а  +X!Y(а* +X!Y014663273#"'#7&&53&#"%4&'3265Yy݌rdN^d^hz܌l\O^cdnwGEK[B?}DV-0H!)Gn=+ g?"`f9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vxxuxn**pלjeZc :EX/>YEX/>Y01!#3 xx:l #$%9EX / >YEX/>YEX/>YEX/>Y +X!Y9//] +X!Y +X!Y +X!Y  +X!Y01!!#"&'4632!!!!!27&#" zGW}tv :ih^N!.6789'а2EX/>YEX / >YEX/>YEX/>Y 93 93/ +X!Y +X!Y 9 9%в) 9, +X!Y / +X!Y01466326632!327#"&'#"5326554& "!54&^yۊ><~ƚs4:=ۍxƢ-~`wR|/ ʟ2/ +XYааа//]901#'#573omL u1 1 /а/?O]  +X!Y +X!Y014632"&732654&#"uqPOrnnMB21DF/1CsPnnPOllO2BA35BDj >/а/] а /  +X!Y +X!Y 01#"&#"'46323265 qRL9/?ZmV0D<=).A`un>8\x"*"B8FL@~Gvff@ba6 9/а/01#546HZwK3vp\>K 9/а/01'6753GZvK4ye) 9/а/а/01'6773pGSw4oweca2&DK &)+ 9 /а/ а /а/а/01'6753'6753pGYw^GXx4{ف4z 9/ +XY014632#"&5fSRffSTfOdaM(Q`bQs&'7l/9/01#53i'i+|{{a/9/01#'j>yO //017'JJy0r0;EX / >Y 01S% &'9EX/>YEX / >Y% 9%/ +X!Y  +X!Yа%а%а/@ /?] +X!Y +X!Y а"01!327#"5#535#5332&#"!!!1]uf trc pm]3"k&YZ,m#Z/ +X!Y01!5!Cf09EX/>YEX/>YEX/>YEX/ >YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"3#!#3䴴z~Dxxbo;g5mb(:?o9EX/>YEX/>YEX/ >YEX / >YEX/>Y +X!Y +X!Y а 01&#"!!##5356632#7bgpx|w{qb(b=(?&*+,9(EX/>YEX/>YEX/>YEX)/)>YEX/ >YEX/>YEX"/">YEX'/'>Y +X!Yаа +X!Y а а!а$а%013#5354632&#"!54632&#"3##!!#3򳳩D; 2;cnͼ}|w3xxbd {qo;g5kb((:?)*+9EX/>YEX/>YEX!/!>YEX/ >YEX/>YEX/>YEX%/%>Y +X!Yа  +X!Yа а#а$а'а(013#5354632&#"!56632#&#"!!#!򳳩D; 2;cn}xbgpw3bd {q=({qb((L [9EX/>YEX/>Y +X!Y99 +X!Y 9901!!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7~:EX/>YEX/>Y9/ +X!Y901!#5%3jDFZkW H9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632'4&#"325iYXZXF t{s~G &r '(9EX/>YEX/>Y9|/ +X!Y 9% +X!Y%99  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]IH<>JJ:`|xf8^*f|g>QLB; SEX / >YEX/>Y 9//] +X!Yа в 9 9013##5!'3!7iqov!XB2lp9EX/>YEX / >Y +X!Y 9/ 9 9  +X!Y +X!Y 901!!632#"&'33254&#"1B^|sh`E`ZS2[&uz{dECM^ `^ !9 EX/>YEX / >Y +X!Y 9/ +X!Y  +X!Y01 632#"&55467"32654&Kt|dž9igSK`^Y[wt@;/0^ngOQ_>3EX/>YEX/>Y +X!Y901#!5!onU(YO !-t ./9 а %EX/>YEX / >Y+ 9|+/ +X!Y+9+9  +X!Y% +X!Y01#"&5467&&546324&"264&#"326}H=FUTG=Hz{Thfge\HKVZIJXF=\cDgxxgDd[=dvw0?ON@DIL:LK;YEX/>Y9//] +X!Y +X!Y +X!Y01#"&54632#73$26754&#"Guz(@_bQMa_XYvxFV=03jjoeWEX / >Y01;EX / >Y 01lEX/>Y01`EX/>Y01>EX/>Y01OEX/>Yа%01KEX/>Y011P!kEX/>YEX/>Y9/_]/]O_q +X!Yа +X!Y +X!Y013#53!2#!!254'!!ֵ!4f†Ҥ1.;&%D;EX/>Y 01;&%u;EX/>Y 011&%;EX/>Y01&%DEX/>Y01&%j;q&%M@EX/>Yܰ01D&'yBA&)DAEX/>Y 01BA&)uAEX/>Y01B7&)AEX/>Y01B&)jA \A&-DAEX/>Y01A&-uNAEX/>Y01)7&-^AEX/>Y01B&-j^A&2 DEX/>Y 01}G&3DGGEX / >Y01}G&3uGEX / >Y 01}=&3GEX / >Y"01}#&3PEX / >Y!01} &3jG;&9D>;EX / >Y01;&9u;EX/>Y011&9;EX / >Y01&9j;5&=u5EX/>Y 01d&EDEX/>Y+01d&EuEX/>Y,01d&EEX/>Y.01d&E EX/>Y-01d&Ejd6&EEX/>Y3ܰ801^DN&GyWZ&IDEX / >Y!01Z&IusEX / >Y"01Z&IEX / >Y$01Z&Ij1&D{ /01&u# /01&3EX/>Y01&j3&REX/>Y01Z &SDEX/>Y 01Z &SuxEX/>Y!01Z &SEX/>Y#01Z &SEX/>Y"01Z &Sj&YDEX/>Y01&YuzEX / >Y01&YEX/>Y01&Yj K&]u>EX/>Y01 K&]jMYr`````=DGz a_u)5 @ F  y  I m R ^7f5m/f*F+= H R d2v zA`8Wc2L !!0!U!!"""8"R"l"#@#}#$O$%x%&@&''9'(i(()))))F)a))))))**6*I*]**+`+,R,-0-^-..a./'/T/0:0N0b0t000000161M1d1{111111222*2A2X2d2{22222233(343K3b3y333333444(4:4K4b4n44444455525>5U5`#+_<.R s dLUosml\w!eK<J1-oxooioboCoooMojoe<Mm%|TNq2=x!gG 7j}jyX4B,=7Z'0TMtIgIdo^rl"Z?plde{Zovl ee&?0 WD z[w]m fqek{]|jfj=TLG@|tSb~ss d6vXI0]j}UHtY~yld^p{u{j6,}lbl>a)dciDQ)!alaa>;oSL0[???L~WG;l`>OKW;l`>OKJ1[!2! !!!j}j}j}j}j}BBBBIdIdIdIdIdId^"Z"Z"Z"Ze{Z{Z{Z{Z{Zeeee l 7 E o,33f'CGOOG@"f :   hL8  ~1S    " & : D t " 1R    " & 9 D t " Z:~{zwtbY*ގ*4^ '  ~co11RS       " " & & 9 : D D t t "",K PXYD _^-, EiD`-,*!-, F%FRX#Y Id F had%F hadRX#eY/ SXi TX!@Yi TX!@eYY:-, F%FRX#Y F jad%F jadRX#Y/-,K &PXQXD@DY!! EPXD!YY-, EiD` E}iD`-,*-,K &SX@Y &SX#!#Y &SX#!#Y &SX#!#Y &SX#!@#Y &SX%EPX#!#!%E#!#!Y!YD- ,KSXED!!Y- ,*E- ,+E- ,' SX@cTX*pY#SX TX*pYYY- ,@ ZX+D+DY- ++ + + :0)+mYE2+~gP8+v`K6+dN:+G:)+w\:#+mYE2+QB4%+ 9/$+ w\:#+ v`K6+ gJ,++ E}iDsPttpu?s_ss/tOtottttu?u_uusousst_tttt?u/ so s?(s*hZ`VNnN`F`9 ! :[f ^ ^ v ^ ^ &  TCopyright 2011 Google Inc. All Rights Reserved.Roboto LightRegularVersion 2.137; 2017Roboto-Lighthttp://www.apache.org/licenses/LICENSE-2.0jdN %>E^yy y 0>DFLTcyrlgreklatnkern .E"(:@.@bt&4Nd~E %'()*/034568:;=>?IJLOQRSVXZ[]_8:;= 0%V.8EGHIKSUVYZ]VVVVVV[[X8:;=8:=V[m|(M AVa A Va[.9  AGHIKUa GHIKUJX2[S.9 L O P SW[ [ #X[ AaJ[ AJVXam|J P x -& v8{qQV %),4 8>EGIILLQTVV"ZZ#\^$'(./U[5 %%&&''(()).. // 00334488 99 ::;;<<== >>EEFFGGIILLQRSSTTVVZZ \\]] ^^  5 %%''++..33557788 99 ::;;<<== >>EEGIKKQRSSTTUUWW YYZZ\\]]^^   DFLTcyrlgreklatn*.AZE JCRT JFRA YEX/>Y9999 ܲ 9 901!!!!5!(<6 }wx^^^> <9EX/>YEX / >Y +X!Yа/01#3462"&o|,L--L,"//"!--; /а/а01#3#3PaQatŌUEX / >YEX/>YEX/>YEX/>Y 9|/ +X!Yаа а / +X!Y а аааа01!##5!!5!3!33#3!#!!McMS)OcO;OdOSMd;Sf]````G]fs0+{,-9 /EX / >YEX / >YEX / >YEX"/">Y" 9  +X!Y +X!Y"а") +X!Y014&'&&546753#4&#"#5&&53326Ȭfw_Oͳexgo?GÛǝ|xwmh Ŝm &48n5/7/EX/>YEX$/$>Y а / +X!Y +X!Y$а/$* +X!Y1 +X!Y01462#"&5326554&#"462"&5326554&#"'m|{agWUehTSi|`gWVegVThKKG]xy`I]yxdӂG^xybI`uvc0r0l)5{-679-а- EX/>YEX/>YEX/>Y 999 +X!Y$9,93 +X!Y01&&54632653#'#"&5467267'76654&#"WO[oǐ~Os}[Di.Ĵ1@RlZbtiQ||.NXղjvAMG#,zd.nJNi~wB /а/01#53Zfs(*m`9//0147&p|Bf?_dmLUJQ/~JMLS!*`9//01'654'7mցb```~p=iNMF&/EMMd}J EX/>Y/  /01%73%'i LhD!UUle{res?1=K1  /а  +X!Y01!!#!5!3vEyNypp</ +X!Y01'6753G[u4z}1P/ +X!Y01!5!!Pe<EX/>Y +X!Y017462"&-P..P-H#11F--/EX/>Y01#3m`l}-x H 9 EX / >YEX/>Y  +X!Y +X!Y01#"324#"327x_9+3<:EX/>YEX/>Y9/ +X!Y901!#5%3xt piP 9EX/>YEX/>Y +X!Yв9  +X!Y901!!56654&#"#46632!p|`wo̓j\6X{sҵf5b+,-9EX/>YEX/>Y9/_]/]O_q +X!Y 9* +X!Y*9!9$ +X!Y01326654&#"#46632#"&&5332654&##|gQxr{t̂wx˜xISqfؼi,&h|CK JEX / >YEX/>Y 9/ +X!Yа в 9 9013##!53!hxSn5epD%@\i9EX/>YEX / >Y +X!Y 9/ 9  +X!Y +X!Y 901!!632#"&'332654&#"G3uϾsU~FoPԿƷ+>#e$%9EX/>YEX/>Y +X!Y9/9 +X!Y +X!Y01# 6632#"55%"32654&KYEX/>Y +X!Y901#!5! }jkJfj  ,$-.9$ а$EX/>YEX / >Y* 9*/_*]/*]O*_*q +X!Y*9*9  +X!Y$ +X!Y01#"&5467&&546 4& 3264&#"326l~lR&9q*+~ڼ|+*qꥤE}e$a%&9 EX / >YEX/>Y 9/ +X!Y +X!Y  +X!Y01#"&&546632!#73$%26754&#"t@o|hoǂ*x(^g←lvth ÏrE宧,7&<!7'M;<9EX/>Y9/ +X!Y +X!Y015;~{az~'/а/ +X!Y +X!Y01!5!!5!BB=jj|=2EX/>Y +X!Y9/ +X!Y0155C9M/{a|TK$K %&9 EX/>YEX"/">Y +X!Yа/  +X!Y01>54&#"#66324632#"&x<9wxwڨbq+'&--&'+vQa>}uɬl~_"//"!--q;6B$CD9$@+/3/EX/>YEX / >Y3939/ : +X!Yа3 +X!Y+$ +X!Y? +X!Y01#"&'#"&7>323267!"3267#"$$32327&#"brazlwmMtM3 OW{ =\<9h b ZJX-C[oLf\ͣ+At~,#P&3fdm1 T 9 EX/>YEX/>YEX/>Y9/ +X!Y 901!#3#!k'u'HhPv p!"9аEX/>YEX/>Y9//] +X!Y9 +X!Y +X!Y013!2#!2654&#%!6654&#!{kqPq$gB9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632#!"3267|.),sԹ H9EX/>YEX/>Y  +X!Y  +X!Y013!2#!254'†ҤG!1.B VEX/>YEX/>Y 9 // ] +X!Y +X!Y +X!Y01!!!!!!Wvhi> DEX/>YEX/>Y 9| / +X!Y +X!Y01!#!!!Y{Xi"_ #$9EX / >YEX/>Y 9  +X!Y +X!Y" 9"/ +X!Y01%#"$'5!2#&&#"32767!5!@恵2{ϧqӉrJ$y[f,¸/_ɠ2!,xh REX/>YEX / >YEX/>YEX/>Y 9 // ] +X!Y01!#!#3!3|{{@|FrNEX/>YEX/>Y01!#3N{{G09EX/>YEX/>Y  +X!Y013#"&533267;|{Ǟ L 9EX/>YEX/>YEX/>YEX / >Y9901#33#{{x)EX/>YEX/>Y +X!Y01%!!34|hh3YEX/>YEX/>YEX/>YEX/>YEX / >Y99 901 3###[{ _ {Pz L 9EX/>YEX/>YEX/>YEX/>Y9901!##33{||Fz"!}H9EX / >YEX/>Y  +X!Y +X!Y01#"54$ #"32ƍP{Фm63*+  O 9  EX/>YEX/>Y 9 / +X!Y +X!Y01#!2#%!2654&'!3{uQhy#H$%9 EX/>YEX/>Y +X!Y  +X!Y01#"$'54$32'#"32蓈 URU{OL-ţ3** c9EX/>YEX/>YEX / >Y9/ +X!Y 9 +X!Y01!#!2#!2654&#!Y|lyı^ˌ) ǰXl'f ()9EX / >YEX/>Y 9 9  +X!Y +X!Y" 9% +X!Y014&$'&54$32#4&#"#"$&53326YEX/>Y +X!Y01!#!5! {`GGi=9EX/>YEX / >YEX/>Y +X!Y01#"$'3 65zhu'̶1EX/>YEX/>YEX/>Y901%73#3o ʇv↴P=YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  9017373#'#3-7YEX / >YEX/>YEX/>Y999 9013##3sXVHh2|1EX/>YEX/>YEX/>Y9013#3c{t$Zr FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!`hh]iX$// +X!Y +X!Y01#3!!Jf0/EX/>Y013#0u`uK'// +X!Y +X!Y01!!53#KHfM+9EX/>Y9/901#3#t+Z*t)rEX/>Y +X!Y01!5!rqeeg/а/]9/01#3mdN)*+9 EX/>YEX/>YEX/>Y9 9 // ? ] +X!Y 9|/ +X!Y # +X!Y01!&'#"&54$3354&#"'4632%2675#G?mُ}x!x+ֳʇ3dRY{tZN Vtao[xf9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326tpwrxs)Z䔧רqm^NM9EX/>YEX/>Y +X!Y99 +X!Y01%2673#"5546632#&&#",}srlpьsQpc\($ԭ#lc9/EX/>YEX/>YEX / >Y9 9 +X!Y +X!Y014323#'#"327&#"lswps߻y]]ۗ'+_-ZNe !9 EX / >YEX/>Y 9/  +X!Y +X!Y 9  +X!Y01"&&5546632!3267"!5&&?|y~Ӡ`YEX/>YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"!!򳳩D; 2;cnbd {qb(lQN&$'(9$ EX/>YEX/>YEX / >YEX/>Y9 9  +X!Y9 +X!Y$ +X!Y0143273#"&'732675#"5327&&#"lspq;Csܼy\*o')eTH,hmJ 9/EX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#3;mwyo)wwaj:Ǒv: ? 9EX/>YEX/>Y а / +X!Y01!#3462"&"xx,L--L,:9"//D..K5 K 9 EX / >YEX/>Y  +X!Y а/  +X!Y01#"'73252#"&4663,.<',,'&++:Ec /D..D/ QEX/ >YEX/>YEX/>YEX / >Y 9 в901#373#xxq5!c)z8"EX/ >YEX/>Y01!#3"xxN x!"9EX/>YEX / >YEX/>YEX / >YEX/>YEX/>Y 9 9  +X!Y01663 663 #&&##&&#"# YEX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#=nwyo)w:di:Ǒv:Z NE 9EX/>YEX / >Y +X!Y +X!Y0146632#"5326554&&#"Zy݌ y܍xɣ\k-/ |q`Np9 EX / >YEX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vwouxn*+mלڙje]bl`Nm9EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273##"5327&&#"lrpxv׾y`-i')&&,aiNG 9EX / >YEX/>YEX/>Y  +X!Y 901&#"#3632&+p!wu_2}w: eN%m &'9EX / >YEX/>Y 9 9+ ; ]  +X!Y +X!Y  9# +X!Y014&$&&54632#4&#"#"&53326$M֧xyvw;Lݲx}Yl=OrQ_~iTQYJTvTiunIOa9EX/>YEX/>YEX / >Yа/ +X!Y  +X!Yа013#327#"&5#53VALC/Q{pOb/ZX bb:Q 9EX/>YEX / >YEX/>YEX/>Y 9  +X!Y01%#"&'33 73#TlwExtO&:89EX/>YEX/>YEX/>Y901%3#3I{laj{:?:YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  901%7373#'#3f|f f{]bZ;<:0: SEX/>YEX / >YEX/>YEX/>Y 9 99 9013##3$̍~6' K:D9EX/>YEX/>YEX/>Y9  +X!Y01%3#"''26773<2Y+1>Xm&5h8cWj1W: FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!eeX{gYDl=- 9 // 9/ +X!Y901&&55#525667}l2h3ONIMQ/EX/>Y01#3ee l_=- 9 // 9/ +X!Y9016547&55'73" 窨Q$DDR?3~m1N ? 9EX / >YEX/>Y  +X!Yа/013#"&462o|,L--L,e"..D..w &!Q"#9//EX/>YEX/>Y +X!Y аа +X!Y01%2673#5&554753#&&#"E{ s͔xӺxsQr$#Ҝ#]F!q"#9EX/>YEX/>Y9/ +X!Y +X!Yаа ав9 +X!Y01!!53676'#534632#4&#"! Bb3 ݹ{} XZhh ^JRh"ӱhm_*A+,9 EX/>Yа/  +X!Y( +X!Y01%#"''7&547'76 7326654&& kNq⥛U|UVzV HQV㫫WXשW{q9EX/>YEX / >Y 9 9/а/ +X!Y  +X!Y аааа013!!!!#!5!5!5!3mq9f{b9rYXDXY/EX/>Y+013#3xxxf_6E%FG9%> /EX%/%>Y?% 9? +X!Y?9 а  +X!Y7% 972 +X!Y729%)а%, +X!Y01#"&'&5732654&&$&&5467&&54$32#4&#"%6654&'_{m[amDxϱEYujV\x>ĽXglvG\pd!0n89rqM^N`ged!/l͒sO^L-3g tYS`L8 sVbv8$ / +X!Y аа/01462"&%462"&,L--L,,L--L,t"//"!.. "//"!..k(7899а4EX,/,>YEX4/4>Y4,9/],49/] 9 +X!Y +X!Y94 +X!Y,% +X!Y01 &5546 #4#"3265%32$54$#"4$ #"$aԷ*cj~ljm£&"ݧڠUKJ_ԵZաࢍ[jvz̴31ЮZX%&'9EX/>Y&9/а/9 9 / +X!Y 9@ ,<L\] +X!Y ! +X!Y01&'#"&5463354&#"'4632%2675#"WuPQZgk|5s+3ludnz=U^GHf\WQ<,~{@&D|/а/ +X!Y01#!5!xL,jf 2;:<=9:а:а:!EX/>YEX / >Y +X!Y +X!Y 9/ 9 /  ]3 93/ +X!Y&39-а ; +X!Y014$  $7 $54$#"#!2#&54&#'32654&'#fKKvU#N$ݫݦbH8 fKZQiWjZXdẕ50G{}@mD$YJ[TEUI?9/ +X!Y01!5!k?av >9EX/>Y а / +X!Y +X!Y01#"&4622654&#"vdeƏsYVVBAZhΓgCXXCEZZT A /EX / >Y а  +X!Yа  +X!Y901!!#!5!3!5!ayobobC=fJf eLW9EX/>YEX/>Y +X!Yв9 +X!Y 9901!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7G&w '(9EX/>YEX/>Y9|/oq +X!Y 9% +X!Y%9%9  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]ISH<>JJ:`|xf8^*f|g>QLB|/а/]/013#;i`:e9EX/>YEX/>YEX/>YEX / >YEX/>Y +X!Y  9 90132673#'#"'#~xmbոWw:stƚ}S! + 9EX / >YEX/>Y 901!#"&&54$33lv tՋP{M # 9EX/>Y +X!Y01462"&,P..P,#00F//bM\9EX/>YEX/>Y ,] 0]9/ +X!Y  +X!Y013#'2654&'7 YqWY@\lNA7:,~3EX/>YEX/>Y9/ +X!Y01#5%3jDFZk B 9 EX/>Y 9 / +X!Y +X!Y014632#"&5326554&"lqhcstsl^rx_susC&Qsw''EX/>Y01d''EX / >Y01v''4/EX!/!>Y01XTM#\ $%9 EX!/!>YEX/>Y! +X!Yа/9  +X!Y90132673#"&5467677"&5462'2QwxҫjU,L--L,{viuȭoʇGmEO"//"!..9EX/>YEX/>YEX/>Y9/ +X!Y +X!Y 9 // ]  +X!Y +X!Y901!!!#!!!!!!q`JM #{ff=]d 8/ 9 / 9 9 9в 9  0177]fOVWOfOm^P^POl} )h*+9а&EX/>YEX/>Y9#9#а +X!Y$а& +X!Y01#"'#7&54$3273&#"%4'32ehkg zxwyPkФaٸT3ӎ#T+ H Y9EX/>YEX / >Y 9/ 9/  +X!Y +X!Y01!2!#!26&'/EqxxDf{kH,P#-.9/EX/>YEX/>Y9 +X!Y"9* +X!Y01!#4632#"&'732654.54654&#"xGSYԤT("%CzX\~~[g٩:`R08hO0 e4b=qM`T]wUzN+7?Ȳ@A9/а;EX/>YEX/>YEX/>YEX/>Y9 9 / +X!Y 99<9YEX/>Y9/ +X!Y" +X!Y) +X!Y01#"&&5432&''7&'77'&&#"3265+p~|d;*3Ή'36'oZehn{MCIjCgHyI9S`ҹgeH. S9а/ +X!Y +XY +XY +XY +XY01!5!462"&462"&.,P..P,,P..P,tH#00F//#00F..Yt#-h./9 а*EX/>YEX/>Y9'9'а  +X!Y(а* +X!Y014663273#"'#7&&53&#"%4&'3265Yy݌rdN^d^hz܌l\O^cdnwGEK[B?}DV-0H!)Gn=+ g?"`f9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vxxuxn**pלjeZc :EX/>YEX/>Y01!#3 xx:l #$%9EX / >YEX/>YEX/>YEX/>Y +X!Y9//] +X!Y +X!Y +X!Y  +X!Y01!!#"&'4632!!!!!27&#" zGW}tv :ih^N!.6789'а2EX/>YEX / >YEX/>YEX/>Y 93 93/ +X!Y +X!Y 9 9%в) 9, +X!Y / +X!Y01466326632!327#"&'#"5326554& "!54&^yۊ><~ƚs4:=ۍxƢ-~`wR|/ ʟ2/ +XYааа//]901#'#573omL u1 1 /а/?O]  +X!Y +X!Y014632"&732654&#"uqPOrnnMB21DF/1CsPnnPOllO2BA35BDj >/а/] а /  +X!Y +X!Y 01#"&#"'46323265 qRL9/?ZmV0D<=).A`un>8\x"*"B8FL@~Gvff@ba6 9/а/01#546HZwK3vp\>K 9/а/01'6753GZvK4ye) 9/а/а/01'6773pGSw4oweca2&DK &)+ 9 /а/ а /а/а/01'6753'6753pGYw^GXx4{ف4z 9/ +XY014632#"&5fSRffSTfOdaM(Q`bQs&'7l/9/01#53i'i+|{{a/9/01#'j>yO //017'JJy0r0;EX / >Y 01S% &'9EX/>YEX / >Y% 9%/ +X!Y  +X!Yа%а%а/@ /?] +X!Y +X!Y а"01!327#"5#535#5332&#"!!!1]uf trc pm]3"k&YZ,m#Z/ +X!Y01!5!Cf09EX/>YEX/>YEX/>YEX/ >YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"3#!#3䴴z~Dxxbo;g5mb(:?o9EX/>YEX/>YEX/ >YEX / >YEX/>Y +X!Y +X!Y а 01&#"!!##5356632#7bgpx|w{qb(b=(?&*+,9(EX/>YEX/>YEX/>YEX)/)>YEX/ >YEX/>YEX"/">YEX'/'>Y +X!Yаа +X!Y а а!а$а%013#5354632&#"!54632&#"3##!!#3򳳩D; 2;cnͼ}|w3xxbd {qo;g5kb((:?)*+9EX/>YEX/>YEX!/!>YEX/ >YEX/>YEX/>YEX%/%>Y +X!Yа  +X!Yа а#а$а'а(013#5354632&#"!56632#&#"!!#!򳳩D; 2;cn}xbgpw3bd {q=({qb((L [9EX/>YEX/>Y +X!Y99 +X!Y 9901!!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7~:EX/>YEX/>Y9/ +X!Y901!#5%3jDFZkW H9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632'4&#"325iYXZXF t{s~G &r '(9EX/>YEX/>Y9|/ +X!Y 9% +X!Y%99  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]IH<>JJ:`|xf8^*f|g>QLB; SEX / >YEX/>Y 9//] +X!Yа в 9 9013##5!'3!7iqov!XB2lp9EX/>YEX / >Y +X!Y 9/ 9 9  +X!Y +X!Y 901!!632#"&'33254&#"1B^|sh`E`ZS2[&uz{dECM^ `^ !9 EX/>YEX / >Y +X!Y 9/ +X!Y  +X!Y01 632#"&55467"32654&Kt|dž9igSK`^Y[wt@;/0^ngOQ_>3EX/>YEX/>Y +X!Y901#!5!onU(YO !-t ./9 а %EX/>YEX / >Y+ 9|+/ +X!Y+9+9  +X!Y% +X!Y01#"&5467&&546324&"264&#"326}H=FUTG=Hz{Thfge\HKVZIJXF=\cDgxxgDd[=dvw0?ON@DIL:LK;YEX/>Y9//] +X!Y +X!Y +X!Y01#"&54632#73$26754&#"Guz(@_bQMa_XYvxFV=03jjoeWEX / >Y01;EX / >Y 01lEX/>Y01`EX/>Y01>EX/>Y01OEX/>Yа%01KEX/>Y011P!kEX/>YEX/>Y9/_]/]O_q +X!Yа +X!Y +X!Y013#53!2#!!254'!!ֵ!4f†Ҥ1.;&%D;EX/>Y 01;&%u;EX/>Y 011&%;EX/>Y01&%DEX/>Y01&%j;q&%M@EX/>Yܰ01D&'yBA&)DAEX/>Y 01BA&)uAEX/>Y01B7&)AEX/>Y01B&)jA \A&-DAEX/>Y01A&-uNAEX/>Y01)7&-^AEX/>Y01B&-j^A&2 DEX/>Y 01}G&3DGGEX / >Y01}G&3uGEX / >Y 01}=&3GEX / >Y"01}#&3PEX / >Y!01} &3jG;&9D>;EX / >Y01;&9u;EX/>Y011&9;EX / >Y01&9j;5&=u5EX/>Y 01d&EDEX/>Y+01d&EuEX/>Y,01d&EEX/>Y.01d&E EX/>Y-01d&Ejd6&EEX/>Y3ܰ801^DN&GyWZ&IDEX / >Y!01Z&IusEX / >Y"01Z&IEX / >Y$01Z&Ij1&D{ /01&u# /01&3EX/>Y01&j3&REX/>Y01Z &SDEX/>Y 01Z &SuxEX/>Y!01Z &SEX/>Y#01Z &SEX/>Y"01Z &Sj&YDEX/>Y01&YuzEX / >Y01&YEX/>Y01&Yj K&]u>EX/>Y01 K&]jMYr`````=DGz a_u)5 @ F  y  I m R ^7f5m/f*F+= H R d2v zA`8Wc2L !!0!U!!"""8"R"l"#@#}#$O$%x%&@&''9'(i(()))))F)a))))))**6*I*]**+`+,R,-0-^-..a./'/T/0:0N0b0t000000161M1d1{111111222*2A2X2d2{22222233(343K3b3y333333444(4:4K4b4n44444455525>5U5`#+_<.R s dLUosml\w!eK<J1-oxooioboCoooMojoe<Mm%|TNq2=x!gG 7j}jyX4B,=7Z'0TMtIgIdo^rl"Z?plde{Zovl ee&?0 WD z[w]m fqek{]|jfj=TLG@|tSb~ss d6vXI0]j}UHtY~yld^p{u{j6,}lbl>a)dciDQ)!alaa>;oSL0[???L~WG;l`>OKW;l`>OKJ1[!2! !!!j}j}j}j}j}BBBBIdIdIdIdIdId^"Z"Z"Z"Ze{Z{Z{Z{Z{Zeeee l 7 E o,33f'CGOOG@"f :   hL8  ~1S    " & : D t " 1R    " & 9 D t " Z:~{zwtbY*ގ*4^ '  ~co11RS       " " & & 9 : D D t t "",K PXYD _^-, EiD`-,*!-, F%FRX#Y Id F had%F hadRX#eY/ SXi TX!@Yi TX!@eYY:-, F%FRX#Y F jad%F jadRX#Y/-,K &PXQXD@DY!! EPXD!YY-, EiD` E}iD`-,*-,K &SX@Y &SX#!#Y &SX#!#Y &SX#!#Y &SX#!@#Y &SX%EPX#!#!%E#!#!Y!YD- ,KSXED!!Y- ,*E- ,+E- ,' SX@cTX*pY#SX TX*pYYY- ,@ ZX+D+DY- ++ + + :0)+mYE2+~gP8+v`K6+dN:+G:)+w\:#+mYE2+QB4%+ 9/$+ w\:#+ v`K6+ gJ,++ E}iDsPttpu?s_ss/tOtottttu?u_uusousst_tttt?u/ so s?(s*hZ`VNnN`F`9 ! :[f ^ ^ v ^ ^ &  TCopyright 2011 Google Inc. All Rights Reserved.Roboto LightRegularVersion 2.137; 2017Roboto-Lighthttp://www.apache.org/licenses/LICENSE-2.0jdN %>E^yy y 0>DFLTcyrlgreklatnkern .E"(:@.@bt&4Nd~E %'()*/034568:;=>?IJLOQRSVXZ[]_8:;= 0%V.8EGHIKSUVYZ]VVVVVV[[X8:;=8:=V[m|(M AVa A Va[.9  AGHIKUa GHIKUJX2[S.9 L O P SW[ [ #X[ AaJ[ AJVXam|J P x -& v8{qQV %),4 8>EGIILLQTVV"ZZ#\^$'(./U[5 %%&&''(()).. // 00334488 99 ::;;<<== >>EEFFGGIILLQRSSTTVVZZ \\]] ^^  5 %%''++..33557788 99 ::;;<<== >>EEGIKKQRSSTTUUWW YYZZ\\]]^^   DFLTcyrlgreklatn*.AZE JCRT JFRA YEX/>Y9999 ܲ 9 901!!!!5!(<6 }wx^^^> <9EX/>YEX / >Y +X!Yа/01#3462"&o|,L--L,"//"!--; /а/а01#3#3PaQatŌUEX / >YEX/>YEX/>YEX/>Y 9|/ +X!Yаа а / +X!Y а аааа01!##5!!5!3!33#3!#!!McMS)OcO;OdOSMd;Sf]````G]fs0+{,-9 /EX / >YEX / >YEX / >YEX"/">Y" 9  +X!Y +X!Y"а") +X!Y014&'&&546753#4&#"#5&&53326Ȭfw_Oͳexgo?GÛǝ|xwmh Ŝm &48n5/7/EX/>YEX$/$>Y а / +X!Y +X!Y$а/$* +X!Y1 +X!Y01462#"&5326554&#"462"&5326554&#"'m|{agWUehTSi|`gWVegVThKKG]xy`I]yxdӂG^xybI`uvc0r0l)5{-679-а- EX/>YEX/>YEX/>Y 999 +X!Y$9,93 +X!Y01&&54632653#'#"&5467267'76654&#"WO[oǐ~Os}[Di.Ĵ1@RlZbtiQ||.NXղjvAMG#,zd.nJNi~wB /а/01#53Zfs(*m`9//0147&p|Bf?_dmLUJQ/~JMLS!*`9//01'654'7mցb```~p=iNMF&/EMMd}J EX/>Y/  /01%73%'i LhD!UUle{res?1=K1  /а  +X!Y01!!#!5!3vEyNypp</ +X!Y01'6753G[u4z}1P/ +X!Y01!5!!Pe<EX/>Y +X!Y017462"&-P..P-H#11F--/EX/>Y01#3m`l}-x H 9 EX / >YEX/>Y  +X!Y +X!Y01#"324#"327x_9+3<:EX/>YEX/>Y9/ +X!Y901!#5%3xt piP 9EX/>YEX/>Y +X!Yв9  +X!Y901!!56654&#"#46632!p|`wo̓j\6X{sҵf5b+,-9EX/>YEX/>Y9/_]/]O_q +X!Y 9* +X!Y*9!9$ +X!Y01326654&#"#46632#"&&5332654&##|gQxr{t̂wx˜xISqfؼi,&h|CK JEX / >YEX/>Y 9/ +X!Yа в 9 9013##!53!hxSn5epD%@\i9EX/>YEX / >Y +X!Y 9/ 9  +X!Y +X!Y 901!!632#"&'332654&#"G3uϾsU~FoPԿƷ+>#e$%9EX/>YEX/>Y +X!Y9/9 +X!Y +X!Y01# 6632#"55%"32654&KYEX/>Y +X!Y901#!5! }jkJfj  ,$-.9$ а$EX/>YEX / >Y* 9*/_*]/*]O*_*q +X!Y*9*9  +X!Y$ +X!Y01#"&5467&&546 4& 3264&#"326l~lR&9q*+~ڼ|+*qꥤE}e$a%&9 EX / >YEX/>Y 9/ +X!Y +X!Y  +X!Y01#"&&546632!#73$%26754&#"t@o|hoǂ*x(^g←lvth ÏrE宧,7&<!7'M;<9EX/>Y9/ +X!Y +X!Y015;~{az~'/а/ +X!Y +X!Y01!5!!5!BB=jj|=2EX/>Y +X!Y9/ +X!Y0155C9M/{a|TK$K %&9 EX/>YEX"/">Y +X!Yа/  +X!Y01>54&#"#66324632#"&x<9wxwڨbq+'&--&'+vQa>}uɬl~_"//"!--q;6B$CD9$@+/3/EX/>YEX / >Y3939/ : +X!Yа3 +X!Y+$ +X!Y? +X!Y01#"&'#"&7>323267!"3267#"$$32327&#"brazlwmMtM3 OW{ =\<9h b ZJX-C[oLf\ͣ+At~,#P&3fdm1 T 9 EX/>YEX/>YEX/>Y9/ +X!Y 901!#3#!k'u'HhPv p!"9аEX/>YEX/>Y9//] +X!Y9 +X!Y +X!Y013!2#!2654&#%!6654&#!{kqPq$gB9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632#!"3267|.),sԹ H9EX/>YEX/>Y  +X!Y  +X!Y013!2#!254'†ҤG!1.B VEX/>YEX/>Y 9 // ] +X!Y +X!Y +X!Y01!!!!!!Wvhi> DEX/>YEX/>Y 9| / +X!Y +X!Y01!#!!!Y{Xi"_ #$9EX / >YEX/>Y 9  +X!Y +X!Y" 9"/ +X!Y01%#"$'5!2#&&#"32767!5!@恵2{ϧqӉrJ$y[f,¸/_ɠ2!,xh REX/>YEX / >YEX/>YEX/>Y 9 // ] +X!Y01!#!#3!3|{{@|FrNEX/>YEX/>Y01!#3N{{G09EX/>YEX/>Y  +X!Y013#"&533267;|{Ǟ L 9EX/>YEX/>YEX/>YEX / >Y9901#33#{{x)EX/>YEX/>Y +X!Y01%!!34|hh3YEX/>YEX/>YEX/>YEX/>YEX / >Y99 901 3###[{ _ {Pz L 9EX/>YEX/>YEX/>YEX/>Y9901!##33{||Fz"!}H9EX / >YEX/>Y  +X!Y +X!Y01#"54$ #"32ƍP{Фm63*+  O 9  EX/>YEX/>Y 9 / +X!Y +X!Y01#!2#%!2654&'!3{uQhy#H$%9 EX/>YEX/>Y +X!Y  +X!Y01#"$'54$32'#"32蓈 URU{OL-ţ3** c9EX/>YEX/>YEX / >Y9/ +X!Y 9 +X!Y01!#!2#!2654&#!Y|lyı^ˌ) ǰXl'f ()9EX / >YEX/>Y 9 9  +X!Y +X!Y" 9% +X!Y014&$'&54$32#4&#"#"$&53326YEX/>Y +X!Y01!#!5! {`GGi=9EX/>YEX / >YEX/>Y +X!Y01#"$'3 65zhu'̶1EX/>YEX/>YEX/>Y901%73#3o ʇv↴P=YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  9017373#'#3-7YEX / >YEX/>YEX/>Y999 9013##3sXVHh2|1EX/>YEX/>YEX/>Y9013#3c{t$Zr FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!`hh]iX$// +X!Y +X!Y01#3!!Jf0/EX/>Y013#0u`uK'// +X!Y +X!Y01!!53#KHfM+9EX/>Y9/901#3#t+Z*t)rEX/>Y +X!Y01!5!rqeeg/а/]9/01#3mdN)*+9 EX/>YEX/>YEX/>Y9 9 // ? ] +X!Y 9|/ +X!Y # +X!Y01!&'#"&54$3354&#"'4632%2675#G?mُ}x!x+ֳʇ3dRY{tZN Vtao[xf9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326tpwrxs)Z䔧רqm^NM9EX/>YEX/>Y +X!Y99 +X!Y01%2673#"5546632#&&#",}srlpьsQpc\($ԭ#lc9/EX/>YEX/>YEX / >Y9 9 +X!Y +X!Y014323#'#"327&#"lswps߻y]]ۗ'+_-ZNe !9 EX / >YEX/>Y 9/  +X!Y +X!Y 9  +X!Y01"&&5546632!3267"!5&&?|y~Ӡ`YEX/>YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"!!򳳩D; 2;cnbd {qb(lQN&$'(9$ EX/>YEX/>YEX / >YEX/>Y9 9  +X!Y9 +X!Y$ +X!Y0143273#"&'732675#"5327&&#"lspq;Csܼy\*o')eTH,hmJ 9/EX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#3;mwyo)wwaj:Ǒv: ? 9EX/>YEX/>Y а / +X!Y01!#3462"&"xx,L--L,:9"//D..K5 K 9 EX / >YEX/>Y  +X!Y а/  +X!Y01#"'73252#"&4663,.<',,'&++:Ec /D..D/ QEX/ >YEX/>YEX/>YEX / >Y 9 в901#373#xxq5!c)z8"EX/ >YEX/>Y01!#3"xxN x!"9EX/>YEX / >YEX/>YEX / >YEX/>YEX/>Y 9 9  +X!Y01663 663 #&&##&&#"# YEX/>YEX/>YEX/>Y9  +X!Y016632#&&#"#=nwyo)w:di:Ǒv:Z NE 9EX/>YEX / >Y +X!Y +X!Y0146632#"5326554&&#"Zy݌ y܍xɣ\k-/ |q`Np9 EX / >YEX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vwouxn*+mלڙje]bl`Nm9EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273##"5327&&#"lrpxv׾y`-i')&&,aiNG 9EX / >YEX/>YEX/>Y  +X!Y 901&#"#3632&+p!wu_2}w: eN%m &'9EX / >YEX/>Y 9 9+ ; ]  +X!Y +X!Y  9# +X!Y014&$&&54632#4&#"#"&53326$M֧xyvw;Lݲx}Yl=OrQ_~iTQYJTvTiunIOa9EX/>YEX/>YEX / >Yа/ +X!Y  +X!Yа013#327#"&5#53VALC/Q{pOb/ZX bb:Q 9EX/>YEX / >YEX/>YEX/>Y 9  +X!Y01%#"&'33 73#TlwExtO&:89EX/>YEX/>YEX/>Y901%3#3I{laj{:?:YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  901%7373#'#3f|f f{]bZ;<:0: SEX/>YEX / >YEX/>YEX/>Y 9 99 9013##3$̍~6' K:D9EX/>YEX/>YEX/>Y9  +X!Y01%3#"''26773<2Y+1>Xm&5h8cWj1W: FEX/>YEX/>Y +X!Y9 +X!Y 9017!!5!5!eeX{gYDl=- 9 // 9/ +X!Y901&&55#525667}l2h3ONIMQ/EX/>Y01#3ee l_=- 9 // 9/ +X!Y9016547&55'73" 窨Q$DDR?3~m1N ? 9EX / >YEX/>Y  +X!Yа/013#"&462o|,L--L,e"..D..w &!Q"#9//EX/>YEX/>Y +X!Y аа +X!Y01%2673#5&554753#&&#"E{ s͔xӺxsQr$#Ҝ#]F!q"#9EX/>YEX/>Y9/ +X!Y +X!Yаа ав9 +X!Y01!!53676'#534632#4&#"! Bb3 ݹ{} XZhh ^JRh"ӱhm_*A+,9 EX/>Yа/  +X!Y( +X!Y01%#"''7&547'76 7326654&& kNq⥛U|UVzV HQV㫫WXשW{q9EX/>YEX / >Y 9 9/а/ +X!Y  +X!Y аааа013!!!!#!5!5!5!3mq9f{b9rYXDXY/EX/>Y+013#3xxxf_6E%FG9%> /EX%/%>Y?% 9? +X!Y?9 а  +X!Y7% 972 +X!Y729%)а%, +X!Y01#"&'&5732654&&$&&5467&&54$32#4&#"%6654&'_{m[amDxϱEYujV\x>ĽXglvG\pd!0n89rqM^N`ged!/l͒sO^L-3g tYS`L8 sVbv8$ / +X!Y аа/01462"&%462"&,L--L,,L--L,t"//"!.. "//"!..k(7899а4EX,/,>YEX4/4>Y4,9/],49/] 9 +X!Y +X!Y94 +X!Y,% +X!Y01 &5546 #4#"3265%32$54$#"4$ #"$aԷ*cj~ljm£&"ݧڠUKJ_ԵZաࢍ[jvz̴31ЮZX%&'9EX/>Y&9/а/9 9 / +X!Y 9@ ,<L\] +X!Y ! +X!Y01&'#"&5463354&#"'4632%2675#"WuPQZgk|5s+3ludnz=U^GHf\WQ<,~{@&D|/а/ +X!Y01#!5!xL,jf 2;:<=9:а:а:!EX/>YEX / >Y +X!Y +X!Y 9/ 9 /  ]3 93/ +X!Y&39-а ; +X!Y014$  $7 $54$#"#!2#&54&#'32654&'#fKKvU#N$ݫݦbH8 fKZQiWjZXdẕ50G{}@mD$YJ[TEUI?9/ +X!Y01!5!k?av >9EX/>Y а / +X!Y +X!Y01#"&4622654&#"vdeƏsYVVBAZhΓgCXXCEZZT A /EX / >Y а  +X!Yа  +X!Y901!!#!5!3!5!ayobobC=fJf eLW9EX/>YEX/>Y +X!Yв9 +X!Y 9901!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7G&w '(9EX/>YEX/>Y9|/oq +X!Y 9% +X!Y%9%9  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]ISH<>JJ:`|xf8^*f|g>QLB|/а/]/013#;i`:e9EX/>YEX/>YEX/>YEX / >YEX/>Y +X!Y  9 90132673#'#"'#~xmbոWw:stƚ}S! + 9EX / >YEX/>Y 901!#"&&54$33lv tՋP{M # 9EX/>Y +X!Y01462"&,P..P,#00F//bM\9EX/>YEX/>Y ,] 0]9/ +X!Y  +X!Y013#'2654&'7 YqWY@\lNA7:,~3EX/>YEX/>Y9/ +X!Y01#5%3jDFZk B 9 EX/>Y 9 / +X!Y +X!Y014632#"&5326554&"lqhcstsl^rx_susC&Qsw''EX/>Y01d''EX / >Y01v''4/EX!/!>Y01XTM#\ $%9 EX!/!>YEX/>Y! +X!Yа/9  +X!Y90132673#"&5467677"&5462'2QwxҫjU,L--L,{viuȭoʇGmEO"//"!..9EX/>YEX/>YEX/>Y9/ +X!Y +X!Y 9 // ]  +X!Y +X!Y901!!!#!!!!!!q`JM #{ff=]d 8/ 9 / 9 9 9в 9  0177]fOVWOfOm^P^POl} )h*+9а&EX/>YEX/>Y9#9#а +X!Y$а& +X!Y01#"'#7&54$3273&#"%4'32ehkg zxwyPkФaٸT3ӎ#T+ H Y9EX/>YEX / >Y 9/ 9/  +X!Y +X!Y01!2!#!26&'/EqxxDf{kH,P#-.9/EX/>YEX/>Y9 +X!Y"9* +X!Y01!#4632#"&'732654.54654&#"xGSYԤT("%CzX\~~[g٩:`R08hO0 e4b=qM`T]wUzN+7?Ȳ@A9/а;EX/>YEX/>YEX/>YEX/>Y9 9 / +X!Y 99<9YEX/>Y9/ +X!Y" +X!Y) +X!Y01#"&&5432&''7&'77'&&#"3265+p~|d;*3Ή'36'oZehn{MCIjCgHyI9S`ҹgeH. S9а/ +X!Y +XY +XY +XY +XY01!5!462"&462"&.,P..P,,P..P,tH#00F//#00F..Yt#-h./9 а*EX/>YEX/>Y9'9'а  +X!Y(а* +X!Y014663273#"'#7&&53&#"%4&'3265Yy݌rdN^d^hz܌l\O^cdnwGEK[B?}DV-0H!)Gn=+ g?"`f9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326vxxuxn**pלjeZc :EX/>YEX/>Y01!#3 xx:l #$%9EX / >YEX/>YEX/>YEX/>Y +X!Y9//] +X!Y +X!Y +X!Y  +X!Y01!!#"&'4632!!!!!27&#" zGW}tv :ih^N!.6789'а2EX/>YEX / >YEX/>YEX/>Y 93 93/ +X!Y +X!Y 9 9%в) 9, +X!Y / +X!Y01466326632!327#"&'#"5326554& "!54&^yۊ><~ƚs4:=ۍxƢ-~`wR|/ ʟ2/ +XYааа//]901#'#573omL u1 1 /а/?O]  +X!Y +X!Y014632"&732654&#"uqPOrnnMB21DF/1CsPnnPOllO2BA35BDj >/а/] а /  +X!Y +X!Y 01#"&#"'46323265 qRL9/?ZmV0D<=).A`un>8\x"*"B8FL@~Gvff@ba6 9/а/01#546HZwK3vp\>K 9/а/01'6753GZvK4ye) 9/а/а/01'6773pGSw4oweca2&DK &)+ 9 /а/ а /а/а/01'6753'6753pGYw^GXx4{ف4z 9/ +XY014632#"&5fSRffSTfOdaM(Q`bQs&'7l/9/01#53i'i+|{{a/9/01#'j>yO //017'JJy0r0;EX / >Y 01S% &'9EX/>YEX / >Y% 9%/ +X!Y  +X!Yа%а%а/@ /?] +X!Y +X!Y а"01!327#"5#535#5332&#"!!!1]uf trc pm]3"k&YZ,m#Z/ +X!Y01!5!Cf09EX/>YEX/>YEX/>YEX/ >YEX/>YEX/>Y +X!Yа  +X!Yа013#5354632&#"3#!#3䴴z~Dxxbo;g5mb(:?o9EX/>YEX/>YEX/ >YEX / >YEX/>Y +X!Y +X!Y а 01&#"!!##5356632#7bgpx|w{qb(b=(?&*+,9(EX/>YEX/>YEX/>YEX)/)>YEX/ >YEX/>YEX"/">YEX'/'>Y +X!Yаа +X!Y а а!а$а%013#5354632&#"!54632&#"3##!!#3򳳩D; 2;cnͼ}|w3xxbd {qo;g5kb((:?)*+9EX/>YEX/>YEX!/!>YEX/ >YEX/>YEX/>YEX%/%>Y +X!Yа  +X!Yа а#а$а'а(013#5354632&#"!56632#&#"!!#!򳳩D; 2;cn}xbgpw3bd {q=({qb((L [9EX/>YEX/>Y +X!Y99 +X!Y 9901!!5654&#"#462!@jQOW^iv7K:nI?MYIl|fez7~:EX/>YEX/>Y9/ +X!Y901!#5%3jDFZkW H9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632'4&#"325iYXZXF t{s~G &r '(9EX/>YEX/>Y9|/ +X!Y 9% +X!Y%99  +X!Y0136654&#"#4632#"&5332654## VQ_VQL`iwLFjiTW]IH<>JJ:`|xf8^*f|g>QLB; SEX / >YEX/>Y 9//] +X!Yа в 9 9013##5!'3!7iqov!XB2lp9EX/>YEX / >Y +X!Y 9/ 9 9  +X!Y +X!Y 901!!632#"&'33254&#"1B^|sh`E`ZS2[&uz{dECM^ `^ !9 EX/>YEX / >Y +X!Y 9/ +X!Y  +X!Y01 632#"&55467"32654&Kt|dž9igSK`^Y[wt@;/0^ngOQ_>3EX/>YEX/>Y +X!Y901#!5!onU(YO !-t ./9 а %EX/>YEX / >Y+ 9|+/ +X!Y+9+9  +X!Y% +X!Y01#"&5467&&546324&"264&#"326}H=FUTG=Hz{Thfge\HKVZIJXF=\cDgxxgDd[=dvw0?ON@DIL:LK;YEX/>Y9//] +X!Y +X!Y +X!Y01#"&54632#73$26754&#"Guz(@_bQMa_XYvxFV=03jjoeWEX / >Y01;EX / >Y 01lEX/>Y01`EX/>Y01>EX/>Y01OEX/>Yа%01KEX/>Y011P!kEX/>YEX/>Y9/_]/]O_q +X!Yа +X!Y +X!Y013#53!2#!!254'!!ֵ!4f†Ҥ1.;&%D;EX/>Y 01;&%u;EX/>Y 011&%;EX/>Y01&%DEX/>Y01&%j;q&%M@EX/>Yܰ01D&'yBA&)DAEX/>Y 01BA&)uAEX/>Y01B7&)AEX/>Y01B&)jA \A&-DAEX/>Y01A&-uNAEX/>Y01)7&-^AEX/>Y01B&-j^A&2 DEX/>Y 01}G&3DGGEX / >Y01}G&3uGEX / >Y 01}=&3GEX / >Y"01}#&3PEX / >Y!01} &3jG;&9D>;EX / >Y01;&9u;EX/>Y011&9;EX / >Y01&9j;5&=u5EX/>Y 01d&EDEX/>Y+01d&EuEX/>Y,01d&EEX/>Y.01d&E EX/>Y-01d&Ejd6&EEX/>Y3ܰ801^DN&GyWZ&IDEX / >Y!01Z&IusEX / >Y"01Z&IEX / >Y$01Z&Ij1&D{ /01&u# /01&3EX/>Y01&j3&REX/>Y01Z &SDEX/>Y 01Z &SuxEX/>Y!01Z &SEX/>Y#01Z &SEX/>Y"01Z &Sj&YDEX/>Y01&YuzEX / >Y01&YEX/>Y01&Yj K&]u>EX/>Y01 K&]jMYr`````=DGz a_u)5 @ F  y  I m R ^7f5m/f*F+= H R d2v zA`8Wc2L !!0!U!!"""8"R"l"#@#}#$O$%x%&@&''9'(i(()))))F)a))))))**6*I*]**+`+,R,-0-^-..a./'/T/0:0N0b0t000000161M1d1{111111222*2A2X2d2{22222233(343K3b3y333333444(4:4K4b4n44444455525>5U5`#+_<.R s dLUosml\w!eK<J1-oxooioboCoooMojoe<Mm%|TNq2=x!gG 7j}jyX4B,=7Z'0TMtIgIdo^rl"Z?plde{Zovl ee&?0 WD z[w]m fqek{]|jfj=TLG@|tSb~ss d6vXI0]j}UHtY~yld^p{u{j6,}lbl>a)dciDQ)!alaa>;oSL0[???L~WG;l`>OKW;l`>OKJ1[!2! !!!j}j}j}j}j}BBBBIdIdIdIdIdId^"Z"Z"Z"Ze{Z{Z{Z{Z{Zeeee l 7 E o,33f'CGOOG@"f :   hL8  ~1S    " & : D t " 1R    " & 9 D t " Z:~{zwtbY*ގ*4^ '  ~co11RS       " " & & 9 : D D t t "",K PXYD _^-, EiD`-,*!-, F%FRX#Y Id F had%F hadRX#eY/ SXi TX!@Yi TX!@eYY:-, F%FRX#Y F jad%F jadRX#Y/-,K &PXQXD@DY!! EPXD!YY-, EiD` E}iD`-,*-,K &SX@Y &SX#!#Y &SX#!#Y &SX#!#Y &SX#!@#Y &SX%EPX#!#!%E#!#!Y!YD- ,KSXED!!Y- ,*E- ,+E- ,' SX@cTX*pY#SX TX*pYYY- ,@ ZX+D+DY- ++ + + :0)+mYE2+~gP8+v`K6+dN:+G:)+w\:#+mYE2+QB4%+ 9/$+ w\:#+ v`K6+ gJ,++ E}iDsPttpu?s_ss/tOtottttu?u_uusousst_tttt?u/ so s?(s*hZ`VNnN`F`9 ! :[f ^ ^ v ^ ^ &  TCopyright 2011 Google Inc. All Rights Reserved.Roboto LightRegularVersion 2.137; 2017Roboto-Lighthttp://www.apache.org/licenses/LICENSE-2.0jdN %>E^yy y 0>DFLTcyrlgreklatnkern .E"(:@.@bt&4Nd~E %'()*/034568:;=>?IJLOQRSVXZ[]_8:;= 0%V.8EGHIKSUVYZ]VVVVVV[[X8:;=8:=V[m|(M AVa A Va[.9  AGHIKUa GHIKUJX2[S.9 L O P SW[ [ #X[ AaJ[ AJVXam|J P x -& v8{qQV %),4 8>EGIILLQTVV"ZZ#\^$'(./U[5 %%&&''(()).. // 00334488 99 ::;;<<== >>EEFFGGIILLQRSSTTVVZZ \\]] ^^  5 %%''++..33557788 99 ::;;<<== >>EEGIKKQRSSTTUUWW YYZZ\\]]^^   DFLTcyrlgreklatn*.AZE JCRT JFRA `${chunk.id}.${chunk.name}.css`, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/000077500000000000000000000000001516122265000247145ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/async.css000066400000000000000000000000311516122265000265350ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/000077500000000000000000000000001516122265000265155ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/000077500000000000000000000000001516122265000327515ustar00rootroot000000000000000.0ca34a06508c170bc52a.css000066400000000000000000000000321516122265000363230ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule.async { color: red; } 0ca34a06508c170bc52a.css000066400000000000000000000000351516122265000361700ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5-importModulebody { background: red; } async.js000066400000000000000000000004011516122265000343400ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[0],{ /***/ 2 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ } }]);main.js000066400000000000000000000357611516122265000341700ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + "async" + ".js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get mini-css chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + "." + __webpack_require__.h() + ".css"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { /******/ __webpack_require__.h = () => ("0ca34a06508c170bc52a") /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/css loading */ /******/ (() => { /******/ if (typeof document === "undefined") return; /******/ var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => { /******/ var linkTag = document.createElement("link"); /******/ /******/ linkTag.rel = "stylesheet"; /******/ linkTag.type = "text/css"; /******/ if (__webpack_require__.nc) { /******/ linkTag.nonce = __webpack_require__.nc; /******/ } /******/ var onLinkComplete = (event) => { /******/ // avoid mem leaks. /******/ linkTag.onerror = linkTag.onload = null; /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { /******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; /******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); /******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; /******/ if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag) /******/ reject(err); /******/ } /******/ } /******/ linkTag.onerror = linkTag.onload = onLinkComplete; /******/ linkTag.href = fullhref; /******/ /******/ /******/ if (oldTag) { /******/ oldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling); /******/ } else { /******/ document.head.appendChild(linkTag); /******/ } /******/ return linkTag; /******/ }; /******/ var findStylesheet = (href, fullhref) => { /******/ var existingLinkTags = document.getElementsByTagName("link"); /******/ for(var i = 0; i < existingLinkTags.length; i++) { /******/ var tag = existingLinkTags[i]; /******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); /******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; /******/ } /******/ var existingStyleTags = document.getElementsByTagName("style"); /******/ for(var i = 0; i < existingStyleTags.length; i++) { /******/ var tag = existingStyleTags[i]; /******/ var dataHref = tag.getAttribute("data-href"); /******/ if(dataHref === href || dataHref === fullhref) return tag; /******/ } /******/ }; /******/ var loadStylesheet = (chunkId) => { /******/ return new Promise((resolve, reject) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ if(findStylesheet(href, fullhref)) return resolve(); /******/ createStylesheet(chunkId, fullhref, null, resolve, reject); /******/ }); /******/ } /******/ // object to store loaded CSS chunks /******/ var installedCssChunks = { /******/ 1: 0 /******/ }; /******/ /******/ __webpack_require__.f.miniCss = (chunkId, promises) => { /******/ var cssChunks = {"0":1}; /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { /******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { /******/ installedCssChunks[chunkId] = 0; /******/ }, (e) => { /******/ delete installedCssChunks[chunkId]; /******/ throw e; /******/ })); /******/ } /******/ }; /******/ /******/ // no hmr /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 1: 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { /******/ // JSONP chunk loading for javascript /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ if(true) { // all chunks have JS /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(__webpack_require__.o(installedChunks, chunkId)) { /******/ installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; /******/ if(installedChunkData) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ installedChunkData[1](error); /******/ } /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); /******/ } /******/ } /******/ } /******/ }; /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ // no on chunks loaded /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* eslint-disable-next-line no-unused-expressions */ __webpack_require__.e(/* import() | async */ 0).then(__webpack_require__.bind(__webpack_require__, 2)); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5/000077500000000000000000000000001516122265000302735ustar00rootroot000000000000000.605c3e6592e34107bde4.css000066400000000000000000000000321516122265000336150ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5.async { color: red; } 605c3e6592e34107bde4.css000066400000000000000000000000351516122265000334620ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5/async.js000066400000000000000000000004011516122265000317410ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[0],{ /***/ 2 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ } }]);mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js000066400000000000000000000357611516122265000315710ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + "async" + ".js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get mini-css chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + "." + __webpack_require__.h() + ".css"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { /******/ __webpack_require__.h = () => ("605c3e6592e34107bde4") /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/css loading */ /******/ (() => { /******/ if (typeof document === "undefined") return; /******/ var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => { /******/ var linkTag = document.createElement("link"); /******/ /******/ linkTag.rel = "stylesheet"; /******/ linkTag.type = "text/css"; /******/ if (__webpack_require__.nc) { /******/ linkTag.nonce = __webpack_require__.nc; /******/ } /******/ var onLinkComplete = (event) => { /******/ // avoid mem leaks. /******/ linkTag.onerror = linkTag.onload = null; /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { /******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; /******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); /******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; /******/ if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag) /******/ reject(err); /******/ } /******/ } /******/ linkTag.onerror = linkTag.onload = onLinkComplete; /******/ linkTag.href = fullhref; /******/ /******/ /******/ if (oldTag) { /******/ oldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling); /******/ } else { /******/ document.head.appendChild(linkTag); /******/ } /******/ return linkTag; /******/ }; /******/ var findStylesheet = (href, fullhref) => { /******/ var existingLinkTags = document.getElementsByTagName("link"); /******/ for(var i = 0; i < existingLinkTags.length; i++) { /******/ var tag = existingLinkTags[i]; /******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); /******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; /******/ } /******/ var existingStyleTags = document.getElementsByTagName("style"); /******/ for(var i = 0; i < existingStyleTags.length; i++) { /******/ var tag = existingStyleTags[i]; /******/ var dataHref = tag.getAttribute("data-href"); /******/ if(dataHref === href || dataHref === fullhref) return tag; /******/ } /******/ }; /******/ var loadStylesheet = (chunkId) => { /******/ return new Promise((resolve, reject) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ if(findStylesheet(href, fullhref)) return resolve(); /******/ createStylesheet(chunkId, fullhref, null, resolve, reject); /******/ }); /******/ } /******/ // object to store loaded CSS chunks /******/ var installedCssChunks = { /******/ 1: 0 /******/ }; /******/ /******/ __webpack_require__.f.miniCss = (chunkId, promises) => { /******/ var cssChunks = {"0":1}; /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { /******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { /******/ installedCssChunks[chunkId] = 0; /******/ }, (e) => { /******/ delete installedCssChunks[chunkId]; /******/ throw e; /******/ })); /******/ } /******/ }; /******/ /******/ // no hmr /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 1: 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { /******/ // JSONP chunk loading for javascript /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ if(true) { // all chunks have JS /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(__webpack_require__.o(installedChunks, chunkId)) { /******/ installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; /******/ if(installedChunkData) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ installedChunkData[1](error); /******/ } /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); /******/ } /******/ } /******/ } /******/ }; /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ // no on chunks loaded /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* eslint-disable-next-line no-unused-expressions */ __webpack_require__.e(/* import() | async */ 0).then(__webpack_require__.bind(__webpack_require__, 2)); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/index.js000066400000000000000000000002031516122265000263540ustar00rootroot00000000000000import "./style.css"; /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "async" */ "./async.css"); mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/style.css000066400000000000000000000000341516122265000265630ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/chunkFilename-fullhash/webpack.config.js000066400000000000000000000004761516122265000301410ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[fullhash].css", chunkFilename: "[id].[fullhash].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/chunkFilename/000077500000000000000000000000001516122265000231105ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename/async.css000066400000000000000000000000311516122265000247310ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/chunkFilename/expected/000077500000000000000000000000001516122265000247115ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/chunkFilename/expected/0.async.css000066400000000000000000000000321516122265000266710ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/chunkFilename/expected/main.css000066400000000000000000000000351516122265000263450ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/chunkFilename/index.js000066400000000000000000000002031516122265000245500ustar00rootroot00000000000000import "./style.css"; /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "async" */ "./async.css"); mini-css-extract-plugin-2.10.2/test/cases/chunkFilename/style.css000066400000000000000000000000341516122265000247570ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/chunkFilename/webpack.config.js000066400000000000000000000004661516122265000263340ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", chunkFilename: "[id].[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/commonjs-module-syntax/000077500000000000000000000000001516122265000247735ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/commonjs-module-syntax/expected/000077500000000000000000000000001516122265000265745ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/commonjs-module-syntax/expected/main.css000066400000000000000000000001421516122265000302270ustar00rootroot00000000000000.foo__style__a { background: red; } .foo__style__b { color: green; } .c { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/commonjs-module-syntax/index.js000066400000000000000000000000261516122265000264360ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/commonjs-module-syntax/style.css000066400000000000000000000001321516122265000266410ustar00rootroot00000000000000.a { background: red; } :local(.b) { color: green; } :global(.c) { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/commonjs-module-syntax/webpack.config.js000066400000000000000000000011041516122265000302050ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { esModule: false }, }, { loader: "css-loader", options: { modules: { mode: "local", localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/composes-async/000077500000000000000000000000001516122265000233025ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/composes-async/async-1.css000066400000000000000000000001201516122265000252600ustar00rootroot00000000000000:local .base { composes: composed from "./async-2.css"; background: blue; } mini-css-extract-plugin-2.10.2/test/cases/composes-async/async-2.css000066400000000000000000000000521516122265000252650ustar00rootroot00000000000000:local .composed { background: green; } mini-css-extract-plugin-2.10.2/test/cases/composes-async/expected/000077500000000000000000000000001516122265000251035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/composes-async/expected/async-1.css000066400000000000000000000000371516122265000270700ustar00rootroot00000000000000.base { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/composes-async/expected/dedupe.css000066400000000000000000000000441516122265000270610ustar00rootroot00000000000000.composed { background: green; } mini-css-extract-plugin-2.10.2/test/cases/composes-async/index.js000066400000000000000000000003401516122265000247440ustar00rootroot00000000000000/* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "async-1" */ "./async-1.css"); /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "async-2" */ "./async-2.css"); mini-css-extract-plugin-2.10.2/test/cases/composes-async/webpack.config.js000066400000000000000000000012701516122265000265200ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", options: { modules: { localIdentName: "[local]", }, }, }, ], }, ], }, optimization: { splitChunks: { cacheGroups: { cssDedupe: { test: /\.css$/, name: "dedupe", chunks: "all", minChunks: 2, enforce: true, }, }, }, }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/000077500000000000000000000000001516122265000266645ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/expected/000077500000000000000000000000001516122265000304655ustar00rootroot000000000000001.88fb74fe1cb22093f204.css000066400000000000000000000000601516122265000340720ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/expected.a { width: 100px; } .b { width: 100px; } 2.52b14831e64cae07fa20.css000066400000000000000000000000601516122265000340550ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/expected.b { width: 100px; } .a { width: 100px; } mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/index.js000066400000000000000000000002611516122265000303300ustar00rootroot00000000000000const app1 = import("./one"); const app2 = import("./two"); // eslint-disable-next-line no-console console.log(app1); // eslint-disable-next-line no-console console.log(app2); mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/one.js000066400000000000000000000001051516122265000277770ustar00rootroot00000000000000import "./style1.css"; import "./style2.css"; export default "one"; mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/style1.css000066400000000000000000000000271516122265000306160ustar00rootroot00000000000000.a { width: 100px; } mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/style2.css000066400000000000000000000000271516122265000306170ustar00rootroot00000000000000.b { width: 100px; } mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/two.js000066400000000000000000000001051516122265000300270ustar00rootroot00000000000000import "./style2.css"; import "./style1.css"; export default "two"; mini-css-extract-plugin-2.10.2/test/cases/content-entries-with-same-import/webpack.config.js000066400000000000000000000005261516122265000321050ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, output: { filename: "[name].[contenthash].js", }, plugins: [ new Self({ filename: "[name].[contenthash].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/contenthash-1/000077500000000000000000000000001516122265000230135ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash-1/expected/000077500000000000000000000000001516122265000246145ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash-1/expected/main.8c5b220bf6f482881a90.css000066400000000000000000000000011516122265000310020ustar00rootroot00000000000000 mini-css-extract-plugin-2.10.2/test/cases/contenthash-1/index.js000066400000000000000000000001211516122265000244520ustar00rootroot00000000000000/* eslint-disable */ async () => await import("./lib.js"); import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/contenthash-1/lib.js000066400000000000000000000000001516122265000241050ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash-1/style.css000066400000000000000000000000001516122265000246530ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash-1/webpack.config.js000066400000000000000000000006241516122265000262330ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", mode: "production", cache: { type: "filesystem", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, output: { filename: "[name].[contenthash].js", }, plugins: [ new Self({ filename: "[name].[contenthash].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/000077500000000000000000000000001516122265000261555ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/entryA.js000066400000000000000000000000561516122265000277560ustar00rootroot00000000000000import "./styleA.css"; import "./styleB.css"; mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/entryB.js000066400000000000000000000000271516122265000277550ustar00rootroot00000000000000import "./styleA.css"; mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/entryC.js000066400000000000000000000000001516122265000277450ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/entryD.js000066400000000000000000000000561516122265000277610ustar00rootroot00000000000000import "./styleA.css"; import "./styleB.css"; mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/entryE.js000066400000000000000000000000561516122265000277620ustar00rootroot00000000000000import "./styleC.css"; import "./styleD.css"; mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/expected/000077500000000000000000000000001516122265000277565ustar00rootroot000000000000001cd4a7654bac4107104f.css000066400000000000000000000001011516122265000332000ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/expected.styleA { background: red; } .styleB { background: blue; } 788f5dc856f2e114b45c.css000066400000000000000000000000401516122265000332370ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/expected.styleA { background: red; } mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/styleA.css000066400000000000000000000000371516122265000301300ustar00rootroot00000000000000.styleA { background: red; } mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/styleB.css000066400000000000000000000000401516122265000301230ustar00rootroot00000000000000.styleB { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/styleC.css000066400000000000000000000000371516122265000301320ustar00rootroot00000000000000.styleA { background: red; } mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/styleD.css000066400000000000000000000000401516122265000301250ustar00rootroot00000000000000.styleB { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/contenthash-multiple-entries/webpack.config.js000066400000000000000000000007171516122265000314000ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { entryA: "./entryA.js", entryB: "./entryB.js", entryC: "./entryC.js", entryD: "./entryD.js", entryE: "./entryE.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, output: { filename: "[name]-[contenthash].js", }, plugins: [ new Self({ filename: "[contenthash].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/contenthash/000077500000000000000000000000001516122265000226555ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash/expected/000077500000000000000000000000001516122265000244565ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/contenthash/expected/1.main.a45a4571ab5cece12cf0.css000066400000000000000000000000351516122265000312670ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/contenthash/expected/2.main.c282a646790b09956021.css000066400000000000000000000000371516122265000305740ustar00rootroot00000000000000body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/contenthash/index.js000066400000000000000000000001071516122265000243200ustar00rootroot00000000000000// eslint-disable-next-line import/no-unresolved import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/contenthash/style1.css000066400000000000000000000000341516122265000246050ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/contenthash/style2.css000066400000000000000000000000361516122265000246100ustar00rootroot00000000000000body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/contenthash/webpack.config.js000066400000000000000000000007571516122265000261040ustar00rootroot00000000000000import Self from "../../../src"; module.exports = [1, 2].map((n) => { return { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, output: { filename: `${n}.[name].js`, }, resolve: { alias: { "./style.css": `./style${n}.css`, }, }, plugins: [ new Self({ filename: `${n}.[name].[contenthash].css`, }), ], }; }); mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-functional-exports/000077500000000000000000000000001516122265000277305ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-functional-exports/app/000077500000000000000000000000001516122265000305105ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-functional-exports/app/index.js000066400000000000000000000001531516122265000321540ustar00rootroot00000000000000import { cnA, cnB } from "./style.css"; // eslint-disable-next-line no-console console.log(cnA(), cnB()); mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-functional-exports/app/mockLoader.js000066400000000000000000000004751516122265000331340ustar00rootroot00000000000000export default function loader() { const callback = this.async(); callback( null, `export default [ [module.id, ".class-name-a {background: red;}", ""], [module.id, ".class-name-b {background: blue;}", ""], ]; export var cnA = () => "class-name-a"; export var cnB = () => "class-name-b";`, ); } mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-functional-exports/app/style.css000066400000000000000000000001141516122265000323560ustar00rootroot00000000000000.class-name-a { background: red; } .class-name-b { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-functional-exports/expected/000077500000000000000000000000001516122265000315315ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-functional-exports/expected/main.css000066400000000000000000000001031516122265000331610ustar00rootroot00000000000000.class-name-a {background: red;} .class-name-b {background: blue;} mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-functional-exports/expected/main.js000066400000000000000000000063241516122265000330200ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ cnA: () => (/* binding */ _1), /* harmony export */ cnB: () => (/* binding */ _2) /* harmony export */ }); // extracted by mini-css-extract-plugin var _1 = () => "class-name-a"; var _2 = () => "class-name-b"; /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log((0,_style_css__WEBPACK_IMPORTED_MODULE_0__.cnA)(), (0,_style_css__WEBPACK_IMPORTED_MODULE_0__.cnB)()); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-functional-exports/webpack.config.js000066400000000000000000000005251516122265000331500ustar00rootroot00000000000000import path from "path"; import Self from "../../../src"; module.exports = { entry: "./index.js", context: path.resolve(__dirname, "app"), module: { rules: [ { test: /\.css$/, use: [Self.loader, "./mockLoader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/000077500000000000000000000000001516122265000305615ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/app/000077500000000000000000000000001516122265000313415ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/app/img.png000066400000000000000000002304451516122265000326330ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/app/index.js000066400000000000000000000000261516122265000330040ustar00rootroot00000000000000import "./style.css"; mockLoader.js000066400000000000000000000006621516122265000337040ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/appexport default function loader() { const callback = this.async(); callback( null, `export default [ [module.id, ".foo {background: url(" + new URL("./img.png", import.meta.url) + ")}", ""], [module.id, ".bar {background: url(" + new URL("../outer-img.png", import.meta.url) + ")}", ""], [module.id, ".baz {background: url(" + new URL("./nested/nested-img.png", import.meta.url) + ")}", ""] ]`, ); } mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/app/nested/000077500000000000000000000000001516122265000326235ustar00rootroot00000000000000nested-img.png000066400000000000000000002304451516122265000353160ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/app/nestedPNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/app/style.css000066400000000000000000000000361516122265000332120ustar00rootroot00000000000000.class { background: red; } mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/expected/000077500000000000000000000000001516122265000323625ustar00rootroot00000000000000webpack-5-importModule/000077500000000000000000000000001516122265000365375ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/expectedmain.css000066400000000000000000000002021516122265000401670ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/expected/webpack-5-importModule.foo {background: url(public/img.png)} .bar {background: url(outer-img.png)} .baz {background: url(public/nested/nested-img.png)} webpack-5/000077500000000000000000000000001516122265000340615ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/expectedmain.css000066400000000000000000000002141516122265000355140ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/expected/webpack-5.foo {background: url(public/img.png)} .bar {background: url(public/../outer-img.png)} .baz {background: url(public/nested/nested-img.png)} mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1/outer-img.png000066400000000000000000002304451516122265000332070ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`webpack.config.js000066400000000000000000000011641516122265000337220ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-1import path from "path"; import Self from "../../../src"; module.exports = { entry: "./index.js", context: path.resolve(__dirname, "app"), module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "public/", }, }, "./mockLoader", ], }, { test: /\.png$/, type: "asset/resource", generator: { filename: "[path][name][ext]", }, }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/000077500000000000000000000000001516122265000313715ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/app/000077500000000000000000000000001516122265000321515ustar00rootroot00000000000000img.png000066400000000000000000002304451516122265000333640ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/appPNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`index.js000066400000000000000000000000261516122265000335350ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/appimport "./style.css"; mockLoader.js000066400000000000000000000006621516122265000345140ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/appexport default function loader() { const callback = this.async(); callback( null, `export default [ [module.id, ".foo {background: url(" + new URL("./img.png", import.meta.url) + ")}", ""], [module.id, ".bar {background: url(" + new URL("../outer-img.png", import.meta.url) + ")}", ""], [module.id, ".baz {background: url(" + new URL("./nested/nested-img.png", import.meta.url) + ")}", ""] ]`, ); } nested/000077500000000000000000000000001516122265000333545ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/appnested-img.png000066400000000000000000002304451516122265000361260ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/app/nestedPNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`style.css000066400000000000000000000000361516122265000337430ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/app.class { background: red; } mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/expected/000077500000000000000000000000001516122265000331725ustar00rootroot00000000000000main.css000066400000000000000000000001671516122265000345550ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-auto/expected.foo {background: url(img.png)} .bar {background: url(../outer-img.png)} .baz {background: url(nested/nested-img.png)} outer-img.png000066400000000000000000002304451516122265000337400ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-autoPNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`webpack.config.js000066400000000000000000000011611516122265000345270ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-autoimport path from "path"; import Self from "../../../src"; module.exports = { entry: "./index.js", context: path.resolve(__dirname, "app"), module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "auto", }, }, "./mockLoader", ], }, { test: /\.png$/, type: "asset/resource", generator: { filename: "[path][name][ext]", }, }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-auto/000077500000000000000000000000001516122265000330135ustar00rootroot00000000000000app/000077500000000000000000000000001516122265000335145ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-autoimg.png000066400000000000000000002304451516122265000350060ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-auto/appPNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`index.js000066400000000000000000000000261516122265000351570ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-auto/appimport "./style.css"; mockLoader.js000066400000000000000000000006621516122265000361360ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-auto/appexport default function loader() { const callback = this.async(); callback( null, `export default [ [module.id, ".foo {background: url(" + new URL("./img.png", import.meta.url) + ")}", ""], [module.id, ".bar {background: url(" + new URL("../outer-img.png", import.meta.url) + ")}", ""], [module.id, ".baz {background: url(" + new URL("./nested/nested-img.png", import.meta.url) + ")}", ""] ]`, ); } nested/000077500000000000000000000000001516122265000347765ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-auto/appnested-img.png000066400000000000000000002304451516122265000375500ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-auto/app/nestedPNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`style.css000066400000000000000000000000361516122265000353650ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-auto/app.class { background: red; } expected/000077500000000000000000000000001516122265000345355ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-automain.css000066400000000000000000000001671516122265000361770ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-auto/expected.foo {background: url(img.png)} .bar {background: url(../outer-img.png)} .baz {background: url(nested/nested-img.png)} outer-img.png000066400000000000000000002304451516122265000353620ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-autoPNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`webpack.config.js000066400000000000000000000007471516122265000361620ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path-default-autoimport path from "path"; import Self from "../../../src"; module.exports = { entry: "./index.js", context: path.resolve(__dirname, "app"), module: { rules: [ { test: /\.css$/, use: [Self.loader, "./mockLoader"], }, { test: /\.png$/, type: "asset/resource", generator: { filename: "[path][name][ext]", }, }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/000077500000000000000000000000001516122265000304235ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/app/000077500000000000000000000000001516122265000312035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/app/img.png000066400000000000000000002304451516122265000324750ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/app/index.js000066400000000000000000000000261516122265000326460ustar00rootroot00000000000000import "./style.css"; mockLoader.js000066400000000000000000000006621516122265000335460ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/appexport default function loader() { const callback = this.async(); callback( null, `export default [ [module.id, ".foo {background: url(" + new URL("./img.png", import.meta.url) + ")}", ""], [module.id, ".bar {background: url(" + new URL("../outer-img.png", import.meta.url) + ")}", ""], [module.id, ".baz {background: url(" + new URL("./nested/nested-img.png", import.meta.url) + ")}", ""] ]`, ); } mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/app/nested/000077500000000000000000000000001516122265000324655ustar00rootroot00000000000000nested-img.png000066400000000000000000002304451516122265000351600ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/app/nestedPNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/app/style.css000066400000000000000000000000361516122265000330540ustar00rootroot00000000000000.class { background: red; } mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/expected/000077500000000000000000000000001516122265000322245ustar00rootroot00000000000000webpack-5-importModule/000077500000000000000000000000001516122265000364015ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/expectedmain.css000066400000000000000000000002051516122265000400340ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/expected/webpack-5-importModule.foo {background: url(/public/img.png)} .bar {background: url(/outer-img.png)} .baz {background: url(/public/nested/nested-img.png)} webpack-5/000077500000000000000000000000001516122265000337235ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/expectedmain.css000066400000000000000000000002171516122265000353610ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/expected/webpack-5.foo {background: url(/public/img.png)} .bar {background: url(/public/../outer-img.png)} .baz {background: url(/public/nested/nested-img.png)} mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-path/outer-img.png000066400000000000000000002304451516122265000330510ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`webpack.config.js000066400000000000000000000011651516122265000335650ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/custom-loader-with-new-url-and-public-pathimport path from "path"; import Self from "../../../src"; module.exports = { entry: "./index.js", context: path.resolve(__dirname, "app"), module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "/public/", }, }, "./mockLoader", ], }, { test: /\.png$/, type: "asset/resource", generator: { filename: "[path][name][ext]", }, }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/default-options/000077500000000000000000000000001516122265000234545ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/default-options/expected/000077500000000000000000000000001516122265000252555ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/default-options/expected/main.css000066400000000000000000000000351516122265000267110ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/default-options/index.js000066400000000000000000000000261516122265000251170ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/default-options/style.css000066400000000000000000000000341516122265000253230ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/default-options/webpack.config.js000066400000000000000000000003401516122265000266670ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [new Self()], }; mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/000077500000000000000000000000001516122265000267475ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/entryA.js000066400000000000000000000000271516122265000305460ustar00rootroot00000000000000import "./styleA.css"; mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/entryB.js000066400000000000000000000000271516122265000305470ustar00rootroot00000000000000import "./styleB.css"; mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/entryC.js000066400000000000000000000000271516122265000305500ustar00rootroot00000000000000import "./styleC.css"; mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/entryD.js000066400000000000000000000000271516122265000305510ustar00rootroot00000000000000import "./styleD.css"; mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/expected/000077500000000000000000000000001516122265000305505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/expected/common.css000066400000000000000000000001011516122265000325420ustar00rootroot00000000000000.styleC { background: red; } .styleD { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/expected/common.js000066400000000000000000000145441516122265000324060ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }), /* 2 */, /* 3 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/chunk loaded */ /******/ (() => { /******/ var deferred = []; /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { /******/ if(chunkIds) { /******/ priority = priority || 0; /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; /******/ deferred[i] = [chunkIds, fn, priority]; /******/ return; /******/ } /******/ var notFulfilled = Infinity; /******/ for (var i = 0; i < deferred.length; i++) { /******/ var [chunkIds, fn, priority] = deferred[i]; /******/ var fulfilled = true; /******/ for (var j = 0; j < chunkIds.length; j++) { /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { /******/ chunkIds.splice(j--, 1); /******/ } else { /******/ fulfilled = false; /******/ if(priority < notFulfilled) notFulfilled = priority; /******/ } /******/ } /******/ if(fulfilled) { /******/ deferred.splice(i--, 1) /******/ var r = fn(); /******/ if (r !== undefined) result = r; /******/ } /******/ } /******/ return result; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 0: 0 /******/ }; /******/ /******/ // no chunk on demand loading /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. (() => { var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _styleC_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); })(); // This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _styleD_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); })(); __webpack_exports__ = __webpack_require__.O(__webpack_exports__); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/expected/entry1.css000066400000000000000000000001011516122265000324740ustar00rootroot00000000000000.styleB { background: blue; } .styleA { background: red; } mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/expected/entry1.js000066400000000000000000000023001516122265000323230ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ /* 0 */, /* 1 */, /* 2 */, /* 3 */, /* 4 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _styleB_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); /***/ }), /* 5 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }), /* 6 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _styleA_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7); /***/ }), /* 7 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) ], /******/ __webpack_require__ => { // webpackRuntimeModules /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ var __webpack_exports__ = (__webpack_exec__(6), __webpack_exec__(4)); /******/ } ]);mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/styleA.css000066400000000000000000000000371516122265000307220ustar00rootroot00000000000000.styleA { background: red; } mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/styleB.css000066400000000000000000000000401516122265000307150ustar00rootroot00000000000000.styleB { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/styleC.css000066400000000000000000000000371516122265000307240ustar00rootroot00000000000000.styleC { background: red; } mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/styleD.css000066400000000000000000000000401516122265000307170ustar00rootroot00000000000000.styleD { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/dependOn-multiple-files-per-entry/webpack.config.js000066400000000000000000000005771516122265000321760ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { entry1: { import: ["./entryA.js", "./entryB.js"], dependOn: "common" }, common: ["./entryC.js", "./entryD.js"], }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/dependOn/000077500000000000000000000000001516122265000220735ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/dependOn/entryA.js000066400000000000000000000000271516122265000236720ustar00rootroot00000000000000import "./styleA.css"; mini-css-extract-plugin-2.10.2/test/cases/dependOn/entryB.js000066400000000000000000000000271516122265000236730ustar00rootroot00000000000000import "./styleB.css"; mini-css-extract-plugin-2.10.2/test/cases/dependOn/expected/000077500000000000000000000000001516122265000236745ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/dependOn/expected/common.css000066400000000000000000000000411516122265000256710ustar00rootroot00000000000000.styleB { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/dependOn/expected/common.js000066400000000000000000000136071516122265000255310ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/chunk loaded */ /******/ (() => { /******/ var deferred = []; /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { /******/ if(chunkIds) { /******/ priority = priority || 0; /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; /******/ deferred[i] = [chunkIds, fn, priority]; /******/ return; /******/ } /******/ var notFulfilled = Infinity; /******/ for (var i = 0; i < deferred.length; i++) { /******/ var [chunkIds, fn, priority] = deferred[i]; /******/ var fulfilled = true; /******/ for (var j = 0; j < chunkIds.length; j++) { /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { /******/ chunkIds.splice(j--, 1); /******/ } else { /******/ fulfilled = false; /******/ if(priority < notFulfilled) notFulfilled = priority; /******/ } /******/ } /******/ if(fulfilled) { /******/ deferred.splice(i--, 1) /******/ var r = fn(); /******/ if (r !== undefined) result = r; /******/ } /******/ } /******/ return result; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 0: 0 /******/ }; /******/ /******/ // no chunk on demand loading /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _styleB_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); })(); __webpack_exports__ = __webpack_require__.O(__webpack_exports__); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/dependOn/expected/entry1.css000066400000000000000000000000401516122265000256220ustar00rootroot00000000000000.styleA { background: red; } mini-css-extract-plugin-2.10.2/test/cases/dependOn/expected/entry1.js000066400000000000000000000013621516122265000254560ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ /* 0 */, /* 1 */, /* 2 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _styleA_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); /***/ }), /* 3 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) ], /******/ __webpack_require__ => { // webpackRuntimeModules /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ var __webpack_exports__ = (__webpack_exec__(2)); /******/ } ]);mini-css-extract-plugin-2.10.2/test/cases/dependOn/styleA.css000066400000000000000000000000371516122265000240460ustar00rootroot00000000000000.styleA { background: red; } mini-css-extract-plugin-2.10.2/test/cases/dependOn/styleB.css000066400000000000000000000000401516122265000240410ustar00rootroot00000000000000.styleB { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/dependOn/webpack.config.js000066400000000000000000000005351516122265000253140ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { entry1: { import: "./entryA.js", dependOn: "common" }, common: "./entryB.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-from-loaders/000077500000000000000000000000001516122265000264545ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-from-loaders/expected/000077500000000000000000000000001516122265000302555ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-from-loaders/expected/main.css000066400000000000000000000001011516122265000317030ustar00rootroot00000000000000body { background: red; } /*# sourceMappingURL=main.css.map*/mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-from-loaders/expected/main.css.map000066400000000000000000000002661516122265000324730ustar00rootroot00000000000000{"version":3,"file":"main.css","mappings":"AAAA;EACE,eAAe;AACjB","sources":["webpack:///./style.css"],"sourcesContent":["body {\n background: red;\n}\n"],"names":[],"sourceRoot":""}mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-from-loaders/index.js000066400000000000000000000000261516122265000301170ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-from-loaders/style.css000066400000000000000000000000341516122265000303230ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-from-loaders/webpack.config.js000066400000000000000000000006561516122265000317010ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", devtool: "source-map", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", options: { sourceMap: true, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-no-source-maps-from-loaders/000077500000000000000000000000001516122265000313225ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/000077500000000000000000000000001516122265000331235ustar00rootroot00000000000000main.css000066400000000000000000000000351516122265000345000ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-no-source-maps-from-loaders/expectedbody { background: red; } mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-no-source-maps-from-loaders/index.js000066400000000000000000000000261516122265000327650ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-no-source-maps-from-loaders/style.css000066400000000000000000000000341516122265000331710ustar00rootroot00000000000000body { background: red; } webpack.config.js000066400000000000000000000006571516122265000344710ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map-no-source-maps-from-loadersimport Self from "../../../src"; module.exports = { entry: "./index.js", devtool: "source-map", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", options: { sourceMap: false, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map/000077500000000000000000000000001516122265000240645ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map/expected/000077500000000000000000000000001516122265000256655ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map/expected/main.css000066400000000000000000000001011516122265000273130ustar00rootroot00000000000000body { background: red; } /*# sourceMappingURL=main.css.map*/mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map/expected/main.css.map000066400000000000000000000002661516122265000301030ustar00rootroot00000000000000{"version":3,"file":"main.css","mappings":"AAAA;EACE,eAAe;AACjB","sources":["webpack:///./style.css"],"sourcesContent":["body {\n background: red;\n}\n"],"names":[],"sourceRoot":""}mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map/index.js000066400000000000000000000000261516122265000255270ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map/style.css000066400000000000000000000000341516122265000257330ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/devtool-source-map/webpack.config.js000066400000000000000000000004471516122265000273070ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", devtool: "source-map", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation-modules/000077500000000000000000000000001516122265000265225ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation-modules/a.css000066400000000000000000000000321516122265000274470ustar00rootroot00000000000000.a { background: red; } mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation-modules/b.css000066400000000000000000000000341516122265000274520ustar00rootroot00000000000000.b { background: green; } mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation-modules/c.css000066400000000000000000000000331516122265000274520ustar00rootroot00000000000000.c { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation-modules/expected/000077500000000000000000000000001516122265000303235ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation-modules/expected/main.css000066400000000000000000000001431516122265000317570ustar00rootroot00000000000000.foo__a { background: red; } .foo__b { background: green; } .foo__c { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation-modules/expected/main.js000066400000000000000000000051631516122265000316120ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ // The require scope /******/ var __webpack_require__ = {}; /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { a: () => (/* reexport */ a_namespaceObject), b: () => (/* reexport */ b_namespaceObject), c: () => (/* reexport */ c_1) }); // NAMESPACE OBJECT: ./a.css var a_namespaceObject = {}; __webpack_require__.r(a_namespaceObject); __webpack_require__.d(a_namespaceObject, { a: () => (_1) }); // NAMESPACE OBJECT: ./b.css var b_namespaceObject = {}; __webpack_require__.r(b_namespaceObject); __webpack_require__.d(b_namespaceObject, { b: () => (b_1) }); // NAMESPACE OBJECT: ./index.js var index_namespaceObject = {}; __webpack_require__.r(index_namespaceObject); __webpack_require__.d(index_namespaceObject, { a: () => (a_namespaceObject), b: () => (b_namespaceObject), c: () => (c_1) }); ;// ./a.css // extracted by mini-css-extract-plugin var _1 = "foo__a"; ;// ./b.css // extracted by mini-css-extract-plugin var b_1 = "foo__b"; ;// ./c.css // extracted by mini-css-extract-plugin var c_1 = "foo__c"; ;// ./index.js /* eslint-disable import/no-namespace */ // eslint-disable-next-line no-console console.log(index_namespaceObject); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation-modules/index.js000066400000000000000000000003531516122265000301700ustar00rootroot00000000000000/* eslint-disable import/no-namespace */ import * as a from "./a.css"; import * as b from "./b.css"; import * as all from "./index"; export * from "./c.css"; export { a, b }; // eslint-disable-next-line no-console console.log(all); mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation-modules/webpack.config.js000066400000000000000000000012551516122265000317430ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", optimization: { concatenateModules: true, }, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { esModule: true, }, }, { loader: "css-loader", options: { esModule: true, modules: { namedExport: true, localIdentName: "foo__[local]", }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation/000077500000000000000000000000001516122265000250545ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation/a.css000066400000000000000000000000321516122265000260010ustar00rootroot00000000000000.a { background: red; } mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation/b.css000066400000000000000000000000341516122265000260040ustar00rootroot00000000000000.b { background: green; } mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation/c.css000066400000000000000000000000331516122265000260040ustar00rootroot00000000000000.c { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation/expected/000077500000000000000000000000001516122265000266555ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation/expected/main.css000066400000000000000000000001241516122265000303100ustar00rootroot00000000000000.a { background: red; } .b { background: green; } .c { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation/expected/main.js000066400000000000000000000004001516122265000301310ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; ;// ./a.css // extracted by mini-css-extract-plugin ;// ./b.css // extracted by mini-css-extract-plugin ;// ./c.css // extracted by mini-css-extract-plugin ;// ./index.js /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation/index.js000066400000000000000000000000661516122265000265230ustar00rootroot00000000000000import "./a.css"; import "./b.css"; import "./c.css"; mini-css-extract-plugin-2.10.2/test/cases/es-module-concatenation/webpack.config.js000066400000000000000000000007111516122265000302710ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", optimization: { concatenateModules: true, }, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { esModule: true, }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/es-module-syntax/000077500000000000000000000000001516122265000235555ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-module-syntax/expected/000077500000000000000000000000001516122265000253565ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-module-syntax/expected/main.css000066400000000000000000000001421516122265000270110ustar00rootroot00000000000000.foo__style__a { background: red; } .foo__style__b { color: green; } .c { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-module-syntax/index.js000066400000000000000000000000261516122265000252200ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/es-module-syntax/style.css000066400000000000000000000001321516122265000254230ustar00rootroot00000000000000.a { background: red; } :local(.b) { color: green; } :global(.c) { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-module-syntax/webpack.config.js000066400000000000000000000011031516122265000267660ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { esModule: true }, }, { loader: "css-loader", options: { modules: { mode: "local", localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export-1/000077500000000000000000000000001516122265000256675ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export-1/empty.css000066400000000000000000000000001516122265000275250ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export-1/expected/000077500000000000000000000000001516122265000274705ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export-1/expected/main.css000066400000000000000000000000011516122265000311150ustar00rootroot00000000000000 mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export-1/expected/main.js000066400000000000000000000062131516122265000307540ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); // extracted by mini-css-extract-plugin /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({}); /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _empty_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log({ css: _empty_css__WEBPACK_IMPORTED_MODULE_0__["default"] }); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export-1/index.js000066400000000000000000000001351516122265000273330ustar00rootroot00000000000000import css from "./empty.css"; // eslint-disable-next-line no-console console.log({ css }); mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export-1/webpack.config.js000066400000000000000000000011151516122265000311030ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { defaultExport: true, }, }, { loader: "css-loader", options: { esModule: true, modules: { namedExport: true, }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export/000077500000000000000000000000001516122265000255315ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export/expected/000077500000000000000000000000001516122265000273325ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export/expected/main.css000066400000000000000000000002001516122265000307600ustar00rootroot00000000000000.foo__style__a-class { background: red; } .foo__style__b__class { color: green; } .foo__style__cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export/expected/main.js000066400000000000000000000071701516122265000306210ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "a-class": () => (/* binding */ _1), /* harmony export */ b__class: () => (/* binding */ _2), /* harmony export */ cClass: () => (/* binding */ _3), /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); // extracted by mini-css-extract-plugin var _1 = "foo__style__a-class"; var _2 = "foo__style__b__class"; var _3 = "foo__style__cClass"; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ "a-class": _1, "b__class": _2, "cClass": _3 }); /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log({ css: _style_css__WEBPACK_IMPORTED_MODULE_0__["default"], aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__["a-class"], bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.b__class, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export/index.js000066400000000000000000000002631516122265000271770ustar00rootroot00000000000000import css, { "a-class" as aClass, "b__class" as bClass, cClass, } from "./style.css"; // eslint-disable-next-line no-console console.log({ css, aClass, bClass, cClass }); mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export/style.css000066400000000000000000000001331516122265000274000ustar00rootroot00000000000000.a-class { background: red; } .b__class { color: green; } .cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-and-default-export/webpack.config.js000066400000000000000000000012651516122265000307530ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { defaultExport: true, }, }, { loader: "css-loader", options: { esModule: true, modules: { namedExport: true, exportLocalsConvention: "asIs", localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is-output-module/000077500000000000000000000000001516122265000272025ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is-output-module/expected/000077500000000000000000000000001516122265000310035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is-output-module/expected/main.css000066400000000000000000000002031516122265000324340ustar00rootroot00000000000000.Xh041yLR4iCP4RGjge50 { background: red; } .NMuRsxoDwvW8BhSXhFAY { color: green; } .ayWIv09rPsAqE2JznIsI { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is-output-module/expected/main.mjs000066400000000000000000000064771516122265000324600ustar00rootroot00000000000000/******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "a-class": () => (/* binding */ _1), /* harmony export */ b__class: () => (/* binding */ _2), /* harmony export */ cClass: () => (/* binding */ _3) /* harmony export */ }); // extracted by mini-css-extract-plugin var _1 = "Xh041yLR4iCP4RGjge50"; var _2 = "NMuRsxoDwvW8BhSXhFAY"; var _3 = "ayWIv09rPsAqE2JznIsI"; /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log({ css: _style_css__WEBPACK_IMPORTED_MODULE_0__["default"], aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__["a-class"], bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.b__class, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); })(); mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is-output-module/index.js000066400000000000000000000002631516122265000306500ustar00rootroot00000000000000import css, { "a-class" as aClass, "b__class" as bClass, cClass, } from "./style.css"; // eslint-disable-next-line no-console console.log({ css, aClass, bClass, cClass }); mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is-output-module/style.css000066400000000000000000000001331516122265000310510ustar00rootroot00000000000000.a-class { background: red; } .b__class { color: green; } .cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is-output-module/webpack.config.js000066400000000000000000000012051516122265000324160ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { esModule: true, modules: { namedExport: true, exportLocalsConvention: "asIs", }, }, }, ], }, ], }, output: { module: true, }, experiments: { outputModule: true, }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is/000077500000000000000000000000001516122265000243615ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is/expected/000077500000000000000000000000001516122265000261625ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is/expected/main.css000066400000000000000000000002031516122265000276130ustar00rootroot00000000000000.Xh041yLR4iCP4RGjge50 { background: red; } .NMuRsxoDwvW8BhSXhFAY { color: green; } .ayWIv09rPsAqE2JznIsI { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is/expected/main.js000066400000000000000000000067021516122265000274510ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "a-class": () => (/* binding */ _1), /* harmony export */ b__class: () => (/* binding */ _2), /* harmony export */ cClass: () => (/* binding */ _3) /* harmony export */ }); // extracted by mini-css-extract-plugin var _1 = "Xh041yLR4iCP4RGjge50"; var _2 = "NMuRsxoDwvW8BhSXhFAY"; var _3 = "ayWIv09rPsAqE2JznIsI"; /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log({ css: _style_css__WEBPACK_IMPORTED_MODULE_0__["default"], aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__["a-class"], bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.b__class, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is/index.js000066400000000000000000000002631516122265000260270ustar00rootroot00000000000000import css, { "a-class" as aClass, "b__class" as bClass, cClass, } from "./style.css"; // eslint-disable-next-line no-console console.log({ css, aClass, bClass, cClass }); mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is/style.css000066400000000000000000000001331516122265000262300ustar00rootroot00000000000000.a-class { background: red; } .b__class { color: green; } .cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-export-as-is/webpack.config.js000066400000000000000000000010641516122265000276000ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { esModule: true, modules: { namedExport: true, exportLocalsConvention: "asIs", }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/es-named-export-output-module/000077500000000000000000000000001516122265000261705ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-export-output-module/expected/000077500000000000000000000000001516122265000277715ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-export-output-module/expected/main.css000066400000000000000000000002001516122265000314170ustar00rootroot00000000000000.foo__style__a-class { background: red; } .foo__style__b__class { color: green; } .foo__style__cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-export-output-module/expected/main.mjs000066400000000000000000000064611516122265000314370ustar00rootroot00000000000000/******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ aClass: () => (/* binding */ _1), /* harmony export */ bClass: () => (/* binding */ _2), /* harmony export */ cClass: () => (/* binding */ _3) /* harmony export */ }); // extracted by mini-css-extract-plugin var _1 = "foo__style__a-class"; var _2 = "foo__style__b__class"; var _3 = "foo__style__cClass"; /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log({ css: _style_css__WEBPACK_IMPORTED_MODULE_0__["default"], aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.aClass, bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.bClass, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); })(); mini-css-extract-plugin-2.10.2/test/cases/es-named-export-output-module/index.js000066400000000000000000000002211516122265000276300ustar00rootroot00000000000000import css, { aClass, bClass, cClass } from "./style.css"; // eslint-disable-next-line no-console console.log({ css, aClass, bClass, cClass }); mini-css-extract-plugin-2.10.2/test/cases/es-named-export-output-module/style.css000066400000000000000000000001331516122265000300370ustar00rootroot00000000000000.a-class { background: red; } .b__class { color: green; } .cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-export-output-module/webpack.config.js000066400000000000000000000012151516122265000314050ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { esModule: true, modules: { namedExport: true, localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, output: { module: true, }, experiments: { outputModule: true, }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/es-named-export/000077500000000000000000000000001516122265000233475ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-export/expected/000077500000000000000000000000001516122265000251505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/es-named-export/expected/main.css000066400000000000000000000002001516122265000265760ustar00rootroot00000000000000.foo__style__a-class { background: red; } .foo__style__b__class { color: green; } .foo__style__cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-export/expected/main.js000066400000000000000000000066711516122265000264440ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "a-class": () => (/* binding */ _1), /* harmony export */ b__class: () => (/* binding */ _2), /* harmony export */ cClass: () => (/* binding */ _3) /* harmony export */ }); // extracted by mini-css-extract-plugin var _1 = "foo__style__a-class"; var _2 = "foo__style__b__class"; var _3 = "foo__style__cClass"; /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log({ css: _style_css__WEBPACK_IMPORTED_MODULE_0__["default"], aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.aClass, bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.bClass, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/es-named-export/index.js000066400000000000000000000002211516122265000250070ustar00rootroot00000000000000import css, { aClass, bClass, cClass } from "./style.css"; // eslint-disable-next-line no-console console.log({ css, aClass, bClass, cClass }); mini-css-extract-plugin-2.10.2/test/cases/es-named-export/style.css000066400000000000000000000001331516122265000252160ustar00rootroot00000000000000.a-class { background: red; } .b__class { color: green; } .cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/es-named-export/webpack.config.js000066400000000000000000000011541516122265000265660ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { esModule: true, modules: { namedExport: true, exportLocalsConvention: "asIs", localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-false/000077500000000000000000000000001516122265000271425ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-false/expected/000077500000000000000000000000001516122265000307435ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-false/expected/main.css000066400000000000000000000000351516122265000323770ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-false/index.js000066400000000000000000000000261516122265000306050ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-false/style.css000066400000000000000000000000341516122265000310110ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-false/webpack.config.js000066400000000000000000000004701516122265000323610ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", experimentalUseImportModule: false, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-true/000077500000000000000000000000001516122265000270275ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-true/expected/000077500000000000000000000000001516122265000306305ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-true/expected/main.css000066400000000000000000000000351516122265000322640ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-true/index.js000066400000000000000000000000261516122265000304720ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-true/style.css000066400000000000000000000000341516122265000306760ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-true/webpack.config.js000066400000000000000000000004671516122265000322540ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", experimentalUseImportModule: true, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-undefined/000077500000000000000000000000001516122265000300115ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-undefined/expected/000077500000000000000000000000001516122265000316125ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-undefined/expected/main.css000066400000000000000000000000351516122265000332460ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-undefined/index.js000066400000000000000000000000261516122265000314540ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-undefined/style.css000066400000000000000000000000341516122265000316600ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/experimentalUseImportModule-undefined/webpack.config.js000066400000000000000000000005531516122265000332320ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", // eslint-disable-next-line no-undefined experimentalUseImportModule: undefined, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-and-es-named-export/000077500000000000000000000000001516122265000276605ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-and-es-named-export/expected/000077500000000000000000000000001516122265000314615ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-and-es-named-export/expected/main.js000066400000000000000000000065731516122265000327560ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ aClass: () => (/* binding */ _1), /* harmony export */ bClass: () => (/* binding */ _2), /* harmony export */ cClass: () => (/* binding */ _3) /* harmony export */ }); // extracted by mini-css-extract-plugin var _1 = "foo__style__a-class"; var _2 = "foo__style__b__class"; var _3 = "foo__style__cClass"; /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log({ aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.aClass, bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.bClass, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-and-es-named-export/index.js000066400000000000000000000002071516122265000313240ustar00rootroot00000000000000import { aClass, bClass, cClass } from "./style.css"; // eslint-disable-next-line no-console console.log({ aClass, bClass, cClass }); mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-and-es-named-export/style.css000066400000000000000000000001331516122265000315270ustar00rootroot00000000000000.a-class { background: red; } .b__class { color: green; } .cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-and-es-named-export/webpack.config.js000066400000000000000000000011061516122265000330740ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { modules: { namedExport: true, localIdentName: "foo__[name]__[local]", exportOnlyLocals: true, }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-commonjs/000077500000000000000000000000001516122265000257355ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-commonjs/expected/000077500000000000000000000000001516122265000275365ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-commonjs/expected/main.js000066400000000000000000000045271516122265000310300ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log({ aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.aClass, bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.bClass, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-commonjs/index.js000066400000000000000000000002071516122265000274010ustar00rootroot00000000000000import { aClass, bClass, cClass } from "./style.css"; // eslint-disable-next-line no-console console.log({ aClass, bClass, cClass }); mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-commonjs/style.css000066400000000000000000000001331516122265000276040ustar00rootroot00000000000000.a-class { background: red; } .b__class { color: green; } .cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/export-only-locals-commonjs/webpack.config.js000066400000000000000000000011021516122265000311450ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { esModule: false, modules: { localIdentName: "foo__[name]__[local]", exportOnlyLocals: true, }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/export-only-locals/000077500000000000000000000000001516122265000241125ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/export-only-locals/expected/000077500000000000000000000000001516122265000257135ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/export-only-locals/expected/main.js000066400000000000000000000045271516122265000272050ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); // eslint-disable-next-line no-console console.log({ aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.aClass, bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.bClass, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/export-only-locals/index.js000066400000000000000000000002071516122265000255560ustar00rootroot00000000000000import { aClass, bClass, cClass } from "./style.css"; // eslint-disable-next-line no-console console.log({ aClass, bClass, cClass }); mini-css-extract-plugin-2.10.2/test/cases/export-only-locals/style.css000066400000000000000000000001331516122265000257610ustar00rootroot00000000000000.a-class { background: red; } .b__class { color: green; } .cClass { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/export-only-locals/webpack.config.js000066400000000000000000000010431516122265000273260ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { modules: { localIdentName: "foo__[name]__[local]", exportOnlyLocals: true, }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/file-loader/000077500000000000000000000000001516122265000225225ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/file-loader/expected/000077500000000000000000000000001516122265000243235ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/file-loader/expected/main.css000066400000000000000000000001101516122265000257510ustar00rootroot00000000000000body { background: red; background-image: url(static/react.svg); } mini-css-extract-plugin-2.10.2/test/cases/file-loader/index.js000066400000000000000000000000261516122265000241650ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/file-loader/react.svg000066400000000000000000000045211516122265000243430ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/file-loader/style.css000066400000000000000000000001021516122265000243650ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/file-loader/webpack.config.js000066400000000000000000000012511516122265000257370ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { esModule: false, }, }, ], }, { test: /\.svg$/, type: "javascript/auto", use: [ { loader: "file-loader", options: { name: "static/[name].[ext]", }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/filename-as-function/000077500000000000000000000000001516122265000243435ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/filename-as-function/expected/000077500000000000000000000000001516122265000261445ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/filename-as-function/expected/demo/000077500000000000000000000000001516122265000270705ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/filename-as-function/expected/demo/css/000077500000000000000000000000001516122265000276605ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/filename-as-function/expected/demo/css/main.css000066400000000000000000000000401516122265000313100ustar00rootroot00000000000000body { background: purple; } mini-css-extract-plugin-2.10.2/test/cases/filename-as-function/index.js000066400000000000000000000000261516122265000260060ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/filename-as-function/style.css000066400000000000000000000000371516122265000262150ustar00rootroot00000000000000body { background: purple; } mini-css-extract-plugin-2.10.2/test/cases/filename-as-function/webpack.config.js000066400000000000000000000006041516122265000275610ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { "demo/js/main": "./index.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, output: { filename: "[name].js", }, plugins: [ new Self({ filename: ({ chunk }) => `${chunk.name.replace("/js/", "/css/")}.css`, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/filename-with-template/000077500000000000000000000000001516122265000247015ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/filename-with-template/async.css000066400000000000000000000000311516122265000265220ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/filename-with-template/expected/000077500000000000000000000000001516122265000265025ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/filename-with-template/expected/async.css000066400000000000000000000000321516122265000303240ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/filename-with-template/expected/main.css000066400000000000000000000000351516122265000301360ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/filename-with-template/index.js000066400000000000000000000002031516122265000263410ustar00rootroot00000000000000import "./style.css"; /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "async" */ "./async.css"); mini-css-extract-plugin-2.10.2/test/cases/filename-with-template/style.css000066400000000000000000000000341516122265000265500ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/filename-with-template/webpack.config.js000066400000000000000000000004161516122265000301200ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/filename-without-template/000077500000000000000000000000001516122265000254315ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/filename-without-template/async.css000066400000000000000000000000311516122265000272520ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/filename-without-template/expected/000077500000000000000000000000001516122265000272325ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/filename-without-template/expected/0.main.css000066400000000000000000000000321516122265000310210ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/filename-without-template/expected/main.css000066400000000000000000000000351516122265000306660ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/filename-without-template/index.js000066400000000000000000000002031516122265000270710ustar00rootroot00000000000000import "./style.css"; /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "async" */ "./async.css"); mini-css-extract-plugin-2.10.2/test/cases/filename-without-template/style.css000066400000000000000000000000341516122265000273000ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/filename-without-template/webpack.config.js000066400000000000000000000004141516122265000306460ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "main.css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/hmr-locals/000077500000000000000000000000001516122265000224005ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/hmr-locals/expected/000077500000000000000000000000001516122265000242015ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/hmr-locals/expected/main.css000066400000000000000000000005321516122265000256370ustar00rootroot00000000000000/*!************************************************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./index.css ***! \************************************************************************************************/ .VoofDB21D_QzDbRdwMiY { color: red; } mini-css-extract-plugin-2.10.2/test/cases/hmr-locals/expected/main.js000066400000000000000000001560051516122265000254720ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "../../../src/hmr/hotModuleReplacement.js" /*!************************************************!*\ !*** ../../../src/hmr/hotModuleReplacement.js ***! \************************************************/ (module, __unused_webpack_exports, __webpack_require__) { /* global document */ /* eslint-disable no-console, func-names */ const normalizeUrl = __webpack_require__(/*! ./normalize-url */ "../../../src/hmr/normalize-url.js"); const srcByModuleId = Object.create(null); const noDocument = typeof document === "undefined"; const { forEach } = Array.prototype; /* eslint-disable jsdoc/reject-function-type */ /** * @param {Function} fn any function * @param {number} time time * @returns {() => void} wrapped function */ function debounce(fn, time) { let timeout = 0; return function () { // @ts-expect-error const self = this; // eslint-disable-next-line prefer-rest-params const args = arguments; // eslint-disable-next-line func-style const functionCall = function functionCall() { return fn.apply(self, args); }; clearTimeout(timeout); // @ts-expect-error timeout = setTimeout(functionCall, time); }; } /* eslint-enable jsdoc/reject-function-type */ /** * @returns {void} */ function noop() {} /** @typedef {(filename?: string) => string[]} GetScriptSrc */ /** * @param {string | number} moduleId a module id * @returns {GetScriptSrc} current script url */ function getCurrentScriptUrl(moduleId) { let src = srcByModuleId[moduleId]; if (!src) { if (document.currentScript) { ({ src } = /** @type {HTMLScriptElement} */ (document.currentScript)); } else { const scripts = document.getElementsByTagName("script"); const lastScriptTag = scripts[scripts.length - 1]; if (lastScriptTag) { ({ src } = lastScriptTag); } } srcByModuleId[moduleId] = src; } /** @type {GetScriptSrc} */ return function (fileMap) { if (!src) { return []; } const splitResult = src.split(/([^\\/]+)\.js$/); const filename = splitResult && splitResult[1]; if (!filename) { return [src.replace(".js", ".css")]; } if (!fileMap) { return [src.replace(".js", ".css")]; } return fileMap.split(",").map((mapRule) => { const reg = new RegExp(`${filename}\\.js$`, "g"); return normalizeUrl( src.replace(reg, `${mapRule.replace(/{fileName}/g, filename)}.css`), ); }); }; } /** * @param {string} url URL * @returns {boolean} true when URL can be request, otherwise false */ function isUrlRequest(url) { // An URL is not an request if // It is not http or https if (!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(url)) { return false; } return true; } /** @typedef {HTMLLinkElement & { isLoaded: boolean, visited: boolean }} HotHTMLLinkElement */ /** * @param {HotHTMLLinkElement} el html link element * @param {string=} url a URL */ function updateCss(el, url) { if (!url) { if (!el.href) { return; } // eslint-disable-next-line url = el.href.split("?")[0]; } if (!isUrlRequest(/** @type {string} */ (url))) { return; } if (el.isLoaded === false) { // We seem to be about to replace a css link that hasn't loaded yet. // We're probably changing the same file more than once. return; } // eslint-disable-next-line unicorn/prefer-includes if (!url || !(url.indexOf(".css") > -1)) { return; } el.visited = true; const newEl = /** @type {HotHTMLLinkElement} */ (el.cloneNode()); newEl.isLoaded = false; newEl.addEventListener("load", () => { if (newEl.isLoaded) { return; } newEl.isLoaded = true; if (el.parentNode) { el.parentNode.removeChild(el); } }); newEl.addEventListener("error", () => { if (newEl.isLoaded) { return; } newEl.isLoaded = true; if (el.parentNode) { el.parentNode.removeChild(el); } }); newEl.href = `${url}?${Date.now()}`; if (el.parentNode) { if (el.nextSibling) { el.parentNode.insertBefore(newEl, el.nextSibling); } else { el.parentNode.appendChild(newEl); } } } /** * @param {string} href href * @param {string[]} src src * @returns {undefined | string} a reload url */ function getReloadUrl(href, src) { let ret; href = normalizeUrl(href); src.some( /** * @param {string} url url */ // eslint-disable-next-line array-callback-return (url) => { // @ts-expect-error fix me in the next major release // eslint-disable-next-line unicorn/prefer-includes if (href.indexOf(src) > -1) { ret = url; } }, ); return ret; } /** * @param {string[]} src source * @returns {boolean} true when loaded, otherwise false */ function reloadStyle(src) { const elements = document.querySelectorAll("link"); let loaded = false; forEach.call(elements, (el) => { if (!el.href) { return; } const url = getReloadUrl(el.href, src); if (url && !isUrlRequest(url)) { return; } if (el.visited === true) { return; } if (url) { updateCss(el, url); loaded = true; } }); return loaded; } /** * @returns {void} */ function reloadAll() { const elements = document.querySelectorAll("link"); forEach.call(elements, (el) => { if (el.visited === true) { return; } updateCss(el); }); } /** * @param {number | string} moduleId a module id * @param {{ filename?: string, locals?: boolean }} options options * @returns {() => void} wrapper function */ module.exports = function (moduleId, options) { if (noDocument) { console.log("no window.document found, will not HMR CSS"); return noop; } const getScriptSrc = getCurrentScriptUrl(moduleId); /** * @returns {void} */ function update() { const src = getScriptSrc(options.filename); const reloaded = reloadStyle(src); if (options.locals) { console.log("[HMR] Detected local css modules. Reload all css"); reloadAll(); return; } if (reloaded) { console.log("[HMR] css reload %s", src.join(" ")); } else { console.log("[HMR] Reload all css"); reloadAll(); } } return debounce(update, 50); }; /***/ }, /***/ "../../../src/hmr/normalize-url.js" /*!*****************************************!*\ !*** ../../../src/hmr/normalize-url.js ***! \*****************************************/ (module) { /** * @param {string[]} pathComponents path components * @returns {string} normalized url */ function normalizeUrlInner(pathComponents) { return pathComponents .reduce((accumulator, item) => { switch (item) { case "..": accumulator.pop(); break; case ".": break; default: accumulator.push(item); } return accumulator; }, /** @type {string[]} */ ([])) .join("/"); } /** * @param {string} urlString url string * @returns {string} normalized url string */ module.exports = function normalizeUrl(urlString) { urlString = urlString.trim(); if (/^data:/i.test(urlString)) { return urlString; } const protocol = // eslint-disable-next-line unicorn/prefer-includes urlString.indexOf("//") !== -1 ? `${urlString.split("//")[0]}//` : ""; const components = urlString .replace(new RegExp(protocol, "i"), "") .split("/"); const host = components[0].toLowerCase().replace(/\.$/, ""); components[0] = ""; const path = normalizeUrlInner(components); return protocol + host + path; }; /***/ }, /***/ "./index.css" /*!*******************!*\ !*** ./index.css ***! \*******************/ (module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); // extracted by mini-css-extract-plugin /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"x":"VoofDB21D_QzDbRdwMiY"}); if(true) { (function() { var localsJsonString = "{\"x\":\"VoofDB21D_QzDbRdwMiY\"}"; // var cssReload = __webpack_require__(/*! ../../../src/hmr/hotModuleReplacement.js */ "../../../src/hmr/hotModuleReplacement.js")(module.id, {}); // only invalidate when locals change if ( module.hot.data && module.hot.data.value && module.hot.data.value !== localsJsonString ) { module.hot.invalidate(); } else { module.hot.accept(); } module.hot.dispose(function(data) { data.value = localsJsonString; cssReload(); }); })(); } /***/ } /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ if (cachedModule.error !== undefined) throw cachedModule.error; /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ id: moduleId, /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ try { /******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; /******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); /******/ if (!execOptions.factory) { /******/ delete __webpack_module_cache__[moduleId]; /******/ var e = new Error("Cannot find module '" + moduleId + "'"); /******/ e.code = 'MODULE_NOT_FOUND'; /******/ throw e; /******/ } /******/ module = execOptions.module; /******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); /******/ } catch(e) { /******/ module.error = e; /******/ throw e; /******/ } /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = __webpack_module_cache__; /******/ /******/ // expose the module execution interceptor /******/ __webpack_require__.i = []; /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript update chunk filename */ /******/ (() => { /******/ // This function allow to reference all chunks /******/ __webpack_require__.hu = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + "." + __webpack_require__.h() + ".hot-update.js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get mini-css chunk filename */ /******/ (() => { /******/ // This function allow to reference all chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".css"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get update manifest filename */ /******/ (() => { /******/ __webpack_require__.hmrF = () => ("main." + __webpack_require__.h() + ".hot-update.json"); /******/ })(); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { /******/ __webpack_require__.h = () => ("xxxxxxxxxxxxxxxxxxxxxx") /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hot module replacement */ /******/ (() => { /******/ var currentModuleData = {}; /******/ var installedModules = __webpack_require__.c; /******/ /******/ // module and require creation /******/ var currentChildModule; /******/ var currentParents = []; /******/ /******/ // status /******/ var registeredStatusHandlers = []; /******/ var currentStatus = "idle"; /******/ /******/ // while downloading /******/ var blockingPromises = 0; /******/ var blockingPromisesWaiting = []; /******/ /******/ // The update info /******/ var currentUpdateApplyHandlers; /******/ var queuedInvalidatedModules; /******/ /******/ __webpack_require__.hmrD = currentModuleData; /******/ /******/ __webpack_require__.i.push(function (options) { /******/ var module = options.module; /******/ var require = createRequire(options.require, options.id); /******/ module.hot = createModuleHotObject(options.id, module); /******/ module.parents = currentParents; /******/ module.children = []; /******/ currentParents = []; /******/ options.require = require; /******/ }); /******/ /******/ __webpack_require__.hmrC = {}; /******/ __webpack_require__.hmrI = {}; /******/ /******/ function createRequire(require, moduleId) { /******/ var me = installedModules[moduleId]; /******/ if (!me) return require; /******/ var fn = function (request) { /******/ if (me.hot.active) { /******/ if (installedModules[request]) { /******/ var parents = installedModules[request].parents; /******/ if (parents.indexOf(moduleId) === -1) { /******/ parents.push(moduleId); /******/ } /******/ } else { /******/ currentParents = [moduleId]; /******/ currentChildModule = request; /******/ } /******/ if (me.children.indexOf(request) === -1) { /******/ me.children.push(request); /******/ } /******/ } else { /******/ console.warn( /******/ "[HMR] unexpected require(" + /******/ request + /******/ ") from disposed module " + /******/ moduleId /******/ ); /******/ currentParents = []; /******/ } /******/ return require(request); /******/ }; /******/ var createPropertyDescriptor = function (name) { /******/ return { /******/ configurable: true, /******/ enumerable: true, /******/ get: function () { /******/ return require[name]; /******/ }, /******/ set: function (value) { /******/ require[name] = value; /******/ } /******/ }; /******/ }; /******/ for (var name in require) { /******/ if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { /******/ Object.defineProperty(fn, name, createPropertyDescriptor(name)); /******/ } /******/ } /******/ fn.e = function (chunkId, fetchPriority) { /******/ return trackBlockingPromise(require.e(chunkId, fetchPriority)); /******/ }; /******/ return fn; /******/ } /******/ /******/ function createModuleHotObject(moduleId, me) { /******/ var _main = currentChildModule !== moduleId; /******/ var hot = { /******/ // private stuff /******/ _acceptedDependencies: {}, /******/ _acceptedErrorHandlers: {}, /******/ _declinedDependencies: {}, /******/ _selfAccepted: false, /******/ _selfDeclined: false, /******/ _selfInvalidated: false, /******/ _disposeHandlers: [], /******/ _main: _main, /******/ _requireSelf: function () { /******/ currentParents = me.parents.slice(); /******/ currentChildModule = _main ? undefined : moduleId; /******/ __webpack_require__(moduleId); /******/ }, /******/ /******/ // Module API /******/ active: true, /******/ accept: function (dep, callback, errorHandler) { /******/ if (dep === undefined) hot._selfAccepted = true; /******/ else if (typeof dep === "function") hot._selfAccepted = dep; /******/ else if (typeof dep === "object" && dep !== null) { /******/ for (var i = 0; i < dep.length; i++) { /******/ hot._acceptedDependencies[dep[i]] = callback || function () {}; /******/ hot._acceptedErrorHandlers[dep[i]] = errorHandler; /******/ } /******/ } else { /******/ hot._acceptedDependencies[dep] = callback || function () {}; /******/ hot._acceptedErrorHandlers[dep] = errorHandler; /******/ } /******/ }, /******/ decline: function (dep) { /******/ if (dep === undefined) hot._selfDeclined = true; /******/ else if (typeof dep === "object" && dep !== null) /******/ for (var i = 0; i < dep.length; i++) /******/ hot._declinedDependencies[dep[i]] = true; /******/ else hot._declinedDependencies[dep] = true; /******/ }, /******/ dispose: function (callback) { /******/ hot._disposeHandlers.push(callback); /******/ }, /******/ addDisposeHandler: function (callback) { /******/ hot._disposeHandlers.push(callback); /******/ }, /******/ removeDisposeHandler: function (callback) { /******/ var idx = hot._disposeHandlers.indexOf(callback); /******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); /******/ }, /******/ invalidate: function () { /******/ this._selfInvalidated = true; /******/ switch (currentStatus) { /******/ case "idle": /******/ currentUpdateApplyHandlers = []; /******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { /******/ __webpack_require__.hmrI[key]( /******/ moduleId, /******/ currentUpdateApplyHandlers /******/ ); /******/ }); /******/ setStatus("ready"); /******/ break; /******/ case "ready": /******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { /******/ __webpack_require__.hmrI[key]( /******/ moduleId, /******/ currentUpdateApplyHandlers /******/ ); /******/ }); /******/ break; /******/ case "prepare": /******/ case "check": /******/ case "dispose": /******/ case "apply": /******/ (queuedInvalidatedModules = queuedInvalidatedModules || []).push( /******/ moduleId /******/ ); /******/ break; /******/ default: /******/ // ignore requests in error states /******/ break; /******/ } /******/ }, /******/ /******/ // Management API /******/ check: hotCheck, /******/ apply: hotApply, /******/ status: function (l) { /******/ if (!l) return currentStatus; /******/ registeredStatusHandlers.push(l); /******/ }, /******/ addStatusHandler: function (l) { /******/ registeredStatusHandlers.push(l); /******/ }, /******/ removeStatusHandler: function (l) { /******/ var idx = registeredStatusHandlers.indexOf(l); /******/ if (idx >= 0) registeredStatusHandlers.splice(idx, 1); /******/ }, /******/ /******/ // inherit from previous dispose call /******/ data: currentModuleData[moduleId] /******/ }; /******/ currentChildModule = undefined; /******/ return hot; /******/ } /******/ /******/ function setStatus(newStatus) { /******/ currentStatus = newStatus; /******/ var results = []; /******/ /******/ for (var i = 0; i < registeredStatusHandlers.length; i++) /******/ results[i] = registeredStatusHandlers[i].call(null, newStatus); /******/ /******/ return Promise.all(results).then(function () {}); /******/ } /******/ /******/ function unblock() { /******/ if (--blockingPromises === 0) { /******/ setStatus("ready").then(function () { /******/ if (blockingPromises === 0) { /******/ var list = blockingPromisesWaiting; /******/ blockingPromisesWaiting = []; /******/ for (var i = 0; i < list.length; i++) { /******/ list[i](); /******/ } /******/ } /******/ }); /******/ } /******/ } /******/ /******/ function trackBlockingPromise(promise) { /******/ switch (currentStatus) { /******/ case "ready": /******/ setStatus("prepare"); /******/ /* fallthrough */ /******/ case "prepare": /******/ blockingPromises++; /******/ promise.then(unblock, unblock); /******/ return promise; /******/ default: /******/ return promise; /******/ } /******/ } /******/ /******/ function waitForBlockingPromises(fn) { /******/ if (blockingPromises === 0) return fn(); /******/ return new Promise(function (resolve) { /******/ blockingPromisesWaiting.push(function () { /******/ resolve(fn()); /******/ }); /******/ }); /******/ } /******/ /******/ function hotCheck(applyOnUpdate) { /******/ if (currentStatus !== "idle") { /******/ throw new Error("check() is only allowed in idle status"); /******/ } /******/ return setStatus("check") /******/ .then(__webpack_require__.hmrM) /******/ .then(function (update) { /******/ if (!update) { /******/ return setStatus(applyInvalidatedModules() ? "ready" : "idle").then( /******/ function () { /******/ return null; /******/ } /******/ ); /******/ } /******/ /******/ return setStatus("prepare").then(function () { /******/ var updatedModules = []; /******/ currentUpdateApplyHandlers = []; /******/ /******/ return Promise.all( /******/ Object.keys(__webpack_require__.hmrC).reduce(function ( /******/ promises, /******/ key /******/ ) { /******/ __webpack_require__.hmrC[key]( /******/ update.c, /******/ update.r, /******/ update.m, /******/ promises, /******/ currentUpdateApplyHandlers, /******/ updatedModules, /******/ update.css /******/ ); /******/ return promises; /******/ }, []) /******/ ).then(function () { /******/ return waitForBlockingPromises(function () { /******/ if (applyOnUpdate) { /******/ return internalApply(applyOnUpdate); /******/ } /******/ return setStatus("ready").then(function () { /******/ return updatedModules; /******/ }); /******/ }); /******/ }); /******/ }); /******/ }); /******/ } /******/ /******/ function hotApply(options) { /******/ if (currentStatus !== "ready") { /******/ return Promise.resolve().then(function () { /******/ throw new Error( /******/ "apply() is only allowed in ready status (state: " + /******/ currentStatus + /******/ ")" /******/ ); /******/ }); /******/ } /******/ return internalApply(options); /******/ } /******/ /******/ function internalApply(options) { /******/ options = options || {}; /******/ /******/ applyInvalidatedModules(); /******/ /******/ var results = currentUpdateApplyHandlers.map(function (handler) { /******/ return handler(options); /******/ }); /******/ currentUpdateApplyHandlers = undefined; /******/ /******/ var errors = results /******/ .map(function (r) { /******/ return r.error; /******/ }) /******/ .filter(Boolean); /******/ /******/ if (errors.length > 0) { /******/ return setStatus("abort").then(function () { /******/ throw errors[0]; /******/ }); /******/ } /******/ /******/ // Now in "dispose" phase /******/ var disposePromise = setStatus("dispose"); /******/ /******/ results.forEach(function (result) { /******/ if (result.dispose) result.dispose(); /******/ }); /******/ /******/ // Now in "apply" phase /******/ var applyPromise = setStatus("apply"); /******/ /******/ var error; /******/ var reportError = function (err) { /******/ if (!error) error = err; /******/ }; /******/ /******/ var outdatedModules = []; /******/ /******/ var onAccepted = function () { /******/ return Promise.all([disposePromise, applyPromise]).then(function () { /******/ // handle errors in accept handlers and self accepted module load /******/ if (error) { /******/ return setStatus("fail").then(function () { /******/ throw error; /******/ }); /******/ } /******/ /******/ if (queuedInvalidatedModules) { /******/ return internalApply(options).then(function (list) { /******/ outdatedModules.forEach(function (moduleId) { /******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); /******/ }); /******/ return list; /******/ }); /******/ } /******/ /******/ return setStatus("idle").then(function () { /******/ return outdatedModules; /******/ }); /******/ }); /******/ }; /******/ /******/ return Promise.all( /******/ results /******/ .filter(function (result) { /******/ return result.apply; /******/ }) /******/ .map(function (result) { /******/ return result.apply(reportError); /******/ }) /******/ ) /******/ .then(function (applyResults) { /******/ applyResults.forEach(function (modules) { /******/ if (modules) { /******/ for (var i = 0; i < modules.length; i++) { /******/ outdatedModules.push(modules[i]); /******/ } /******/ } /******/ }); /******/ }) /******/ .then(onAccepted); /******/ } /******/ /******/ function applyInvalidatedModules() { /******/ if (queuedInvalidatedModules) { /******/ if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = []; /******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { /******/ queuedInvalidatedModules.forEach(function (moduleId) { /******/ __webpack_require__.hmrI[key]( /******/ moduleId, /******/ currentUpdateApplyHandlers /******/ ); /******/ }); /******/ }); /******/ queuedInvalidatedModules = undefined; /******/ return true; /******/ } /******/ } /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/css loading */ /******/ (() => { /******/ if (typeof document === "undefined") return; /******/ var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => { /******/ var linkTag = document.createElement("link"); /******/ /******/ linkTag.rel = "stylesheet"; /******/ linkTag.type = "text/css"; /******/ if (__webpack_require__.nc) { /******/ linkTag.nonce = __webpack_require__.nc; /******/ } /******/ var onLinkComplete = (event) => { /******/ // avoid mem leaks. /******/ linkTag.onerror = linkTag.onload = null; /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { /******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; /******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); /******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; /******/ if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag) /******/ reject(err); /******/ } /******/ } /******/ linkTag.onerror = linkTag.onload = onLinkComplete; /******/ linkTag.href = fullhref; /******/ /******/ /******/ if (oldTag) { /******/ oldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling); /******/ } else { /******/ document.head.appendChild(linkTag); /******/ } /******/ return linkTag; /******/ }; /******/ var findStylesheet = (href, fullhref) => { /******/ var existingLinkTags = document.getElementsByTagName("link"); /******/ for(var i = 0; i < existingLinkTags.length; i++) { /******/ var tag = existingLinkTags[i]; /******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); /******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; /******/ } /******/ var existingStyleTags = document.getElementsByTagName("style"); /******/ for(var i = 0; i < existingStyleTags.length; i++) { /******/ var tag = existingStyleTags[i]; /******/ var dataHref = tag.getAttribute("data-href"); /******/ if(dataHref === href || dataHref === fullhref) return tag; /******/ } /******/ }; /******/ var loadStylesheet = (chunkId) => { /******/ return new Promise((resolve, reject) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ if(findStylesheet(href, fullhref)) return resolve(); /******/ createStylesheet(chunkId, fullhref, null, resolve, reject); /******/ }); /******/ } /******/ // no chunk loading /******/ /******/ var oldTags = []; /******/ var newTags = []; /******/ var applyHandler = (options) => { /******/ return { dispose: () => { /******/ for(var i = 0; i < oldTags.length; i++) { /******/ var oldTag = oldTags[i]; /******/ if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag); /******/ } /******/ oldTags.length = 0; /******/ }, apply: () => { /******/ for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet"; /******/ newTags.length = 0; /******/ } }; /******/ } /******/ __webpack_require__.hmrC.miniCss = (chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList) => { /******/ applyHandlers.push(applyHandler); /******/ chunkIds.forEach((chunkId) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ var oldTag = findStylesheet(href, fullhref); /******/ if(!oldTag) return; /******/ promises.push(new Promise((resolve, reject) => { /******/ var tag = createStylesheet(chunkId, fullhref, oldTag, () => { /******/ tag.as = "style"; /******/ tag.rel = "preload"; /******/ resolve(); /******/ }, reject); /******/ oldTags.push(oldTag); /******/ newTags.push(tag); /******/ })); /******/ }); /******/ } /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || { /******/ "main": 0 /******/ }; /******/ /******/ // no chunk on demand loading /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ var currentUpdatedModulesList; /******/ var waitingUpdateResolves = {}; /******/ function loadUpdateChunk(chunkId, updatedModulesList) { /******/ currentUpdatedModulesList = updatedModulesList; /******/ return new Promise((resolve, reject) => { /******/ waitingUpdateResolves[chunkId] = resolve; /******/ // start update chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.hu(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(waitingUpdateResolves[chunkId]) { /******/ waitingUpdateResolves[chunkId] = undefined /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading hot update chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ reject(error); /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded); /******/ }); /******/ } /******/ /******/ self["webpackHotUpdate"] = (chunkId, moreModules, runtime) => { /******/ for(var moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ currentUpdate[moduleId] = moreModules[moduleId]; /******/ if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId); /******/ } /******/ } /******/ if(runtime) currentUpdateRuntime.push(runtime); /******/ if(waitingUpdateResolves[chunkId]) { /******/ waitingUpdateResolves[chunkId](); /******/ waitingUpdateResolves[chunkId] = undefined; /******/ } /******/ }; /******/ /******/ var currentUpdateChunks; /******/ var currentUpdate; /******/ var currentUpdateRemovedChunks; /******/ var currentUpdateRuntime; /******/ function applyHandler(options) { /******/ if (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr; /******/ currentUpdateChunks = undefined; /******/ function getAffectedModuleEffects(updateModuleId) { /******/ var outdatedModules = [updateModuleId]; /******/ var outdatedDependencies = {}; /******/ /******/ var queue = outdatedModules.map(function (id) { /******/ return { /******/ chain: [id], /******/ id: id /******/ }; /******/ }); /******/ while (queue.length > 0) { /******/ var queueItem = queue.pop(); /******/ var moduleId = queueItem.id; /******/ var chain = queueItem.chain; /******/ var module = __webpack_require__.c[moduleId]; /******/ if ( /******/ !module || /******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) /******/ ) /******/ continue; /******/ if (module.hot._selfDeclined) { /******/ return { /******/ type: "self-declined", /******/ chain: chain, /******/ moduleId: moduleId /******/ }; /******/ } /******/ if (module.hot._main) { /******/ return { /******/ type: "unaccepted", /******/ chain: chain, /******/ moduleId: moduleId /******/ }; /******/ } /******/ for (var i = 0; i < module.parents.length; i++) { /******/ var parentId = module.parents[i]; /******/ var parent = __webpack_require__.c[parentId]; /******/ if (!parent) continue; /******/ if (parent.hot._declinedDependencies[moduleId]) { /******/ return { /******/ type: "declined", /******/ chain: chain.concat([parentId]), /******/ moduleId: moduleId, /******/ parentId: parentId /******/ }; /******/ } /******/ if (outdatedModules.indexOf(parentId) !== -1) continue; /******/ if (parent.hot._acceptedDependencies[moduleId]) { /******/ if (!outdatedDependencies[parentId]) /******/ outdatedDependencies[parentId] = []; /******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); /******/ continue; /******/ } /******/ delete outdatedDependencies[parentId]; /******/ outdatedModules.push(parentId); /******/ queue.push({ /******/ chain: chain.concat([parentId]), /******/ id: parentId /******/ }); /******/ } /******/ } /******/ /******/ return { /******/ type: "accepted", /******/ moduleId: updateModuleId, /******/ outdatedModules: outdatedModules, /******/ outdatedDependencies: outdatedDependencies /******/ }; /******/ } /******/ /******/ function addAllToSet(a, b) { /******/ for (var i = 0; i < b.length; i++) { /******/ var item = b[i]; /******/ if (a.indexOf(item) === -1) a.push(item); /******/ } /******/ } /******/ /******/ // at begin all updates modules are outdated /******/ // the "outdated" status can propagate to parents if they don't accept the children /******/ var outdatedDependencies = {}; /******/ var outdatedModules = []; /******/ var appliedUpdate = {}; /******/ /******/ var warnUnexpectedRequire = function warnUnexpectedRequire(module) { /******/ console.warn( /******/ "[HMR] unexpected require(" + module.id + ") to disposed module" /******/ ); /******/ }; /******/ /******/ for (var moduleId in currentUpdate) { /******/ if (__webpack_require__.o(currentUpdate, moduleId)) { /******/ var newModuleFactory = currentUpdate[moduleId]; /******/ var result = newModuleFactory /******/ ? getAffectedModuleEffects(moduleId) /******/ : { /******/ type: "disposed", /******/ moduleId: moduleId /******/ }; /******/ /** @type {Error|false} */ /******/ var abortError = false; /******/ var doApply = false; /******/ var doDispose = false; /******/ var chainInfo = ""; /******/ if (result.chain) { /******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); /******/ } /******/ switch (result.type) { /******/ case "self-declined": /******/ if (options.onDeclined) options.onDeclined(result); /******/ if (!options.ignoreDeclined) /******/ abortError = new Error( /******/ "Aborted because of self decline: " + /******/ result.moduleId + /******/ chainInfo /******/ ); /******/ break; /******/ case "declined": /******/ if (options.onDeclined) options.onDeclined(result); /******/ if (!options.ignoreDeclined) /******/ abortError = new Error( /******/ "Aborted because of declined dependency: " + /******/ result.moduleId + /******/ " in " + /******/ result.parentId + /******/ chainInfo /******/ ); /******/ break; /******/ case "unaccepted": /******/ if (options.onUnaccepted) options.onUnaccepted(result); /******/ if (!options.ignoreUnaccepted) /******/ abortError = new Error( /******/ "Aborted because " + moduleId + " is not accepted" + chainInfo /******/ ); /******/ break; /******/ case "accepted": /******/ if (options.onAccepted) options.onAccepted(result); /******/ doApply = true; /******/ break; /******/ case "disposed": /******/ if (options.onDisposed) options.onDisposed(result); /******/ doDispose = true; /******/ break; /******/ default: /******/ throw new Error("Unexception type " + result.type); /******/ } /******/ if (abortError) { /******/ return { /******/ error: abortError /******/ }; /******/ } /******/ if (doApply) { /******/ appliedUpdate[moduleId] = newModuleFactory; /******/ addAllToSet(outdatedModules, result.outdatedModules); /******/ for (moduleId in result.outdatedDependencies) { /******/ if (__webpack_require__.o(result.outdatedDependencies, moduleId)) { /******/ if (!outdatedDependencies[moduleId]) /******/ outdatedDependencies[moduleId] = []; /******/ addAllToSet( /******/ outdatedDependencies[moduleId], /******/ result.outdatedDependencies[moduleId] /******/ ); /******/ } /******/ } /******/ } /******/ if (doDispose) { /******/ addAllToSet(outdatedModules, [result.moduleId]); /******/ appliedUpdate[moduleId] = warnUnexpectedRequire; /******/ } /******/ } /******/ } /******/ currentUpdate = undefined; /******/ /******/ // Store self accepted outdated modules to require them later by the module system /******/ var outdatedSelfAcceptedModules = []; /******/ for (var j = 0; j < outdatedModules.length; j++) { /******/ var outdatedModuleId = outdatedModules[j]; /******/ var module = __webpack_require__.c[outdatedModuleId]; /******/ if ( /******/ module && /******/ (module.hot._selfAccepted || module.hot._main) && /******/ // removed self-accepted modules should not be required /******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && /******/ // when called invalidate self-accepting is not possible /******/ !module.hot._selfInvalidated /******/ ) { /******/ outdatedSelfAcceptedModules.push({ /******/ module: outdatedModuleId, /******/ require: module.hot._requireSelf, /******/ errorHandler: module.hot._selfAccepted /******/ }); /******/ } /******/ } /******/ /******/ var moduleOutdatedDependencies; /******/ /******/ return { /******/ dispose: function () { /******/ currentUpdateRemovedChunks.forEach(function (chunkId) { /******/ delete installedChunks[chunkId]; /******/ }); /******/ currentUpdateRemovedChunks = undefined; /******/ /******/ var idx; /******/ var queue = outdatedModules.slice(); /******/ while (queue.length > 0) { /******/ var moduleId = queue.pop(); /******/ var module = __webpack_require__.c[moduleId]; /******/ if (!module) continue; /******/ /******/ var data = {}; /******/ /******/ // Call dispose handlers /******/ var disposeHandlers = module.hot._disposeHandlers; /******/ for (j = 0; j < disposeHandlers.length; j++) { /******/ disposeHandlers[j].call(null, data); /******/ } /******/ __webpack_require__.hmrD[moduleId] = data; /******/ /******/ // disable module (this disables requires from this module) /******/ module.hot.active = false; /******/ /******/ // remove module from cache /******/ delete __webpack_require__.c[moduleId]; /******/ /******/ // when disposing there is no need to call dispose handler /******/ delete outdatedDependencies[moduleId]; /******/ /******/ // remove "parents" references from all children /******/ for (j = 0; j < module.children.length; j++) { /******/ var child = __webpack_require__.c[module.children[j]]; /******/ if (!child) continue; /******/ idx = child.parents.indexOf(moduleId); /******/ if (idx >= 0) { /******/ child.parents.splice(idx, 1); /******/ } /******/ } /******/ } /******/ /******/ // remove outdated dependency from module children /******/ var dependency; /******/ for (var outdatedModuleId in outdatedDependencies) { /******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { /******/ module = __webpack_require__.c[outdatedModuleId]; /******/ if (module) { /******/ moduleOutdatedDependencies = /******/ outdatedDependencies[outdatedModuleId]; /******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { /******/ dependency = moduleOutdatedDependencies[j]; /******/ idx = module.children.indexOf(dependency); /******/ if (idx >= 0) module.children.splice(idx, 1); /******/ } /******/ } /******/ } /******/ } /******/ }, /******/ apply: function (reportError) { /******/ var acceptPromises = []; /******/ // insert new code /******/ for (var updateModuleId in appliedUpdate) { /******/ if (__webpack_require__.o(appliedUpdate, updateModuleId)) { /******/ __webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId]; /******/ } /******/ } /******/ /******/ // run new runtime modules /******/ for (var i = 0; i < currentUpdateRuntime.length; i++) { /******/ currentUpdateRuntime[i](__webpack_require__); /******/ } /******/ /******/ // call accept handlers /******/ for (var outdatedModuleId in outdatedDependencies) { /******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { /******/ var module = __webpack_require__.c[outdatedModuleId]; /******/ if (module) { /******/ moduleOutdatedDependencies = /******/ outdatedDependencies[outdatedModuleId]; /******/ var callbacks = []; /******/ var errorHandlers = []; /******/ var dependenciesForCallbacks = []; /******/ for (var j = 0; j < moduleOutdatedDependencies.length; j++) { /******/ var dependency = moduleOutdatedDependencies[j]; /******/ var acceptCallback = /******/ module.hot._acceptedDependencies[dependency]; /******/ var errorHandler = /******/ module.hot._acceptedErrorHandlers[dependency]; /******/ if (acceptCallback) { /******/ if (callbacks.indexOf(acceptCallback) !== -1) continue; /******/ callbacks.push(acceptCallback); /******/ errorHandlers.push(errorHandler); /******/ dependenciesForCallbacks.push(dependency); /******/ } /******/ } /******/ for (var k = 0; k < callbacks.length; k++) { /******/ var result; /******/ try { /******/ result = callbacks[k].call(null, moduleOutdatedDependencies); /******/ } catch (err) { /******/ if (typeof errorHandlers[k] === "function") { /******/ try { /******/ errorHandlers[k](err, { /******/ moduleId: outdatedModuleId, /******/ dependencyId: dependenciesForCallbacks[k] /******/ }); /******/ } catch (err2) { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "accept-error-handler-errored", /******/ moduleId: outdatedModuleId, /******/ dependencyId: dependenciesForCallbacks[k], /******/ error: err2, /******/ originalError: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ reportError(err2); /******/ reportError(err); /******/ } /******/ } /******/ } else { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "accept-errored", /******/ moduleId: outdatedModuleId, /******/ dependencyId: dependenciesForCallbacks[k], /******/ error: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ reportError(err); /******/ } /******/ } /******/ } /******/ if (result && typeof result.then === "function") { /******/ acceptPromises.push(result); /******/ } /******/ } /******/ } /******/ } /******/ } /******/ /******/ var onAccepted = function () { /******/ // Load self accepted modules /******/ for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { /******/ var item = outdatedSelfAcceptedModules[o]; /******/ var moduleId = item.module; /******/ try { /******/ item.require(moduleId); /******/ } catch (err) { /******/ if (typeof item.errorHandler === "function") { /******/ try { /******/ item.errorHandler(err, { /******/ moduleId: moduleId, /******/ module: __webpack_require__.c[moduleId] /******/ }); /******/ } catch (err1) { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "self-accept-error-handler-errored", /******/ moduleId: moduleId, /******/ error: err1, /******/ originalError: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ reportError(err1); /******/ reportError(err); /******/ } /******/ } /******/ } else { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "self-accept-errored", /******/ moduleId: moduleId, /******/ error: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ reportError(err); /******/ } /******/ } /******/ } /******/ } /******/ }; /******/ /******/ return Promise.all(acceptPromises) /******/ .then(onAccepted) /******/ .then(function () { /******/ return outdatedModules; /******/ }); /******/ } /******/ }; /******/ } /******/ __webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) { /******/ if (!currentUpdate) { /******/ currentUpdate = {}; /******/ currentUpdateRuntime = []; /******/ currentUpdateRemovedChunks = []; /******/ applyHandlers.push(applyHandler); /******/ } /******/ if (!__webpack_require__.o(currentUpdate, moduleId)) { /******/ currentUpdate[moduleId] = __webpack_require__.m[moduleId]; /******/ } /******/ }; /******/ __webpack_require__.hmrC.jsonp = function ( /******/ chunkIds, /******/ removedChunks, /******/ removedModules, /******/ promises, /******/ applyHandlers, /******/ updatedModulesList /******/ ) { /******/ applyHandlers.push(applyHandler); /******/ currentUpdateChunks = {}; /******/ currentUpdateRemovedChunks = removedChunks; /******/ currentUpdate = removedModules.reduce(function (obj, key) { /******/ obj[key] = false; /******/ return obj; /******/ }, {}); /******/ currentUpdateRuntime = []; /******/ chunkIds.forEach(function (chunkId) { /******/ if ( /******/ __webpack_require__.o(installedChunks, chunkId) && /******/ installedChunks[chunkId] !== undefined /******/ ) { /******/ promises.push(loadUpdateChunk(chunkId, updatedModulesList)); /******/ currentUpdateChunks[chunkId] = true; /******/ } else { /******/ currentUpdateChunks[chunkId] = false; /******/ } /******/ }); /******/ if (__webpack_require__.f) { /******/ __webpack_require__.f.jsonpHmr = function (chunkId, promises) { /******/ if ( /******/ currentUpdateChunks && /******/ __webpack_require__.o(currentUpdateChunks, chunkId) && /******/ !currentUpdateChunks[chunkId] /******/ ) { /******/ promises.push(loadUpdateChunk(chunkId)); /******/ currentUpdateChunks[chunkId] = true; /******/ } /******/ }; /******/ } /******/ }; /******/ /******/ __webpack_require__.hmrM = () => { /******/ if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API"); /******/ return fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => { /******/ if(response.status === 404) return; // no update available /******/ if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText); /******/ return response.json(); /******/ }); /******/ }; /******/ /******/ // no on chunks loaded /******/ /******/ // no jsonp function /******/ })(); /******/ /************************************************************************/ /******/ /******/ // module cache are used so entry inlining is disabled /******/ // startup /******/ // Load entry module and return exports /******/ var __webpack_exports__ = __webpack_require__("./index.css"); /******/ /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/hmr-locals/index.css000066400000000000000000000000251516122265000242160ustar00rootroot00000000000000.x { color: red; } mini-css-extract-plugin-2.10.2/test/cases/hmr-locals/webpack.config.js000066400000000000000000000010751516122265000256210ustar00rootroot00000000000000import { HotModuleReplacementPlugin } from "webpack"; import Self from "../../../src"; module.exports = { entry: "./index.css", mode: "development", devtool: false, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { modules: true, }, }, ], }, ], }, plugins: [ new HotModuleReplacementPlugin(), new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/hmr/000077500000000000000000000000001516122265000211255ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/hmr/a.css000066400000000000000000000000341516122265000220540ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/hmr/b.css000066400000000000000000000001361516122265000220600ustar00rootroot00000000000000.b { background: red; } @import url("https://some/external/css"); .b { color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/hmr/c.css000066400000000000000000000001661516122265000220640ustar00rootroot00000000000000.c { background: red; } @import "./a.css"; @import url("https://some/other/external/css"); .c { color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/hmr/expected/000077500000000000000000000000001516122265000227265ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/hmr/expected/main.css000066400000000000000000000027471516122265000243760ustar00rootroot00000000000000/*!****************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./c.css ***! \****************************************************************/ @import url(https://some/other/external/css); /*!****************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./b.css ***! \****************************************************************/ @import url(https://some/external/css); /*!****************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./a.css ***! \****************************************************************/ body { background: red; } /*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./c.css (1) ***! \********************************************************************/ .c { background: red; } .c { color: yellow; } /*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./b.css (1) ***! \********************************************************************/ .b { background: red; } .b { color: yellow; } /*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./index.css ***! \********************************************************************/ mini-css-extract-plugin-2.10.2/test/cases/hmr/expected/main.js000066400000000000000000001543721516122265000242240ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "../../../src/hmr/hotModuleReplacement.js" /*!************************************************!*\ !*** ../../../src/hmr/hotModuleReplacement.js ***! \************************************************/ (module, __unused_webpack_exports, __webpack_require__) { /* global document */ /* eslint-disable no-console, func-names */ const normalizeUrl = __webpack_require__(/*! ./normalize-url */ "../../../src/hmr/normalize-url.js"); const srcByModuleId = Object.create(null); const noDocument = typeof document === "undefined"; const { forEach } = Array.prototype; /* eslint-disable jsdoc/reject-function-type */ /** * @param {Function} fn any function * @param {number} time time * @returns {() => void} wrapped function */ function debounce(fn, time) { let timeout = 0; return function () { // @ts-expect-error const self = this; // eslint-disable-next-line prefer-rest-params const args = arguments; // eslint-disable-next-line func-style const functionCall = function functionCall() { return fn.apply(self, args); }; clearTimeout(timeout); // @ts-expect-error timeout = setTimeout(functionCall, time); }; } /* eslint-enable jsdoc/reject-function-type */ /** * @returns {void} */ function noop() {} /** @typedef {(filename?: string) => string[]} GetScriptSrc */ /** * @param {string | number} moduleId a module id * @returns {GetScriptSrc} current script url */ function getCurrentScriptUrl(moduleId) { let src = srcByModuleId[moduleId]; if (!src) { if (document.currentScript) { ({ src } = /** @type {HTMLScriptElement} */ (document.currentScript)); } else { const scripts = document.getElementsByTagName("script"); const lastScriptTag = scripts[scripts.length - 1]; if (lastScriptTag) { ({ src } = lastScriptTag); } } srcByModuleId[moduleId] = src; } /** @type {GetScriptSrc} */ return function (fileMap) { if (!src) { return []; } const splitResult = src.split(/([^\\/]+)\.js$/); const filename = splitResult && splitResult[1]; if (!filename) { return [src.replace(".js", ".css")]; } if (!fileMap) { return [src.replace(".js", ".css")]; } return fileMap.split(",").map((mapRule) => { const reg = new RegExp(`${filename}\\.js$`, "g"); return normalizeUrl( src.replace(reg, `${mapRule.replace(/{fileName}/g, filename)}.css`), ); }); }; } /** * @param {string} url URL * @returns {boolean} true when URL can be request, otherwise false */ function isUrlRequest(url) { // An URL is not an request if // It is not http or https if (!/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(url)) { return false; } return true; } /** @typedef {HTMLLinkElement & { isLoaded: boolean, visited: boolean }} HotHTMLLinkElement */ /** * @param {HotHTMLLinkElement} el html link element * @param {string=} url a URL */ function updateCss(el, url) { if (!url) { if (!el.href) { return; } // eslint-disable-next-line url = el.href.split("?")[0]; } if (!isUrlRequest(/** @type {string} */ (url))) { return; } if (el.isLoaded === false) { // We seem to be about to replace a css link that hasn't loaded yet. // We're probably changing the same file more than once. return; } // eslint-disable-next-line unicorn/prefer-includes if (!url || !(url.indexOf(".css") > -1)) { return; } el.visited = true; const newEl = /** @type {HotHTMLLinkElement} */ (el.cloneNode()); newEl.isLoaded = false; newEl.addEventListener("load", () => { if (newEl.isLoaded) { return; } newEl.isLoaded = true; if (el.parentNode) { el.parentNode.removeChild(el); } }); newEl.addEventListener("error", () => { if (newEl.isLoaded) { return; } newEl.isLoaded = true; if (el.parentNode) { el.parentNode.removeChild(el); } }); newEl.href = `${url}?${Date.now()}`; if (el.parentNode) { if (el.nextSibling) { el.parentNode.insertBefore(newEl, el.nextSibling); } else { el.parentNode.appendChild(newEl); } } } /** * @param {string} href href * @param {string[]} src src * @returns {undefined | string} a reload url */ function getReloadUrl(href, src) { let ret; href = normalizeUrl(href); src.some( /** * @param {string} url url */ // eslint-disable-next-line array-callback-return (url) => { // @ts-expect-error fix me in the next major release // eslint-disable-next-line unicorn/prefer-includes if (href.indexOf(src) > -1) { ret = url; } }, ); return ret; } /** * @param {string[]} src source * @returns {boolean} true when loaded, otherwise false */ function reloadStyle(src) { const elements = document.querySelectorAll("link"); let loaded = false; forEach.call(elements, (el) => { if (!el.href) { return; } const url = getReloadUrl(el.href, src); if (url && !isUrlRequest(url)) { return; } if (el.visited === true) { return; } if (url) { updateCss(el, url); loaded = true; } }); return loaded; } /** * @returns {void} */ function reloadAll() { const elements = document.querySelectorAll("link"); forEach.call(elements, (el) => { if (el.visited === true) { return; } updateCss(el); }); } /** * @param {number | string} moduleId a module id * @param {{ filename?: string, locals?: boolean }} options options * @returns {() => void} wrapper function */ module.exports = function (moduleId, options) { if (noDocument) { console.log("no window.document found, will not HMR CSS"); return noop; } const getScriptSrc = getCurrentScriptUrl(moduleId); /** * @returns {void} */ function update() { const src = getScriptSrc(options.filename); const reloaded = reloadStyle(src); if (options.locals) { console.log("[HMR] Detected local css modules. Reload all css"); reloadAll(); return; } if (reloaded) { console.log("[HMR] css reload %s", src.join(" ")); } else { console.log("[HMR] Reload all css"); reloadAll(); } } return debounce(update, 50); }; /***/ }, /***/ "../../../src/hmr/normalize-url.js" /*!*****************************************!*\ !*** ../../../src/hmr/normalize-url.js ***! \*****************************************/ (module) { /** * @param {string[]} pathComponents path components * @returns {string} normalized url */ function normalizeUrlInner(pathComponents) { return pathComponents .reduce((accumulator, item) => { switch (item) { case "..": accumulator.pop(); break; case ".": break; default: accumulator.push(item); } return accumulator; }, /** @type {string[]} */ ([])) .join("/"); } /** * @param {string} urlString url string * @returns {string} normalized url string */ module.exports = function normalizeUrl(urlString) { urlString = urlString.trim(); if (/^data:/i.test(urlString)) { return urlString; } const protocol = // eslint-disable-next-line unicorn/prefer-includes urlString.indexOf("//") !== -1 ? `${urlString.split("//")[0]}//` : ""; const components = urlString .replace(new RegExp(protocol, "i"), "") .split("/"); const host = components[0].toLowerCase().replace(/\.$/, ""); components[0] = ""; const path = normalizeUrlInner(components); return protocol + host + path; }; /***/ }, /***/ "./index.css" /*!*******************!*\ !*** ./index.css ***! \*******************/ (module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin if(true) { (function() { var localsJsonString = undefined; // var cssReload = __webpack_require__(/*! ../../../src/hmr/hotModuleReplacement.js */ "../../../src/hmr/hotModuleReplacement.js")(module.id, {}); // only invalidate when locals change if ( module.hot.data && module.hot.data.value && module.hot.data.value !== localsJsonString ) { module.hot.invalidate(); } else { module.hot.accept(); } module.hot.dispose(function(data) { data.value = localsJsonString; cssReload(); }); })(); } /***/ } /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ if (cachedModule.error !== undefined) throw cachedModule.error; /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ id: moduleId, /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ try { /******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; /******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); /******/ if (!execOptions.factory) { /******/ delete __webpack_module_cache__[moduleId]; /******/ var e = new Error("Cannot find module '" + moduleId + "'"); /******/ e.code = 'MODULE_NOT_FOUND'; /******/ throw e; /******/ } /******/ module = execOptions.module; /******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); /******/ } catch(e) { /******/ module.error = e; /******/ throw e; /******/ } /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = __webpack_module_cache__; /******/ /******/ // expose the module execution interceptor /******/ __webpack_require__.i = []; /******/ /************************************************************************/ /******/ /* webpack/runtime/get javascript update chunk filename */ /******/ (() => { /******/ // This function allow to reference all chunks /******/ __webpack_require__.hu = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + "." + __webpack_require__.h() + ".hot-update.js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get mini-css chunk filename */ /******/ (() => { /******/ // This function allow to reference all chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".css"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get update manifest filename */ /******/ (() => { /******/ __webpack_require__.hmrF = () => ("main." + __webpack_require__.h() + ".hot-update.json"); /******/ })(); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { /******/ __webpack_require__.h = () => ("xxxxxxxxxxxxxxxxxxxxxx") /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hot module replacement */ /******/ (() => { /******/ var currentModuleData = {}; /******/ var installedModules = __webpack_require__.c; /******/ /******/ // module and require creation /******/ var currentChildModule; /******/ var currentParents = []; /******/ /******/ // status /******/ var registeredStatusHandlers = []; /******/ var currentStatus = "idle"; /******/ /******/ // while downloading /******/ var blockingPromises = 0; /******/ var blockingPromisesWaiting = []; /******/ /******/ // The update info /******/ var currentUpdateApplyHandlers; /******/ var queuedInvalidatedModules; /******/ /******/ __webpack_require__.hmrD = currentModuleData; /******/ /******/ __webpack_require__.i.push(function (options) { /******/ var module = options.module; /******/ var require = createRequire(options.require, options.id); /******/ module.hot = createModuleHotObject(options.id, module); /******/ module.parents = currentParents; /******/ module.children = []; /******/ currentParents = []; /******/ options.require = require; /******/ }); /******/ /******/ __webpack_require__.hmrC = {}; /******/ __webpack_require__.hmrI = {}; /******/ /******/ function createRequire(require, moduleId) { /******/ var me = installedModules[moduleId]; /******/ if (!me) return require; /******/ var fn = function (request) { /******/ if (me.hot.active) { /******/ if (installedModules[request]) { /******/ var parents = installedModules[request].parents; /******/ if (parents.indexOf(moduleId) === -1) { /******/ parents.push(moduleId); /******/ } /******/ } else { /******/ currentParents = [moduleId]; /******/ currentChildModule = request; /******/ } /******/ if (me.children.indexOf(request) === -1) { /******/ me.children.push(request); /******/ } /******/ } else { /******/ console.warn( /******/ "[HMR] unexpected require(" + /******/ request + /******/ ") from disposed module " + /******/ moduleId /******/ ); /******/ currentParents = []; /******/ } /******/ return require(request); /******/ }; /******/ var createPropertyDescriptor = function (name) { /******/ return { /******/ configurable: true, /******/ enumerable: true, /******/ get: function () { /******/ return require[name]; /******/ }, /******/ set: function (value) { /******/ require[name] = value; /******/ } /******/ }; /******/ }; /******/ for (var name in require) { /******/ if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { /******/ Object.defineProperty(fn, name, createPropertyDescriptor(name)); /******/ } /******/ } /******/ fn.e = function (chunkId, fetchPriority) { /******/ return trackBlockingPromise(require.e(chunkId, fetchPriority)); /******/ }; /******/ return fn; /******/ } /******/ /******/ function createModuleHotObject(moduleId, me) { /******/ var _main = currentChildModule !== moduleId; /******/ var hot = { /******/ // private stuff /******/ _acceptedDependencies: {}, /******/ _acceptedErrorHandlers: {}, /******/ _declinedDependencies: {}, /******/ _selfAccepted: false, /******/ _selfDeclined: false, /******/ _selfInvalidated: false, /******/ _disposeHandlers: [], /******/ _main: _main, /******/ _requireSelf: function () { /******/ currentParents = me.parents.slice(); /******/ currentChildModule = _main ? undefined : moduleId; /******/ __webpack_require__(moduleId); /******/ }, /******/ /******/ // Module API /******/ active: true, /******/ accept: function (dep, callback, errorHandler) { /******/ if (dep === undefined) hot._selfAccepted = true; /******/ else if (typeof dep === "function") hot._selfAccepted = dep; /******/ else if (typeof dep === "object" && dep !== null) { /******/ for (var i = 0; i < dep.length; i++) { /******/ hot._acceptedDependencies[dep[i]] = callback || function () {}; /******/ hot._acceptedErrorHandlers[dep[i]] = errorHandler; /******/ } /******/ } else { /******/ hot._acceptedDependencies[dep] = callback || function () {}; /******/ hot._acceptedErrorHandlers[dep] = errorHandler; /******/ } /******/ }, /******/ decline: function (dep) { /******/ if (dep === undefined) hot._selfDeclined = true; /******/ else if (typeof dep === "object" && dep !== null) /******/ for (var i = 0; i < dep.length; i++) /******/ hot._declinedDependencies[dep[i]] = true; /******/ else hot._declinedDependencies[dep] = true; /******/ }, /******/ dispose: function (callback) { /******/ hot._disposeHandlers.push(callback); /******/ }, /******/ addDisposeHandler: function (callback) { /******/ hot._disposeHandlers.push(callback); /******/ }, /******/ removeDisposeHandler: function (callback) { /******/ var idx = hot._disposeHandlers.indexOf(callback); /******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); /******/ }, /******/ invalidate: function () { /******/ this._selfInvalidated = true; /******/ switch (currentStatus) { /******/ case "idle": /******/ currentUpdateApplyHandlers = []; /******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { /******/ __webpack_require__.hmrI[key]( /******/ moduleId, /******/ currentUpdateApplyHandlers /******/ ); /******/ }); /******/ setStatus("ready"); /******/ break; /******/ case "ready": /******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { /******/ __webpack_require__.hmrI[key]( /******/ moduleId, /******/ currentUpdateApplyHandlers /******/ ); /******/ }); /******/ break; /******/ case "prepare": /******/ case "check": /******/ case "dispose": /******/ case "apply": /******/ (queuedInvalidatedModules = queuedInvalidatedModules || []).push( /******/ moduleId /******/ ); /******/ break; /******/ default: /******/ // ignore requests in error states /******/ break; /******/ } /******/ }, /******/ /******/ // Management API /******/ check: hotCheck, /******/ apply: hotApply, /******/ status: function (l) { /******/ if (!l) return currentStatus; /******/ registeredStatusHandlers.push(l); /******/ }, /******/ addStatusHandler: function (l) { /******/ registeredStatusHandlers.push(l); /******/ }, /******/ removeStatusHandler: function (l) { /******/ var idx = registeredStatusHandlers.indexOf(l); /******/ if (idx >= 0) registeredStatusHandlers.splice(idx, 1); /******/ }, /******/ /******/ // inherit from previous dispose call /******/ data: currentModuleData[moduleId] /******/ }; /******/ currentChildModule = undefined; /******/ return hot; /******/ } /******/ /******/ function setStatus(newStatus) { /******/ currentStatus = newStatus; /******/ var results = []; /******/ /******/ for (var i = 0; i < registeredStatusHandlers.length; i++) /******/ results[i] = registeredStatusHandlers[i].call(null, newStatus); /******/ /******/ return Promise.all(results).then(function () {}); /******/ } /******/ /******/ function unblock() { /******/ if (--blockingPromises === 0) { /******/ setStatus("ready").then(function () { /******/ if (blockingPromises === 0) { /******/ var list = blockingPromisesWaiting; /******/ blockingPromisesWaiting = []; /******/ for (var i = 0; i < list.length; i++) { /******/ list[i](); /******/ } /******/ } /******/ }); /******/ } /******/ } /******/ /******/ function trackBlockingPromise(promise) { /******/ switch (currentStatus) { /******/ case "ready": /******/ setStatus("prepare"); /******/ /* fallthrough */ /******/ case "prepare": /******/ blockingPromises++; /******/ promise.then(unblock, unblock); /******/ return promise; /******/ default: /******/ return promise; /******/ } /******/ } /******/ /******/ function waitForBlockingPromises(fn) { /******/ if (blockingPromises === 0) return fn(); /******/ return new Promise(function (resolve) { /******/ blockingPromisesWaiting.push(function () { /******/ resolve(fn()); /******/ }); /******/ }); /******/ } /******/ /******/ function hotCheck(applyOnUpdate) { /******/ if (currentStatus !== "idle") { /******/ throw new Error("check() is only allowed in idle status"); /******/ } /******/ return setStatus("check") /******/ .then(__webpack_require__.hmrM) /******/ .then(function (update) { /******/ if (!update) { /******/ return setStatus(applyInvalidatedModules() ? "ready" : "idle").then( /******/ function () { /******/ return null; /******/ } /******/ ); /******/ } /******/ /******/ return setStatus("prepare").then(function () { /******/ var updatedModules = []; /******/ currentUpdateApplyHandlers = []; /******/ /******/ return Promise.all( /******/ Object.keys(__webpack_require__.hmrC).reduce(function ( /******/ promises, /******/ key /******/ ) { /******/ __webpack_require__.hmrC[key]( /******/ update.c, /******/ update.r, /******/ update.m, /******/ promises, /******/ currentUpdateApplyHandlers, /******/ updatedModules, /******/ update.css /******/ ); /******/ return promises; /******/ }, []) /******/ ).then(function () { /******/ return waitForBlockingPromises(function () { /******/ if (applyOnUpdate) { /******/ return internalApply(applyOnUpdate); /******/ } /******/ return setStatus("ready").then(function () { /******/ return updatedModules; /******/ }); /******/ }); /******/ }); /******/ }); /******/ }); /******/ } /******/ /******/ function hotApply(options) { /******/ if (currentStatus !== "ready") { /******/ return Promise.resolve().then(function () { /******/ throw new Error( /******/ "apply() is only allowed in ready status (state: " + /******/ currentStatus + /******/ ")" /******/ ); /******/ }); /******/ } /******/ return internalApply(options); /******/ } /******/ /******/ function internalApply(options) { /******/ options = options || {}; /******/ /******/ applyInvalidatedModules(); /******/ /******/ var results = currentUpdateApplyHandlers.map(function (handler) { /******/ return handler(options); /******/ }); /******/ currentUpdateApplyHandlers = undefined; /******/ /******/ var errors = results /******/ .map(function (r) { /******/ return r.error; /******/ }) /******/ .filter(Boolean); /******/ /******/ if (errors.length > 0) { /******/ return setStatus("abort").then(function () { /******/ throw errors[0]; /******/ }); /******/ } /******/ /******/ // Now in "dispose" phase /******/ var disposePromise = setStatus("dispose"); /******/ /******/ results.forEach(function (result) { /******/ if (result.dispose) result.dispose(); /******/ }); /******/ /******/ // Now in "apply" phase /******/ var applyPromise = setStatus("apply"); /******/ /******/ var error; /******/ var reportError = function (err) { /******/ if (!error) error = err; /******/ }; /******/ /******/ var outdatedModules = []; /******/ /******/ var onAccepted = function () { /******/ return Promise.all([disposePromise, applyPromise]).then(function () { /******/ // handle errors in accept handlers and self accepted module load /******/ if (error) { /******/ return setStatus("fail").then(function () { /******/ throw error; /******/ }); /******/ } /******/ /******/ if (queuedInvalidatedModules) { /******/ return internalApply(options).then(function (list) { /******/ outdatedModules.forEach(function (moduleId) { /******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); /******/ }); /******/ return list; /******/ }); /******/ } /******/ /******/ return setStatus("idle").then(function () { /******/ return outdatedModules; /******/ }); /******/ }); /******/ }; /******/ /******/ return Promise.all( /******/ results /******/ .filter(function (result) { /******/ return result.apply; /******/ }) /******/ .map(function (result) { /******/ return result.apply(reportError); /******/ }) /******/ ) /******/ .then(function (applyResults) { /******/ applyResults.forEach(function (modules) { /******/ if (modules) { /******/ for (var i = 0; i < modules.length; i++) { /******/ outdatedModules.push(modules[i]); /******/ } /******/ } /******/ }); /******/ }) /******/ .then(onAccepted); /******/ } /******/ /******/ function applyInvalidatedModules() { /******/ if (queuedInvalidatedModules) { /******/ if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = []; /******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { /******/ queuedInvalidatedModules.forEach(function (moduleId) { /******/ __webpack_require__.hmrI[key]( /******/ moduleId, /******/ currentUpdateApplyHandlers /******/ ); /******/ }); /******/ }); /******/ queuedInvalidatedModules = undefined; /******/ return true; /******/ } /******/ } /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/css loading */ /******/ (() => { /******/ if (typeof document === "undefined") return; /******/ var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => { /******/ var linkTag = document.createElement("link"); /******/ /******/ linkTag.rel = "stylesheet"; /******/ linkTag.type = "text/css"; /******/ if (__webpack_require__.nc) { /******/ linkTag.nonce = __webpack_require__.nc; /******/ } /******/ var onLinkComplete = (event) => { /******/ // avoid mem leaks. /******/ linkTag.onerror = linkTag.onload = null; /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { /******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; /******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); /******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; /******/ if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag) /******/ reject(err); /******/ } /******/ } /******/ linkTag.onerror = linkTag.onload = onLinkComplete; /******/ linkTag.href = fullhref; /******/ /******/ /******/ if (oldTag) { /******/ oldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling); /******/ } else { /******/ document.head.appendChild(linkTag); /******/ } /******/ return linkTag; /******/ }; /******/ var findStylesheet = (href, fullhref) => { /******/ var existingLinkTags = document.getElementsByTagName("link"); /******/ for(var i = 0; i < existingLinkTags.length; i++) { /******/ var tag = existingLinkTags[i]; /******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); /******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; /******/ } /******/ var existingStyleTags = document.getElementsByTagName("style"); /******/ for(var i = 0; i < existingStyleTags.length; i++) { /******/ var tag = existingStyleTags[i]; /******/ var dataHref = tag.getAttribute("data-href"); /******/ if(dataHref === href || dataHref === fullhref) return tag; /******/ } /******/ }; /******/ var loadStylesheet = (chunkId) => { /******/ return new Promise((resolve, reject) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ if(findStylesheet(href, fullhref)) return resolve(); /******/ createStylesheet(chunkId, fullhref, null, resolve, reject); /******/ }); /******/ } /******/ // no chunk loading /******/ /******/ var oldTags = []; /******/ var newTags = []; /******/ var applyHandler = (options) => { /******/ return { dispose: () => { /******/ for(var i = 0; i < oldTags.length; i++) { /******/ var oldTag = oldTags[i]; /******/ if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag); /******/ } /******/ oldTags.length = 0; /******/ }, apply: () => { /******/ for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet"; /******/ newTags.length = 0; /******/ } }; /******/ } /******/ __webpack_require__.hmrC.miniCss = (chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList) => { /******/ applyHandlers.push(applyHandler); /******/ chunkIds.forEach((chunkId) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ var oldTag = findStylesheet(href, fullhref); /******/ if(!oldTag) return; /******/ promises.push(new Promise((resolve, reject) => { /******/ var tag = createStylesheet(chunkId, fullhref, oldTag, () => { /******/ tag.as = "style"; /******/ tag.rel = "preload"; /******/ resolve(); /******/ }, reject); /******/ oldTags.push(oldTag); /******/ newTags.push(tag); /******/ })); /******/ }); /******/ } /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || { /******/ "main": 0 /******/ }; /******/ /******/ // no chunk on demand loading /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ var currentUpdatedModulesList; /******/ var waitingUpdateResolves = {}; /******/ function loadUpdateChunk(chunkId, updatedModulesList) { /******/ currentUpdatedModulesList = updatedModulesList; /******/ return new Promise((resolve, reject) => { /******/ waitingUpdateResolves[chunkId] = resolve; /******/ // start update chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.hu(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(waitingUpdateResolves[chunkId]) { /******/ waitingUpdateResolves[chunkId] = undefined /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading hot update chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ reject(error); /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded); /******/ }); /******/ } /******/ /******/ self["webpackHotUpdate"] = (chunkId, moreModules, runtime) => { /******/ for(var moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ currentUpdate[moduleId] = moreModules[moduleId]; /******/ if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId); /******/ } /******/ } /******/ if(runtime) currentUpdateRuntime.push(runtime); /******/ if(waitingUpdateResolves[chunkId]) { /******/ waitingUpdateResolves[chunkId](); /******/ waitingUpdateResolves[chunkId] = undefined; /******/ } /******/ }; /******/ /******/ var currentUpdateChunks; /******/ var currentUpdate; /******/ var currentUpdateRemovedChunks; /******/ var currentUpdateRuntime; /******/ function applyHandler(options) { /******/ if (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr; /******/ currentUpdateChunks = undefined; /******/ function getAffectedModuleEffects(updateModuleId) { /******/ var outdatedModules = [updateModuleId]; /******/ var outdatedDependencies = {}; /******/ /******/ var queue = outdatedModules.map(function (id) { /******/ return { /******/ chain: [id], /******/ id: id /******/ }; /******/ }); /******/ while (queue.length > 0) { /******/ var queueItem = queue.pop(); /******/ var moduleId = queueItem.id; /******/ var chain = queueItem.chain; /******/ var module = __webpack_require__.c[moduleId]; /******/ if ( /******/ !module || /******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) /******/ ) /******/ continue; /******/ if (module.hot._selfDeclined) { /******/ return { /******/ type: "self-declined", /******/ chain: chain, /******/ moduleId: moduleId /******/ }; /******/ } /******/ if (module.hot._main) { /******/ return { /******/ type: "unaccepted", /******/ chain: chain, /******/ moduleId: moduleId /******/ }; /******/ } /******/ for (var i = 0; i < module.parents.length; i++) { /******/ var parentId = module.parents[i]; /******/ var parent = __webpack_require__.c[parentId]; /******/ if (!parent) continue; /******/ if (parent.hot._declinedDependencies[moduleId]) { /******/ return { /******/ type: "declined", /******/ chain: chain.concat([parentId]), /******/ moduleId: moduleId, /******/ parentId: parentId /******/ }; /******/ } /******/ if (outdatedModules.indexOf(parentId) !== -1) continue; /******/ if (parent.hot._acceptedDependencies[moduleId]) { /******/ if (!outdatedDependencies[parentId]) /******/ outdatedDependencies[parentId] = []; /******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); /******/ continue; /******/ } /******/ delete outdatedDependencies[parentId]; /******/ outdatedModules.push(parentId); /******/ queue.push({ /******/ chain: chain.concat([parentId]), /******/ id: parentId /******/ }); /******/ } /******/ } /******/ /******/ return { /******/ type: "accepted", /******/ moduleId: updateModuleId, /******/ outdatedModules: outdatedModules, /******/ outdatedDependencies: outdatedDependencies /******/ }; /******/ } /******/ /******/ function addAllToSet(a, b) { /******/ for (var i = 0; i < b.length; i++) { /******/ var item = b[i]; /******/ if (a.indexOf(item) === -1) a.push(item); /******/ } /******/ } /******/ /******/ // at begin all updates modules are outdated /******/ // the "outdated" status can propagate to parents if they don't accept the children /******/ var outdatedDependencies = {}; /******/ var outdatedModules = []; /******/ var appliedUpdate = {}; /******/ /******/ var warnUnexpectedRequire = function warnUnexpectedRequire(module) { /******/ console.warn( /******/ "[HMR] unexpected require(" + module.id + ") to disposed module" /******/ ); /******/ }; /******/ /******/ for (var moduleId in currentUpdate) { /******/ if (__webpack_require__.o(currentUpdate, moduleId)) { /******/ var newModuleFactory = currentUpdate[moduleId]; /******/ var result = newModuleFactory /******/ ? getAffectedModuleEffects(moduleId) /******/ : { /******/ type: "disposed", /******/ moduleId: moduleId /******/ }; /******/ /** @type {Error|false} */ /******/ var abortError = false; /******/ var doApply = false; /******/ var doDispose = false; /******/ var chainInfo = ""; /******/ if (result.chain) { /******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); /******/ } /******/ switch (result.type) { /******/ case "self-declined": /******/ if (options.onDeclined) options.onDeclined(result); /******/ if (!options.ignoreDeclined) /******/ abortError = new Error( /******/ "Aborted because of self decline: " + /******/ result.moduleId + /******/ chainInfo /******/ ); /******/ break; /******/ case "declined": /******/ if (options.onDeclined) options.onDeclined(result); /******/ if (!options.ignoreDeclined) /******/ abortError = new Error( /******/ "Aborted because of declined dependency: " + /******/ result.moduleId + /******/ " in " + /******/ result.parentId + /******/ chainInfo /******/ ); /******/ break; /******/ case "unaccepted": /******/ if (options.onUnaccepted) options.onUnaccepted(result); /******/ if (!options.ignoreUnaccepted) /******/ abortError = new Error( /******/ "Aborted because " + moduleId + " is not accepted" + chainInfo /******/ ); /******/ break; /******/ case "accepted": /******/ if (options.onAccepted) options.onAccepted(result); /******/ doApply = true; /******/ break; /******/ case "disposed": /******/ if (options.onDisposed) options.onDisposed(result); /******/ doDispose = true; /******/ break; /******/ default: /******/ throw new Error("Unexception type " + result.type); /******/ } /******/ if (abortError) { /******/ return { /******/ error: abortError /******/ }; /******/ } /******/ if (doApply) { /******/ appliedUpdate[moduleId] = newModuleFactory; /******/ addAllToSet(outdatedModules, result.outdatedModules); /******/ for (moduleId in result.outdatedDependencies) { /******/ if (__webpack_require__.o(result.outdatedDependencies, moduleId)) { /******/ if (!outdatedDependencies[moduleId]) /******/ outdatedDependencies[moduleId] = []; /******/ addAllToSet( /******/ outdatedDependencies[moduleId], /******/ result.outdatedDependencies[moduleId] /******/ ); /******/ } /******/ } /******/ } /******/ if (doDispose) { /******/ addAllToSet(outdatedModules, [result.moduleId]); /******/ appliedUpdate[moduleId] = warnUnexpectedRequire; /******/ } /******/ } /******/ } /******/ currentUpdate = undefined; /******/ /******/ // Store self accepted outdated modules to require them later by the module system /******/ var outdatedSelfAcceptedModules = []; /******/ for (var j = 0; j < outdatedModules.length; j++) { /******/ var outdatedModuleId = outdatedModules[j]; /******/ var module = __webpack_require__.c[outdatedModuleId]; /******/ if ( /******/ module && /******/ (module.hot._selfAccepted || module.hot._main) && /******/ // removed self-accepted modules should not be required /******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && /******/ // when called invalidate self-accepting is not possible /******/ !module.hot._selfInvalidated /******/ ) { /******/ outdatedSelfAcceptedModules.push({ /******/ module: outdatedModuleId, /******/ require: module.hot._requireSelf, /******/ errorHandler: module.hot._selfAccepted /******/ }); /******/ } /******/ } /******/ /******/ var moduleOutdatedDependencies; /******/ /******/ return { /******/ dispose: function () { /******/ currentUpdateRemovedChunks.forEach(function (chunkId) { /******/ delete installedChunks[chunkId]; /******/ }); /******/ currentUpdateRemovedChunks = undefined; /******/ /******/ var idx; /******/ var queue = outdatedModules.slice(); /******/ while (queue.length > 0) { /******/ var moduleId = queue.pop(); /******/ var module = __webpack_require__.c[moduleId]; /******/ if (!module) continue; /******/ /******/ var data = {}; /******/ /******/ // Call dispose handlers /******/ var disposeHandlers = module.hot._disposeHandlers; /******/ for (j = 0; j < disposeHandlers.length; j++) { /******/ disposeHandlers[j].call(null, data); /******/ } /******/ __webpack_require__.hmrD[moduleId] = data; /******/ /******/ // disable module (this disables requires from this module) /******/ module.hot.active = false; /******/ /******/ // remove module from cache /******/ delete __webpack_require__.c[moduleId]; /******/ /******/ // when disposing there is no need to call dispose handler /******/ delete outdatedDependencies[moduleId]; /******/ /******/ // remove "parents" references from all children /******/ for (j = 0; j < module.children.length; j++) { /******/ var child = __webpack_require__.c[module.children[j]]; /******/ if (!child) continue; /******/ idx = child.parents.indexOf(moduleId); /******/ if (idx >= 0) { /******/ child.parents.splice(idx, 1); /******/ } /******/ } /******/ } /******/ /******/ // remove outdated dependency from module children /******/ var dependency; /******/ for (var outdatedModuleId in outdatedDependencies) { /******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { /******/ module = __webpack_require__.c[outdatedModuleId]; /******/ if (module) { /******/ moduleOutdatedDependencies = /******/ outdatedDependencies[outdatedModuleId]; /******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { /******/ dependency = moduleOutdatedDependencies[j]; /******/ idx = module.children.indexOf(dependency); /******/ if (idx >= 0) module.children.splice(idx, 1); /******/ } /******/ } /******/ } /******/ } /******/ }, /******/ apply: function (reportError) { /******/ var acceptPromises = []; /******/ // insert new code /******/ for (var updateModuleId in appliedUpdate) { /******/ if (__webpack_require__.o(appliedUpdate, updateModuleId)) { /******/ __webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId]; /******/ } /******/ } /******/ /******/ // run new runtime modules /******/ for (var i = 0; i < currentUpdateRuntime.length; i++) { /******/ currentUpdateRuntime[i](__webpack_require__); /******/ } /******/ /******/ // call accept handlers /******/ for (var outdatedModuleId in outdatedDependencies) { /******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { /******/ var module = __webpack_require__.c[outdatedModuleId]; /******/ if (module) { /******/ moduleOutdatedDependencies = /******/ outdatedDependencies[outdatedModuleId]; /******/ var callbacks = []; /******/ var errorHandlers = []; /******/ var dependenciesForCallbacks = []; /******/ for (var j = 0; j < moduleOutdatedDependencies.length; j++) { /******/ var dependency = moduleOutdatedDependencies[j]; /******/ var acceptCallback = /******/ module.hot._acceptedDependencies[dependency]; /******/ var errorHandler = /******/ module.hot._acceptedErrorHandlers[dependency]; /******/ if (acceptCallback) { /******/ if (callbacks.indexOf(acceptCallback) !== -1) continue; /******/ callbacks.push(acceptCallback); /******/ errorHandlers.push(errorHandler); /******/ dependenciesForCallbacks.push(dependency); /******/ } /******/ } /******/ for (var k = 0; k < callbacks.length; k++) { /******/ var result; /******/ try { /******/ result = callbacks[k].call(null, moduleOutdatedDependencies); /******/ } catch (err) { /******/ if (typeof errorHandlers[k] === "function") { /******/ try { /******/ errorHandlers[k](err, { /******/ moduleId: outdatedModuleId, /******/ dependencyId: dependenciesForCallbacks[k] /******/ }); /******/ } catch (err2) { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "accept-error-handler-errored", /******/ moduleId: outdatedModuleId, /******/ dependencyId: dependenciesForCallbacks[k], /******/ error: err2, /******/ originalError: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ reportError(err2); /******/ reportError(err); /******/ } /******/ } /******/ } else { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "accept-errored", /******/ moduleId: outdatedModuleId, /******/ dependencyId: dependenciesForCallbacks[k], /******/ error: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ reportError(err); /******/ } /******/ } /******/ } /******/ if (result && typeof result.then === "function") { /******/ acceptPromises.push(result); /******/ } /******/ } /******/ } /******/ } /******/ } /******/ /******/ var onAccepted = function () { /******/ // Load self accepted modules /******/ for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { /******/ var item = outdatedSelfAcceptedModules[o]; /******/ var moduleId = item.module; /******/ try { /******/ item.require(moduleId); /******/ } catch (err) { /******/ if (typeof item.errorHandler === "function") { /******/ try { /******/ item.errorHandler(err, { /******/ moduleId: moduleId, /******/ module: __webpack_require__.c[moduleId] /******/ }); /******/ } catch (err1) { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "self-accept-error-handler-errored", /******/ moduleId: moduleId, /******/ error: err1, /******/ originalError: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ reportError(err1); /******/ reportError(err); /******/ } /******/ } /******/ } else { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "self-accept-errored", /******/ moduleId: moduleId, /******/ error: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ reportError(err); /******/ } /******/ } /******/ } /******/ } /******/ }; /******/ /******/ return Promise.all(acceptPromises) /******/ .then(onAccepted) /******/ .then(function () { /******/ return outdatedModules; /******/ }); /******/ } /******/ }; /******/ } /******/ __webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) { /******/ if (!currentUpdate) { /******/ currentUpdate = {}; /******/ currentUpdateRuntime = []; /******/ currentUpdateRemovedChunks = []; /******/ applyHandlers.push(applyHandler); /******/ } /******/ if (!__webpack_require__.o(currentUpdate, moduleId)) { /******/ currentUpdate[moduleId] = __webpack_require__.m[moduleId]; /******/ } /******/ }; /******/ __webpack_require__.hmrC.jsonp = function ( /******/ chunkIds, /******/ removedChunks, /******/ removedModules, /******/ promises, /******/ applyHandlers, /******/ updatedModulesList /******/ ) { /******/ applyHandlers.push(applyHandler); /******/ currentUpdateChunks = {}; /******/ currentUpdateRemovedChunks = removedChunks; /******/ currentUpdate = removedModules.reduce(function (obj, key) { /******/ obj[key] = false; /******/ return obj; /******/ }, {}); /******/ currentUpdateRuntime = []; /******/ chunkIds.forEach(function (chunkId) { /******/ if ( /******/ __webpack_require__.o(installedChunks, chunkId) && /******/ installedChunks[chunkId] !== undefined /******/ ) { /******/ promises.push(loadUpdateChunk(chunkId, updatedModulesList)); /******/ currentUpdateChunks[chunkId] = true; /******/ } else { /******/ currentUpdateChunks[chunkId] = false; /******/ } /******/ }); /******/ if (__webpack_require__.f) { /******/ __webpack_require__.f.jsonpHmr = function (chunkId, promises) { /******/ if ( /******/ currentUpdateChunks && /******/ __webpack_require__.o(currentUpdateChunks, chunkId) && /******/ !currentUpdateChunks[chunkId] /******/ ) { /******/ promises.push(loadUpdateChunk(chunkId)); /******/ currentUpdateChunks[chunkId] = true; /******/ } /******/ }; /******/ } /******/ }; /******/ /******/ __webpack_require__.hmrM = () => { /******/ if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API"); /******/ return fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => { /******/ if(response.status === 404) return; // no update available /******/ if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText); /******/ return response.json(); /******/ }); /******/ }; /******/ /******/ // no on chunks loaded /******/ /******/ // no jsonp function /******/ })(); /******/ /************************************************************************/ /******/ /******/ // module cache are used so entry inlining is disabled /******/ // startup /******/ // Load entry module and return exports /******/ var __webpack_exports__ = __webpack_require__("./index.css"); /******/ /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/hmr/index.css000066400000000000000000000000461516122265000227460ustar00rootroot00000000000000@import "./c.css"; @import "./b.css"; mini-css-extract-plugin-2.10.2/test/cases/hmr/webpack.config.js000066400000000000000000000007271516122265000243510ustar00rootroot00000000000000import { HotModuleReplacementPlugin } from "webpack"; import Self from "../../../src"; module.exports = { entry: "./index.css", mode: "development", devtool: false, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, "css-loader", ], }, ], }, plugins: [ new HotModuleReplacementPlugin(), new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders-2/000077500000000000000000000000001516122265000245275ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders-2/expected/000077500000000000000000000000001516122265000263305ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders-2/expected/cda29b14206471c0a745.ext000066400000000000000000000000311516122265000315650ustar00rootroot00000000000000.color { color: red; } mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders-2/expected/main.css000066400000000000000000000000351516122265000277640ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders-2/index.js000066400000000000000000000000541516122265000261730ustar00rootroot00000000000000import "./style.css"; import "./other.ext"; mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders-2/other.ext000066400000000000000000000000311516122265000263640ustar00rootroot00000000000000.color { color: red; } mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders-2/style.css000066400000000000000000000000341516122265000263760ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders-2/webpack.config.js000066400000000000000000000010151516122265000277420ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { oneOf: [ { test: /\.css$/, use: [ { loader: Self.loader, }, "css-loader", ], }, { exclude: /\.(js|mjs|jsx|ts|tsx)$/, type: "asset/resource", }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders/000077500000000000000000000000001516122265000243705ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders/expected/000077500000000000000000000000001516122265000261715ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders/expected/main.css000066400000000000000000000000351516122265000276250ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders/index.js000066400000000000000000000000261516122265000260330ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders/other.css000066400000000000000000000000311516122265000262150ustar00rootroot00000000000000.color { color: red; } mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders/style.css000066400000000000000000000000341516122265000262370ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/ignore-other-loaders/webpack.config.js000066400000000000000000000005271516122265000276120ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css|\.less$/, use: [ { loader: Self.loader, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrder/000077500000000000000000000000001516122265000226165ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignoreOrder/e1.css000066400000000000000000000000321516122265000236300ustar00rootroot00000000000000body { content: "e1"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrder/e2.css000066400000000000000000000000321516122265000236310ustar00rootroot00000000000000body { content: "e2"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrder/expected/000077500000000000000000000000001516122265000244175ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignoreOrder/expected/styles.css000066400000000000000000000000661516122265000264560ustar00rootroot00000000000000body { content: "e2"; } body { content: "e1"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrder/index.js000066400000000000000000000000461516122265000242630ustar00rootroot00000000000000import "./e2.css"; import "./e1.css"; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrder/index2.js000066400000000000000000000000461516122265000243450ustar00rootroot00000000000000import "./e1.css"; import "./e2.css"; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrder/webpack.config.js000066400000000000000000000010111516122265000260250ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { entry1: "./index.js", entry2: "./index2.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { styles: { name: "styles", chunks: "all", test: /\.css$/, enforce: true, }, }, }, }, plugins: [ new Self({ ignoreOrder: true, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/000077500000000000000000000000001516122265000235715ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/e1.css000066400000000000000000000000321516122265000246030ustar00rootroot00000000000000body { content: "e1"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/e2.css000066400000000000000000000000321516122265000246040ustar00rootroot00000000000000body { content: "e2"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/e3.css000066400000000000000000000000321516122265000246050ustar00rootroot00000000000000body { content: "e3"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/expected/000077500000000000000000000000001516122265000253725ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/expected/styles.css000066400000000000000000000001211516122265000274210ustar00rootroot00000000000000body { content: "e2"; } body { content: "e1"; } body { content: "e3"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/index.js000066400000000000000000000000461516122265000252360ustar00rootroot00000000000000import "./e2.css"; import "./e1.css"; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/index2.js000066400000000000000000000000461516122265000253200ustar00rootroot00000000000000import "./e1.css"; import "./e2.css"; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/index3.js000066400000000000000000000000461516122265000253210ustar00rootroot00000000000000import "./e2.css"; import "./e3.css"; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/warnings.js000066400000000000000000000007761516122265000257710ustar00rootroot00000000000000const cssLoaderPath = require.resolve("css-loader").replace(/\\/g, "/"); module.exports = [ "", "WARNING in chunk styles [mini-css-extract-plugin]", "Conflicting order. Following module has been added:", ` * css ${cssLoaderPath}!./e2.css`, "despite it was not able to fulfill desired ordering with these modules:", ` * css ${cssLoaderPath}!./e1.css`, " - couldn't fulfill desired order of chunk group(s) entry2", " - while fulfilling desired order of chunk group(s) entry1", ].join("\n"); mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalse/webpack.config.js000066400000000000000000000010451516122265000270070ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { entry1: "./index.js", entry2: "./index2.js", entry3: "./index3.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { styles: { name: "styles", chunks: "all", test: /\.css$/, enforce: true, }, }, }, }, plugins: [ new Self({ ignoreOrder: false, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/000077500000000000000000000000001516122265000271425ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/e1.css000066400000000000000000000000321516122265000301540ustar00rootroot00000000000000body { content: "e1"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/e2.css000066400000000000000000000000321516122265000301550ustar00rootroot00000000000000body { content: "e2"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/e3.css000066400000000000000000000000321516122265000301560ustar00rootroot00000000000000body { content: "e3"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/e4.css000066400000000000000000000000321516122265000301570ustar00rootroot00000000000000body { content: "e4"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/expected/000077500000000000000000000000001516122265000307435ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/expected/styles.css000066400000000000000000000001541516122265000330000ustar00rootroot00000000000000body { content: "e1"; } body { content: "e4"; } body { content: "e2"; } body { content: "e3"; } mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/index.js000066400000000000000000000000231516122265000306020ustar00rootroot00000000000000import "./e1.css"; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/index2.js000066400000000000000000000000461516122265000306710ustar00rootroot00000000000000import "./e2.css"; import "./e1.css"; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/index3.js000066400000000000000000000000711516122265000306700ustar00rootroot00000000000000import "./e3.css"; import "./e4.css"; import "./e2.css"; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/index4.js000066400000000000000000000000711516122265000306710ustar00rootroot00000000000000import "./e4.css"; import "./e2.css"; import "./e3.css"; mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/warnings.js000066400000000000000000000023421516122265000313310ustar00rootroot00000000000000const cssLoaderPath = require.resolve("css-loader").replace(/\\/g, "/"); module.exports = [ "", "WARNING in chunk styles [mini-css-extract-plugin]", "Conflicting order. Following module has been added:", ` * css ${cssLoaderPath}!./e1.css`, "despite it was not able to fulfill desired ordering with these modules:", ` * css ${cssLoaderPath}!./e2.css`, " - couldn't fulfill desired order of chunk group(s) entry2", "", "WARNING in chunk styles [mini-css-extract-plugin]", "Conflicting order. Following module has been added:", ` * css ${cssLoaderPath}!./e4.css`, "despite it was not able to fulfill desired ordering with these modules:", ` * css ${cssLoaderPath}!./e3.css`, " - couldn't fulfill desired order of chunk group(s) entry3", " - while fulfilling desired order of chunk group(s) entry4", "", "WARNING in chunk styles [mini-css-extract-plugin]", "Conflicting order. Following module has been added:", ` * css ${cssLoaderPath}!./e2.css`, "despite it was not able to fulfill desired ordering with these modules:", ` * css ${cssLoaderPath}!./e3.css`, " - couldn't fulfill desired order of chunk group(s) entry3", " - while fulfilling desired order of chunk group(s) entry4", ].join("\n"); mini-css-extract-plugin-2.10.2/test/cases/ignoreOrderFalseWithoutGoodChunks/webpack.config.js000066400000000000000000000011001516122265000323500ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { entry1: "./index.js", entry2: "./index2.js", entry3: "./index3.js", entry4: "./index4.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { styles: { name: "styles", chunks: "all", test: /\.css$/, enforce: true, }, }, }, }, plugins: [ new Self({ ignoreOrder: false, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/import/000077500000000000000000000000001516122265000216515ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/import/a.css000066400000000000000000000000341516122265000226000ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/import/b.css000066400000000000000000000001361516122265000226040ustar00rootroot00000000000000.b { background: red; } @import url("https://some/external/css"); .b { color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/import/c.css000066400000000000000000000001441516122265000226040ustar00rootroot00000000000000.c { background: red; } @import url("https://some/other/external/css"); .c { color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/import/expected/000077500000000000000000000000001516122265000234525ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/import/expected/main.css000066400000000000000000000003331516122265000251070ustar00rootroot00000000000000@import url(https://some/other/external/css); @import url(https://some/external/css); .c { background: red; } .c { color: yellow; } body { background: red; } .b { background: red; } .b { color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/import/index.js000066400000000000000000000000661516122265000233200ustar00rootroot00000000000000import "./c.css"; import "./a.css"; import "./b.css"; mini-css-extract-plugin-2.10.2/test/cases/import/webpack.config.js000066400000000000000000000004161516122265000250700ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/insert-function/000077500000000000000000000000001516122265000234665ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/insert-function/expected/000077500000000000000000000000001516122265000252675ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/insert-function/expected/1.css000066400000000000000000000000351516122265000261370ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/insert-function/expected/1.js000066400000000000000000000004231516122265000257640ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) ]]);mini-css-extract-plugin-2.10.2/test/cases/insert-function/expected/main.js000066400000000000000000000346231516122265000265610ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({}); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get mini-css chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".css"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/css loading */ /******/ (() => { /******/ if (typeof document === "undefined") return; /******/ var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => { /******/ var linkTag = document.createElement("link"); /******/ /******/ linkTag.rel = "stylesheet"; /******/ linkTag.type = "text/css"; /******/ if (__webpack_require__.nc) { /******/ linkTag.nonce = __webpack_require__.nc; /******/ } /******/ var onLinkComplete = (event) => { /******/ // avoid mem leaks. /******/ linkTag.onerror = linkTag.onload = null; /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { /******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; /******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); /******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; /******/ if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag) /******/ reject(err); /******/ } /******/ } /******/ linkTag.onerror = linkTag.onload = onLinkComplete; /******/ linkTag.href = fullhref; /******/ /******/ /******/ (function (linkTag) { /******/ const reference = document.querySelector(".hot-reload"); /******/ if (reference) { /******/ reference.parentNode.insertBefore(linkTag, reference); /******/ } /******/ })(linkTag) /******/ return linkTag; /******/ }; /******/ var findStylesheet = (href, fullhref) => { /******/ var existingLinkTags = document.getElementsByTagName("link"); /******/ for(var i = 0; i < existingLinkTags.length; i++) { /******/ var tag = existingLinkTags[i]; /******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); /******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; /******/ } /******/ var existingStyleTags = document.getElementsByTagName("style"); /******/ for(var i = 0; i < existingStyleTags.length; i++) { /******/ var tag = existingStyleTags[i]; /******/ var dataHref = tag.getAttribute("data-href"); /******/ if(dataHref === href || dataHref === fullhref) return tag; /******/ } /******/ }; /******/ var loadStylesheet = (chunkId) => { /******/ return new Promise((resolve, reject) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ if(findStylesheet(href, fullhref)) return resolve(); /******/ createStylesheet(chunkId, fullhref, null, resolve, reject); /******/ }); /******/ } /******/ // object to store loaded CSS chunks /******/ var installedCssChunks = { /******/ 0: 0 /******/ }; /******/ /******/ __webpack_require__.f.miniCss = (chunkId, promises) => { /******/ var cssChunks = {"1":1}; /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { /******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { /******/ installedCssChunks[chunkId] = 0; /******/ }, (e) => { /******/ delete installedCssChunks[chunkId]; /******/ throw e; /******/ })); /******/ } /******/ }; /******/ /******/ // no hmr /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 0: 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { /******/ // JSONP chunk loading for javascript /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ if(true) { // all chunks have JS /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(__webpack_require__.o(installedChunks, chunkId)) { /******/ installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; /******/ if(installedChunkData) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ installedChunkData[1](error); /******/ } /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); /******/ } /******/ } /******/ } /******/ }; /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ // no on chunks loaded /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; /* eslint-env browser */ // eslint-disable-next-line __webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(__webpack_require__, 1)); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/insert-function/src/000077500000000000000000000000001516122265000242555ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/insert-function/src/index.js000066400000000000000000000001161516122265000257200ustar00rootroot00000000000000/* eslint-env browser */ // eslint-disable-next-line import("./inject.css"); mini-css-extract-plugin-2.10.2/test/cases/insert-function/src/inject.css000066400000000000000000000000341516122265000262400ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/insert-function/webpack.config.js000066400000000000000000000012071516122265000267040ustar00rootroot00000000000000/* global document */ import Self from "../../../src"; module.exports = { module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", chunkFilename: "[id].css", // eslint-disable-next-line insert: function (linkTag) { const reference = document.querySelector(".hot-reload"); if (reference) { reference.parentNode.insertBefore(linkTag, reference); } }, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/insert-string/000077500000000000000000000000001516122265000231475ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/insert-string/expected/000077500000000000000000000000001516122265000247505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/insert-string/expected/1.css000066400000000000000000000000351516122265000256200ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/insert-string/expected/1.js000066400000000000000000000004231516122265000254450ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) ]]);mini-css-extract-plugin-2.10.2/test/cases/insert-string/expected/main.js000066400000000000000000000344301516122265000262360ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({}); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get mini-css chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".css"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/css loading */ /******/ (() => { /******/ if (typeof document === "undefined") return; /******/ var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => { /******/ var linkTag = document.createElement("link"); /******/ /******/ linkTag.rel = "stylesheet"; /******/ linkTag.type = "text/css"; /******/ if (__webpack_require__.nc) { /******/ linkTag.nonce = __webpack_require__.nc; /******/ } /******/ var onLinkComplete = (event) => { /******/ // avoid mem leaks. /******/ linkTag.onerror = linkTag.onload = null; /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { /******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; /******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); /******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; /******/ if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag) /******/ reject(err); /******/ } /******/ } /******/ linkTag.onerror = linkTag.onload = onLinkComplete; /******/ linkTag.href = fullhref; /******/ /******/ /******/ var target = document.querySelector("script[src='1.js']"); /******/ target.parentNode.insertBefore(linkTag, target.nextSibling); /******/ return linkTag; /******/ }; /******/ var findStylesheet = (href, fullhref) => { /******/ var existingLinkTags = document.getElementsByTagName("link"); /******/ for(var i = 0; i < existingLinkTags.length; i++) { /******/ var tag = existingLinkTags[i]; /******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); /******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; /******/ } /******/ var existingStyleTags = document.getElementsByTagName("style"); /******/ for(var i = 0; i < existingStyleTags.length; i++) { /******/ var tag = existingStyleTags[i]; /******/ var dataHref = tag.getAttribute("data-href"); /******/ if(dataHref === href || dataHref === fullhref) return tag; /******/ } /******/ }; /******/ var loadStylesheet = (chunkId) => { /******/ return new Promise((resolve, reject) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ if(findStylesheet(href, fullhref)) return resolve(); /******/ createStylesheet(chunkId, fullhref, null, resolve, reject); /******/ }); /******/ } /******/ // object to store loaded CSS chunks /******/ var installedCssChunks = { /******/ 0: 0 /******/ }; /******/ /******/ __webpack_require__.f.miniCss = (chunkId, promises) => { /******/ var cssChunks = {"1":1}; /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { /******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { /******/ installedCssChunks[chunkId] = 0; /******/ }, (e) => { /******/ delete installedCssChunks[chunkId]; /******/ throw e; /******/ })); /******/ } /******/ }; /******/ /******/ // no hmr /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 0: 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { /******/ // JSONP chunk loading for javascript /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ if(true) { // all chunks have JS /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(__webpack_require__.o(installedChunks, chunkId)) { /******/ installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; /******/ if(installedChunkData) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ installedChunkData[1](error); /******/ } /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); /******/ } /******/ } /******/ } /******/ }; /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ // no on chunks loaded /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; /* eslint-env browser */ // eslint-disable-next-line __webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(__webpack_require__, 1)); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/insert-string/src/000077500000000000000000000000001516122265000237365ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/insert-string/src/index.js000066400000000000000000000001161516122265000254010ustar00rootroot00000000000000/* eslint-env browser */ // eslint-disable-next-line import("./inject.css"); mini-css-extract-plugin-2.10.2/test/cases/insert-string/src/inject.css000066400000000000000000000000341516122265000257210ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/insert-string/webpack.config.js000066400000000000000000000006701516122265000263700ustar00rootroot00000000000000/* global document */ import Self from "../../../src"; module.exports = { module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", chunkFilename: "[id].css", insert: "script[src='1.js']", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/insert-undefined/000077500000000000000000000000001516122265000236025ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/insert-undefined/expected/000077500000000000000000000000001516122265000254035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/insert-undefined/expected/1.css000066400000000000000000000000351516122265000262530ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/insert-undefined/expected/1.js000066400000000000000000000004231516122265000261000ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) ]]);mini-css-extract-plugin-2.10.2/test/cases/insert-undefined/expected/main.js000066400000000000000000000345001516122265000266670ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({}); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get mini-css chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".css"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/css loading */ /******/ (() => { /******/ if (typeof document === "undefined") return; /******/ var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => { /******/ var linkTag = document.createElement("link"); /******/ /******/ linkTag.rel = "stylesheet"; /******/ linkTag.type = "text/css"; /******/ if (__webpack_require__.nc) { /******/ linkTag.nonce = __webpack_require__.nc; /******/ } /******/ var onLinkComplete = (event) => { /******/ // avoid mem leaks. /******/ linkTag.onerror = linkTag.onload = null; /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { /******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; /******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); /******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; /******/ if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag) /******/ reject(err); /******/ } /******/ } /******/ linkTag.onerror = linkTag.onload = onLinkComplete; /******/ linkTag.href = fullhref; /******/ /******/ /******/ if (oldTag) { /******/ oldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling); /******/ } else { /******/ document.head.appendChild(linkTag); /******/ } /******/ return linkTag; /******/ }; /******/ var findStylesheet = (href, fullhref) => { /******/ var existingLinkTags = document.getElementsByTagName("link"); /******/ for(var i = 0; i < existingLinkTags.length; i++) { /******/ var tag = existingLinkTags[i]; /******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); /******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; /******/ } /******/ var existingStyleTags = document.getElementsByTagName("style"); /******/ for(var i = 0; i < existingStyleTags.length; i++) { /******/ var tag = existingStyleTags[i]; /******/ var dataHref = tag.getAttribute("data-href"); /******/ if(dataHref === href || dataHref === fullhref) return tag; /******/ } /******/ }; /******/ var loadStylesheet = (chunkId) => { /******/ return new Promise((resolve, reject) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ if(findStylesheet(href, fullhref)) return resolve(); /******/ createStylesheet(chunkId, fullhref, null, resolve, reject); /******/ }); /******/ } /******/ // object to store loaded CSS chunks /******/ var installedCssChunks = { /******/ 0: 0 /******/ }; /******/ /******/ __webpack_require__.f.miniCss = (chunkId, promises) => { /******/ var cssChunks = {"1":1}; /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { /******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { /******/ installedCssChunks[chunkId] = 0; /******/ }, (e) => { /******/ delete installedCssChunks[chunkId]; /******/ throw e; /******/ })); /******/ } /******/ }; /******/ /******/ // no hmr /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 0: 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { /******/ // JSONP chunk loading for javascript /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ if(true) { // all chunks have JS /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(__webpack_require__.o(installedChunks, chunkId)) { /******/ installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; /******/ if(installedChunkData) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ installedChunkData[1](error); /******/ } /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); /******/ } /******/ } /******/ } /******/ }; /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ // no on chunks loaded /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; /* eslint-env browser */ // eslint-disable-next-line __webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(__webpack_require__, 1)); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/insert-undefined/src/000077500000000000000000000000001516122265000243715ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/insert-undefined/src/index.js000066400000000000000000000001161516122265000260340ustar00rootroot00000000000000/* eslint-env browser */ // eslint-disable-next-line import("./inject.css"); mini-css-extract-plugin-2.10.2/test/cases/insert-undefined/src/inject.css000066400000000000000000000000341516122265000263540ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/insert-undefined/webpack.config.js000066400000000000000000000006241516122265000270220ustar00rootroot00000000000000/* global document */ import Self from "../../../src"; module.exports = { module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", chunkFilename: "[id].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-1/000077500000000000000000000000001516122265000242455ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-1/dark.css000066400000000000000000000000361516122265000256770ustar00rootroot00000000000000body { background: black; } mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-1/expected/000077500000000000000000000000001516122265000260465ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-1/expected/dark.css000066400000000000000000000000371516122265000275010ustar00rootroot00000000000000body { background: black; } mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-1/expected/index.css000066400000000000000000000000771516122265000276730ustar00rootroot00000000000000@supports (display: flex) { body { background: black; } } mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-1/index.css000066400000000000000000000000611516122265000260630ustar00rootroot00000000000000@import url("dark.css") supports(display: flex); mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-1/webpack.config.js000066400000000000000000000007411516122265000274650ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { dark: "./dark.css", index: "./index.css", }, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { modules: true, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-2/000077500000000000000000000000001516122265000242465ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-2/dark.css000066400000000000000000000000361516122265000257000ustar00rootroot00000000000000body { background: black; } mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-2/expected/000077500000000000000000000000001516122265000260475ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-2/expected/dark.css000066400000000000000000000000371516122265000275020ustar00rootroot00000000000000body { background: black; } mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-2/expected/index.css000066400000000000000000000001001516122265000276570ustar00rootroot00000000000000@layer framework.component { body { background: black; } } mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-2/index.css000066400000000000000000000000641516122265000260670ustar00rootroot00000000000000@import url("dark.css") layer(framework.component); mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503-2/webpack.config.js000066400000000000000000000007411516122265000274660ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { dark: "./dark.css", index: "./index.css", }, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { modules: true, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503/000077500000000000000000000000001516122265000241075ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503/dark.css000066400000000000000000000000361516122265000255410ustar00rootroot00000000000000body { background: black; } mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503/expected/000077500000000000000000000000001516122265000257105ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503/expected/dark.css000066400000000000000000000000371516122265000273430ustar00rootroot00000000000000body { background: black; } mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503/expected/index.css000066400000000000000000000001111516122265000275220ustar00rootroot00000000000000@media (prefers-color-scheme: dark) { body { background: black; } } mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503/index.css000066400000000000000000000000631516122265000257270ustar00rootroot00000000000000@import "./dark.css" (prefers-color-scheme: dark); mini-css-extract-plugin-2.10.2/test/cases/issue-css-loader-1503/webpack.config.js000066400000000000000000000007411516122265000273270ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { dark: "./dark.css", index: "./index.css", }, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { modules: true, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/js-hash/000077500000000000000000000000001516122265000216745ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/js-hash/expected/000077500000000000000000000000001516122265000234755ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/js-hash/expected/webpack-5-importModule/000077500000000000000000000000001516122265000277315ustar00rootroot00000000000000style.673556889871ee1ba393.1.css000066400000000000000000000000561516122265000343100ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/js-hash/expected/webpack-5-importModule.y47aAtdWkILSHa01rP4B { background: red; } style.da830ae5237422e8b8b0.2.css000066400000000000000000000000611516122265000344670ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/js-hash/expected/webpack-5-importModule .y47aAtdWkILSHa01rP4B { background: green; } mini-css-extract-plugin-2.10.2/test/cases/js-hash/expected/webpack-5/000077500000000000000000000000001516122265000252535ustar00rootroot00000000000000style.673556889871ee1ba393.1.css000066400000000000000000000000561516122265000316320ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/js-hash/expected/webpack-5.y47aAtdWkILSHa01rP4B { background: red; } style.da830ae5237422e8b8b0.2.css000066400000000000000000000000611516122265000320110ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/js-hash/expected/webpack-5 .y47aAtdWkILSHa01rP4B { background: green; } mini-css-extract-plugin-2.10.2/test/cases/js-hash/index.js000066400000000000000000000001541516122265000233410ustar00rootroot00000000000000/* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "style" */ "./style.css"); mini-css-extract-plugin-2.10.2/test/cases/js-hash/loader.js000066400000000000000000000002051516122265000234750ustar00rootroot00000000000000module.exports = function loader(source) { const { number } = this.query; return source.split(/\/\* break \*\//)[number - 1]; }; mini-css-extract-plugin-2.10.2/test/cases/js-hash/style.css000066400000000000000000000001021516122265000235370ustar00rootroot00000000000000.a { background: red; } /* break */ .a { background: green; } mini-css-extract-plugin-2.10.2/test/cases/js-hash/webpack.config.js000066400000000000000000000014071516122265000251140ustar00rootroot00000000000000import Self from "../../../src"; module.exports = [1, 2].map((n) => { return { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { modules: true, }, }, { loader: "./loader", ident: "my-loader", options: { number: n, }, }, ], }, ], }, output: { filename: `[name].[contenthash].${n}.js`, }, plugins: [ new Self({ filename: `[name].[contenthash].${n}.css`, }), ], }; }); mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/000077500000000000000000000000001516122265000240605ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/expected/000077500000000000000000000000001516122265000256615ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/expected/main.css000066400000000000000000000002221516122265000273130ustar00rootroot00000000000000body { background-image: url(static/icon.svg); } body { background-image: url(./icon.svg); } body { background-image: url(./icon.svg); } mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/expected/static/000077500000000000000000000000001516122265000271505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/expected/static/icon.svg000066400000000000000000000001351516122265000306200ustar00rootroot00000000000000 mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/icon.svg000066400000000000000000000001351516122265000255300ustar00rootroot00000000000000 mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/index.js000066400000000000000000000001621516122265000255240ustar00rootroot00000000000000import "./virtual.css!=!./source.txt"; import "./virtual.css?=query!=!./source.txt"; import "./other.css?=query"; mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/other.css000066400000000000000000000000561516122265000257140ustar00rootroot00000000000000body { background-image: url(./icon.svg); } mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/source.txt000066400000000000000000000000561516122265000261220ustar00rootroot00000000000000body { background-image: url(./icon.svg); } mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/test.filter.js000066400000000000000000000001251516122265000266570ustar00rootroot00000000000000import yn from "../../helpers/yn"; module.exports = () => !yn(process.env.OLD_API); mini-css-extract-plugin-2.10.2/test/cases/match-resource-url/webpack.config.js000066400000000000000000000013311516122265000272740ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, resourceQuery: { not: /query/ }, use: [Self.loader, "css-loader"], }, { test: /\.css$/, resourceQuery: /query/, use: [ Self.loader, { loader: "css-loader", options: { url: false, }, }, ], }, { test: /\.svg$/, issuer: /\.css$/, type: "asset/resource", generator: { filename: "static/[name][ext]", }, }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/moduleFilenameMutableFilename/000077500000000000000000000000001516122265000262405ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/moduleFilenameMutableFilename/expected/000077500000000000000000000000001516122265000300415ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/moduleFilenameMutableFilename/expected/mutated.css000066400000000000000000000000431516122265000322130ustar00rootroot00000000000000body { background: palegreen; } mini-css-extract-plugin-2.10.2/test/cases/moduleFilenameMutableFilename/index.js000066400000000000000000000000261516122265000277030ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/moduleFilenameMutableFilename/style.css000066400000000000000000000000421516122265000301060ustar00rootroot00000000000000body { background: palegreen; } mini-css-extract-plugin-2.10.2/test/cases/moduleFilenameMutableFilename/webpack.config.js000066400000000000000000000006551516122265000314640ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { main: "./index.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, output: { filename: "[name].js", }, plugins: [ (() => { const self = new Self({ filename: "constructed.css" }); self.options.filename = "mutated.css"; return self; })(), ], }; mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/000077500000000000000000000000001516122265000240025ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/expected/000077500000000000000000000000001516122265000256035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/expected/one-main.js000066400000000000000000000041661516122265000276530ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/expected/one/000077500000000000000000000000001516122265000263645ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/expected/one/main.css000066400000000000000000000000351516122265000300200ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/expected/two-main.js000066400000000000000000000041661516122265000277030ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/expected/two/000077500000000000000000000000001516122265000264145ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/expected/two/main.css000066400000000000000000000000351516122265000300500ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/index.js000066400000000000000000000000261516122265000254450ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/style.css000066400000000000000000000000341516122265000256510ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/multiple-compiler/webpack.config.js000066400000000000000000000012421516122265000272170ustar00rootroot00000000000000import Self from "../../../src"; module.exports = [ { entry: "./index.js", output: { filename: "one-[name].js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "one/[name].css", }), ], }, { entry: "./index.js", output: { filename: "two-[name].js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "two/[name].css", }), ], }, ]; mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/000077500000000000000000000000001516122265000233315ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/a.css000066400000000000000000000000341516122265000242600ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/async-one.js000066400000000000000000000000441516122265000255610ustar00rootroot00000000000000import "./c.css"; import "./d.css"; mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/async-two.js000066400000000000000000000000441516122265000256110ustar00rootroot00000000000000import "./d.css"; import "./c.css"; mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/b.css000066400000000000000000000000361516122265000242630ustar00rootroot00000000000000body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/c.css000066400000000000000000000000351516122265000242630ustar00rootroot00000000000000body { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/d.css000066400000000000000000000000371516122265000242660ustar00rootroot00000000000000body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/expected/000077500000000000000000000000001516122265000251325ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/expected/async-one.css000066400000000000000000000000761516122265000275430ustar00rootroot00000000000000body { background: blue; } body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/expected/async-two.css000066400000000000000000000000761516122265000275730ustar00rootroot00000000000000body { background: yellow; } body { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/expected/main-one.css000066400000000000000000000000741516122265000273500ustar00rootroot00000000000000body { background: red; } body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/expected/main-two.css000066400000000000000000000000741516122265000274000ustar00rootroot00000000000000body { background: green; } body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/index-one.js000066400000000000000000000002251516122265000255540ustar00rootroot00000000000000import "./a.css"; import "./b.css"; /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: 'async-one' */ "./async-one"); mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/index-two.js000066400000000000000000000002251516122265000256040ustar00rootroot00000000000000import "./b.css"; import "./a.css"; /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: 'async-two' */ "./async-two"); mini-css-extract-plugin-2.10.2/test/cases/multiple-entry/webpack.config.js000066400000000000000000000005131516122265000265460ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { "main-one": "./index-one.js", "main-two": "./index-two.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/000077500000000000000000000000001516122265000317035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/expected/000077500000000000000000000000001516122265000335045ustar00rootroot00000000000000dark.css000066400000000000000000000000441516122265000350560ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/expectedbody { background-color: black; } main.css000066400000000000000000000000441516122265000350610ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/expectedbody { background-color: white; } mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/public/000077500000000000000000000000001516122265000331615ustar00rootroot00000000000000index.html000066400000000000000000000004611516122265000351000ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/public Document mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/src/000077500000000000000000000000001516122265000324725ustar00rootroot00000000000000dark-theme/000077500000000000000000000000001516122265000344345ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/src_vars.scss000066400000000000000000000000241516122265000364370ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/src/dark-theme$background: black; index.js000066400000000000000000000021341516122265000340600ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/src/* eslint-env browser */ import "./style.scss"; let theme = "light"; const themes = {}; themes[theme] = document.querySelector("#theme"); async function loadTheme(newTheme) { // eslint-disable-next-line no-console console.log(`CHANGE THEME - ${newTheme}`); const themeElement = document.querySelector("#theme"); if (themeElement) { themeElement.remove(); } if (themes[newTheme]) { // eslint-disable-next-line no-console console.log(`THEME ALREADY LOADED - ${newTheme}`); document.head.appendChild(themes[newTheme]); return; } if (newTheme === "dark") { // eslint-disable-next-line no-console console.log(`LOADING THEME - ${newTheme}`); // eslint-disable-next-line import/no-unresolved import(/* webpackChunkName: "dark" */ "./style.scss?dark").then(() => { themes[newTheme] = document.querySelector("#theme"); // eslint-disable-next-line no-console console.log(`LOADED - ${newTheme}`); }); } } document.onclick = () => { if (theme === "light") { theme = "dark"; } else { theme = "light"; } loadTheme(theme); }; light-theme/000077500000000000000000000000001516122265000346225ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/src_vars.scss000066400000000000000000000000241516122265000366250ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/src/light-theme$background: white; style.scss000066400000000000000000000000571516122265000344520ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-light/srcbody { background-color: vars.$background; } webpack.config.js000066400000000000000000000016721516122265000350500ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading-with-default-lightimport Self from "../../../src"; module.exports = { entry: "./src/index.js", module: { rules: [ { test: /\.s[ac]ss$/i, oneOf: [ { resourceQuery: "?dark", use: [ Self.loader, "css-loader", { loader: "sass-loader", options: { additionalData: `@use 'dark-theme/vars' as vars;`, }, }, ], }, { use: [ Self.loader, "css-loader", { loader: "sass-loader", options: { additionalData: `@use 'light-theme/vars' as vars;`, }, }, ], }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", attributes: { id: "theme", }, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/000077500000000000000000000000001516122265000262035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/expected/000077500000000000000000000000001516122265000300045ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/expected/dark.css000066400000000000000000000000441516122265000314350ustar00rootroot00000000000000body { background-color: black; } mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/expected/light.css000066400000000000000000000000441516122265000316230ustar00rootroot00000000000000body { background-color: white; } mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/public/000077500000000000000000000000001516122265000274615ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/public/index.html000066400000000000000000000003501516122265000314540ustar00rootroot00000000000000 Document mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/src/000077500000000000000000000000001516122265000267725ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/src/dark-theme/000077500000000000000000000000001516122265000310135ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/src/dark-theme/_vars.scss000066400000000000000000000000241516122265000330160ustar00rootroot00000000000000$background: black; mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/src/index.js000066400000000000000000000024751516122265000304470ustar00rootroot00000000000000/* eslint-env browser */ let theme = "light"; const themes = {}; async function loadTheme(newTheme) { // eslint-disable-next-line no-console console.log(`CHANGE THEME - ${newTheme}`); const themeElement = document.querySelector("#theme"); if (themeElement) { themeElement.remove(); } if (themes[newTheme]) { // eslint-disable-next-line no-console // eslint-disable-next-line no-console console.log(`THEME ALREADY LOADED - ${newTheme}`); document.head.appendChild(themes[newTheme]); return; } // eslint-disable-next-line no-console console.log(`LOADING THEME - ${newTheme}`); if (newTheme === "light") { import(/* webpackChunkName: "light" */ "./style.scss").then(() => { themes[newTheme] = document.querySelector("#theme"); // eslint-disable-next-line no-console console.log(`LOADED - ${newTheme}`); }); } else { // eslint-disable-next-line import/no-unresolved import(/* webpackChunkName: "dark" */ "./style.scss?dark").then(() => { themes[newTheme] = document.querySelector("#theme"); // eslint-disable-next-line no-console console.log(`LOADED - ${newTheme}`); }); } } document.onclick = () => { if (theme === "light") { theme = "dark"; } else { theme = "light"; } loadTheme(theme); }; loadTheme(theme); mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/src/light-theme/000077500000000000000000000000001516122265000312015ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/src/light-theme/_vars.scss000066400000000000000000000000241516122265000332040ustar00rootroot00000000000000$background: white; mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/src/style.scss000066400000000000000000000000571516122265000310310ustar00rootroot00000000000000body { background-color: vars.$background; } mini-css-extract-plugin-2.10.2/test/cases/multiple-themes-async-loading/webpack.config.js000066400000000000000000000016721516122265000314270ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./src/index.js", module: { rules: [ { test: /\.s[ac]ss$/i, oneOf: [ { resourceQuery: "?dark", use: [ Self.loader, "css-loader", { loader: "sass-loader", options: { additionalData: `@use 'dark-theme/vars' as vars;`, }, }, ], }, { use: [ Self.loader, "css-loader", { loader: "sass-loader", options: { additionalData: `@use 'light-theme/vars' as vars;`, }, }, ], }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", attributes: { id: "theme", }, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/nested/000077500000000000000000000000001516122265000216215ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/nested/a.css000066400000000000000000000000341516122265000225500ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/nested/b.css000066400000000000000000000000361516122265000225530ustar00rootroot00000000000000body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/nested/component.css000066400000000000000000000000431516122265000243320ustar00rootroot00000000000000.component { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/nested/component.js000066400000000000000000000000321516122265000241540ustar00rootroot00000000000000import "./component.css"; mini-css-extract-plugin-2.10.2/test/cases/nested/expected/000077500000000000000000000000001516122265000234225ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/nested/expected/main.css000066400000000000000000000001401516122265000250530ustar00rootroot00000000000000body { background: red; } .component { background: blue; } body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/nested/index.js000066400000000000000000000000721516122265000232650ustar00rootroot00000000000000import "./a.css"; import "./component"; import "./b.css"; mini-css-extract-plugin-2.10.2/test/cases/nested/webpack.config.js000066400000000000000000000004161516122265000250400ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/new-url/000077500000000000000000000000001516122265000217305ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/new-url/expected/000077500000000000000000000000001516122265000235315ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/new-url/expected/09a1a1112c577c279435.png000066400000000000000000002304451516122265000266360ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/new-url/expected/main.css000066400000000000000000000001211516122265000251610ustar00rootroot00000000000000body { background: red; } a { background: url(09a1a1112c577c279435.png); } mini-css-extract-plugin-2.10.2/test/cases/new-url/expected/main.js000066400000000000000000000062671516122265000250260ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ __webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href; /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 0: 0 /******/ }; /******/ /******/ // no chunk on demand loading /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ // no on chunks loaded /******/ /******/ // no jsonp function /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { const myURL = new URL(/* asset import */ __webpack_require__(1), __webpack_require__.b); console.log(myURL); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/new-url/img.png000066400000000000000000002304451516122265000232220ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/new-url/index.js000066400000000000000000000001141516122265000233710ustar00rootroot00000000000000const myURL = new URL("./style.css", import.meta.url); console.log(myURL); mini-css-extract-plugin-2.10.2/test/cases/new-url/style.css000066400000000000000000000001031516122265000235740ustar00rootroot00000000000000body { background: red; } a { background: url("./img.png"); } mini-css-extract-plugin-2.10.2/test/cases/new-url/webpack.config.js000066400000000000000000000004571516122265000251540ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], type: "javascript/auto", }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/no-identifier/000077500000000000000000000000001516122265000230735ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/no-identifier/index.js000066400000000000000000000000261516122265000245360ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/no-identifier/style.css000066400000000000000000000001321516122265000247410ustar00rootroot00000000000000.a { background: red; } :local(.b) { color: green; } :global(.c) { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/no-identifier/webpack.config.js000066400000000000000000000010371516122265000263120ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", options: { modules: { mode: "local", localIdentName: "foo__[name]__[local]", exportOnlyLocals: true, }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/no-loader/000077500000000000000000000000001516122265000222175ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/no-loader/index.js000066400000000000000000000000261516122265000236620ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/no-loader/style.css000066400000000000000000000000341516122265000240660ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/no-loader/webpack.config.js000066400000000000000000000004011516122265000254300ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: ["css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/no-runtime/000077500000000000000000000000001516122265000224345ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/no-runtime/async.css000066400000000000000000000000311516122265000242550ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/no-runtime/expected/000077500000000000000000000000001516122265000242355ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/no-runtime/expected/async.css000066400000000000000000000000321516122265000260570ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/no-runtime/expected/async.js000066400000000000000000000004011516122265000257030ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[0],{ /***/ 2 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ } }]);mini-css-extract-plugin-2.10.2/test/cases/no-runtime/expected/main.css000066400000000000000000000000351516122265000256710ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/no-runtime/expected/main.js000066400000000000000000000256541516122265000255330ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ([ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + "async" + ".js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 1: 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { /******/ // JSONP chunk loading for javascript /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ if(true) { // all chunks have JS /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(__webpack_require__.o(installedChunks, chunkId)) { /******/ installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; /******/ if(installedChunkData) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ installedChunkData[1](error); /******/ } /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); /******/ } /******/ } /******/ } /******/ }; /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ // no on chunks loaded /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. (() => { __webpack_require__.r(__webpack_exports__); /* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); __webpack_require__.e(/* import() | async */ 0).then(__webpack_require__.bind(__webpack_require__, 2)); })(); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/no-runtime/index.js000066400000000000000000000001161516122265000240770ustar00rootroot00000000000000import "./style.css"; import(/* webpackChunkName: "async" */ "./async.css"); mini-css-extract-plugin-2.10.2/test/cases/no-runtime/style.css000066400000000000000000000000341516122265000243030ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/no-runtime/webpack.config.js000066400000000000000000000004441516122265000256540ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", runtime: false, }), ], }; mini-css-extract-plugin-2.10.2/test/cases/no-source-map/000077500000000000000000000000001516122265000230245ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/no-source-map/expected/000077500000000000000000000000001516122265000246255ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/no-source-map/expected/main.css000066400000000000000000000000351516122265000262610ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/no-source-map/index.js000066400000000000000000000000261516122265000244670ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/no-source-map/style.css000066400000000000000000000000341516122265000246730ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/no-source-map/webpack.config.js000066400000000000000000000007751516122265000262530ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", // Required to disable source maps in webpack@4 devtool: false, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { sourceMap: false, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/output-iife/000077500000000000000000000000001516122265000226115ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/output-iife/expected/000077500000000000000000000000001516122265000244125ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/output-iife/expected/main.css000066400000000000000000000000351516122265000260460ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/output-iife/index.js000066400000000000000000000000261516122265000242540ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/output-iife/style.css000066400000000000000000000000341516122265000244600ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/output-iife/webpack.config.js000066400000000000000000000004601516122265000260270ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, output: { iife: false, }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/output-module/000077500000000000000000000000001516122265000231625ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/output-module/expected/000077500000000000000000000000001516122265000247635ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/output-module/expected/main.css000066400000000000000000000000351516122265000264170ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/output-module/index.js000066400000000000000000000000261516122265000246250ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/output-module/style.css000066400000000000000000000000341516122265000250310ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/output-module/webpack.config.js000066400000000000000000000005371516122265000264050ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, output: { module: true, }, experiments: { outputModule: true, }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/pathinfo-devtool-source-map/000077500000000000000000000000001516122265000256725ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/pathinfo-devtool-source-map/expected/000077500000000000000000000000001516122265000274735ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/pathinfo-devtool-source-map/expected/main.css000066400000000000000000000014261516122265000311340ustar00rootroot00000000000000/*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./style.css ***! \********************************************************************/ body { background: red; } /*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./other.css ***! \********************************************************************/ body { background: blue; } /*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./extra.css ***! \********************************************************************/ body { background: yellow; } /*# sourceMappingURL=main.css.map*/mini-css-extract-plugin-2.10.2/test/cases/pathinfo-devtool-source-map/expected/main.css.map000066400000000000000000000005511516122265000317060ustar00rootroot00000000000000{"version":3,"file":"main.css","mappings":";;;AAAA;EACE,eAAe;AACjB;;;;;ACFA;EACE,gBAAgB;AAClB;;;;;ACFA;EACE,kBAAkB;AACpB","sources":["webpack:///./style.css","webpack:///./other.css","webpack:///./extra.css"],"sourcesContent":["body {\n background: red;\n}\n","body {\n background: blue;\n}\n","body {\n background: yellow;\n}\n"],"names":[],"sourceRoot":""}mini-css-extract-plugin-2.10.2/test/cases/pathinfo-devtool-source-map/extra.css000066400000000000000000000000371516122265000275270ustar00rootroot00000000000000body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/pathinfo-devtool-source-map/index.js000066400000000000000000000001021516122265000273300ustar00rootroot00000000000000import "./style.css"; import "./other.css"; import "./extra.css"; mini-css-extract-plugin-2.10.2/test/cases/pathinfo-devtool-source-map/other.css000066400000000000000000000000351516122265000275230ustar00rootroot00000000000000body { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/pathinfo-devtool-source-map/style.css000066400000000000000000000000341516122265000275410ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/pathinfo-devtool-source-map/webpack.config.js000066400000000000000000000005141516122265000311100ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", devtool: "source-map", output: { pathinfo: true, }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/pathinfo/000077500000000000000000000000001516122265000221475ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/pathinfo/expected/000077500000000000000000000000001516122265000237505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/pathinfo/expected/main.css000066400000000000000000000013621516122265000254100ustar00rootroot00000000000000/*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./style.css ***! \********************************************************************/ body { background: red; } /*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./other.css ***! \********************************************************************/ body { background: blue; } /*!********************************************************************!*\ !*** css ../../../node_modules/css-loader/dist/cjs.js!./extra.css ***! \********************************************************************/ body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/pathinfo/extra.css000066400000000000000000000000371516122265000240040ustar00rootroot00000000000000body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/pathinfo/index.js000066400000000000000000000001021516122265000236050ustar00rootroot00000000000000import "./style.css"; import "./other.css"; import "./extra.css"; mini-css-extract-plugin-2.10.2/test/cases/pathinfo/other.css000066400000000000000000000000351516122265000240000ustar00rootroot00000000000000body { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/pathinfo/style.css000066400000000000000000000000341516122265000240160ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/pathinfo/webpack.config.js000066400000000000000000000004631516122265000253700ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", output: { pathinfo: true, }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload-hmr/000077500000000000000000000000001516122265000243475ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload-hmr/a.css000066400000000000000000000000251516122265000252760ustar00rootroot00000000000000.a { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload-hmr/b.js000066400000000000000000000000001516122265000251140ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload-hmr/expected/000077500000000000000000000000001516122265000261505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload-hmr/expected/main.css000066400000000000000000000000261516122265000276040ustar00rootroot00000000000000.a { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload-hmr/index.js000066400000000000000000000000761516122265000260170ustar00rootroot00000000000000import "./a.css"; import(/* webpackPrefetch: true */ "./b"); mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload-hmr/webpack.config.js000066400000000000000000000005341516122265000275670ustar00rootroot00000000000000import webpack from "webpack"; import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), new webpack.HotModuleReplacementPlugin(), ], }; mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/000077500000000000000000000000001516122265000235635ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/a.css000066400000000000000000000000251516122265000245120ustar00rootroot00000000000000.a { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/b.js000066400000000000000000000003231516122265000243400ustar00rootroot00000000000000import(/* webpackPrefetch: true, webpackChunkName: "b1" */ "./b1.css"); import(/* webpackPreload: true, webpackChunkName: "b2" */ "./b2.css"); import(/* webpackPrefetch: true, webpackChunkName: "b3" */ "./b3"); mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/b1.css000066400000000000000000000000261516122265000245750ustar00rootroot00000000000000.b1 { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/b2.css000066400000000000000000000000261516122265000245760ustar00rootroot00000000000000.b2 { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/b3.js000066400000000000000000000000001516122265000244130ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/c.js000066400000000000000000000002161516122265000243420ustar00rootroot00000000000000import(/* webpackPreload: true, webpackChunkName: "c1" */ "./c1.css"); import(/* webpackPreload: true, webpackChunkName: "c2" */ "./c2.css"); mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/c1.css000066400000000000000000000000261516122265000245760ustar00rootroot00000000000000.c1 { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/c2.css000066400000000000000000000000261516122265000245770ustar00rootroot00000000000000.c2 { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/000077500000000000000000000000001516122265000253645ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/a.css000066400000000000000000000000261516122265000263140ustar00rootroot00000000000000.a { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/a.js000066400000000000000000000004231516122265000261410ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[0],[ /* 0 */, /* 1 */ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) ]]);mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/b.js000066400000000000000000000007311516122265000261440ustar00rootroot00000000000000(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],{ /***/ 2 (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { __webpack_require__.e(/* import() | b1 */ 2).then(__webpack_require__.bind(__webpack_require__, 4)); __webpack_require__.e(/* import() | b2 */ 3).then(__webpack_require__.bind(__webpack_require__, 5)); __webpack_require__.e(/* import() | b3 */ 4).then(__webpack_require__.t.bind(__webpack_require__, 6, 23)); /***/ } }]);mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/b1.css000066400000000000000000000000271516122265000263770ustar00rootroot00000000000000.b1 { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/b1.js000066400000000000000000000004011516122265000262170ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[2],{ /***/ 4 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ } }]);mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/b2.css000066400000000000000000000000271516122265000264000ustar00rootroot00000000000000.b2 { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/b2.js000066400000000000000000000004011516122265000262200ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[3],{ /***/ 5 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ } }]);mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/b3.js000066400000000000000000000001361516122265000262260ustar00rootroot00000000000000(self["webpackChunk"] = self["webpackChunk"] || []).push([[4],{ /***/ 6 () { /***/ } }]);mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/c.js000066400000000000000000000005561516122265000261520ustar00rootroot00000000000000(self["webpackChunk"] = self["webpackChunk"] || []).push([[5],{ /***/ 3 (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { __webpack_require__.e(/* import() | c1 */ 6).then(__webpack_require__.bind(__webpack_require__, 7)); __webpack_require__.e(/* import() | c2 */ 7).then(__webpack_require__.bind(__webpack_require__, 8)); /***/ } }]);mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/c1.css000066400000000000000000000000271516122265000264000ustar00rootroot00000000000000.c1 { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/c1.js000066400000000000000000000004011516122265000262200ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[6],{ /***/ 7 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ } }]);mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/c2.css000066400000000000000000000000271516122265000264010ustar00rootroot00000000000000.c2 { color: red; } mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/c2.js000066400000000000000000000004011516122265000262210ustar00rootroot00000000000000"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[7],{ /***/ 8 (__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ } }]);mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/expected/main.js000066400000000000000000000545241516122265000266600ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({}); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/chunk loaded */ /******/ (() => { /******/ var deferred = []; /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { /******/ if(chunkIds) { /******/ priority = priority || 0; /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; /******/ deferred[i] = [chunkIds, fn, priority]; /******/ return; /******/ } /******/ var notFulfilled = Infinity; /******/ for (var i = 0; i < deferred.length; i++) { /******/ var [chunkIds, fn, priority] = deferred[i]; /******/ var fulfilled = true; /******/ for (var j = 0; j < chunkIds.length; j++) { /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { /******/ chunkIds.splice(j--, 1); /******/ } else { /******/ fulfilled = false; /******/ if(priority < notFulfilled) notFulfilled = priority; /******/ } /******/ } /******/ if(fulfilled) { /******/ deferred.splice(i--, 1) /******/ var r = fn(); /******/ if (r !== undefined) result = r; /******/ } /******/ } /******/ return result; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/chunk prefetch function */ /******/ (() => { /******/ __webpack_require__.F = {}; /******/ __webpack_require__.E = (chunkId) => { /******/ Object.keys(__webpack_require__.F).map((key) => { /******/ __webpack_require__.F[key](chunkId); /******/ }); /******/ } /******/ })(); /******/ /******/ /* webpack/runtime/chunk preload function */ /******/ (() => { /******/ __webpack_require__.H = {}; /******/ __webpack_require__.G = (chunkId) => { /******/ Object.keys(__webpack_require__.H).map((key) => { /******/ __webpack_require__.H[key](chunkId); /******/ }); /******/ } /******/ })(); /******/ /******/ /* webpack/runtime/create fake namespace object */ /******/ (() => { /******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); /******/ var leafPrototypes; /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 16: return value when it's Promise-like /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = this(value); /******/ if(mode & 8) return value; /******/ if(typeof value === 'object' && value) { /******/ if((mode & 4) && value.__esModule) return value; /******/ if((mode & 16) && typeof value.then === 'function') return value; /******/ } /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ var def = {}; /******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; /******/ for(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) { /******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key]))); /******/ } /******/ def['default'] = () => (value); /******/ __webpack_require__.d(ns, def); /******/ return ns; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + {"0":"a","1":"b","2":"b1","3":"b2","4":"b3","5":"c","6":"c1","7":"c2"}[chunkId] + ".js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get mini-css chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + {"0":"a","2":"b1","3":"b2","6":"c1","7":"c2"}[chunkId] + ".css"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/css loading */ /******/ (() => { /******/ if (typeof document === "undefined") return; /******/ var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => { /******/ var linkTag = document.createElement("link"); /******/ /******/ linkTag.rel = "stylesheet"; /******/ linkTag.type = "text/css"; /******/ if (__webpack_require__.nc) { /******/ linkTag.nonce = __webpack_require__.nc; /******/ } /******/ var onLinkComplete = (event) => { /******/ // avoid mem leaks. /******/ linkTag.onerror = linkTag.onload = null; /******/ if (event.type === 'load') { /******/ resolve(); /******/ } else { /******/ var errorType = event && event.type; /******/ var realHref = event && event.target && event.target.href || fullhref; /******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")"); /******/ err.name = "ChunkLoadError"; /******/ err.code = "CSS_CHUNK_LOAD_FAILED"; /******/ err.type = errorType; /******/ err.request = realHref; /******/ if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag) /******/ reject(err); /******/ } /******/ } /******/ linkTag.onerror = linkTag.onload = onLinkComplete; /******/ linkTag.href = fullhref; /******/ /******/ /******/ if (oldTag) { /******/ oldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling); /******/ } else { /******/ document.head.appendChild(linkTag); /******/ } /******/ return linkTag; /******/ }; /******/ var findStylesheet = (href, fullhref) => { /******/ var existingLinkTags = document.getElementsByTagName("link"); /******/ for(var i = 0; i < existingLinkTags.length; i++) { /******/ var tag = existingLinkTags[i]; /******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); /******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; /******/ } /******/ var existingStyleTags = document.getElementsByTagName("style"); /******/ for(var i = 0; i < existingStyleTags.length; i++) { /******/ var tag = existingStyleTags[i]; /******/ var dataHref = tag.getAttribute("data-href"); /******/ if(dataHref === href || dataHref === fullhref) return tag; /******/ } /******/ }; /******/ var loadStylesheet = (chunkId) => { /******/ return new Promise((resolve, reject) => { /******/ var href = __webpack_require__.miniCssF(chunkId); /******/ var fullhref = __webpack_require__.p + href; /******/ if(findStylesheet(href, fullhref)) return resolve(); /******/ createStylesheet(chunkId, fullhref, null, resolve, reject); /******/ }); /******/ } /******/ // object to store loaded CSS chunks /******/ var installedCssChunks = { /******/ 8: 0 /******/ }; /******/ /******/ __webpack_require__.f.miniCss = (chunkId, promises) => { /******/ var cssChunks = {"0":1,"2":1,"3":1,"6":1,"7":1}; /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { /******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { /******/ installedCssChunks[chunkId] = 0; /******/ }, (e) => { /******/ delete installedCssChunks[chunkId]; /******/ throw e; /******/ })); /******/ } /******/ }; /******/ /******/ // no hmr /******/ /******/ __webpack_require__.F.miniCss = (chunkId) => { /******/ if((!__webpack_require__.o(installedCssChunks, chunkId) || installedCssChunks[chunkId] === undefined) && !/^[1458]$/.test(chunkId)) { /******/ installedCssChunks[chunkId] = null; /******/ var link = document.createElement('link'); /******/ /******/ if (__webpack_require__.nc) { /******/ link.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ link.rel = "prefetch"; /******/ link.as = "style"; /******/ link.href = __webpack_require__.p + __webpack_require__.miniCssF(chunkId); /******/ document.head.appendChild(link); /******/ } /******/ }; /******/ /******/ __webpack_require__.H.miniCss = (chunkId) => { /******/ if((!__webpack_require__.o(installedCssChunks, chunkId) || installedCssChunks[chunkId] === undefined) && !/^[1458]$/.test(chunkId)) { /******/ installedCssChunks[chunkId] = null; /******/ var link = document.createElement('link'); /******/ link.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ link.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ link.rel = "preload"; /******/ link.as = "style"; /******/ link.href = __webpack_require__.p + __webpack_require__.miniCssF(chunkId); /******/ document.head.appendChild(link); /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 8: 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { /******/ // JSONP chunk loading for javascript /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ if(true) { // all chunks have JS /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(__webpack_require__.o(installedChunks, chunkId)) { /******/ installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; /******/ if(installedChunkData) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ installedChunkData[1](error); /******/ } /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); /******/ } /******/ } /******/ } /******/ }; /******/ /******/ __webpack_require__.F.j = (chunkId) => { /******/ if((!__webpack_require__.o(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && true) { /******/ installedChunks[chunkId] = null; /******/ var link = document.createElement('link'); /******/ link.charset = 'utf-8'; /******/ /******/ if (__webpack_require__.nc) { /******/ link.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ link.rel = "prefetch"; /******/ link.as = "script"; /******/ link.href = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ document.head.appendChild(link); /******/ } /******/ }; /******/ /******/ __webpack_require__.H.j = (chunkId) => { /******/ if((!__webpack_require__.o(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && true) { /******/ installedChunks[chunkId] = null; /******/ var link = document.createElement('link'); /******/ /******/ link.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ link.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ link.rel = "preload"; /******/ link.as = "script"; /******/ link.href = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ document.head.appendChild(link); /******/ } /******/ }; /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /******/ /* webpack/runtime/chunk prefetch trigger */ /******/ (() => { /******/ var chunkToChildrenMap = { /******/ "1": [ /******/ 2, /******/ 4 /******/ ] /******/ }; /******/ __webpack_require__.f.prefetch = (chunkId, promises) => (Promise.all(promises).then(() => { /******/ var chunks = chunkToChildrenMap[chunkId]; /******/ Array.isArray(chunks) && chunks.map(__webpack_require__.E); /******/ })); /******/ })(); /******/ /******/ /* webpack/runtime/chunk preload trigger */ /******/ (() => { /******/ var chunkToChildrenMap = { /******/ "1": [ /******/ 3 /******/ ], /******/ "5": [ /******/ 6, /******/ 7 /******/ ] /******/ }; /******/ __webpack_require__.f.preload = (chunkId) => { /******/ var chunks = chunkToChildrenMap[chunkId]; /******/ Array.isArray(chunks) && chunks.map(__webpack_require__.G); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/startup prefetch */ /******/ (() => { /******/ __webpack_require__.O(0, [8], () => { /******/ [0,1,5].map(__webpack_require__.E); /******/ }, 5); /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; __webpack_require__.e(/* import() | a */ 0).then(__webpack_require__.bind(__webpack_require__, 1)); __webpack_require__.e(/* import() | b */ 1).then(__webpack_require__.t.bind(__webpack_require__, 2, 23)); __webpack_require__.e(/* import() | c */ 5).then(__webpack_require__.t.bind(__webpack_require__, 3, 23)); __webpack_exports__ = __webpack_require__.O(__webpack_exports__); /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/index.js000066400000000000000000000003121516122265000252240ustar00rootroot00000000000000import(/* webpackPrefetch: true, webpackChunkName: "a" */ "./a.css"); import(/* webpackPrefetch: true, webpackChunkName: "b" */ "./b"); import(/* webpackPrefetch: true, webpackChunkName: "c" */ "./c"); mini-css-extract-plugin-2.10.2/test/cases/prefetch-preload/webpack.config.js000066400000000000000000000004161516122265000270020ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/000077500000000000000000000000001516122265000252445ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/expected/000077500000000000000000000000001516122265000270455ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/expected/webpack-5-importModule/000077500000000000000000000000001516122265000333015ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000365470ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/expected/webpack-5-importModulelogo-on-dark-bgmain.css000066400000000000000000000001531516122265000346570ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/expected/webpack-5-importModulebody { background: red; background-image: url(https://webpack.js.org/foo/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/expected/webpack-5/000077500000000000000000000000001516122265000306235ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000340710ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/expected/webpack-5logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/expected/webpack-5/main.css000066400000000000000000000001561516122265000322630ustar00rootroot00000000000000body { background: red; background-image: url(https://webpack.js.org/../foo/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/index.js000066400000000000000000000000261516122265000267070ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/react.svg000066400000000000000000000045211516122265000270650ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/style.css000066400000000000000000000001021516122265000271070ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-1/webpack.config.js000066400000000000000000000006621516122265000304660ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "https://webpack.js.org/../foo/", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/000077500000000000000000000000001516122265000252455ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/expected/000077500000000000000000000000001516122265000270465ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/expected/webpack-5-importModule/000077500000000000000000000000001516122265000333025ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000365500ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/expected/webpack-5-importModulelogo-on-dark-bgmain.css000066400000000000000000000001471516122265000346630ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/expected/webpack-5-importModulebody { background: red; background-image: url(https://webpack.js.org/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/expected/webpack-5/000077500000000000000000000000001516122265000306245ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000340720ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/expected/webpack-5logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/expected/webpack-5/main.css000066400000000000000000000001561516122265000322640ustar00rootroot00000000000000body { background: red; background-image: url(https://webpack.js.org/foo/../c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/index.js000066400000000000000000000000261516122265000267100ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/react.svg000066400000000000000000000045211516122265000270660ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/style.css000066400000000000000000000001021516122265000271100ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-2/webpack.config.js000066400000000000000000000006621516122265000304670ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "https://webpack.js.org/foo/../", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-3/000077500000000000000000000000001516122265000252465ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-3/expected/000077500000000000000000000000001516122265000270475ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000323150ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-3/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-3/expected/main.css000066400000000000000000000001501516122265000305010ustar00rootroot00000000000000body { background: red; background-image: url(https://webpack.js.org./c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-3/index.js000066400000000000000000000000261516122265000267110ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-3/react.svg000066400000000000000000000045211516122265000270670ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-3/style.css000066400000000000000000000001021516122265000271110ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-3/webpack.config.js000066400000000000000000000006541516122265000304710ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "https://webpack.js.org./", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-4/000077500000000000000000000000001516122265000252475ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-4/expected/000077500000000000000000000000001516122265000270505ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000323160ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-4/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-4/expected/main.css000066400000000000000000000001511516122265000305030ustar00rootroot00000000000000body { background: red; background-image: url(https://webpack.js.org../c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-4/index.js000066400000000000000000000000261516122265000267120ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-4/react.svg000066400000000000000000000045211516122265000270700ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-4/style.css000066400000000000000000000001021516122265000271120ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-4/webpack.config.js000066400000000000000000000006551516122265000304730ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "https://webpack.js.org../", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-5/000077500000000000000000000000001516122265000252505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-5/expected/000077500000000000000000000000001516122265000270515ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000323170ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-5/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-5/expected/main.css000066400000000000000000000001211516122265000305010ustar00rootroot00000000000000body { background: red; background-image: url(/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-5/index.js000066400000000000000000000000261516122265000267130ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-5/react.svg000066400000000000000000000045211516122265000270710ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-5/style.css000066400000000000000000000001021516122265000271130ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-5/webpack.config.js000066400000000000000000000006251516122265000304710ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "/", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-6/000077500000000000000000000000001516122265000252515ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-6/expected/000077500000000000000000000000001516122265000270525ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000323200ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-6/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-6/expected/main.css000066400000000000000000000001511516122265000305050ustar00rootroot00000000000000body { background: red; background-image: url(//cdn.example.com/assets/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-6/index.js000066400000000000000000000000261516122265000267140ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-6/react.svg000066400000000000000000000045211516122265000270720ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-6/style.css000066400000000000000000000001021516122265000271140ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url-6/webpack.config.js000066400000000000000000000006551516122265000304750ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "//cdn.example.com/assets/", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url/000077500000000000000000000000001516122265000251065ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url/expected/000077500000000000000000000000001516122265000267075ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url/expected/c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000322340ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url/expected/main.css000066400000000000000000000001471516122265000303470ustar00rootroot00000000000000body { background: red; background-image: url(https://webpack.js.org/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url/index.js000066400000000000000000000000261516122265000265510ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url/react.svg000066400000000000000000000045211516122265000267270ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url/style.css000066400000000000000000000001021516122265000267510ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-absolute-url/webpack.config.js000066400000000000000000000006531516122265000303300ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "https://webpack.js.org/", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/000077500000000000000000000000001516122265000235775ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/000077500000000000000000000000001516122265000254005ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/assets/000077500000000000000000000000001516122265000267025ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/assets/img/000077500000000000000000000000001516122265000274565ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/assets/img/react.svg000066400000000000000000000045211516122265000312770ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/same_root.svg000066400000000000000000000045211516122265000301130ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/styles/000077500000000000000000000000001516122265000267235ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/styles/main.css000066400000000000000000000004321516122265000303600ustar00rootroot00000000000000.a { background-image: url(../same_root.svg); } .b { background-image: url(../styles/same_dir.svg); } .c { background-image: url(../styles/nested/nested_dir.svg); } .d { background-image: url(../../outer.svg); } .e { background-image: url(../assets/img/react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/styles/nested/000077500000000000000000000000001516122265000302055ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/styles/nested/nested_dir.svg000066400000000000000000000045211516122265000330500ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/expected/styles/same_dir.svg000066400000000000000000000045211516122265000312310ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/images/000077500000000000000000000000001516122265000250445ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/images/react.svg000066400000000000000000000045211516122265000266650ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/index.js000066400000000000000000000000261516122265000252420ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/nested_dir.svg000066400000000000000000000045211516122265000264420ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/outer.svg000066400000000000000000000045211516122265000254600ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/same_dir.svg000066400000000000000000000045211516122265000261050ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/same_root.svg000066400000000000000000000045211516122265000263120ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/style.css000066400000000000000000000003701516122265000254510ustar00rootroot00000000000000.a { background-image: url(./same_root.svg); } .b { background-image: url(./same_dir.svg); } .c { background-image: url(./nested_dir.svg); } .d { background-image: url(./outer.svg); } .e { background-image: url(./images/react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-2/webpack.config.js000066400000000000000000000020571516122265000270210ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", output: { publicPath: "auto", }, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, "css-loader", ], }, { test: /outer\.(svg)$/, type: "asset/resource", generator: { filename: "../[name][ext]" }, }, { test: /same_root\.(svg)$/, type: "asset/resource", generator: { filename: "[name][ext]" }, }, { test: /same_dir\.(svg)$/, type: "asset/resource", generator: { filename: "styles/[name][ext]" }, }, { test: /nested_dir\.(svg)$/, type: "asset/resource", generator: { filename: "styles/nested/[name][ext]" }, }, { test: /react\.(svg)$/, type: "asset/resource", generator: { filename: "assets/img/[name][ext]" }, }, ], }, plugins: [ new Self({ filename: "styles/[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/000077500000000000000000000000001516122265000236005ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/000077500000000000000000000000001516122265000254015ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/assets/000077500000000000000000000000001516122265000267035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/assets/img/000077500000000000000000000000001516122265000274575ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/assets/img/react.svg000066400000000000000000000045211516122265000313000ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/assets/img2.svg000066400000000000000000000045211516122265000302640ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/assets/nested/000077500000000000000000000000001516122265000301655ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/assets/nested/img3.svg000066400000000000000000000045211516122265000315470ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/img1.svg000066400000000000000000000045211516122265000267610ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/img4.svg000066400000000000000000000045211516122265000267640ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/expected/main.css000066400000000000000000000004471516122265000270440ustar00rootroot00000000000000.a { background-image: url(img1.svg); } .b { background-image: url(assets/img2.svg); } .c { background-image: url(assets/nested/img3.svg); } .d { background-image: url(img4.svg); } .e { background-image: url(assets/img/react.svg); } .f { background-image: url(../outer.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/images/000077500000000000000000000000001516122265000250455ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/images/react.svg000066400000000000000000000045211516122265000266660ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/img2.svg000066400000000000000000000045211516122265000251610ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/img3.svg000066400000000000000000000045211516122265000251620ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/index.js000066400000000000000000000000411516122265000252400ustar00rootroot00000000000000import "./src/styles/style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/outer.svg000066400000000000000000000045211516122265000254610ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/src/000077500000000000000000000000001516122265000243675ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/src/styles/000077500000000000000000000000001516122265000257125ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/src/styles/img/000077500000000000000000000000001516122265000264665ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/src/styles/img/img4.svg000066400000000000000000000045211516122265000300510ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/src/styles/img1.svg000066400000000000000000000045211516122265000272720ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/src/styles/style.css000066400000000000000000000004461516122265000275700ustar00rootroot00000000000000.a { background-image: url(img1.svg); } .b { background-image: url(../../img2.svg); } .c { background-image: url(../../img3.svg); } .d { background-image: url(img/img4.svg); } .e { background-image: url(../../images/react.svg); } .f { background-image: url(../../outer.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-3/webpack.config.js000066400000000000000000000022671516122265000270250ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "auto", }, }, "css-loader", ], }, { test: /outer\.(svg)$/, type: "asset/resource", generator: { filename: "../[name][ext]" }, }, { test: /img1\.(svg)$/, type: "asset/resource", generator: { filename: "[name][ext]" }, }, { test: /img2\.(svg)$/, type: "asset/resource", generator: { filename: "assets/[name][ext]" }, }, { test: /img3\.(svg)$/, type: "asset/resource", generator: { filename: "assets/nested/[name][ext]" }, }, { test: /img4\.(svg)$/, type: "asset/resource", generator: { filename: "[name][ext]" }, }, { test: /react\.(svg)$/, type: "asset/resource", generator: { filename: "assets/img/[name][ext]" }, }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/000077500000000000000000000000001516122265000236015ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/app/000077500000000000000000000000001516122265000243615ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/app/img.png000066400000000000000000002304451516122265000256530ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/app/index.js000066400000000000000000000000261516122265000260240ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/app/nested/000077500000000000000000000000001516122265000256435ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/app/nested/nested-img.png000066400000000000000000002304451516122265000304150ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/app/style.css000066400000000000000000000002141516122265000262300ustar00rootroot00000000000000.a { background: url("./img.png"); } .b { background: url("../outer-img.png"); } .c { background: url("./nested/nested-img.png"); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/expected/000077500000000000000000000000001516122265000254025ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/expected/img.png000066400000000000000000002304451516122265000266740ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/expected/main.css000066400000000000000000000002031516122265000270330ustar00rootroot00000000000000.a { background: url(img.png); } .b { background: url(../outer-img.png); } .c { background: url(nested/nested-img.png); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/expected/nested/000077500000000000000000000000001516122265000266645ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/expected/nested/nested-img.png000066400000000000000000002304451516122265000314360ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/outer-img.png000066400000000000000000002304451516122265000262270ustar00rootroot00000000000000PNG  IHDRjsRGB@IDATx|\WFeY{{6ɦ.,mYXBO()F/ $ 4 $.Y-[NC\$yf4o}s9k޻~ӻw9",$@$@$qPTې7!x9THHHHHKF!Hi~ ݖQs     a/C!]*!k%     o5 mىgzԖHHHHH<@ֹ:9n>;M$@$@$@$@$@$`6WC!BƯ Cn5#      ʂ|RItodtD$@$@$@$@$@Q~ӥ\gjD$@$@$@$@$@4  N5       Hy,Y'ߍv5      (ʁiR 9.aa$@$@$@$@$@$|0 91@OAҒO5 @ JYE''"     s MXg:ZHHHHH$?䧐6׋ DK 3`d@RIR} =^HHv m `e9݁˛tPiiiKLR xM` HHL!|Fb?m 9[`!  DDP5HHr0R퐛!.! | @hō' @B%0:{/0ȄHH!@C-j<HH@`] 'N `o% tCVnW$@$@6 Ǽݱn?@.O$@$#j1$@$`+!@WC.C힁sր 8 XHv:L$@q)$;sy O Kd $@$@$p 5 $@$@c'!@Ftz@ N lx/HHR [H&#m2N3¸/!} چh1$@$@5{-% 6 :TFI 2_Lx  !7j)ӕl OFB?ɪd%s^xæXHH,&@CgIHZ:(| dAZy[ @ PK:rVH$@fv94yrQl߀# G͂NfIHh0Άw!4Ҏcς:,[fjC$@5 0&݋.,!.KaSH  '@C-;# h@+!y$i04 @f v->~? |[0L  cp18 hA5s 4R[n\>^,$@$@)FZu(C$`7LGA  iXhZV$ Kђf3IR&} ?Y#Є&{D6|HR OH209G |bYw܃;7a8_ Nw# HSFuq| B#+P}? M~e5-& @C-5 & O,"ΦF` _{IN$@$@n=IH Jlk4MV}Ds@Zq=.ړx {hǞ5 @T`C $D׷@^~K$@$`j&u  .H}hA~M؊cmy<'   pY LڙMVhL'92cqck   Y% tEAuOSGp<%ްU9]O$@$jqQ$@$(hz~VƋ@j'`w~% Hj"zHH 0Ү~!I`/*dVʺHH%=jO$@$40&Cw!4ҒF)<ܛ XHH!4˒ @W0y_ q\&0ǽ[g]օՓ uh]$@nd7u)$-=X/ A\"8 HZx8 J>k?y2:y< D|ڛDUHH % PKneHL!#20d):QHոM0V$Z @'G(HzJxȓR24 QK^dH!Ik_(s3.H1Qp@+.}77xV\52 E]֒ 8Dz(| dC$`2r(w ElAn$@$4ԼKԑHh0tcsVʑ@rlA5f-$@K{Ro2  @;Th9̛ s_thMEIH0|fXP  `9ZaԐ\#GͿoت]ӂ  P`Qe w@DCwG J$pZy ['[@IH h%8#&iWACNf 5 A`{FhC%HH`ܣfpP5  @̃HsK on ' g Ps/N$QDꯇh36 J#Pl= 3UIE$@n룛Y7 q0i n cTR@ccplIE$@$jqY$@)HF'ЬG cRyl N ~[+JHH h%2 0 K!ӌVʑV7`O Yl8 q'@b9Fo 0Pc6 kJԂHOoԒϜ5 LP{A\VՓ tM@ ް^6  5k %^<a9$P0؂Q @hώg x4݇<MUI% ?~׎ŸHRfU$@G@; 7h|g)B4VMނhl HY4Rk0&q 6av"ł4nu!yr_vֆܨuNp6߫뱟3HH|4#jH$L2!_) w@2b8&6Ѻ`@T[k?&(4_KI@&W![".j;jN$pL_m<*q|LqO}eieUYm&Q.]يg]ïIHs.$@L= g^E0<ƪ>( !hO@zŒڜ@t|Sfo9~A$@"7j,J$p,LȆA 4ҎcO"sK~' 1T[jx#2F[x62hM tCZ7p+ 3 `r 23*IqeEPF0tZZ!y,WM2uXo}&hR{ݿ=; 'H<NnϔW$p&\cU= vDP|͊\҃sjM[H^/kh=WL}֯!W3UV$@$9js$@$k:dz20Qtڳ25c Ơ< V@ O`4|ϐeikKIHh6 0&Uc!+!U#BEЪZS@;q_Fk뫃xkxoC \ VcTHhF 0&QB9usH%T@K@dIy0mw۝^`QiiXB Pm2(OF*dI.l|3_,H7AtwYgTH8qdQi0&. wB~ kj&P8P D&,8€Tk@Tox}3=3U$0 5:ꐀ0A^0]_+D&CȂ,'p)(/mu>XЂhKxvδl" @ 0uaR$08sTh["`IM[t'"vNG 4;kLPp/HoԏH}|~P0&!޸B#j<"H3SX pdWߘ&ӗ<*p?s2^Hhy= 8F WP&ր!U z5jd'o=OFWx?ҟ ; 䑈4 ؇4 J5$EB hDB4Bnjז 8B#XyQ0)%o jJJYڟs/MB=%P S ˂x~LD3{1$*H "@C͠Π*$$ D!3È"}hB$l5݀ށxC5!#ז $ `EH\@!_ݚb`x?Q>"`-DZ(,g!{L]kLIzDZd04gȽvd[ D#A VSV][H*R7^d}ٍgY# @hΌg0pdKcE h"P'r4҂@`}|W0Wzz@0XOa?|>y*yOΊb7Nl=4:ɲ'#ivtBɨ@%x?ϟ avQQ Zx" Ct?hnF9]s&M4( CheH$^Cdj|h8Ard{j$H]` Qո>A'hh;<J.xYM:F1$ .$`6 f_ !,Wfb\ۘ^Z(G.oRݑ!@'!0V2D'A$#Q' `= :<m]X &> ,$  S"_rz6\qc>o5ug!>b=QT0<FD_d8iwU@n*:m "˜쓮C1<Y @|hǍg@`P*}h7C icydue0 yXH 4CXK7\@_-ݿv-Й*hYl0~ :#~k~;OhjT,&@Cg%s2d4;dRC؇ 2^#0 :N,¾f`1$h5B㵥$`!jv:l. #!CõjJjD.K؇Vx,$@"A_[_ձm#QhZ  ̂02xm XDEͦKcp4s[Vl=[V W}hv l}WZa-@:%ZW ^ǜoB`, mnT%@CڮgM 0 ir? zQ Ts <}h+xS牔 K-$o)cSzcӧt2SMjEvfG?8j eTP {B_.$3%bA@;`1hh*d%ƪKז @fKsp dR3`WDk_4 @ܓ-^ c2gNC]w@'^VE$4x@`˃ iNR&naiPE4"Dc!HM_#n`;1SIH=NNd&AMT~Cnԫq3VW. _)_S>Eeɬa2$nrsٴ4d@F-ZR< #mNyB#-:e_}HBTG#-YY !+H=`@jIBǧ 1TinueG乭؏~3TSEh< wMc!{LADLIx4Ԍ"*h: Hl;QHY]pXH&PbHQf.L`dkɄHg3~ a=dPj0 2 ~nkn nYyP.Dc!Hqﻠo=г:V~ c =3U$#piD7P `PItÚ:d}mMl[)N Fc!HM5m!y/­i6X' م1kKI4 `. &BW cՔ7DHq1HllHb<5+!-$ Ps>6g24s5fU"#"k~F8 y-oMߦ j$S"H/.S1g`>k[=k#3QeF?P$ D iIdkU "n4bI&׶׆G1 ͶbdZR1p 5C>r4 7uSX#ض#DrC)"&<`l ً[:{@gH !@C-!y ~trwFjӈm+,$@$JT/o͉xoخIy90(-T*Q0?zD]ql/BXfgUI:#PPD\8'wzgG;]>>oFUH F-8y1S>+o!4LNE$9Ȧ+4:įH'{knͰE#ODW"wB)GZu ú7D}@=n-цrB{n;H&Ђ܌ >-t׽{0ߪs5$NbcC&'.&5[[{ө϶<*D` 0P7[Ni E~y0 -*I&?h4睘 ѿIhy{CV c\؇,V+Kvd!  h H4"]AÿbN2xm %XPՔiD7U@A$gdkkkz ھ}dtQ}ͩT> y!rvoZTx`]4Ծ:HsC4bڂҀHE$iAy - HҌO@@aN1xm ^60^Ftd1@y&ng! [ ]! J&M /^vM81[ f+FFB{y^(H3 sؿF4Z_stB_65Oy1Hj $MT3se^%4D@Ӎ[*x= &<˳~9t$,9[ۋ1:1^c*hjVuٍho~hvk@[h HHCpH*a'a1 hd "W-Wjsy!ȕjI͔@I3!:ng! @~}P#҅}2}O<=0{Ty||ނkxB#5a߁4o h6`@^F3iwU#0@n몰me.㺨3—1Gy2 $ dPfC7R#-}x !s~hÌbyEP痝^3ԄHkZS}^zS}bpq1Y $ j@W#SJȥ2hՈL&"HeHHYeSu@uHwH \W6_]je4Լ{뎇W.'PqK4յZ.. ʳ7Qe,$@$@%HwҞ쩧\qզs/CvccHN\WI$p4NV>ݐBcN56"CӈdHH=u!{_^CHb< C(m|yKAj/j6\y2b(D{D Hd,$@$@8enI@x#s 2^[*Lx홮2WQeL T,{lbg! 0 A>u;Ld2\y+ 03Ã?(B#jK8XfpGQ5 8GY4)ꦾ1OC#g|4#4C'M(r$8%Pz5E$17c?dHHomIx=yPGQFd@:D{` )FZy x@k+f{;9w fgc!P; ?@aAHI@DD0 B$@$`/í!y/- HeFbCvc#Ha."|} 7g>ꌓԫ&&D҈^dIH:#Po#þӹ!j}^nGu@Z TgBg!#MҍK@hK#z @O 4%kJx~ 5ék$Eڒ$4^ȧ-igYH]JRHGv"'  `N jB.$S,"${,EWϻ0;t_ Z}A%Ch[CAyiQTHRuYQ#p߁t/, h9'4q7:Oo:r/v)eոt|8 7C5Z$@$@Hi^E](Aݐ!ilzzՏ"f @*h4 Oc(,9W 1 mƖ+HCjZjiD'z]U+)H,"Pѓ =%9szAiuf`fZ y2@B7h/HH,&pA_,f&SPۘ.ؿ1|u|.ƍ:g\r FZ&R5m"GWFZz$@$@$ lD' a}uPl9>I>k6[9 #\wJWGC-݋2C\j7+rMW'.ъKʃ  yZaNj%x:*d7wx= tn4 xpG굈4XHHH&Pja@ʸM.BvaY+{AiSugƻ exZ]W?0B$@$@$-bA@!Jd#O` 4|sKPL$Ǝ6l$QR,$@$@$@&9l LClM5wt(}/6BB6I?Q7pAᚑFZ89 AiPHsX' 8Hitw >-wb.}7'46@Ij'L d%j]U>MXHHHR@C{H ~9t;, 5̭9IP7p]_o 2C+ EDm1\5R ʚC s0 vـosZ'xqӜaNFZ7ǃM܇fRP  H6]A Wȋwm*dwAü-|ގkb@[ƍ2k|B#(64FfZP  pY4<0{+Ɲ~[020sSpj^ῺM?L,]Ue>m5A;դN$@$@$@.h„a~?XizX' o;:77^$(hAߜm蛴I`*$6^![HO~D|b!   Tb_ fq@ۺ;3l־9B_A>}Vt0 J>=!9O.^'io[mS7:ިÇC4:4#nΕM8Gr9#~K$@$@$M۳{ Aa踹|=e]^5:7r'>4͋fMۓ~WV<9i,9!cL|r/$׊`#QpG5ؤXHHHH 5m!y/ʼnx9}:6r)m/!c*&PL"aҬYHHHH 4X'0y kzpӴJR0V.%HfYi2Ij I+ Ni { ddC4% p|uc0nAh}!B_89 "vuͽ,$@vɹv e.) Ji3 6;H:Lˇy)5UNU_A֐* M.~rdXtN*weyYH%pJO..{`g]H4gc- K`xOf 씘2Бh]ay~w+<49] { 㓙|2%mDՕAi’7,[N pz?R^&qxFxDN4ee-jE7벐 KDTiʐUPo Ml2m@L^nlk86lss cȍk|iep^R5 ' dgtLlsv@~G>Ӝ_xm0@<.۵&ҦuF?<巐av g }5ʾ ?k,몂B\}6 8O@W/qRiY4H1X L`p4#cs<36fRTF- 6O$bĝ# DY &oϖ`Źo &F(gXqp*W/w[睫Ie"0 FrbSeMh b0i9ʚ9a1 8N`\ IYWeDr$m XI@S\um@+;!FS`9HC 9BH@IDAT+/oiHN/XK-~uڮZ qX5 N`\tEy.@j}ۑ kz#K =L~+[yF 5h&?,h]!cR`C{j4)%C:6;_54akjB$r;kxL5jPkShc5 VSZd#3d)pljԱgkM4D@,!U)|re9@u H@mpHV e%)й mq}x6 \b5Ǝ}hxB$`'t8go|}' t,mvRX<R&rBAN XJ[܌[f\3`E|nJݺ2+\JQOp)ylA,f{Mֶq+fx<R@/,dDLy]0؊: \4vȭl7:#Ђ+*͸":f<R>'#>dN}zuoK[Ju.C1н<>Scͨ_`kL"IC`i/A-d6uF@'FZ+'$BduB;o҆uSZ]&,4غ&ߐ@jEY\R'l:]v$eD]xXA{N8d2>i\@!'8דuHoqҹxe  '3V7h5܇6࿺mч_9?G 5 jH8aƤ,$Jm^H 2b23CыZvrhҀ#|v%&_ݻ6Wz (":# PǐoC>T%ຍ~%H0ș:s̵oRx4TkIe9h oFHO@=-n58w&:AC h 4MV۹G^Z$ })j΂#&e9l 1ME IpO?/,_sk'׎{6 UHzODU@!ΒI\Yi2ԙh>NjPOz>ǻߑ@*%036'0*:fC d y⩔$@5pYhՓ欅L#+\R3{b`SGfl1 $"4ǥ_4>Exun#0Zc>_K%<6t,Lnt`!y{1n5g|-s^\߲A$-9H=eqA.Qj0Цႚh/!PԈ}hpD^ ; 죑}2";GRNm#<&V!BdKR6b&IP&b KQ&^{a7cOV,ؿ̫fS^YP+ wWg9vBlŦڦts7Oꑀcz!a4_#b>]]{r ]iW@ Cd~>lS\}h qE$|} u:ӇzUJZ{ʛ2o{eξ3۳vGoY wHu8>`E$@&c,@@O5иJjnQ3p܎H5QEE_T~5@)72ԁ&Y#Գߞ˲[k:/HkH@BshE?_ nSCM2\Yk,CfƓƾͱo`WN)?}?ʧ ƋFT4SڪÞN\EmbrY=1FHOhQC3CJ-I9IT&˟v~ 6@'+kJwO6c|keW<&x;VdV x,F}WN7nj'iZo HDfn\!/hJ9Ck&i2F\6u;J(]&r1`;;j˱٨XH#0 8}HX]#+Ɖeb[ VjqѦg[IC f AvF?7>T@s?$ A䋱F=Mr߻2GUYc+3FI 6pK&V ƒH ٖ6#i%#e+Y G y&kQ"[U4ICKkInޚwWOaŪRTY=Vu<KGtD!AG_ F>F`ںd g$`45&0J5Ǖij KԆ$^/gϕ}t΀ʵS ]\Z`UdQ)}IfvlVWGʦH+ jjzol8rì7ˮf]^5A ҵߪ%%St5!NKb PKϦ``Xb됀daT-l9~1@TautDx2XVO |6\,R>l)9j=[cjCGOi|th} ۮ)RGɓ+J#wAru庳G`SH ۡ&t:JGο6_%Pe L]#%8-'3] +TO8{B9cGVek8>p/i$5S0>j -Ǯj`+m2Î@*W3d8Vm+x|9wG\w 2apvt'QNmz HFa!z\qeYu4 X@cx)"9JacAcI % p5}ڊpS/݈ a´rӕdT4kj!Ҧg[I L QF.={tPYAFCs!"Aq]$/JNu5Yr1FFb2,vbMζ? bCϥO(Z|:{}#6N'#Ó50IJ9#IHVR -HyY'!*]qGx6۱m]'j]Q;U ~]1$4P9%lj K yGX%ppYp/# W%Y:|gυ+Df[194ԎU&H{w<L6u/GKkߢUmKr 8e rVl@mtEE@t U44 Qt4 !1$ k,h.? @@s sJ/{=&Kx. ]@4 =t#e4Ԏ'? caiPJ3<R@^f\ 3h[x^y'_Vt۫AF`#7+} j튊l9 +}R9) >ޤc/b+EZw͚;Fw;&-[ L5b;aob|aHɄ{M0ob6zmn3t˦VVj'C_N'Ow1|{BjEԊ>\OܰPrlډs{EYeA9D1HM q9v->ɜZE" W%H<d+pxϓH+Zk,$p!77s a$bI ם=DvL퉶x[VUMHUi2{mbIxjB܌κṉEy 8N` \,tp>my~܍@![;Ι$@V{Hq2{l*H'amm 1X$}hLlwPNb9,N<J@Cj)MiI{7_G}'!7#_1Z4ZM^pd'Sl/t95϶8CC-H5:ҀoD5H ^4<'S(Q*eHRR ǪGceӓ <*"KcUƚG)`,PSAC-d7dVNɕ"Pt8ѩ&lqo.G.`PK4`}*o `K4_^'0 >͋kɃg!\6i圑G}kՄ-9Pmm#>4 m٫䀧,lV !_s 3k1aਫwc78Q%ɗ}Ml*^8TnzuSk=M@ڸhR}ƘA  ."Y4Ԝ] yݿVkN Mxzڪ;:L 2rc%ϲX4[9EӄO2t/8riN4bq 5g~xuM֩ojC( @@ejMi&y`^h,$/}2&#%Ӳ?xu\4y$pJOf%Ϯ nv< dWꊁ/ʖLu>zeWqi# %÷Q-w"ab^P9$˂rO:R?|h,jrPse1C[6_sXEJ}Yz׊ 6O8(Hm pᘼpi9pu/爗K \(j*HN󐓔4\~R-ʞ] %0:'3Eꍍ9XbhPT#pكk&ʤ!٩ִnۣ6Ue\5 @zOKҋ6w 57G^eoh@aO; Jx6};ɗ%vv>[* Yrep]0Rg6?%zr l9.@hr 8P##r:J L]eMrΪd"g]$)taXѢ"m* 2EX<zmUPB6 4L랺vEؿT q@&^4'S)Y*emR rߪBce/hԪR:K060Uoic6}FTXlҌ':t אgȇuxfc[@[\,/9 ? La9#OhV lˋL@vqXve ȘhSur =BA`B_\aPV"k8šC{IXHC.4 l32CZ'Fm5!Y^}䉡ɫ@@vi&Qj1sVLVe`o\Vcò1]F[eގ*wNh1G^"+qP 2]3<̓yP5jB$ЯWG.M} 4ec%]>SVV/-\8Mن~؇6а%;hy>Դ!8rzRL#4  mCauK86-ԇF`@LLkp"+a/} ~:ޞ7m%iA=uj, pDtHQ^#Q4Q04~e!jiMi,$`k'bAkmbI JIޏ%ß&0<[d8x@jj %גHrꆡy_b3x1%ו;{ׄyv˕VHX~@]P$u-x.82}|?Z>b]\qL4bM7ii!G}a\ѵh zVtaR3dXoKrnԴ-Kx6Q& ɶ .lU C,bK^w$^64%]xRP. **_Rv oڸ͖>wrEx/[#w'J"_HtL??mrxk+6Xlk`g2{M$)y>oHPMadPK}*"Z#d6Vmk40vۀ $Wպ>DYֈP`WUR$r[3/-ٙ)e6 ݚ[_`xh>4[DZ/Gգ3Pm7T?su5{ZeUKwhߋw 9ZUZ&// @"XIQ%^5^>spcĪR :3UhcXz Kϳh1SIsjnxgZh%!DZXfla:0س!?,*?.= ? @N#?n|_ģgDs nMhj]XDU‹wSPfl tgE՟wR_{!2a4"B DK`b_\=#5ϯ./,$@ #p#lM5rp\cW=bm[1ME> h cn6nYoR7FMΩ h0DQ`<l*|ɯh:kH tK\0Tnzo |%_{!GI ^^*E @.m ڥ)b1#4OaP_"͗o|O $'S{8#%ӖMGZ zNչD@4pMZm˃:>qCk@X4cH e 6,'pljX!kΩ!up1Lmy :W,nLNjܻ]5YZ3h=:@' ZO#?C`"jD+Pϭ./Da!%ˏ>:IkM# UOux!b$dz]%W-XTO'isGI R#tIOuZO_DgrDrmɣiRS MG XD@S|rreQEt<`#tg O-z3&PK2V疡zG2_:$]r,5:d{߶߯W_:쯍|O  de˗o+-y$8UT* 9VZT9iE(䂁(i}<+Z-I$@蟝)߽b|Q˲dm{G=u#t x }a,FZ%Hk4.ݿhyC-?v\{RmodmO bƙi  ٕ%ҮXHH$ -w\;Q!'92~} ˂R`u\C Km5*n@&SPsv&jk!yaȑꧺժ{ͳdcrZAybAytaԷזHb$p#O?|o}H"aӼOB&מmXɰxjޛd"/ޖLW j«qonC_&BXL[ jHzH3˝NSᕼunJh|+ϴHtڟLx9"%ͱЭ-4Լ]M5"uo1?-0T *En>eCOu6fr;PC+~ @BÅSFȭW!v(Fk^<JZ&3͖oLGC-ڻؐL7"tap 5dž[#ܽ9~Yhwu+~ #Jol[!/ek#Dv{:~i(PԳQyMcJj [yːkC'3!bɟX)pfU)k_+6IV=Knڷ/SG`$Jx/[ ,bSu[ isۚ 5%W< ^8=WapP"׷hTD$ b|O H:S(W10u]nQP]YLbNfˢi}a7#Psc^4"M'V?h[>D՛6;I}}aQNܪCpU HB$@dbpFQPWposL>JJojDGPK!!5yP?6ƃؿmex}}2}|tR}@ *' ch?v\l6Ș{Z-mwmļKS)y}ECcOT0"ʎFieg)ޮ~Ƚly‘F' MWO|(GJlK^mpߔƉY4xץu-%!$;U4JNs C>doVZ3ςGŴkwʃ+Omgcp[WpOA^B,ҵWi)krdyʕl-wF46Z5Pky:y B Th F~R̭-"A >6Zyd|-Od}VZkxLF#Zڞ',Fq_m ["`KGzA8K7]T {@ t}hxXZ5V|uU$+g'm}OX'}Wl]+mɖ]W6 {#̂YW쁉wVIC +]Arf*M1e!?]Ȫm*HY)nqT ؾ+[ߝFf圭K/v|!eG2GWZΔ Mi+evݥLChW^‘#3ydez!u%d3po6O?|~p@-\a:.ځIߕ0őV,]i߭cA*df]#JCP4 ㋥wvrB4S>Coz`ɺ.pByoݕz>V>C_@t0r5NwZNɟT˝/[[W@9ȵc %[gv-4q%wdFk{+;Hx_j6jm4ͦd!{9MmbEkm'#pL 9>F5|{TIv%jqh5(; 4 fZ=jƽ.։'ń7o-^!mM @ "Ju eL߮:-Z*Hki8QBOֆ9ZS,sktv  aEr2{j0(v^RPO7ZE|<wNѺS _Z^~\*ׅ@l)Eҳ {:|B[2KS*-j7  0%ZFk].n% ?laNe2ywYM@"A >6Z.';@2 }\%]ZutwG֫yD{K"ܼ;v9+9y"@kc JOOV>&cKvMҢu!Žjd7i޳_Y)JYR^< WGA~b`Uś s S;EV"31J= Zw@$B\; @ *7i‘. ]'ۋ}h 1 uJp$=cgzwzX]4 {8OW/Aݒk4˔RU-$lLؾ Pk_=[lt5Zό8n耿r岸j? +g#׎)nZaFi#Xvt="Vq}&?F@`I1Q=%9,`{OE;h 75K-suZOu@s嘜hI"`_o[xkyky3_4~@`)rs%xm^ vlBII޵_fKj%!P dc9蝵z^Q~5ia n2i A$+Yn_,cv уsȊ2Y9Vs͏JYKZ#tagҠ8s<0R5> @Z!7i6Gj{<]HzvIta{ceі:6mN~_fb?AP>lZd&C؍ٕ5^wմT ^ >6Z.'WS nSW7t X3 rRoRA\/Mɕf{ei8D/I]%/JڊmH#AKFij]2Ϻt/A7 ˊA]ŕS>[_(OE! ^KulJ 5%|& }h>FCKBk)n_k߽BlH$ρ ar)2 ?o_;6M2wCX2/Z EqG-&l/-J{hӶr*i#@3P@ 'YCa2MVohj6j6an.ŰCuId#!?\S+>_&oUC# pIq1r|qƛkU]Lj:9Gwnv3ݲD7cdxvMﭓ{4mFG @-sӻi.ٝfpa :FjP(+1JtݓؿY~k<:ujH 蟗ZQޚGcۃ6Kd;Av@m|{j>0wwZW0;͍TvKeu\ @ duCDw8іli9n>O8Z0ZMX%v#2EWF:"HҔ?W$ Ch{I@-+9@.;G@@-H'3+6ݿhVP@ѽg KF2rM6C ty廇ʓ3W+e4#D^Kߧ['G6 P 2:,7̓3t{Bj5O%I?H)gt LU̜T US1~Jdd{: 褯_(9 󀡻#5w暑:*P$dF2)[Q D@.gT"٩9z,@vd<8wY~7m<2\ CCz>R=աQ3T05`W!+w\&w455;$P@IK̤!Qss5}ge<8q G Qc^9L4L =AC!<)Iv@yv:rY^ c9vژ4@@s䴁Y2_<2yfrٶ@v887 Ь& h Pk+ $F++X&ϿNٿi@ ]:n\8,O& {>@@i+]1XHC@ q1#eWr8#L%A zsWT}/55}8(0qZ/4@`oj{g sjͥRЄ   d%-X}A]:*@3 6-H/ ׅ̏!AHO).V҅ ;^=j? z"1u@IDATx\J(ݣs{)j2 5(;GW$LbT'4+{+" loD{`L[˿XW{~j/e4@Z^#; '^#hrgk]εA/hKǃL|6c N*`o<i3w{_һ_ :b6+cNKXIN2㌳=SrB`Ger޾Ę@wǩMzgqڒ@!_Hoo5)]ho[_"׸0\ƈ@u;Ote~&(t |%dUHC,N%7X"9iAVUCג-FC ח;.v\oO)aE9VSOY~;u<2=|4@ h{m>XkNWmێFp:[Ηe{g$zؖ=gwiV[#Md 28%uc xqfu!@ 5τgZAۻmMלī]5#_=H.>*_n}LfVS'- ϗW(V[҅V&>v0ߌjzp&K寳V-'x>d5~@m lg!,1}3ucXVG-`b<9s!\p[5N  @UM\"irɥ2ȁ}̖q2k:94g|D@ߜUZ;҅֠K j/va>C/ȩwvLtK vD]>t#;ϿGq ˶pl\eGf mڒM^220݌1B"df٫Y]x1">&؟,#_+5ų`Ŗ`O2C ]D^4KOr#R:2D57^\U+v-"}|;iUC4P^[vC=@ dGt;N+ҬR(L~7mllsW 9; 5EO.#u__ I߾vx:0K~F<%]!(L >]T8.F|L,i +@߹gx)O\<?N1rӉrRB!Kq3@&w).Vх6bںHk{@z>Pj-OOADyv&;D>Z>4@ }up7a|XGڊMZܫx#A P L2 lkDewK* ~h;[ Re:? aZCڎ.M^IoDZdE@&~Fn}EIVIk3 U_5;fCn!)(ןP$g GD=:!@d EkdߚI*ghK}iZ@!@ttFZ G|-ub{|4lȞ?z︀T~e*Q[ؾ,\:@@ˤBk@/ |HL8Tf JRjs@ "aco20=*Vcnt.۩+d"vO^.qM87JF!@pԂ3`VuF7o?F~FBUbtIS9 T.F,K& Ndtʂ ϗɲ,pe[jn7uD:TH ތ̔8Y%G-7c͎4Dx{v]b]h40یe5gZR1ze*EC~y)o _+wZ!6mN Km^tUok&VʓZ.L9ct\@_`z⯋r%b7,I˼=lu;ٷ9g|n ԭܪBFͬ.YIC7ܘgF̭,<2ۿa8t`nL|\MC !@8q^B^In| e g XZ-.X+_}؉ׄAn ,s*kk26)S_;չ|T={(ҁS#s5OCٿ[ cf2bQ]i絻]ѿGkY ʶ =O@^FX[CW lV㒆M@mo: e'"W)+^~[u4]IC $e-1.k?{oV݇DKl-&GC vj̈LSʠnb,S ?Xea[.elIdy|ơ m֝rvJ% _@=}(K& zU\\7}ȌhlJ^7rFqP/@9f\[+'_ m$7W5Ew)j&;_. mk2U 3%^~8P?A2?-sN|_@5jQ1 XJhsk)8\<ܢ{Mׄ(-˓k/ lRmm+M@m~<,iĿZ-N*gdϷyw~mqxrN. |Mu b= b[Tm Pk GO`զ| .Cl/0}H~ !@n 6zuv¢IRVNL9D]ڕ'C n~WQS(\0Rhl|\]k#p]ح@FR\}\\tdXMBڌMrsKjN@pCc"฀ˬU삵rkO%Nrg$ȣ8X@d-A.cC\?H mӗE].cDpUyj\T?t'1u -`&x.'$DC R:|Q=j Txڑ4@)5y>ا@Cc!ﮑXm.nEIo"o}\-D2` D-bpzøbN0՛nh"i @G u<ϋvʏ<>}ܪFf^ޝed+Yk/^=S͐m=Aܰ4@#:RFHS[Z,Kn_,]b/]:$GsVS 73MOx9[d~iz]&VA@@@?Ƈۺ=S|LU:k*lZL/x\dX]FS.zfii  '5?}AqKy. |zjq|/&$}r:3_'wR!6}ȌϧJjo)TһMMڑL@gBw@@dr{{n;Txɒ1go,G&/z~}2~y)^=4B۩ +e;D]sƈ@ EoXbyrn%'-,t9]ZJq!)r#rjЬDʰڎ4@j~!bm1j"`)<\4<_ny~[VY@4ͅ7 Ҭ֟ -qZ4@ R"e' h$2/3"4%sW hj"j?f^cKjЬx|J4@ "i+JM}?ED^嫺=4+}gSC+PBJj,7S*v Cf @N*CBw*6ɉz_s.).öT׏-z .4Ir2h76]I9.jCQ@ P x.`)I7,X}7A0]SeffӢ['A%$ZL۵ڠFS,\KT,HC\ Psa#⪭rZ@~ 7~yݼ;Oϭ˒Il"zW>X!^Qݕ!3N@ PD@^xx|{TrtOIh}{[K{1go x:DwQݽhVSυhurL!. 8,+9U^<vpn'eU5݉ș擂eF6reb-=]"j.:cFO`MM|M v`-7S~=eZkOmcoxЬf A>{IA*]qƈ Pۗ?G ߧzG!2'-,-s˕fD׍)oL-o}\H9J[HPGs0 T 7^ԥ;@.DAIeC-/&U)D ji%^I @ځh x[ x?fܢE1ے5x"mI(}Ent%YIl5}B! @j_6; ,TkoN)O}~bIWh(J 'ȱZ΅f"$>v1d& !Y@m6Kg?s ӖTŚ $5!)ӓb;6kݘV2)>FC3Z/"h=yjZW@V !&I\1oE<7Df*En_,8>''}a|q {͖^ihhZx4 lغC~Ϗ+NÊ/s|O P%Gy?HS9OGe vxR<`mD.B9hXm9OVMd-=]oƈ P|.&xq:dDwׄAn9isEZo6-X%sghf\hd`!t8c˳"{o^)>t`ۡx! k]dOdw5$ۢ祕Zx^ J@Ul<urZDt(hQҀ`^kphh]o2eLІ7zik%& @:~ ˪eCsO*#9/ϝc'G5凖+T2MBYۇ. 1"#O3 tizOX)FS틊 xiMmdڒM^њ95;CrĒduHIWn;_.js|  P۷@ON.ѽ:wē(͐׮>Lii૷lnQNK^J=gG>QU6aX? ?9/ OyxOIYab)hKy#ArK5*ihSaj^!rJHKYm? =?>(JI J驥rV$J Z[ww2,# ij6cXϏt*m?FY*K鿵ဇ< ?ۇvXA?6C>6m<8Rf @ "o1 Wm3/vC;D*ߖ+~U33j~!J@ZFǠ߁l;2JGC\ȝ;zȳEV${Uο̃aj^=Wj]}\X6ڇZmGC|ȟCF lR?5{tb׷iNz\Vm߳`r:vMM~-iwVyB@)@O"~\KeY喓JdEVMJylJѠki  P 3@@@bq 'AݒaQwW*j@ Psg) ST ͑ 鞮BHm,-=`_ů]_ a:@cSf\)VS('1.icViN[j5h  3rp\zNOda;mؾI~f}l w|1 t8{Oez])q_~['wT&V  q xjIoR[JN1ȄY[e KdG! yko@qKew4!$k!?+m)Z!̭yGC@Q k2 llL]!$'H ,A(N*CBB%𞦆?7ArøbMOա;7/y5<F8`& {E=ۣzHb, 2,x6%d_0~@ PD@/rKUrb9e@~=_T ?cUҠKi ځh jvEČtR韗YPkh F@5j<@@fiJ49ȏIfJ*Ӗl[5GZ @[ڢc@SW ﯓ-K\{+7njEGC@ jP [7/_f[N*tuBV=4qb5h J@-T@@*EO.ѽ ze'Vos=Z9GC@ jx 22Z./W IyF&h+0 M 8a# %F;P'}frXM9 bi9> @uNO䄇e"Nc={`bAZF"W;j;w(j/q2KgD]rYh Z{j\ eG{Hrw|zC+w*"  @0Ԃ1(z]N[s!| LW+iՈ! QQ  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lB   @9  L@gBw@@@5@@@gj>  q   > Pل@@@@s@@&   j   |6!t@@ P@@@|&@ ;      35MA@@8@@@ lBN e&ITTTu# b.sr\pS@yg!bTy!rdqFʡ@ĸhrtOáҳKbt"cX!1So o_OFL( 3ec$7=q ݠ-Z+0oW9OW7-;Z{( Fv[N*9|O:@ Eo E9oh9<2yv ٶѷc @q|@"   $zk/ }U3sy! +[xB9{H&U  P 2(? d=_-.w\.?@*+Y.+?D j!PMWvDtoE'GQ;j'%#cWZpۖoh &\~;m7F\a@887K?W@;=kaJ\T+5{$ӄK@-\7-vMDKkߵ+9UUC'&A"MOYCI#"GwAeRU,J&V:<'j>QNG#={R3ze#k‘ry o!8!+W!iX\l1RY-oi ?dG?F99h9&'Z%:rYp\,O\_fVl;_.k~ dho5Jd>\t Jbe.|GDno$` @_qf4IthaE? Tmݯ=@ %7/®Ieft2mm|Yؿ:Lծj͓޴֡YѢIh8}`?KR~5iTo۹Gc@H8 ]n>XLEkٿvtMjm(M1gq4wCs! ֞Ԡ7`6B2Z .3j "_-kvaۼ吭Aa P ;1Op ٺZ( 'zWX/뤙e Ojࡹb+OhJRceΆ&IvI<2,jaa*k%4.-t s]r&^Vs$@vHʗSRt -$Vg-S4G5\ , Z(9Fb4݇6\4}B !)̥ M+њ<GE@5;sp7"IӜXɟ12KIVoc@X9 J݇;Jֽ>]؃ӳW߬55{}~ qzuqpsY9Z [wͱSW%Ptљ. Q2Z#fܶ4|\9Cfrytro숮 887EnL#K;|=$PX׬[ڃ@ $B#t*9ن<{ @21U;h,`Fd??Y-a9dOsOOܔݦFň0K 3%N>\ixLX_7 @Rc=u$P8wN#+E{mg9&)"P eX=:ڇf5Kh(J//,,wT.ph9OBG2Ogw-XyIfȺ6YWHA?=~4QB,kV!6E- g ㊥kb.اZJOzXm)mkB 4S0݇fIh+p,9<1cr2޶3rC@n_,CzGt5 h%&U5JVƑ]@m>t?lAzlfsZ$`im{9,WXm cv@qV"/= JYUi‘zCܩک`5~XZmi(giK}| ςRNwƈm/?vW]ݒT۸CVVr肔X-}X!F6(9J39ZWhvŬfG8y>rH G.ve' p@Iq1rɈ|=S[)k Vnj&wϖ=1!w`S35<06v@S>B44+Z4Vs/%ϖmիlv-,padK/ o~Q~J|G|EHñEj(nhdr~[b}A쐤q˟:jB!Jlc𯊵i]x)x-z*lh6Y"8O9.̜*F#Z ]e}urJݣzv)4pQ.g}Aoyଂ&Zơ!p jf%Fiv".4o@י[]gn6{KA]DӋsA)ѩ˥^#\ @?]epQȈ?ff[6g [Ҋy7)ZѬ.oRE%2[6$_pwO )6J%f!H[j5쮛]U[n <E[wmkOY- l޿?4~ "R /#Q~8PԥةFWLY$p UuM]7m{3F[ɢah9aO+uđ Zգw+xdvXZfzK!bKx+%Vpeݳ%4(֫G@(HkZ6?[ ] 67H֜59gGsW['j ʍu @XN%7/.a9_j+he4y9f}|N+wu8Ӂ\2wz/ۊ-j-MuCu`MlA5Vokg*fϴ2ܵ4Sd~UJަgh ׋M7X"{-o흭o,}+[MldlRAځhwt]ɱ!/-SgkMjtdfWMK2́78(pQr9IČ}gEK|^8+Y~rB L59E"kߋwk 66ʇ~=\{ t-~jY-ڻlhn 9:RV6Z9/ l?|}Z؄M@IDAToB!+{cF]Bt|GC{6oJwOa#@2S#D96h)LK;:V"g9SgRHNJp2AޞIa%P kkwdA4[aWQw 37y }2͜vKvY+%D $xj:tjb!O*ǍZ_ Rz3$`ٷkM^g>qZ0݇fwnJl5^l_X$4 $_] s7Di7K-dGgˇU-?+ Vh}譋^C8g.KZ0҂/GOFdТju,kB빭&KJ-[ y:ת9nk7SˣSVzi @zdGf舑s el)amdA+jwN,{o{hp_p'pw#)l WZ_Y&` RWljg7D=2K[e7SWKoH-<|EVg$ʙё5ZcnAkVjoKV4͞f9nӥ2~DAP@-T>8NyD[+|~-S,].t.)nNqriMw\.-Z#"%+WS.9$^SZf. ~v/J؅[ۏo>VZil^~Yhe9ZWbY4mpmo7]fJt) 4twK@Ҋ3ɬ -qeZ)'?лn}g|`{\ivasƺ]6mAdֽgh0-[eBW@L"31Jۂ n2M lb%ϑ}vQ.]1XoZ,Pgߦ!#p!YqRšL*`oVł4'-K+tOZny)͂Rݿf{,g}5>} Iz?Og$Tjb [ С:3MRk]~|Y2_q*ypRT8/`sn>DHu–7Ne5ۯݖɧ*v%J0C%場GkJ<۟4<;Z m]{/6V;{%5MRܰ=ln݅H/gk_Ng;9O\{ƈJd_Qf/J@KbO4u?kZImZwsE$|@-f>Z]up{ۏέ՛Ѳ?5yfonJM7=Vȿ 2S7ݒT۠ Z92kw5˒h[(FKuf[#^eX7/sM'?ˈ VBn)jL`nPcۣ`<NQP^z')@y4jble:8[ZZmmh̾z`l׉=\M6rlyt ͔岵^ @ bM'Q%Pu|}Ud<c &jZw>t`Xo3/GWRd#[,,%zWtOjoYץdM5WS+?cujip_q< mH- nہ"k.ǔ5MBO`C}SWF{ G2ZfȾѺI{lm_D/0Lk˸R&^<<_:4G~5ia پs8`z %Y ik)>"OR/HKey>͋]1g+Z-k-s.4[co)^#kPOe}ZQ|{3 A3jԄY$<2OyB5o-W[p@H++1OE*9M4KTAlK5Cr~ޱ|-1J)kvaటja"k u8Ю Zp6]S>L'UZ:ób`]y>r^‘K;hxZ"_ )>F˕19)0]Lk&ZQX:o<:]0 3 i 9He,$^˖-KrXeya鷽^[r3B V f#X:Tzyt߾[oչ;AkM9 f^F*(yiB浹 r4gjɝ' op:4=BI.wgQ?53ܹ}+=w͋+'rL )gh:eG v4-b3m k Jt[ʡ/ޑU8w{auȘ[JhO!v Z"t}O,1ٽSn{nrYѺZ)U<4/KrE;ӌ.Krh9C(8Sbw2YwpZw_p^Z#B Jd?)XX: 1]XS˷KyAoitvnlεĉ.D_>RI B{\]5K2qxbe6Ub:ݸN3G vgO DoR%ZL͆玀q4A?!$XJSRY5q[2AٗnLjKbYOc#Zv[  A`{52m|%5[]n:}{:w/;[S"Х4wx쁮ɸET6HHޕɽ Z˥Ӹ4eR\w͸EZDĢnB~XBNSF,-_=kǟmŹl}+O/n(:ZRˎj4-b3MHa615WuTHXݍzMqLeY6U߻u#ieWs'|^Z5Q mL,7 m崰@TV AT4+DvݜW^s7e[~5ㆸZS{&npo4c < `^5K0݄(PTrL;mLXNxm69KxlQ\vN d_ւ-ޡ;z­)"w z/u5߿]%%ǙC~¶-h~^NrkfObO[7lV__SmN%@Ѽ_Cyi䭈îMuxZ6)E=힦e,ΝtRm<G׻S&l=\ewq<l^ߴ }ݸVqJK#ǘ7@G9Ij92 B"`R;m$Q]s0o^n~reHM.ϸ.VҤϧګMRJCS:Q W5f¡Zߝt7}c5C>t1j)+\ Ȗ!b%L[Ge c򱳽ה7=Zw_t/}kG@ 3)XlV*tg1]OLP '쓝!~3J O)_kt+#y諴iOjZtB1xk'[ސ{B9ղ$2PVZ" $ezY J`Ŧ&%MnĀ,)hHĀ==+.qk69 `!8['ki"#HVR爛<"qBJԚ%z|U(mC#`˹A@LlZYYJuF_r?Uis%S" ?~x "\CmzwԨDի55wLj {"ƕqS"zuBc 4o4HrrآJײtv E3\ychVђT}rWGU,Wy/^GUS]o|dush Ӑ@@mٚ6~$J\{˭A@cT1RJE{SU|YuZ ܚ?ud.=u)MA7/]TzNڳ IKan]ޘ͟kz })Ҡ@{Y-Z]M âFp?x7u7Z~G@ZΜ]h4-b"Ze9bjk>?lW>2Jj'R!@@[ ^T L`ۋMuvsqvCww?5-$#kB! ]]Ͻ+g+S$$tշ!in֯MӔNtwԼi}$S;S9;8ucÒjN j9Xb(ZGN;+owunf $ՉWk*:.QhJw@kS78LIGW^q$P+՞=/&9JΗCU1y4hw%: Vg%6܁iMd5T'LZ˕ j6.]5W7r,{-ӫە \r6_5ZfKߡi)ap'hvq"]SkʇmH-tqaCoYnʠ2V绕wr7-P;&9iP RZg5u䎀&<ѓ wps'$G ;5[]6tDe!?%zYꔆkZd,epMݢֺkp[T=zɨa͚QO)@ dghY'&{A=u!\j2hG}AO୭;^.olULt7?}^OژJ'4Ѧ;T, #TZ|2]'lʪC6Ts#vlbս ,(<%Mnhe͒lq͏5&v+[Vc}f:~߿ [Sju)$v]FI9*/@@_޸ݮWۂ 뚜-f֦\t}*ߺhf?wT"yKw6m|3JQ4VOW~l ;ܝZ~1P?}q׭Y9<~ѷ P+`؂hKX HCAulo4J%M<)dGײ,[P CT[곦u*EgGT6~7vhڌȄ|i"xPSiνQ  <4 Meܧ}ܵ7xv Ϻ%dS,: ^)Mu 𗀭5!ǵdg KX6!Ps|Y   Z;eݢՒ-VTQ4OɂqpJ!i[[$>ĠYЖVb.w s S2 ގv+.?PXN9Eg_@,Ưlw UlXf仵:@do 嚠@֣h!mZd,epMgsGE/*D>X~zɣgb7+A3e8E#`),/dT7WKՋ&uF&+ě )@i_BdyHLS?& ryDw˓ؽrcm^KϦ74ǺneM߳~!M7o  7uY'tsTu<71sjm$EѮ)Q NT^ -zD$]|옞Q=O\nu[~hznY&-Uٍui A jWkiP:5vV@L!uLM1M L9" &DS?*YLM쒎ҪbZ g˪D~ݿ۴MSZJ1GBkjBK@h@MY#AMS9I[h-9kyBi((]Sn~ߴwj9D'uKx:Zk:S p'H;4 AYwdsYXjf;qyKnfͫLPT{6jh-s=:b4DŽ@ ll-Үcv -vnhx "MÙn(E!@VoԦM 8!=!&jʼw='`y,ںmzpE#PߓmGlhr`*ǯlܡٍnf:΂ @Jtk./ݰݥ3En X?3ROl&QN@MiZ/`q)Z"`[kRndL BV8 &>@lJX N5Cl^ormo"`}.ڔ-|iXt6Ѧ:"O |#PSmpWzFy(Y֩#k Cᚦ2N֋([%Ve"!&;bLJuofgLyNj6ێPەt'A fu)+@>9sz571}>ӀzCZ6V:ӌ2Bʫd;";B_֢uR| x XBU%ӮSb뚅BtڞB-wMZFjE6KxmOhf_VV?WIV)xJ`4zљJ$Sc2X֯5 G=C |iE5`̚v72]sn~|kn)7Kʐ "G/Qb.y9ls"'|~0)V6u 06QA*coSKО_MScKI`pה,1%)9ޙg lʮQ<%`9JힶnAU#s٤ i]o4չD ӮK^o*H< *Tke:(بZHD{DoԖkJ1ml@K2]Q&(5 %-J|{\U[*MIKzF֯u #߆@+SplHF;gSTL%ܧh/LJkͬM9MRAwrC ^-E95MSm < R'uvk:.-~/qJL‡xIk25d@k쀧X3Kcd)C@|7JFv1p7F|~;vy#? թlN9uWSVcDOnJ7zJ)@z,ks2YSt^%v}\]i#dv_? <#j3nk;l!?j[]3!:Hv+"9!ZiHi׭SqkoVv 5`_\*B[F񔀍{]jن[C;",¿M3]Gj@!Ыsm@E,oP>/ VdnnQ<$`kOM2nzK @`_7OJ w,&4, V#z9B{{' ix?ΩϸO=?! @9!Q5jw:p6qC#$Sc$;If/6;}P_nu%߅ @ UEC3Zr3Z='x|Xd!W,OYUhְG LTTU%**YMn ԺT JX=GY_Q T^^N&¦C"m"`'QXjZR @@! T*M2iBoF$5H34QtT!mQ[eM/o ZI >_MTQilg (@{{o;`A5b5I`<衜$iڻe\OR @@ h\FJzACڋ -|?Ӡ;G F#0H9JLwn"Y\  @~ZvIK:{dy&gʞ}TNjd-J ќiMI ` S>i@Ɲuh;bOm~l#(5kh5v-B٦]F@ҹ}RB ep  ?Z|6w:;ZM_[,;&7Q_oc|΋яzkd&?Fv[^(Ӝ9ܜ0e' 0%qR^S%7{ez}l{,o#O.%;J2]%K @5.P#]g֡׏˱#47CGVZK'ǭXvXp2M5Mn[ӎO!@H4Si%JF kr]cpr3d壨5؋Pq W7e[Y" @0eKXm"] "/Em$Nroã֏c;ri6zF@^t/]11ya  @ v|TLVA -al8AE_h&'ZW2xNR䄏yC2N2@@:Jܴve瀍-!kИ {st.2&׏f;CS"'=iⱻQVSnFf u'  Ui*Civp~ CZ$7*`{ QXߵ L#k܃ܦlQT@l&Jl5]cV@'~XeQj$=d) &2ٙ$iAjh kjPB?k0ُd2קY^@@ʤuXm:+?B).(ʶy1A8~ld 8x՝{瀴;}p!5?5 <S6۽y4)3x Io4VX:qrA=-+=qy[\2Jig@"0IDATh)˔)xR<3{$~xyI <{큕MYёMuP[@)+qzD(AX)/?/Ƅ, $O(-)6Uoʶ|dYHW,w^d. HO{9w;y`u\2 ݈IqXŽ %ΐ-]<֨j@ԏ? UkΗ۟~TQ.zD.ڵW5ͬ_, /E9 ݙ=uh|"CzF'j5H:HgeH ź5)wqCM)S @{quw ߒW>AMTx #°U998L2&zZe I{L@ʤHuXm]ad7 m?~$XI%/-ہz"Rvv1Afs)V)׋i-nA?fXR)Or)S'p<1* P+8pƓ2KmI<8yDߴ`x|'5&0@Rp)xJ1\@Ej-b "r?Nq?_wT_"ea@@r ;|kL=5̞⽷8XtjEo0Qv*9Ԟ6%|'4Tp @ kĜ>:z)S'`colڗlL8Fq^4C8NxA7]e'NK3) 6S(_[6Gў6+ɔ?dc .o$|lm@@}e]mM=EpJ,7m&i7v#J=Yo]"ZwyQ%nxU=d+i֦y+ Z)4:FQ L^^#HtA4NrO߶ 3U7lۦ`QkѫYpddn U3 Rs$H 6d [mc I y+3};m"@&\l^m}V&IF>ϗJ=+ JZCuvy).՟1`"0 KD3S ]^]('ln7SK;e`ڝ:(zJ@#ύ@%3L=E{"@ 2=!;\(G8w!v]2*;1 5Cv)R'<@'C'IYTP0]VCK54^c?z-&Z7B]Ey;Tmٶ0hc<Ù p.Ɏwe%^sv}#yJrR@lV̝'\SХxOy8Wcd{-FG5y8E6%˞,/]-qy:Z#2d+i&fuP[Mqm.Lq LX.?}[c :@-F7cTg]@d6gA%܏U٫YvznQ՟B)⚚#AZI^(kP2 -^' mjzpor>2g+XOku\b"k~ (픞i@L= ~-e! \]8 "˲S }A9:;wDG2[)O"k~ .ۋxxmʱ47fW^4C1NBmQT.C"l!7TiCFfxL@.)7WIHD%3/G$Z V8t)zCvRӼ~m|K~V%@%Uzlvm&Hk ﭓK$Hqm-6^l1=]-l92nBxVk:wNJFd}^Z1\0)+o[]XsDo j)7U7L,=P~"5h{-B̶A@dCdu^(uiAS@P?HքBf(P#HetBAQaHBj-|m]'ɞm՗ب(UdeK޺d)I`jϕR.'ޡ>pA j4.ڿw>!{gl ˸5ig@$нĽc@Ɲ&^Ez[Ⱥ&XkTecOBD5 }FMv4T$/Iu)h.0_S @gk;.N%7;ߦ}|[6L}e9.%h߶ %ٟskvcU4.T>\rA"`ʳzZ6Yb!\i8-$/Ǩ/Ax M"c>.o)WiwdU6Ƨ#]S'h\<ٮӞ>V\ʎ L>"rN@[%oGv̤)]]+a%~XI50f%xOfh@Q B^^#lrd8kK5Q ˾!d_m5AșGFU-2Th/S=BʲI͑  =닿$kе[W  P1p8 ]8^pc9Y'm  0)=M,ț?&[g8"`SONwK2tdO˸n 8+ = 4H9dMNt[3*{O '3爞P'q\5l s{ëJ$ɮ]5l[Y@! ;W"!}%FD eQ I ÅC@p-ff Mg9d)@\* k KD[/2 F2npx܄k:wFt==nvNlV4G4m8?::4ݨ3唻?0Lfk^]<@q 0,.u(+dɲq;J7{:iA EyP؍֬;CiA4=r|AZM&@VAPl>SFM[or%/1y.7}  zn}/L =g;g,y5h%Vb3N@/1+do!`Dr5iu'`um#` 'd_{unwٺ(Q?!>@o@/urd8Z uXad[q>2GMP{_U#SN |)7$Ҋ`AoZM Vjm%hu^dWF _eOӮ."%QjSduhm Nˑ.>.q`4hvXԙ-S^ϒ=qy[Sv'e\)@~uhJPeȖz-B XF Pv֯M dՅ}\*qC+3nњ&ְmidZ\g>)7G"!P^\e3Bk =#䃀uthe68MIeeӴ, @#` da^ǻF6B} LA@8 P$6LA3w*;l|[`d)@ t:סfGmKlO[_U4O80"'#:sdG̹S)38>knT'3j  .'γ{oq '70 :G\a;SmJp]K D>kkڦ< #PWuh 8%+2oqZ$ M5!vS7<.Om9GӂIO~-ڶHRObi-Mc&HmpQan}^Yɶ'>9W]BZɽ/Ή8 IyA X]05_mc@UDT9)g"7  /Ax@ D!ަAٴȷ<.Om|H!,ɣS +8zGϐ)AZu?vl4AZ^9sxG@ͻ&!䗀:2iHc~KLW蹒E@ Vrn/GLL 6xΧRxOߓ 5vcrJ?8!N=xoxJ;i@ڝ68z1M-5Nx).:5)=z!ܪ5}U8 ǀ#@_ J@'eGɞ*9X PNyT@MbxD9BʢRxOIyxGʞ[J@-x9!A-v#2ztcZ6ge$NjN)"%QSxO`<']佷8ZA0sA@FW0d锗V,>Br=igy^  5֮ ~ͮ{@л 5@84XxKfwwG~yZ$+O3)q0eIRuh-(]k?b ٲp<]HjӮk>j.%wԥ]uDW5){U1ݩޕJQ@ ǖ=C Q4!>emJTT_SrkHu-s5ݵNJ lˆ}z1B^ Pp cS_tx|]$~%L}`{On^H=6\fڕ2 (ZMը؝{e"SJ+ivul;%,R4C{)h?8Mmw̦=mnah>yb9OL ؇\=I@u_vgz=JvlOrk!=d).-q'HL)y>-xd׼+e&O ނN@ l]d?u?ɸۓK/;sO}dVJtv)aR'( ɶx1B4+ hd&X2Pʖ ɸzbH3D]#˞[   ~'o. $*\h}t Z.i/@{ e{,BFJ1h/@1 P# l3M2K$pgh^Aǖ=C~Lx%]5H`*}~0 zT@s1p(< #*{pDDAY֎$H$ F([Ytp ^W> ; -ML D-w@ tJZv, Eh q@@m'@vf|@ (`AoI"-IR  $ PKbR'@ RnMIl%X><{s @'3eF@id(8ᅲig#5 uц>&h՗(T/nP)JSO@I"@֤.@Sſ ;Ou=ʳ`W'O*@[]^@@pЃk2 2l%̞pw~푄דAkԢhf* @@esTe/Pg%=Mm? 3@rD-9mIM "kGdUI"*sk ж&bX9@ TWNtevU{@\xW{S[@ R FH$ڷ"UtR*D= @ej-s]@$XUK2 (xRZp\S@D:BBDfCU+U&Obn}DM@OLdj٥2C`\hkq O @P E@!rF)[Q?mql  DM@%ʶٖ8Rx uHKX}w!@7QE@(@S*[ [V$7b<쫪Eii16?u 2̅w!DM@O׺'e5%6j_ݠ^S @B @؛z se{jwk?]͞Q @ o@M{0{ޟ6K[:-6 F-&N@B2ێE}t1Mvx|@xcSg@ keGdUu`W1|-UzWmrC@-7  (`J_#{,WQOih+)B%@/ށ 6P6VIvtM:\I@%@_@4ʚh*gE-0L-{ @m'Hۙ @h?Ke[$oR>$O&^ @H=]&l,v:MF @ X(&,i7XڑzB @ $fl,*0;MD @  (IȖB+dpxRg@ $ 529/  @  D$O?T @#`h/.925 @&LbYʋ:{!@ DM@R쓲BtOʢO!@ Zwee*oj A @nDE'pn% @ e Z{Z8-f[@ @X٥ղU‡d잷!@ @lu$*;X٢ ,=@ @h%_ W~rwl@ @"`lݢEz=7Wg? b()A9& @ &ٿ_  @ X֍ҞIENDB`mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto-4/webpack.config.js000066400000000000000000000011571516122265000270230ustar00rootroot00000000000000import path from "path"; import Self from "../../../src"; module.exports = { entry: "./index.js", context: path.resolve(__dirname, "app"), module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "auto", }, }, "css-loader", ], }, { test: /\.png$/, type: "asset/resource", generator: { filename: "[path][name][ext]", }, }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/000077500000000000000000000000001516122265000234405ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/000077500000000000000000000000001516122265000252415ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5-importModule/000077500000000000000000000000001516122265000314755ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5-importModule/assets/000077500000000000000000000000001516122265000327775ustar00rootroot00000000000000react.svg000066400000000000000000000045211516122265000345410ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5-importModule/assetslogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5-importModule/styles/000077500000000000000000000000001516122265000330205ustar00rootroot000000000000001f2bc28d72f2b4b52ca6/000077500000000000000000000000001516122265000357065ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5-importModule/stylesmain.css000066400000000000000000000001161516122265000373420ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5-importModule/styles/1f2bc28d72f2b4b52ca6body { background: red; background-image: url(../../assets/react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5/000077500000000000000000000000001516122265000270175ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5/assets/000077500000000000000000000000001516122265000303215ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5/assets/react.svg000066400000000000000000000045211516122265000321420ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5/styles/000077500000000000000000000000001516122265000303425ustar00rootroot00000000000000f46d3be95d50e953356d/000077500000000000000000000000001516122265000331175ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5/stylesmain.css000066400000000000000000000001161516122265000345530ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/expected/webpack-5/styles/f46d3be95d50e953356dbody { background: red; background-image: url(../../assets/react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/index.js000066400000000000000000000000261516122265000251030ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/react.svg000066400000000000000000000045211516122265000252610ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/style.css000066400000000000000000000001021516122265000253030ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-auto/webpack.config.js000066400000000000000000000010631516122265000266560ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "auto", }, }, "css-loader", ], }, { test: /\.(svg|png)$/, type: "asset/resource", generator: { filename: "assets/[name][ext]" }, }, ], }, plugins: [ new Self({ filename: "styles/[contenthash]/[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-default-auto/000077500000000000000000000000001516122265000250625ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-default-auto/expected/000077500000000000000000000000001516122265000266635ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-default-auto/expected/c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000322100ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-default-auto/expected/main.css000066400000000000000000000001201516122265000303120ustar00rootroot00000000000000body { background: red; background-image: url(c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-default-auto/index.js000066400000000000000000000000261516122265000265250ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-default-auto/react.svg000066400000000000000000000045211516122265000267030ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-default-auto/style.css000066400000000000000000000001021516122265000267250ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-default-auto/webpack.config.js000066400000000000000000000004671516122265000303070ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", output: { publicPath: "auto", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-empty-string/000077500000000000000000000000001516122265000251325ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-empty-string/expected/000077500000000000000000000000001516122265000267335ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-empty-string/expected/c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000322600ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-empty-string/expected/main.css000066400000000000000000000001201516122265000303620ustar00rootroot00000000000000body { background: red; background-image: url(c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-empty-string/index.js000066400000000000000000000000261516122265000265750ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-empty-string/react.svg000066400000000000000000000045211516122265000267530ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-empty-string/style.css000066400000000000000000000001021516122265000267750ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-empty-string/webpack.config.js000066400000000000000000000006241516122265000303520ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/000077500000000000000000000000001516122265000244545ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/000077500000000000000000000000001516122265000262555ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5-importModule/000077500000000000000000000000001516122265000325115ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000357570ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5-importModulelogo-on-dark-bgnested/000077500000000000000000000000001516122265000337145ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5-importModuleagain/000077500000000000000000000000001516122265000347735ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5-importModule/nestedstyle.css000066400000000000000000000001521516122265000366430ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5-importModule/nested/againbody { background: green; background-image: url(http://example.com/XXXX/c9e192c015437a21dea1.svg); } style.css000066400000000000000000000001501516122265000355620ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5-importModule/nestedbody { background: red; background-image: url(http://example.com/XXXX/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5/000077500000000000000000000000001516122265000300335ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000333010ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5/nested/000077500000000000000000000000001516122265000313155ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5/nested/again/000077500000000000000000000000001516122265000323745ustar00rootroot00000000000000style.css000066400000000000000000000001721516122265000341670ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5/nested/againbody { background: green; background-image: url(http://example.com/ab650ced14e52cab966b/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/expected/webpack-5/nested/style.css000066400000000000000000000001701516122265000331650ustar00rootroot00000000000000body { background: red; background-image: url(http://example.com/41c32920aa5f377c118c/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/nested/000077500000000000000000000000001516122265000257365ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/nested/again/000077500000000000000000000000001516122265000270155ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/nested/again/style.css000066400000000000000000000001101516122265000306570ustar00rootroot00000000000000body { background: green; background-image: url(../../react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/nested/style.css000066400000000000000000000001031516122265000276020ustar00rootroot00000000000000body { background: red; background-image: url(../react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/react.svg000066400000000000000000000045211516122265000262750ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-function-2/webpack.config.js000066400000000000000000000013021516122265000276660ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { // Specific CSS entry point, with output to a nested folder "nested/style": "./nested/style.css", // Note that relative nesting of output is the same as that of the input "nested/again/style": "./nested/again/style.css", }, output: { // Compute publicPath relative to the CSS output publicPath: (pathData) => `http://example.com/${pathData.hash}/`, }, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/000077500000000000000000000000001516122265000243155ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/expected/000077500000000000000000000000001516122265000261165ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/expected/c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000314430ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-function/expected/nested/000077500000000000000000000000001516122265000274005ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/expected/nested/again/000077500000000000000000000000001516122265000304575ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/expected/nested/again/style.css000066400000000000000000000001301516122265000323230ustar00rootroot00000000000000body { background: green; background-image: url(../../c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/expected/nested/style.css000066400000000000000000000001231516122265000312460ustar00rootroot00000000000000body { background: red; background-image: url(../c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/nested/000077500000000000000000000000001516122265000255775ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/nested/again/000077500000000000000000000000001516122265000266565ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/nested/again/style.css000066400000000000000000000001101516122265000305200ustar00rootroot00000000000000body { background: green; background-image: url(../../react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/nested/style.css000066400000000000000000000001031516122265000274430ustar00rootroot00000000000000body { background: red; background-image: url(../react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-function/react.svg000066400000000000000000000045211516122265000261360ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-function/webpack.config.js000066400000000000000000000015561516122265000275420ustar00rootroot00000000000000import path from "path"; import Self from "../../../src"; module.exports = { entry: { // Specific CSS entry point, with output to a nested folder "nested/style": "./nested/style.css", // Note that relative nesting of output is the same as that of the input "nested/again/style": "./nested/again/style.css", }, module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { // Compute publicPath relative to the CSS output publicPath: (resourcePath, context) => `${path .relative(path.dirname(resourcePath), context) .replace(/\\/g, "/")}/`, }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-loader-auto/000077500000000000000000000000001516122265000247045ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-loader-auto/expected/000077500000000000000000000000001516122265000265055ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-loader-auto/expected/c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000320320ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-loader-auto/expected/main.css000066400000000000000000000001201516122265000301340ustar00rootroot00000000000000body { background: red; background-image: url(c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-loader-auto/index.js000066400000000000000000000000261516122265000263470ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-loader-auto/react.svg000066400000000000000000000045211516122265000265250ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-loader-auto/style.css000066400000000000000000000001021516122265000265470ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-loader-auto/webpack.config.js000066400000000000000000000006301516122265000301210ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "auto", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-1/000077500000000000000000000000001516122265000253735ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-1/expected/000077500000000000000000000000001516122265000271745ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000324420ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-1/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-1/expected/main.css000066400000000000000000000001431516122265000306300ustar00rootroot00000000000000body { background: red; background-image: url(/static/img/../deepc9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-1/index.js000066400000000000000000000000261516122265000270360ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-1/react.svg000066400000000000000000000045211516122265000272140ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-1/style.css000066400000000000000000000001021516122265000272360ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-1/webpack.config.js000066400000000000000000000006471516122265000306200ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "/static/img/../deep", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-2/000077500000000000000000000000001516122265000253745ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-2/expected/000077500000000000000000000000001516122265000271755ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000324430ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-2/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-2/expected/main.css000066400000000000000000000001231516122265000306270ustar00rootroot00000000000000body { background: red; background-image: url(../c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-2/index.js000066400000000000000000000000261516122265000270370ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-2/react.svg000066400000000000000000000045211516122265000272150ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-2/style.css000066400000000000000000000001021516122265000272370ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-2/webpack.config.js000066400000000000000000000006271516122265000306170ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "../", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-3/000077500000000000000000000000001516122265000253755ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-3/expected/000077500000000000000000000000001516122265000271765ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000324440ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-3/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-3/expected/main.css000066400000000000000000000001211516122265000306260ustar00rootroot00000000000000body { background: red; background-image: url(/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-3/index.js000066400000000000000000000000261516122265000270400ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-3/react.svg000066400000000000000000000045211516122265000272160ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-3/style.css000066400000000000000000000001021516122265000272400ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-3/webpack.config.js000066400000000000000000000006251516122265000306160ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "/", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-4/000077500000000000000000000000001516122265000253765ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-4/expected/000077500000000000000000000000001516122265000271775ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000324450ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-4/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-4/expected/main.css000066400000000000000000000001221516122265000306300ustar00rootroot00000000000000body { background: red; background-image: url(./c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-4/index.js000066400000000000000000000000261516122265000270410ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-4/react.svg000066400000000000000000000045211516122265000272170ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-4/style.css000066400000000000000000000001021516122265000272410ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-4/webpack.config.js000066400000000000000000000006261516122265000306200ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "./", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-5/000077500000000000000000000000001516122265000253775ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-5/expected/000077500000000000000000000000001516122265000272005ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000324460ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-5/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-5/expected/main.css000066400000000000000000000001321516122265000306320ustar00rootroot00000000000000body { background: red; background-image: url(../static/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-5/index.js000066400000000000000000000000261516122265000270420ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-5/react.svg000066400000000000000000000045211516122265000272200ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-5/style.css000066400000000000000000000001021516122265000272420ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-5/webpack.config.js000066400000000000000000000006361516122265000306220ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "../static/", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-6/000077500000000000000000000000001516122265000254005ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-6/expected/000077500000000000000000000000001516122265000272015ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000324470ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-6/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-6/expected/main.css000066400000000000000000000001311516122265000306320ustar00rootroot00000000000000body { background: red; background-image: url(./static/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-6/index.js000066400000000000000000000000261516122265000270430ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-6/react.svg000066400000000000000000000045211516122265000272210ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-6/style.css000066400000000000000000000001021516122265000272430ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-6/webpack.config.js000066400000000000000000000006351516122265000306220ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "./static/", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-7/000077500000000000000000000000001516122265000254015ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-7/expected/000077500000000000000000000000001516122265000272025ustar00rootroot00000000000000c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000324500ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-7/expectedlogo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-7/expected/main.css000066400000000000000000000001261516122265000306370ustar00rootroot00000000000000body { background: red; background-image: url(staticc9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-7/index.js000066400000000000000000000000261516122265000270440ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-7/react.svg000066400000000000000000000045211516122265000272220ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-7/style.css000066400000000000000000000001021516122265000272440ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative-7/webpack.config.js000066400000000000000000000006321516122265000306200ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "static", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative/000077500000000000000000000000001516122265000252355ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative/expected/000077500000000000000000000000001516122265000270365ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative/expected/c9e192c015437a21dea1.svg000066400000000000000000000045211516122265000323630ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative/expected/main.css000066400000000000000000000001341516122265000304720ustar00rootroot00000000000000body { background: red; background-image: url(/static/img/c9e192c015437a21dea1.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative/index.js000066400000000000000000000000261516122265000267000ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative/react.svg000066400000000000000000000045211516122265000270560ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative/style.css000066400000000000000000000001021516122265000271000ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/cases/publicpath-path-relative/webpack.config.js000066400000000000000000000006401516122265000304530ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, options: { publicPath: "/static/img/", }, }, "css-loader", ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/runtime/000077500000000000000000000000001516122265000220225ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/runtime/async.js000066400000000000000000000000741516122265000234760ustar00rootroot00000000000000// eslint-disable-next-line no-console console.log("HERE"); mini-css-extract-plugin-2.10.2/test/cases/runtime/expected/000077500000000000000000000000001516122265000236235ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/runtime/expected/main.a45a4571ab5cece12cf0.css000066400000000000000000000000351516122265000302750ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/runtime/expected/runtime~main.js000066400000000000000000000340611516122265000267130ustar00rootroot00000000000000/******/ (() => { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({}); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ /******/ /* webpack/runtime/chunk loaded */ /******/ (() => { /******/ var deferred = []; /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { /******/ if(chunkIds) { /******/ priority = priority || 0; /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; /******/ deferred[i] = [chunkIds, fn, priority]; /******/ return; /******/ } /******/ var notFulfilled = Infinity; /******/ for (var i = 0; i < deferred.length; i++) { /******/ var [chunkIds, fn, priority] = deferred[i]; /******/ var fulfilled = true; /******/ for (var j = 0; j < chunkIds.length; j++) { /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { /******/ chunkIds.splice(j--, 1); /******/ } else { /******/ fulfilled = false; /******/ if(priority < notFulfilled) notFulfilled = priority; /******/ } /******/ } /******/ if(fulfilled) { /******/ deferred.splice(i--, 1) /******/ var r = fn(); /******/ if (r !== undefined) result = r; /******/ } /******/ } /******/ return result; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/create fake namespace object */ /******/ (() => { /******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); /******/ var leafPrototypes; /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 16: return value when it's Promise-like /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = this(value); /******/ if(mode & 8) return value; /******/ if(typeof value === 'object' && value) { /******/ if((mode & 4) && value.__esModule) return value; /******/ if((mode & 16) && typeof value.then === 'function') return value; /******/ } /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ var def = {}; /******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; /******/ for(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) { /******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key]))); /******/ } /******/ def['default'] = () => (value); /******/ __webpack_require__.d(ns, def); /******/ return ns; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/ensure chunk */ /******/ (() => { /******/ __webpack_require__.f = {}; /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = (chunkId) => { /******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { /******/ __webpack_require__.f[key](chunkId, promises); /******/ return promises; /******/ }, [])); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get javascript chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.u = (chunkId) => { /******/ // return url for filenames based on template /******/ return "" + chunkId + ".js"; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/get mini-css chunk filename */ /******/ (() => { /******/ // This function allow to reference async chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template /******/ return undefined; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/load script */ /******/ (() => { /******/ var inProgress = {}; /******/ // data-webpack is not used as build has no uniqueName /******/ // loadScript function to load a script via script tag /******/ __webpack_require__.l = (url, done, key, chunkId) => { /******/ if(inProgress[url]) { inProgress[url].push(done); return; } /******/ var script, needAttach; /******/ if(key !== undefined) { /******/ var scripts = document.getElementsByTagName("script"); /******/ for(var i = 0; i < scripts.length; i++) { /******/ var s = scripts[i]; /******/ if(s.getAttribute("src") == url) { script = s; break; } /******/ } /******/ } /******/ if(!script) { /******/ needAttach = true; /******/ script = document.createElement('script'); /******/ /******/ script.charset = 'utf-8'; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ /******/ /******/ script.src = url; /******/ } /******/ inProgress[url] = [done]; /******/ var onScriptComplete = (prev, event) => { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var doneFns = inProgress[url]; /******/ delete inProgress[url]; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); /******/ } /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); /******/ needAttach && document.head.appendChild(script); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/publicPath */ /******/ (() => { /******/ var scriptUrl; /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; /******/ var document = __webpack_require__.g.document; /******/ if (!scriptUrl && document) { /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') /******/ scriptUrl = document.currentScript.src; /******/ if (!scriptUrl) { /******/ var scripts = document.getElementsByTagName("script"); /******/ if(scripts.length) { /******/ var i = scripts.length - 1; /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src; /******/ } /******/ } /******/ } /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); /******/ scriptUrl = scriptUrl.replace(/^blob:/, "").replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); /******/ __webpack_require__.p = scriptUrl; /******/ })(); /******/ /******/ /* webpack/runtime/jsonp chunk loading */ /******/ (() => { /******/ // no baseURI /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 1: 0 /******/ }; /******/ /******/ __webpack_require__.f.j = (chunkId, promises) => { /******/ // JSONP chunk loading for javascript /******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ if(1 != chunkId) { /******/ // setup Promise in chunk cache /******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ var loadingEnded = (event) => { /******/ if(__webpack_require__.o(installedChunks, chunkId)) { /******/ installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; /******/ if(installedChunkData) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ installedChunkData[1](error); /******/ } /******/ } /******/ }; /******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); /******/ } else installedChunks[chunkId] = 0; /******/ } /******/ } /******/ }; /******/ /******/ // no prefetching /******/ /******/ // no preloaded /******/ /******/ // no HMR /******/ /******/ // no HMR manifest /******/ /******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); /******/ /******/ // install a JSONP callback for chunk loading /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { /******/ var [chunkIds, moreModules, runtime] = data; /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0; /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { /******/ for(moduleId in moreModules) { /******/ if(__webpack_require__.o(moreModules, moduleId)) { /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(runtime) var result = runtime(__webpack_require__); /******/ } /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ installedChunks[chunkId][0](); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); /******/ })(); /******/ /************************************************************************/ /******/ /******/ /******/ })() ;mini-css-extract-plugin-2.10.2/test/cases/runtime/index.js000066400000000000000000000001331516122265000234640ustar00rootroot00000000000000// eslint-disable-next-line import/no-unresolved import "./style.css"; import("./async"); mini-css-extract-plugin-2.10.2/test/cases/runtime/style.css000066400000000000000000000000341516122265000236710ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/runtime/webpack.config.js000066400000000000000000000006501516122265000252410ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, output: { filename: `[name].js`, }, plugins: [ new Self({ filename: `[name].[contenthash].css`, chunkFilename: `[name].[contenthash].css`, }), ], optimization: { runtimeChunk: true, }, }; mini-css-extract-plugin-2.10.2/test/cases/serializingBigStrings/000077500000000000000000000000001516122265000246535ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/serializingBigStrings/webpack.config.js000066400000000000000000000013011516122265000300640ustar00rootroot00000000000000import Self from "../../../src/index"; module.exports = { cache: { type: "filesystem" }, entry: "bootstrap/dist/css/bootstrap.css", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", options: { sourceMap: true, }, }, ], }, ], }, plugins: [ new Self(), { apply(compiler) { compiler.hooks.infrastructureLog.tap("test", (origin, type, args) => { if (type === "warn" || type === "error") { throw new Error(`<${type}> [${origin}] ${args.toString()}`); } }); }, }, ], }; mini-css-extract-plugin-2.10.2/test/cases/shared-import/000077500000000000000000000000001516122265000231155ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/shared-import/a.css000066400000000000000000000000631516122265000240460ustar00rootroot00000000000000@import "./shared.css"; .shared { color: red; } mini-css-extract-plugin-2.10.2/test/cases/shared-import/b.css000066400000000000000000000000761516122265000240530ustar00rootroot00000000000000@import "./shared.css"; .shared { background-color: red; } mini-css-extract-plugin-2.10.2/test/cases/shared-import/c.css000066400000000000000000000000761516122265000240540ustar00rootroot00000000000000@import "./shared.css"; .shared { border: 1px solid red; } mini-css-extract-plugin-2.10.2/test/cases/shared-import/expected/000077500000000000000000000000001516122265000247165ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/shared-import/expected/1.css000066400000000000000000000000461516122265000255700ustar00rootroot00000000000000.shared { border: 1px solid red; } mini-css-extract-plugin-2.10.2/test/cases/shared-import/expected/main.css000066400000000000000000000002241516122265000263520ustar00rootroot00000000000000.shared { color: green; background-color: green; border: 1px solid green; } .shared { color: red; } .shared { background-color: red; } mini-css-extract-plugin-2.10.2/test/cases/shared-import/index.js000066400000000000000000000001551516122265000245630ustar00rootroot00000000000000import "./a.css"; import "./b.css"; /* eslint-disable-next-line no-unused-expressions */ import("./c.css"); mini-css-extract-plugin-2.10.2/test/cases/shared-import/shared.css000066400000000000000000000001221516122265000250700ustar00rootroot00000000000000.shared { color: green; background-color: green; border: 1px solid green; } mini-css-extract-plugin-2.10.2/test/cases/shared-import/webpack.config.js000066400000000000000000000004161516122265000263340ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/000077500000000000000000000000001516122265000262035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/a.css000066400000000000000000000000341516122265000271320ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/async-one.js000066400000000000000000000000441516122265000304330ustar00rootroot00000000000000import "./c.css"; import "./d.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/async-two.js000066400000000000000000000000441516122265000304630ustar00rootroot00000000000000import "./e.css"; import "./f.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/b.css000066400000000000000000000000361516122265000271350ustar00rootroot00000000000000body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/c.css000066400000000000000000000000351516122265000271350ustar00rootroot00000000000000body { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/d.css000066400000000000000000000000371516122265000271400ustar00rootroot00000000000000body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/e.css000066400000000000000000000000371516122265000271410ustar00rootroot00000000000000body { background: purple; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/expected/000077500000000000000000000000001516122265000300045ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/expected/async-one.css000066400000000000000000000000761516122265000324150ustar00rootroot00000000000000body { background: blue; } body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/expected/async-two.css000066400000000000000000000001001516122265000324310ustar00rootroot00000000000000body { background: purple; } body { background: indigo; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/expected/main.css000066400000000000000000000000741516122265000314430ustar00rootroot00000000000000body { background: red; } body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/f.css000066400000000000000000000000371516122265000271420ustar00rootroot00000000000000body { background: indigo; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/index.js000066400000000000000000000004051516122265000276470ustar00rootroot00000000000000import "./a.css"; import "./b.css"; /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: 'async-one' */ "./async-one"); /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: 'async-two' */ "./async-two"); mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css-fallback/webpack.config.js000066400000000000000000000013031516122265000314160ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { main: "./index.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ function Plugin() { this.hooks.compilation.tap("Test", (compilation) => { compilation.hooks.beforeChunkAssets.tap("Test", () => { for (const chunkGroup of compilation.chunkGroups) { // remove getModuleIndex2 to enforce using fallback // eslint-disable-next-line no-undefined chunkGroup.getModuleIndex2 = undefined; } }); }); }, new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/000077500000000000000000000000001516122265000244465ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/a.css000066400000000000000000000000341516122265000253750ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/async-one.js000066400000000000000000000000441516122265000266760ustar00rootroot00000000000000import "./c.css"; import "./d.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/async-two.js000066400000000000000000000000441516122265000267260ustar00rootroot00000000000000import "./e.css"; import "./f.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/b.css000066400000000000000000000000361516122265000254000ustar00rootroot00000000000000body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/c.css000066400000000000000000000000351516122265000254000ustar00rootroot00000000000000body { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/d.css000066400000000000000000000000371516122265000254030ustar00rootroot00000000000000body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/e.css000066400000000000000000000000371516122265000254040ustar00rootroot00000000000000body { background: purple; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/expected/000077500000000000000000000000001516122265000262475ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/expected/async-one.css000066400000000000000000000000761516122265000306600ustar00rootroot00000000000000body { background: blue; } body { background: yellow; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/expected/async-two.css000066400000000000000000000001001516122265000306740ustar00rootroot00000000000000body { background: purple; } body { background: indigo; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/expected/main.css000066400000000000000000000000741516122265000277060ustar00rootroot00000000000000body { background: red; } body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/f.css000066400000000000000000000000371516122265000254050ustar00rootroot00000000000000body { background: indigo; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/index.js000066400000000000000000000004051516122265000261120ustar00rootroot00000000000000import "./a.css"; import "./b.css"; /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: 'async-one' */ "./async-one"); /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: 'async-two' */ "./async-two"); mini-css-extract-plugin-2.10.2/test/cases/simple-async-load-css/webpack.config.js000066400000000000000000000004371516122265000276700ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { main: "./index.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/000077500000000000000000000000001516122265000250145ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/async.css000066400000000000000000000000371516122265000266430ustar00rootroot00000000000000.async { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/async.js000066400000000000000000000000311516122265000264610ustar00rootroot00000000000000import "./in-async.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/expected/000077500000000000000000000000001516122265000266155ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/expected/1.css000066400000000000000000000001051516122265000274630ustar00rootroot00000000000000.in-async { background: green; } /*# sourceMappingURL=1.css.map*/mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/expected/1.css.map000066400000000000000000000002771516122265000302510ustar00rootroot00000000000000{"version":3,"file":"1.css","mappings":"AAAA;EACE,iBAAiB;AACnB","sources":["webpack:///./in-async.css"],"sourcesContent":[".in-async {\n background: green;\n}\n"],"names":[],"sourceRoot":""}mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/expected/2.css000066400000000000000000000001011516122265000274600ustar00rootroot00000000000000.async { background: blue; } /*# sourceMappingURL=2.css.map*/mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/expected/2.css.map000066400000000000000000000002701516122265000302430ustar00rootroot00000000000000{"version":3,"file":"2.css","mappings":"AAAA;EACE,gBAAgB;AAClB","sources":["webpack:///./async.css"],"sourcesContent":[".async {\n background: blue;\n}\n"],"names":[],"sourceRoot":""}mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/expected/main.css000066400000000000000000000001011516122265000302430ustar00rootroot00000000000000body { background: red; } /*# sourceMappingURL=main.css.map*/mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/expected/main.css.map000066400000000000000000000002651516122265000310320ustar00rootroot00000000000000{"version":3,"file":"main.css","mappings":"AAAA;EACE,eAAe;AACjB","sources":["webpack:///./main.css"],"sourcesContent":["body {\n background: red;\n}\n"],"names":[],"sourceRoot":""}mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/in-async.css000066400000000000000000000000431516122265000272440ustar00rootroot00000000000000.in-async { background: green; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/index.js000066400000000000000000000002531516122265000264610ustar00rootroot00000000000000import "./main.css"; /* eslint-disable-next-line no-unused-expressions */ import("./async"); /* eslint-disable-next-line no-unused-expressions */ import("./async.css"); mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/main.css000066400000000000000000000000341516122265000264470ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-async-source-map/webpack.config.js000066400000000000000000000004471516122265000302370ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", devtool: "source-map", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-async/000077500000000000000000000000001516122265000227435ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-async/async.css000066400000000000000000000000371516122265000245720ustar00rootroot00000000000000.async { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-async/async.js000066400000000000000000000000311516122265000244100ustar00rootroot00000000000000import "./in-async.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-async/expected/000077500000000000000000000000001516122265000245445ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-async/expected/1.css000066400000000000000000000000441516122265000254140ustar00rootroot00000000000000.in-async { background: green; } mini-css-extract-plugin-2.10.2/test/cases/simple-async/expected/2.css000066400000000000000000000000401516122265000254110ustar00rootroot00000000000000.async { background: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-async/expected/main.css000066400000000000000000000000351516122265000262000ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-async/in-async.css000066400000000000000000000000431516122265000251730ustar00rootroot00000000000000.in-async { background: green; } mini-css-extract-plugin-2.10.2/test/cases/simple-async/index.js000066400000000000000000000002531516122265000244100ustar00rootroot00000000000000import "./main.css"; /* eslint-disable-next-line no-unused-expressions */ import("./async"); /* eslint-disable-next-line no-unused-expressions */ import("./async.css"); mini-css-extract-plugin-2.10.2/test/cases/simple-async/main.css000066400000000000000000000000341516122265000243760ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-async/webpack.config.js000066400000000000000000000004161516122265000261620ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-commonjs-syntax/000077500000000000000000000000001516122265000247775ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-commonjs-syntax/expected/000077500000000000000000000000001516122265000266005ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-commonjs-syntax/expected/main.css000066400000000000000000000000351516122265000302340ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-commonjs-syntax/index.js000066400000000000000000000000261516122265000264420ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-commonjs-syntax/style.css000066400000000000000000000000341516122265000266460ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-commonjs-syntax/webpack.config.js000066400000000000000000000007141516122265000302170ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", // TODO Uncomment after `css-loader` release the `esModule` option // options: { esModule: false }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-global/000077500000000000000000000000001516122265000262445ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-global/expected/000077500000000000000000000000001516122265000300455ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-global/expected/main.css000066400000000000000000000001261516122265000315020ustar00rootroot00000000000000.a { background: red; } .foo__style__b { color: green; } .c { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-global/index.js000066400000000000000000000000261516122265000277070ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-global/style.css000066400000000000000000000001321516122265000301120ustar00rootroot00000000000000.a { background: red; } :local(.b) { color: green; } :global(.c) { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-global/webpack.config.js000066400000000000000000000007701516122265000314660ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", options: { modules: { mode: "global", localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local-output-module/000077500000000000000000000000001516122265000307175ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local-output-module/expected/000077500000000000000000000000001516122265000325205ustar00rootroot00000000000000main.css000066400000000000000000000001421516122265000340740ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local-output-module/expected.foo__style__a { background: red; } .foo__style__b { color: green; } .c { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local-output-module/index.js000066400000000000000000000000261516122265000323620ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local-output-module/style.css000066400000000000000000000001321516122265000325650ustar00rootroot00000000000000.a { background: red; } :local(.b) { color: green; } :global(.c) { color: blue; } webpack.config.js000066400000000000000000000011101516122265000340470ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local-output-moduleimport Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", options: { modules: { mode: "local", localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, output: { module: true, }, experiments: { outputModule: true, }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local/000077500000000000000000000000001516122265000260765ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local/expected/000077500000000000000000000000001516122265000276775ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local/expected/main.css000066400000000000000000000001421516122265000313320ustar00rootroot00000000000000.foo__style__a { background: red; } .foo__style__b { color: green; } .c { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local/index.js000066400000000000000000000000261516122265000275410ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local/style.css000066400000000000000000000001321516122265000277440ustar00rootroot00000000000000.a { background: red; } :local(.b) { color: green; } :global(.c) { color: blue; } mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-local/webpack.config.js000066400000000000000000000007671516122265000313260ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", options: { modules: { mode: "local", localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-pure/000077500000000000000000000000001516122265000257575ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-pure/expected/000077500000000000000000000000001516122265000275605ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-pure/expected/main.css000066400000000000000000000000471516122265000312170ustar00rootroot00000000000000.foo__style__a { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-pure/index.js000066400000000000000000000000261516122265000274220ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-pure/style.css000066400000000000000000000000321516122265000276240ustar00rootroot00000000000000.a { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-css-modules-mode-pure/webpack.config.js000066400000000000000000000007661516122265000312060ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", options: { modules: { mode: "pure", localIdentName: "foo__[name]__[local]", }, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-es-module-syntax/000077500000000000000000000000001516122265000250445ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-es-module-syntax/expected/000077500000000000000000000000001516122265000266455ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-es-module-syntax/expected/main.css000066400000000000000000000000351516122265000303010ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-es-module-syntax/index.js000066400000000000000000000000261516122265000265070ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-es-module-syntax/style.css000066400000000000000000000000341516122265000267130ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-es-module-syntax/webpack.config.js000066400000000000000000000007131516122265000302630ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [ Self.loader, { loader: "css-loader", // TODO Uncomment after `css-loader` release the `esModule` option // options: { esModule: true }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-multiple/000077500000000000000000000000001516122265000234615ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-multiple/a.css000066400000000000000000000000341516122265000244100ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-multiple/b.css000066400000000000000000000000361516122265000244130ustar00rootroot00000000000000body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/simple-multiple/expected/000077500000000000000000000000001516122265000252625ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-multiple/expected/main.css000066400000000000000000000000741516122265000267210ustar00rootroot00000000000000body { background: red; } body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/simple-multiple/index.js000066400000000000000000000000441516122265000251240ustar00rootroot00000000000000import "./a.css"; import "./b.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-multiple/webpack.config.js000066400000000000000000000004161516122265000267000ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple-with-experiments-layers/000077500000000000000000000000001516122265000264375ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-with-experiments-layers/expected/000077500000000000000000000000001516122265000302405ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple-with-experiments-layers/expected/main.css000066400000000000000000000000351516122265000316740ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-with-experiments-layers/index.js000066400000000000000000000000261516122265000301020ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/simple-with-experiments-layers/style.css000066400000000000000000000000341516122265000303060ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple-with-experiments-layers/webpack.config.js000066400000000000000000000004661516122265000316630ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", experiments: { layers: true, }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/simple/000077500000000000000000000000001516122265000216305ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple/expected/000077500000000000000000000000001516122265000234315ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/simple/expected/main.css000066400000000000000000000000351516122265000250650ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple/index.js000066400000000000000000000000261516122265000232730ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/simple/style.css000066400000000000000000000000341516122265000234770ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/simple/webpack.config.js000066400000000000000000000004161516122265000250470ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/source-map/000077500000000000000000000000001516122265000224125ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/source-map/expected/000077500000000000000000000000001516122265000242135ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/source-map/expected/main.css000066400000000000000000000001011516122265000256410ustar00rootroot00000000000000body { background: red; } /*# sourceMappingURL=main.css.map*/mini-css-extract-plugin-2.10.2/test/cases/source-map/index.js000066400000000000000000000000261516122265000240550ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/source-map/style.css000066400000000000000000000000341516122265000242610ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/source-map/webpack.config.js000066400000000000000000000007211516122265000256300ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", devtool: "source-map", module: { rules: [ { test: /\.css$/, use: [ { loader: Self.loader, }, { loader: "css-loader", options: { sourceMap: true, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-all/000077500000000000000000000000001516122265000235315ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-all/a.js000066400000000000000000000000261516122265000243050ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-all/b.js000066400000000000000000000000261516122265000243060ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-all/expected/000077500000000000000000000000001516122265000253325ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-all/expected/2.css000066400000000000000000000000351516122265000262030ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-all/expected/2.js000066400000000000000000000000101516122265000260200ustar00rootroot00000000000000MISSING mini-css-extract-plugin-2.10.2/test/cases/split-chunks-all/index.js000066400000000000000000000000261516122265000251740ustar00rootroot00000000000000import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-all/style.css000066400000000000000000000000341516122265000254000ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-all/webpack.config.js000066400000000000000000000006751516122265000267570ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { a: "./a.js", b: "./b.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { styles: { type: "css/mini-extract", chunks: "all", enforce: true, }, }, }, }, plugins: [new Self()], }; split-chunks-based-on-entry-with-common-chunk-and-inside-dir/000077500000000000000000000000001516122265000336635ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/casesa.css000066400000000000000000000000401516122265000346070ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir.class_a { background: red; } a.js000066400000000000000000000002071516122265000344400ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dirimport "./a.css"; import(/* webpackChunkName: "common" */ "./common"); import(/* webpackChunkName: "comp1" */ "./components/comp1"); b.css000066400000000000000000000000401516122265000346100ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir.class_b { background: red; } b.js000066400000000000000000000002071516122265000344410ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dirimport "./b.css"; import(/* webpackChunkName: "common" */ "./common"); import(/* webpackChunkName: "comp2" */ "./components/comp2"); common.css000066400000000000000000000000321516122265000356600ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir.common { color: red; } common.js000066400000000000000000000000271516122265000355100ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dirimport "./common.css"; components/000077500000000000000000000000001516122265000360505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dircomp1.css000066400000000000000000000000451516122265000376000ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/componentsbody { background-color: yellow; } comp1.js000066400000000000000000000001151516122265000374220ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/componentsimport "./comp1.css"; import(/* webpackChunkName: "common" */ "../common"); comp2.css000066400000000000000000000000441516122265000376000ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/componentsbody { background-color: green; } comp2.js000066400000000000000000000001151516122265000374230ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/componentsimport "./comp2.css"; import(/* webpackChunkName: "common" */ "../common"); expected/000077500000000000000000000000001516122265000354645ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dira/000077500000000000000000000000001516122265000357045ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expectedindex.css000066400000000000000000000000411516122265000375200ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expected/a.class_a { background: red; } b/000077500000000000000000000000001516122265000357055ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expectedindex.css000066400000000000000000000000411516122265000375210ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expected/b.class_b { background: red; } common/000077500000000000000000000000001516122265000367545ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expectedindex.css000066400000000000000000000000331516122265000405710ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expected/common.common { color: red; } comp1/000077500000000000000000000000001516122265000365035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expectedindex.css000066400000000000000000000000461516122265000403240ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expected/comp1body { background-color: yellow; } comp2/000077500000000000000000000000001516122265000365045ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expectedindex.css000066400000000000000000000000451516122265000403240ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dir/expected/comp2body { background-color: green; } webpack.config.js000066400000000000000000000013621516122265000371030ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk-and-inside-dirimport Self from "../../../src"; module.exports = { entry: { a: "./a.js", b: "./b.js", }, output: { filename: "[name]/index.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { aStyles: { type: "css/mini-extract", name: "a", chunks: (chunk) => chunk.name === "a", enforce: true, }, bStyles: { type: "css/mini-extract", name: "b", chunks: (chunk) => chunk.name === "b", enforce: true, }, }, }, }, plugins: [ new Self({ filename: "[name]/index.css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/000077500000000000000000000000001516122265000311555ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/a.css000066400000000000000000000000401516122265000321010ustar00rootroot00000000000000.class_a { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/a.js000066400000000000000000000002071516122265000317320ustar00rootroot00000000000000import "./a.css"; import(/* webpackChunkName: "common" */ "./common"); import(/* webpackChunkName: "comp1" */ "./components/comp1"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/b.css000066400000000000000000000000401516122265000321020ustar00rootroot00000000000000.class_b { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/b.js000066400000000000000000000002071516122265000317330ustar00rootroot00000000000000import "./b.css"; import(/* webpackChunkName: "common" */ "./common"); import(/* webpackChunkName: "comp2" */ "./components/comp2"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/common.css000066400000000000000000000000321516122265000331520ustar00rootroot00000000000000.common { color: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/common.js000066400000000000000000000000271516122265000330020ustar00rootroot00000000000000import "./common.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/components/000077500000000000000000000000001516122265000333425ustar00rootroot00000000000000comp1.css000066400000000000000000000000451516122265000350130ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/componentsbody { background-color: yellow; } comp1.js000066400000000000000000000001151516122265000346350ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/componentsimport "./comp1.css"; import(/* webpackChunkName: "common" */ "../common"); comp2.css000066400000000000000000000000441516122265000350130ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/componentsbody { background-color: green; } comp2.js000066400000000000000000000001151516122265000346360ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/componentsimport "./comp2.css"; import(/* webpackChunkName: "common" */ "../common"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/expected/000077500000000000000000000000001516122265000327565ustar00rootroot00000000000000common.css000066400000000000000000000000331516122265000346750ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/expected.common { color: red; } comp1.css000066400000000000000000000000461516122265000344300ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/expectedbody { background-color: yellow; } comp2.css000066400000000000000000000000451516122265000344300ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/expectedbody { background-color: green; } styles_a.css000066400000000000000000000000411516122265000352270ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/expected.class_a { background: red; } styles_b.css000066400000000000000000000000411516122265000352300ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunk/expected.class_b { background: red; } webpack.config.js000066400000000000000000000012321516122265000343120ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-chunkimport Self from "../../../src"; module.exports = { entry: { a: "./a.js", b: "./b.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { aStyles: { type: "css/mini-extract", name: "styles_a", chunks: (chunk) => chunk.name === "a", enforce: true, }, bStyles: { type: "css/mini-extract", name: "styles_b", chunks: (chunk) => chunk.name === "b", enforce: true, }, }, }, }, plugins: [new Self()], }; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/000077500000000000000000000000001516122265000324575ustar00rootroot00000000000000a.css000066400000000000000000000000401516122265000333240ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk.class_a { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/a.js000066400000000000000000000001501516122265000332310ustar00rootroot00000000000000import "./common.css"; import "./a.css"; import(/* webpackChunkName: "comp1" */ "./components/comp1"); b.css000066400000000000000000000000401516122265000333250ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk.class_b { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/b.js000066400000000000000000000001501516122265000332320ustar00rootroot00000000000000import "./common.css"; import "./b.css"; import(/* webpackChunkName: "comp2" */ "./components/comp2"); common.css000066400000000000000000000000371516122265000344020ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk.common { background: red; } components/000077500000000000000000000000001516122265000345655ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunkcomp1.css000066400000000000000000000000451516122265000363150ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/componentsbody { background-color: yellow; } comp1.js000066400000000000000000000000261516122265000361400ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/componentsimport "./comp1.css"; comp2.css000066400000000000000000000000441516122265000363150ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/componentsbody { background-color: green; } comp2.js000066400000000000000000000000261516122265000361410ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/componentsimport "./comp2.css"; expected/000077500000000000000000000000001516122265000342015ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunkcomp1.css000066400000000000000000000000461516122265000357320ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/expectedbody { background-color: yellow; } comp2.css000066400000000000000000000000451516122265000357320ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/expectedbody { background-color: green; } styles_a.css000066400000000000000000000001011516122265000365260ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/expected.common { background: red; } .class_a { background: red; } styles_b.css000066400000000000000000000001011516122265000365270ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunk/expected.common { background: red; } .class_b { background: red; } webpack.config.js000066400000000000000000000012321516122265000356140ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry-with-common-in-each-chunkimport Self from "../../../src"; module.exports = { entry: { a: "./a.js", b: "./b.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { aStyles: { type: "css/mini-extract", name: "styles_a", chunks: (chunk) => chunk.name === "a", enforce: true, }, bStyles: { type: "css/mini-extract", name: "styles_b", chunks: (chunk) => chunk.name === "b", enforce: true, }, }, }, }, plugins: [new Self()], }; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/000077500000000000000000000000001516122265000256105ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/a.css000066400000000000000000000000401516122265000265340ustar00rootroot00000000000000.class_a { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/a.js000066400000000000000000000001211516122265000263600ustar00rootroot00000000000000import "./a.css"; import(/* webpackChunkName: "comp1" */ "./components/comp1"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/b.css000066400000000000000000000000401516122265000265350ustar00rootroot00000000000000.class_b { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/b.js000066400000000000000000000001211516122265000263610ustar00rootroot00000000000000import "./b.css"; import(/* webpackChunkName: "comp2" */ "./components/comp2"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/components/000077500000000000000000000000001516122265000277755ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/components/comp1.css000066400000000000000000000000451516122265000315250ustar00rootroot00000000000000body { background-color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/components/comp1.js000066400000000000000000000000261516122265000313500ustar00rootroot00000000000000import "./comp1.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/components/comp2.css000066400000000000000000000000441516122265000315250ustar00rootroot00000000000000body { background-color: green; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/components/comp2.js000066400000000000000000000000261516122265000313510ustar00rootroot00000000000000import "./comp2.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/expected/000077500000000000000000000000001516122265000274115ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/expected/comp1.css000066400000000000000000000000461516122265000311420ustar00rootroot00000000000000body { background-color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/expected/comp2.css000066400000000000000000000000451516122265000311420ustar00rootroot00000000000000body { background-color: green; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/expected/styles_a.css000066400000000000000000000000411516122265000317410ustar00rootroot00000000000000.class_a { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/expected/styles_b.css000066400000000000000000000000411516122265000317420ustar00rootroot00000000000000.class_b { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-based-on-entry/webpack.config.js000066400000000000000000000012321516122265000310240ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { a: "./a.js", b: "./b.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { aStyles: { type: "css/mini-extract", name: "styles_a", chunks: (chunk) => chunk.name === "a", enforce: true, }, bStyles: { type: "css/mini-extract", name: "styles_b", chunks: (chunk) => chunk.name === "b", enforce: true, }, }, }, }, plugins: [new Self()], }; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/000077500000000000000000000000001516122265000246705ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/expected/000077500000000000000000000000001516122265000264715ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/expected/bundle.css000066400000000000000000000001701516122265000304520ustar00rootroot00000000000000/* This could be bootstrap.css */ body { background: green; } body { background: red; } .async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/index.js000066400000000000000000000003301516122265000263310ustar00rootroot00000000000000// eslint-disable-next-line import/no-extraneous-dependencies import "bootstrap/bootstrap.css"; import "./style.css"; // eslint-disable-next-line import/first import "package/index"; import("other-css/other.css"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/node_modules/000077500000000000000000000000001516122265000273455ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/node_modules/bootstrap/000077500000000000000000000000001516122265000313625ustar00rootroot00000000000000bootstrap.css000066400000000000000000000001001516122265000340210ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/node_modules/bootstrap/* This could be bootstrap.css */ body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/node_modules/other-css/000077500000000000000000000000001516122265000312545ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/node_modules/other-css/other.css000066400000000000000000000000311516122265000331010ustar00rootroot00000000000000.async { color: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/node_modules/package/000077500000000000000000000000001516122265000307405ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/node_modules/package/index.js000066400000000000000000000000251516122265000324020ustar00rootroot00000000000000console.log("HERE"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/style.css000066400000000000000000000000341516122265000265370ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-no-vendor/webpack.config.js000066400000000000000000000013331516122265000301060ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { chunks: "all", cacheGroups: { default: false, vendors: false, vendor: { test: /[\\/]node_modules[\\/]/, name: "vendor", chunks: "all", enforce: true, }, styles: { name: "bundle", type: "css/mini-extract", chunks: "all", priority: 100, enforce: true, }, }, }, }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/000077500000000000000000000000001516122265000261635ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/a.css000066400000000000000000000000401516122265000271070ustar00rootroot00000000000000.class_a { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/a.js000066400000000000000000000001211516122265000267330ustar00rootroot00000000000000import "./a.css"; import(/* webpackChunkName: "comp1" */ "./components/comp1"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/b.css000066400000000000000000000000401516122265000271100ustar00rootroot00000000000000.class_b { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/b.js000066400000000000000000000001211516122265000267340ustar00rootroot00000000000000import "./b.css"; import(/* webpackChunkName: "comp2" */ "./components/comp2"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/components/000077500000000000000000000000001516122265000303505ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/components/comp1.css000066400000000000000000000000451516122265000321000ustar00rootroot00000000000000body { background-color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/components/comp1.js000066400000000000000000000000261516122265000317230ustar00rootroot00000000000000import "./comp1.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/components/comp2.css000066400000000000000000000000441516122265000321000ustar00rootroot00000000000000body { background-color: green; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/components/comp2.js000066400000000000000000000000261516122265000317240ustar00rootroot00000000000000import "./comp2.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/expected/000077500000000000000000000000001516122265000277645ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/expected/styles_a.css000066400000000000000000000001071516122265000323170ustar00rootroot00000000000000.class_a { background: red; } body { background-color: yellow; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/expected/styles_b.css000066400000000000000000000001061516122265000323170ustar00rootroot00000000000000.class_b { background: red; } body { background-color: green; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-recursiveIssuer/webpack.config.js000066400000000000000000000020731516122265000314030ustar00rootroot00000000000000import Self from "../../../src"; function recursiveIssuer(m, c) { const issuer = c.moduleGraph.getIssuer(m); if (issuer) { return recursiveIssuer(issuer, c); } const chunks = c.chunkGraph.getModuleChunks(m); for (const chunk of chunks) { return chunk.name; } return false; } module.exports = { entry: { a: "./a.js", b: "./b.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { aStyles: { name: "styles_a", test: (m, c, entry = "a") => m.constructor.name === "CssModule" && recursiveIssuer(m, c) === entry, chunks: "all", enforce: true, }, bStyles: { name: "styles_b", test: (m, c, entry = "b") => m.constructor.name === "CssModule" && recursiveIssuer(m, c) === entry, chunks: "all", enforce: true, }, }, }, }, plugins: [new Self()], }; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/000077500000000000000000000000001516122265000242425ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/a.css000066400000000000000000000000311516122265000251660ustar00rootroot00000000000000body { content: "a"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/b.css000066400000000000000000000000311516122265000251670ustar00rootroot00000000000000body { content: "b"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/c.css000066400000000000000000000000311516122265000251700ustar00rootroot00000000000000body { content: "c"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/chunk1.js000066400000000000000000000000441516122265000257670ustar00rootroot00000000000000import "./c.css"; import "./d.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/chunk2.js000066400000000000000000000000441516122265000257700ustar00rootroot00000000000000import "./d.css"; import "./h.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/d.css000066400000000000000000000000311516122265000251710ustar00rootroot00000000000000body { content: "d"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/e1.css000066400000000000000000000000321516122265000252540ustar00rootroot00000000000000body { content: "e1"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/e2.css000066400000000000000000000000321516122265000252550ustar00rootroot00000000000000body { content: "e2"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/entry1.js000066400000000000000000000003351516122265000260230ustar00rootroot00000000000000import "./a.css"; import "./e1.css"; import "./e2.css"; import "./f.css"; /* eslint-disable-next-line no-unused-expressions */ import("./chunk1"); /* eslint-disable-next-line no-unused-expressions */ import("./chunk2"); mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/entry2.js000066400000000000000000000001341516122265000260210ustar00rootroot00000000000000import "./b.css"; import "./e2.css"; import "./e1.css"; import "./g.css"; import "./h.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/expected/000077500000000000000000000000001516122265000260435ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/expected/styles.css000066400000000000000000000003541516122265000301020ustar00rootroot00000000000000body { content: "a"; } body { content: "b"; } body { content: "c"; } body { content: "d"; } body { content: "e1"; } body { content: "e2"; } body { content: "f"; } body { content: "g"; } body { content: "h"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/f.css000066400000000000000000000000311516122265000251730ustar00rootroot00000000000000body { content: "f"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/g.css000066400000000000000000000000311516122265000251740ustar00rootroot00000000000000body { content: "g"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/h.css000066400000000000000000000000311516122265000251750ustar00rootroot00000000000000body { content: "h"; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/style.css000066400000000000000000000000341516122265000261110ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks-single/webpack.config.js000066400000000000000000000010171516122265000274570ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: { entry1: "./entry1.js", entry2: "./entry2.js", }, module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { cacheGroups: { styles: { name: "styles", chunks: "all", test: /\.css$/, enforce: true, }, }, }, }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/cases/split-chunks/000077500000000000000000000000001516122265000227635ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks/expected/000077500000000000000000000000001516122265000245645ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks/expected/main.css000066400000000000000000000000351516122265000262200ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks/expected/vendors.css000066400000000000000000000001011516122265000267460ustar00rootroot00000000000000/* This could be bootstrap.css */ body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks/index.js000066400000000000000000000001541516122265000244300ustar00rootroot00000000000000// eslint-disable-next-line import/no-extraneous-dependencies import "bootstrap.css"; import "./style.css"; mini-css-extract-plugin-2.10.2/test/cases/split-chunks/node_modules/000077500000000000000000000000001516122265000254405ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/cases/split-chunks/node_modules/bootstrap.css000066400000000000000000000001001516122265000301560ustar00rootroot00000000000000/* This could be bootstrap.css */ body { background: green; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks/style.css000066400000000000000000000000341516122265000246320ustar00rootroot00000000000000body { background: red; } mini-css-extract-plugin-2.10.2/test/cases/split-chunks/webpack.config.js000066400000000000000000000007441516122265000262060ustar00rootroot00000000000000import Self from "../../../src"; module.exports = { entry: "./index.js", module: { rules: [ { test: /\.css$/, use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { chunks: "all", cacheGroups: { vendors: { name: "vendors", test: /node_modules/, enforce: true, }, }, }, }, plugins: [ new Self({ filename: "[name].css", }), ], }; mini-css-extract-plugin-2.10.2/test/emit-option.test.js000066400000000000000000000216221516122265000230240ustar00rootroot00000000000000/* eslint-env browser */ import fs from "fs"; import path from "path"; import del from "del"; import webpack from "webpack"; import MiniCssExtractPlugin from "../src"; import { compile, getCompiler, getErrors, getWarnings, runInJsDom, } from "./helpers/index"; describe("emit option", () => { it("should work without emit option", async () => { const compiler = getCompiler( "style-url.js", {}, { mode: "none", output: { path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( "assets", ); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it('should work when emit option is "true"', async () => { const compiler = getCompiler( "style-url.js", { emit: true, }, { mode: "none", output: { path: path.resolve(__dirname, "../outputs"), }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( "assets", ); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it('should work when emit option is "false"', async () => { const compiler = getCompiler( "style-url.js", { emit: false, }, { mode: "none", output: { path: path.resolve(__dirname, "../outputs"), }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( "assets", ); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it('should work with locals when emit option is "false"', async () => { const compiler = getCompiler( "locals.js", {}, { output: { path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, module: { rules: [ { test: /\.css$/, use: [ { loader: MiniCssExtractPlugin.loader, options: { emit: false, }, }, { loader: "css-loader", options: { modules: true, }, }, ], }, ], }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it('should work with locals and invalidate cache when emit option is "false"', async () => { const modifyAsset = path.resolve(__dirname, "fixtures", "locals/index.css"); const modifyAssetContent = fs.readFileSync(modifyAsset); class AssetsModifyPlugin { constructor(options = {}) { this.options = options; } apply(compiler) { compiler.hooks.emit.tapAsync( "AssetsModifyPlugin", (compilation, callback) => { const newContent = modifyAssetContent .toString() .replace(/foo/i, "foo-bar"); fs.writeFileSync(this.options.file, newContent); callback(); }, ); } } const outputPath = path.resolve(__dirname, "./js/cache-memory-1"); const webpackConfig = { mode: "development", context: path.resolve(__dirname, "./fixtures"), cache: { type: "memory", }, entry: "./locals.js", output: { path: outputPath, }, module: { rules: [ { test: /\.css$/, use: [ { loader: MiniCssExtractPlugin.loader, options: { emit: false, }, }, { loader: "css-loader", options: { modules: true, }, }, ], }, ], }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), new AssetsModifyPlugin({ file: modifyAsset, }), ], }; await del([outputPath]); const compiler1 = webpack(webpackConfig); await new Promise((resolve, reject) => { compiler1.run((error, stats) => { if (error) { reject(error); return; } compiler1.close(() => { expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( "assets", ); expect([...stats.compilation.emittedAssets].sort()).toMatchSnapshot( "emittedAssets", ); runInJsDom("main.js", compiler1, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); }); }); const compiler2 = webpack(webpackConfig); await new Promise((resolve, reject) => { compiler2.run((error, stats) => { if (error) { reject(error); return; } compiler2.close(() => { expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( "assets", ); expect([...stats.compilation.emittedAssets].sort()).toMatchSnapshot( "emittedAssets", ); runInJsDom("main.js", compiler2, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); }); }); fs.writeFileSync(modifyAsset, modifyAssetContent); }); it('should work with the "memory" cache and disabled "emit" option', async () => { const outputPath = path.resolve(__dirname, "./js/cache-memory-2"); const webpackConfig = { mode: "development", context: path.resolve(__dirname, "fixtures"), cache: { type: "memory", }, output: { path: outputPath, }, entry: "./style-url.js", module: { rules: [ { test: /\.css$/, use: [ { loader: MiniCssExtractPlugin.loader, options: { emit: false, }, }, "css-loader", ], }, { test: /\.svg$/, type: "asset/resource", generator: { filename: "static/[name][ext][query]", }, }, ], }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }; await del([outputPath]); const compiler = webpack(webpackConfig); await new Promise((resolve, reject) => { compiler.run((error, stats) => { if (error) { reject(error); return; } expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( "assets", ); expect([...stats.compilation.emittedAssets].sort()).toMatchSnapshot( "emittedAssets", ); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); }); await new Promise((resolve, reject) => { compiler.run((error, stats) => { if (error) { reject(error); return; } compiler.close(() => { expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( "assets", ); expect([...stats.compilation.emittedAssets].sort()).toMatchSnapshot( "emittedAssets", ); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); }); }); }); }); mini-css-extract-plugin-2.10.2/test/enforce-esm.test.js000066400000000000000000000041051516122265000227600ustar00rootroot00000000000000import { compile, getCompiler, source } from "./helpers"; describe("ES modules", () => { it("should enforce esm for empty module without options.esModule", async () => { expect.assertions(3); const compiler = getCompiler( "./esm.js", {}, { mode: "production", optimization: { minimize: false }, }, ); const stats = await compile(compiler); expect(stats.hasErrors()).toBe(false); const { modules } = stats.toJson({ all: false, modules: true }); expect( modules.filter((m) => m.moduleType !== "runtime" && !m.orphan), ).toHaveLength(2); expect(source("./simple.css", stats)).toMatchInlineSnapshot(` "// extracted by mini-css-extract-plugin export {};" `); }); it("should enforce esm for empty module with options.esModule", async () => { expect.assertions(3); const compiler = getCompiler( "./esm.js", { esModule: true }, { mode: "production", optimization: { minimize: false }, }, ); const stats = await compile(compiler); expect(stats.hasErrors()).toBe(false); const { modules } = stats.toJson({ all: false, modules: true }); expect( modules.filter((m) => m.moduleType !== "runtime" && !m.orphan), ).toHaveLength(2); expect(source("./simple.css", stats)).toMatchInlineSnapshot(` "// extracted by mini-css-extract-plugin export {};" `); }); it('should keep empty module when options.esModule is equal "false"', async () => { expect.assertions(3); const compiler = getCompiler( "./esm.js", { esModule: false }, { mode: "production", optimization: { minimize: false }, }, ); const stats = await compile(compiler); expect(stats.hasErrors()).toBe(false); const { modules } = stats.toJson({ all: false, modules: true }); expect( modules.filter((m) => m.moduleType !== "runtime" && !m.orphan), ).toHaveLength(2); expect(source("./simple.css", stats)).toMatchInlineSnapshot( '"// extracted by mini-css-extract-plugin"', ); }); }); mini-css-extract-plugin-2.10.2/test/fixtures/000077500000000000000000000000001516122265000211125ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/fixtures/attributes.js000066400000000000000000000001561516122265000236400ustar00rootroot00000000000000/* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "simple" */ './simple.css'); mini-css-extract-plugin-2.10.2/test/fixtures/esm.js000066400000000000000000000000271516122265000222330ustar00rootroot00000000000000import "./simple.css"; mini-css-extract-plugin-2.10.2/test/fixtures/insert.js000066400000000000000000000001561516122265000227560ustar00rootroot00000000000000/* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "simple" */ './simple.css'); mini-css-extract-plugin-2.10.2/test/fixtures/json/000077500000000000000000000000001516122265000220635ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/fixtures/json/data-urls.json000066400000000000000000000044611516122265000246570ustar00rootroot00000000000000{ "main": [ ["example.com", "example.com"], ["example.com ", "example.com"], ["example.com.", "example.com"], ["http://example.com", "http://example.com"], ["http://example.com:80", "http://example.com:80"], ["https://example.com:443", "https://example.com:443"], ["//example.com", "//example.com"], ["//example.com:80/", "//example.com:80/"], ["ftp://example.com:21", "ftp://example.com:21"], ["http://example.com:5000", "http://example.com:5000"], ["http://example.com/foo/", "http://example.com/foo/"], ["https://foo.com/https://bar.com", "https://foo.com/https://bar.com"], ["https://foo.com/https://bar.com/foo//bar", "https://foo.com/https://bar.com/foo//bar"], ["https://foo.com/http://bar.com", "https://foo.com/http://bar.com"], ["https://foo.com/http://bar.com/foo//bar", "https://foo.com/http://bar.com/foo//bar"], ["https://foo.com/%FAIL%/07/94/ca/55.jpg", "https://foo.com/%FAIL%/07/94/ca/55.jpg"], ["http://example.com/?", "http://example.com/?"], ["http://example.com/?b=bar&a=foo", "http://example.com/?b=bar&a=foo"], ["http://example.com/?b=bar//&a=foo", "http://example.com/?b=bar//&a=foo"], ["//example.com/", "//example.com/"], ["http://example.com/foo#bar", "http://example.com/foo#bar"], ["http://example.com/foo/#bar", "http://example.com/foo/#bar"], ["http://example.com/foo/bar/../baz", "http://example.com/foo/baz"], ["http://example.com/foo/bar/./baz", "http://example.com/foo/bar/baz"], ["http://example.com/foo/../bar/./baz", "http://example.com/bar/baz"], ["http://example.com/foo/../bar/../baz", "http://example.com/baz"], ["http://example.com/foo/../bar/../baz/", "http://example.com/baz/"], ["http://example.com/foo///bar//baz/", "http://example.com/foo///bar//baz/"], ["sindre://www.sorhus.com/", "sindre://www.sorhus.com/"], ["sindre://www.sorhus.com/foo/bar", "sindre://www.sorhus.com/foo/bar"], ["www.example.com", "www.example.com"], ["sindre://www.sorhus.com", "sindre://www.sorhus.com"], ["http://www.sorhus.xx--bck1b9a5dre4c", "http://www.sorhus.xx--bck1b9a5dre4c"], ["http://www.www.example.com", "http://www.www.example.com"], ["https://user:password@example.org/", "https://user:password@example.org/"], ["https://EXAMPLE.com/./x", "https://example.com/x"] ] } mini-css-extract-plugin-2.10.2/test/fixtures/locals.js000066400000000000000000000001511516122265000227220ustar00rootroot00000000000000import './locals/index.css'; import html from './locals/template.js'; document.body.textContent = html; mini-css-extract-plugin-2.10.2/test/fixtures/locals/000077500000000000000000000000001516122265000223675ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/fixtures/locals/index.css000066400000000000000000000001121516122265000242020ustar00rootroot00000000000000.foo { color: red; } .bar { color: coral; } .baz { color: blue; } mini-css-extract-plugin-2.10.2/test/fixtures/locals/template.js000066400000000000000000000002121516122265000245330ustar00rootroot00000000000000import css from './index.css'; let html = '\n'; for (const key in css) { html += `css.${key}: ${css[key]}\n`; } export default html; mini-css-extract-plugin-2.10.2/test/fixtures/no-nonce.js000066400000000000000000000001561516122265000231660ustar00rootroot00000000000000/* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "simple" */ './simple.css'); mini-css-extract-plugin-2.10.2/test/fixtures/nonce.js000066400000000000000000000002201516122265000225440ustar00rootroot00000000000000__webpack_nonce__ = 'THE_NONCE'; /* eslint-disable-next-line no-unused-expressions */ import(/* webpackChunkName: "simple" */ './simple.css'); mini-css-extract-plugin-2.10.2/test/fixtures/react.svg000066400000000000000000000045211516122265000227330ustar00rootroot00000000000000logo-on-dark-bgmini-css-extract-plugin-2.10.2/test/fixtures/simple.css000066400000000000000000000000271516122265000231140ustar00rootroot00000000000000.foo { color: red; } mini-css-extract-plugin-2.10.2/test/fixtures/simple.js000066400000000000000000000000551516122265000227410ustar00rootroot00000000000000import './simple.css'; console.log('HERE'); mini-css-extract-plugin-2.10.2/test/fixtures/style-url.css000066400000000000000000000001021516122265000235550ustar00rootroot00000000000000body { background: red; background-image: url(./react.svg); } mini-css-extract-plugin-2.10.2/test/fixtures/style-url.js000066400000000000000000000000321516122265000234030ustar00rootroot00000000000000import './style-url.css'; mini-css-extract-plugin-2.10.2/test/helpers/000077500000000000000000000000001516122265000207035ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/helpers/compile.js000066400000000000000000000003141516122265000226670ustar00rootroot00000000000000export default (compiler) => new Promise((resolve, reject) => { compiler.run((error, stats) => { if (error) { return reject(error); } return resolve(stats); }); }); mini-css-extract-plugin-2.10.2/test/helpers/getCompiler.js000066400000000000000000000027551516122265000235240ustar00rootroot00000000000000import path from "path"; import { Volume, createFsFromVolume } from "memfs"; import webpack from "webpack"; import MiniCssExtractPlugin from "../../src"; export default (fixture, loaderOptions = {}, config = {}) => { const { outputFileSystem, ...cnfg } = config; const fullConfig = { mode: "development", devtool: cnfg.devtool || false, context: path.resolve(__dirname, "../fixtures"), entry: path.resolve(__dirname, "../fixtures", fixture), output: { path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", chunkFilename: "[name].chunk.js", }, module: { rules: [ { test: /\.css$/i, rules: [ { loader: MiniCssExtractPlugin.loader, options: loaderOptions || {}, }, { loader: "css-loader", }, ], }, { test: /\.svg$/, type: "asset/resource", generator: { filename: "[name][ext]", }, }, ], }, plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional filename: "[name].css", chunkFilename: "[id].css", }), ], ...cnfg, }; const compiler = webpack(fullConfig); compiler.outputFileSystem = !outputFileSystem ? createFsFromVolume(new Volume()) : outputFileSystem; return compiler; }; mini-css-extract-plugin-2.10.2/test/helpers/getErrors.js000066400000000000000000000001671516122265000232210ustar00rootroot00000000000000import normalizeErrors from "./normalizeErrors"; export default (stats) => normalizeErrors(stats.compilation.errors); mini-css-extract-plugin-2.10.2/test/helpers/getWarnings.js000066400000000000000000000001711516122265000235300ustar00rootroot00000000000000import normalizeErrors from "./normalizeErrors"; export default (stats) => normalizeErrors(stats.compilation.warnings); mini-css-extract-plugin-2.10.2/test/helpers/index.js000066400000000000000000000005541516122265000223540ustar00rootroot00000000000000export { default as compile } from "./compile"; export { default as getCompiler } from "./getCompiler"; export { default as runInJsDom } from "./runInJsDom"; export { default as getWarnings } from "./getWarnings"; export { default as getErrors } from "./getErrors"; export { default as source } from "./source"; export { default as readAsset } from "./readAsset"; mini-css-extract-plugin-2.10.2/test/helpers/normalizeErrors.js000066400000000000000000000006741516122265000244450ustar00rootroot00000000000000/** * @param {string} str string * @returns {string} string without cwd */ function removeCWD(str) { const isWin = process.platform === "win32"; let cwd = process.cwd(); if (isWin) { str = str.replace(/\\/g, "/"); cwd = cwd.replace(/\\/g, "/"); } return str.replace(new RegExp(cwd, "g"), ""); } export default (errors) => errors.map((error) => removeCWD(error.toString().split("\n").slice(0, 2).join("\n")), ); mini-css-extract-plugin-2.10.2/test/helpers/readAsset.js000066400000000000000000000010041516122265000231470ustar00rootroot00000000000000import path from "path"; export default (asset, compiler, stats) => { const usedFs = compiler.outputFileSystem; const outputPath = stats.compilation.outputOptions.path; let data = ""; let targetFile = asset; const queryStringIdx = targetFile.indexOf("?"); if (queryStringIdx >= 0) { targetFile = targetFile.slice(0, queryStringIdx); } try { data = usedFs.readFileSync(path.join(outputPath, targetFile)).toString(); } catch (error) { data = error.toString(); } return data; }; mini-css-extract-plugin-2.10.2/test/helpers/runInJsDom.js000066400000000000000000000017351516122265000232770ustar00rootroot00000000000000import jsdom from "jsdom"; import { readAsset } from "./index"; /** * @param {string} assetName asset name * @param {Compiler} compiler compiler * @param {Stats} stats stats * @param {(dom: JSDOM, code: string) => void} testFn test function */ function runInJsDom(assetName, compiler, stats, testFn) { const bundle = readAsset(assetName, compiler, stats); const virtualConsole = new jsdom.VirtualConsole(); virtualConsole.sendTo(console); const dom = new jsdom.JSDOM( ` style-loader test

Body

`, { resources: "usable", runScripts: "dangerously", virtualConsole, }, ); dom.window.eval(bundle); testFn(dom, bundle); // free memory associated with the window dom.window.close(); } export default runInJsDom; mini-css-extract-plugin-2.10.2/test/helpers/source.js000066400000000000000000000011501516122265000225360ustar00rootroot00000000000000/** * @param {string} name name * @param {Stats} stats stats * @returns {undefined | string | Buffer} source */ export default function getSource(name, stats) { const { modules } = stats.toJson({ source: true }); for (let i = 0; i < modules.length; i++) { const module = modules[i]; if (module.modules && module.modules.length > 0) { for (let j = 0; j < module.modules.length; j++) { if (module.modules[j].name === name) { return module.modules[j].source; } } } else if (module.name === name) { return module.source; } } return undefined; } mini-css-extract-plugin-2.10.2/test/helpers/yn.js000066400000000000000000000005321516122265000216670ustar00rootroot00000000000000/** * @param {string} value value * @param {boolean} defaultValue default value * @returns {boolean} yes or no */ function yn(value, defaultValue = false) { if (/^(?:y|yes|true|1|on)$/i.test(value)) { return true; } if (/^(?:n|no|false|0|off)$/i.test(value)) { return false; } return defaultValue; } module.exports = yn; mini-css-extract-plugin-2.10.2/test/hooks.test.js000066400000000000000000000044261516122265000217060ustar00rootroot00000000000000/* eslint-env browser */ import path from "path"; import { Template } from "webpack"; import MiniCssExtractPlugin from "../src"; import { compile, getCompiler, runInJsDom } from "./helpers/index"; describe("hooks", () => { it("beforeTagInsert", async () => { const webpackCompiler = getCompiler( "insert.js", {}, { mode: "none", output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), { /** * @param {import("webpack").Compiler} compiler compiler */ apply: (compiler) => { compiler.hooks.compilation.tap("sri", (compilation) => { MiniCssExtractPlugin.getCompilationHooks( compilation, ).beforeTagInsert.tap("sri", (source, varNames) => Template.asString([ source, `${varNames.tag}.setAttribute("integrity", "sriHashes[${varNames.chunkId}]");`, ]), ); }); }, }, { /** * @param {import("webpack").Compiler} compiler compiler */ apply: (compiler) => { compiler.hooks.compilation.tap("href", (compilation) => { MiniCssExtractPlugin.getCompilationHooks( compilation, ).beforeTagInsert.tap("changeHref", (source, varNames) => Template.asString([ source, `${varNames.tag}.setAttribute("href", "https://github.com/webpack/mini-css-extract-plugin");`, ]), ); }); }, }, ], }, ); const stats = await compile(webpackCompiler); runInJsDom("main.bundle.js", webpackCompiler, stats, (dom) => { const [tag] = dom.window.document.head.getElementsByTagName("link"); expect(tag.getAttribute("integrity")).toBe("sriHashes[chunkId]"); expect(tag.getAttribute("href")).toBe( "https://github.com/webpack/mini-css-extract-plugin", ); }); }); }); mini-css-extract-plugin-2.10.2/test/ignoreOrder-option.test.js000066400000000000000000000022211516122265000243370ustar00rootroot00000000000000import path from "path"; import webpack from "webpack"; describe("IgnoreOrder", () => { it("should emit warnings", (done) => { const casesDirectory = path.resolve(__dirname, "cases"); const directoryForCase = path.resolve(casesDirectory, "ignoreOrderFalse"); const webpackConfig = require( path.resolve(directoryForCase, "webpack.config.js"), ); const compiler = webpack({ ...webpackConfig, mode: "development", context: directoryForCase, cache: false, }); compiler.run((err1, stats) => { expect(stats.hasWarnings()).toBe(true); done(); }); }); it("should not emit warnings", (done) => { const casesDirectory = path.resolve(__dirname, "cases"); const directoryForCase = path.resolve(casesDirectory, "ignoreOrder"); const webpackConfig = require( path.resolve(directoryForCase, "webpack.config.js"), ); const compiler = webpack({ ...webpackConfig, mode: "development", context: directoryForCase, cache: false, }); compiler.run((err1, stats) => { expect(stats.hasWarnings()).toBe(false); done(); }); }); }); mini-css-extract-plugin-2.10.2/test/insert-option.test.js000066400000000000000000000052651516122265000233770ustar00rootroot00000000000000import path from "path"; import MiniCssExtractPlugin from "../src"; import { compile, getCompiler, getErrors, getWarnings, runInJsDom, } from "./helpers/index"; describe("insert option", () => { it("should work without insert option", async () => { const compiler = getCompiler( "insert.js", {}, { mode: "none", output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it("should work when insert option is string", async () => { const compiler = getCompiler( "insert.js", {}, { mode: "none", output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", insert: "#existing-style", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it("should work when insert option is function", async () => { const compiler = getCompiler( "insert.js", {}, { mode: "none", output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", // eslint-disable-next-line object-shorthand insert: function (linkTag) { const reference = document.querySelector("#existing-style"); if (reference) { reference.parentNode.insertBefore(linkTag, reference); } }, }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); }); mini-css-extract-plugin-2.10.2/test/linkTag-option.test.js000066400000000000000000000046111516122265000234560ustar00rootroot00000000000000/* eslint-env browser */ import path from "path"; import MiniCssExtractPlugin from "../src"; import { compile, getCompiler, getErrors, getWarnings, runInJsDom, } from "./helpers/index"; describe("linkType option", () => { it("should work without linkType option", async () => { const compiler = getCompiler( "attributes.js", {}, { output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it('should work when linkType option is "false"', async () => { const compiler = getCompiler( "attributes.js", {}, { output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ linkType: false, filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it('should work when linkType option is "text/css"', async () => { const compiler = getCompiler( "attributes.js", {}, { output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ linkType: "text/css", filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); }); mini-css-extract-plugin-2.10.2/test/manual/000077500000000000000000000000001516122265000205165ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/manual/README.md000066400000000000000000000000001516122265000217630ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/manual/index.html000066400000000000000000000073561516122265000225260ustar00rootroot00000000000000 mini-css-extract-plugin testcase
Initial CSS: Must be green

Hot Module Replacement

RED
GREEN
BLUE

Hot Module Replacement + CSS modules

RED
GREEN
BLUE

Lazy CSS: Must be red, but turn green when .

But turn orange, when . Additional clicks have no effect.

(HMR) Now modify the color in lazy.css and save it: This should remain orange.

Refresh and press buttons in reverse order: This should turn green instead.

Lazy CSS Module: Must be red, but turn green when .

Lazy CSS: Turn off the network and .

An error should have appeared.

Now if you turn the network back on and click it again, it should turn aqua.

Preloaded CSS: Must be green.

displays an alert but has no styling effect.

Preloaded inlined CSS: Must be green.

displays an alert but has no styling effect.

CrossOriginLoading Option: Must be red.

loads chunks with crossorigin attribute and should turn green.

Prefetch CSS: Must be blue and green after click.

to load prefetched chunk

Preload CSS: Must be white, then blue, then green after click.

to load preloaded chunk

mini-css-extract-plugin-2.10.2/test/manual/src/000077500000000000000000000000001516122265000213055ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/test/manual/src/crossorigin.css000066400000000000000000000000531516122265000243560ustar00rootroot00000000000000.crossorigin { background: lightgreen; } mini-css-extract-plugin-2.10.2/test/manual/src/crossorigin.js000066400000000000000000000000341516122265000242010ustar00rootroot00000000000000import "./crossorigin.css"; mini-css-extract-plugin-2.10.2/test/manual/src/index.js000066400000000000000000000062601516122265000227560ustar00rootroot00000000000000/* eslint-env browser */ /* global __webpack_public_path__ */ /* eslint-disable no-console, camelcase, no-global-assign */ import "./initial.css"; import "./simple.css"; import classes from "./simple.module.css"; console.log("___CLASSES__"); console.log(classes); function replaceClass(originalClass, newClass) { const nodes = document.querySelectorAll(`.${originalClass}`); nodes.forEach((node) => { const { classList } = node; classList.remove(originalClass); classList.add(newClass); }); } Object.keys(classes).forEach((localClass) => { replaceClass(localClass, classes[localClass]); }); let oldClasses = classes; if (module.hot) { module.hot.accept("./simple.module.css", () => { Object.keys(oldClasses).forEach((localClass) => { replaceClass(oldClasses[localClass], localClass); }); Object.keys(classes).forEach((localClass) => { replaceClass(localClass, classes[localClass]); }); oldClasses = classes; // eslint-disable-next-line no-alert alert("HMR updated CSS module"); }); } const handleError = (err) => { document.querySelector(".errors").textContent += `\n${err.toString()}`; console.error(err); }; const makeButton = (className, fn, shouldDisable = true) => { const button = document.querySelector(className); button.addEventListener("click", () => { if (shouldDisable) { button.disabled = true; } fn() .then(() => { button.disabled = false; }) .catch(handleError); }); }; makeButton(".lazy-button", () => import("./lazy")); makeButton(".lazy-button2", () => import("./lazy2.css")); makeButton(".lazy-module-button", () => import("./lazy.module.css").then((module) => { console.log(module); document .querySelector(".lazy-css-module") // eslint-disable-next-line no-underscore-dangle .classList.add(module.__esModule ? module.default.style : module.style); }), ); makeButton( ".preloaded-button1", () => import(/* webpackChunkName: "preloaded1" */ "./preloaded1"), ); makeButton( ".preloaded-button2", () => import(/* webpackChunkName: "preloaded2" */ "./preloaded2"), ); makeButton(".lazy-failure-button", () => import("./lazy-failure"), false); makeButton(".crossorigin", () => { const originalPublicPath = __webpack_public_path__; __webpack_public_path__ = "http://127.0.0.1:8080/dist/"; const promise = import("./crossorigin").then(() => { const lastTwoElements = Array.from(document.head.children).slice(-2); const hasCrossorigin = lastTwoElements.every( (element) => element.crossOrigin === "anonymous", ); if (!hasCrossorigin) { throw new Error('Chunks miss crossorigin="anonymous" attribute.'); } }); __webpack_public_path__ = originalPublicPath; return promise; }); const worker = new Worker(new URL("./worker.js", import.meta.url)); worker.postMessage("test"); worker.addEventListener("message", (event) => { console.log(`Received message from worker: ${event.data}`); }); makeButton( ".prefetch-button", () => import(/* webpackPrefetch: true */ "./prefetch.css"), false, ); makeButton( ".preload-button", // eslint-disable-next-line import/extensions () => import("./preload.js"), false, ); mini-css-extract-plugin-2.10.2/test/manual/src/initial.css000066400000000000000000000000531516122265000234460ustar00rootroot00000000000000.initial-css { background: lightgreen; } mini-css-extract-plugin-2.10.2/test/manual/src/lazy-failure.css000066400000000000000000000000521516122265000244200ustar00rootroot00000000000000.lazy-failure-css { background: aqua; } mini-css-extract-plugin-2.10.2/test/manual/src/lazy-failure.js000066400000000000000000000000671516122265000242520ustar00rootroot00000000000000/* eslint-env browser */ import "./lazy-failure.css"; mini-css-extract-plugin-2.10.2/test/manual/src/lazy.css000066400000000000000000000000501516122265000227710ustar00rootroot00000000000000.lazy-css { background: lightgreen; } mini-css-extract-plugin-2.10.2/test/manual/src/lazy.js000066400000000000000000000000571516122265000226240ustar00rootroot00000000000000/* eslint-env browser */ import "./lazy.css"; mini-css-extract-plugin-2.10.2/test/manual/src/lazy.module.css000066400000000000000000000000451516122265000242610ustar00rootroot00000000000000.style { background: lightgreen; } mini-css-extract-plugin-2.10.2/test/manual/src/lazy2.css000066400000000000000000000000421516122265000230540ustar00rootroot00000000000000.lazy-css { background: peru; } mini-css-extract-plugin-2.10.2/test/manual/src/prefetch.css000066400000000000000000000000631516122265000236160ustar00rootroot00000000000000.prefetch { background: lightgreen !important; } mini-css-extract-plugin-2.10.2/test/manual/src/preload.css000066400000000000000000000000621516122265000234430ustar00rootroot00000000000000.preload { background: lightgreen !important; } mini-css-extract-plugin-2.10.2/test/manual/src/preload.js000066400000000000000000000001741516122265000232730ustar00rootroot00000000000000async function load() { setTimeout(() => { import(/* webpackPreload: true */ "./preload.css"); }, 1000); } load(); mini-css-extract-plugin-2.10.2/test/manual/src/preloaded1.css000066400000000000000000000000471516122265000240400ustar00rootroot00000000000000.preloaded-css1 { background: red; } mini-css-extract-plugin-2.10.2/test/manual/src/preloaded1.js000066400000000000000000000001331516122265000236600ustar00rootroot00000000000000/* global alert */ /* eslint-disable no-alert */ import "./preloaded1.css"; alert("Ok"); mini-css-extract-plugin-2.10.2/test/manual/src/preloaded2.css000066400000000000000000000000471516122265000240410ustar00rootroot00000000000000.preloaded-css2 { background: red; } mini-css-extract-plugin-2.10.2/test/manual/src/preloaded2.js000066400000000000000000000001411516122265000236600ustar00rootroot00000000000000/* eslint-env browser */ /* eslint-disable no-alert */ import "./preloaded2.css"; alert("Ok"); mini-css-extract-plugin-2.10.2/test/manual/src/simple.css000066400000000000000000000001041516122265000233030ustar00rootroot00000000000000.r { color: red; } .g { color: green; } .b { color: blue; } mini-css-extract-plugin-2.10.2/test/manual/src/simple.module.css000066400000000000000000000001071516122265000245720ustar00rootroot00000000000000.rr { color: red; } .gg { color: green; } .bb { color: blue; } mini-css-extract-plugin-2.10.2/test/manual/src/worker.css000066400000000000000000000000361516122265000233270ustar00rootroot00000000000000body { background: green; } mini-css-extract-plugin-2.10.2/test/manual/src/worker.js000066400000000000000000000004601516122265000231540ustar00rootroot00000000000000import "./worker.css"; // eslint-disable-next-line no-undef self.onmessage = (event) => { console.log(`Received message from application: ${event.data}`); // eslint-disable-next-line no-undef self.postMessage("I'm alive!"); }; async function load() { return import("./simple.css"); } load(); mini-css-extract-plugin-2.10.2/test/manual/webpack.config.js000066400000000000000000000035431516122265000237410ustar00rootroot00000000000000const Self = require("../../"); const yn = require("../helpers/yn"); const ENABLE_HMR = typeof process.env.ENABLE_HMR !== "undefined" ? Boolean(process.env.ENABLE_HMR) : true; const ENABLE_ES_MODULE = typeof process.env.ES_MODULE !== "undefined" ? Boolean(process.env.ES_MODULE) : true; const OLD_API = typeof process.env.OLD_API !== "undefined" ? yn(process.env.OLD_API) : false; console.log("OPTIONS:"); console.log("ENABLE_HMR:", ENABLE_HMR); console.log("ENABLE_ES_MODULE:", ENABLE_ES_MODULE); console.log("OLD_API:", OLD_API); module.exports = { devtool: false, mode: "development", output: { chunkFilename: "[name].chunk.js", publicPath: "/dist/", crossOriginLoading: "anonymous", }, module: { rules: [ { test: /\.css$/, exclude: [/\.module\.css$/i], use: [ { loader: Self.loader, }, { loader: "css-loader", options: { esModule: ENABLE_ES_MODULE, }, }, ], }, { test: /\.module\.css$/i, use: [ { loader: Self.loader, options: { esModule: ENABLE_ES_MODULE, }, }, { loader: "css-loader", options: { modules: true, esModule: ENABLE_ES_MODULE, }, }, ], }, ], }, plugins: [ new Self({ filename: "[name].css", chunkFilename: "[name].chunk.css", experimentalUseImportModule: OLD_API, }), ], devServer: { hot: ENABLE_HMR, static: { directory: __dirname, watch: { // prevent page reload on source change so that we can test HMR ignored: /src/, }, }, headers: { "Access-Control-Allow-Origin": "*", }, }, }; mini-css-extract-plugin-2.10.2/test/nonce.test.js000066400000000000000000000032471516122265000216650ustar00rootroot00000000000000/* eslint-env browser */ import path from "path"; import MiniCssExtractPlugin from "../src"; import { compile, getCompiler, getErrors, getWarnings, runInJsDom, } from "./helpers/index"; describe("nonce", () => { it("should work when __webpack_nonce__ is not defined", async () => { const compiler = getCompiler( "no-nonce.js", {}, { mode: "none", output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it("should work when __webpack_nonce__ is defined", async () => { const compiler = getCompiler( "nonce.js", {}, { mode: "none", output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom) => { expect(dom.serialize()).toMatchSnapshot("DOM"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); }); mini-css-extract-plugin-2.10.2/test/normalize-url.test.js000066400000000000000000000005571516122265000233640ustar00rootroot00000000000000import normalizeUrl from "../src/hmr/normalize-url"; import dataUrls from "./fixtures/json/data-urls.json"; describe("normalize-url", () => { for (const entry of dataUrls.main) { const [url, expected] = entry; it(`should work with "${url}" url`, async () => { const result = normalizeUrl(url); expect(result).toBe(expected); }); } }); mini-css-extract-plugin-2.10.2/test/runtime-option.test.js000066400000000000000000000055501516122265000235530ustar00rootroot00000000000000/* eslint-env browser */ import path from "path"; import MiniCssExtractPlugin from "../src"; import { compile, getCompiler, getErrors, getWarnings, runInJsDom, } from "./helpers/index"; describe("noRuntime option", () => { it("should work without the 'runtime' option", async () => { const compiler = getCompiler( "attributes.js", {}, { output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom, bundle) => { expect(dom.serialize()).toMatchSnapshot("DOM"); expect(bundle).toContain("webpack/runtime/css loading"); expect(bundle).toContain("webpack/runtime/get mini-css chunk filename"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it("should work when the 'runtime' option is 'false'", async () => { const compiler = getCompiler( "attributes.js", {}, { output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ runtime: false, filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom, bundle) => { expect(dom.serialize()).toMatchSnapshot("DOM"); expect(bundle).not.toContain("webpack/runtime/css loading"); expect(bundle).not.toContain( "webpack/runtime/get mini-css chunk filename", ); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); it("should work when the 'runtime' option is 'true'", async () => { const compiler = getCompiler( "attributes.js", {}, { output: { publicPath: "", path: path.resolve(__dirname, "../outputs"), filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ runtime: true, filename: "[name].css", }), ], }, ); const stats = await compile(compiler); runInJsDom("main.bundle.js", compiler, stats, (dom, bundle) => { expect(dom.serialize()).toMatchSnapshot("DOM"); expect(bundle).toContain("webpack/runtime/css loading"); expect(bundle).toContain("webpack/runtime/get mini-css chunk filename"); }); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); }); mini-css-extract-plugin-2.10.2/test/stringifyLocal.test.js000066400000000000000000000011401516122265000235420ustar00rootroot00000000000000import { stringifyLocal } from "../src/utils"; describe("stringifyLocal", () => { it("primitive", async () => { const testObj = "classA"; expect(stringifyLocal(testObj)).toBe('"classA"'); }); it("arrow function", async () => { const testFn = () => "classA"; expect(stringifyLocal(testFn)).toBe('() => "classA"'); }); it("function", async () => { // eslint-disable-next-line func-style const testFn = function testFn() { return "classA"; }; expect(stringifyLocal(testFn)).toBe( 'function testFn() {\n return "classA";\n }', ); }); }); mini-css-extract-plugin-2.10.2/test/validate-loader-options.test.js000066400000000000000000000032061516122265000253040ustar00rootroot00000000000000import { compile, getCompiler } from "./helpers"; describe("validate options", () => { const tests = { publicPath: { success: ["/public/path/to/"], failure: [true], }, esModule: { success: [true, false], failure: [1], }, defaultExport: { success: [true, false], failure: [1], }, unknown: { success: [], failure: [1, true, false, "test", /test/, [], {}, { foo: "bar" }], }, }; function stringifyValue(value) { if ( Array.isArray(value) || (value && typeof value === "object" && value.constructor === Object) ) { return JSON.stringify(value); } return value; } async function createTestCase(key, value, type) { it(`should ${ type === "success" ? "successfully validate" : "throw an error on" } the "${key}" option with "${stringifyValue(value)}" value`, async () => { const compiler = getCompiler("simple.js", { [key]: value }); let stats; try { stats = await compile(compiler); } finally { if (type === "success") { expect(stats.hasErrors()).toBe(false); } else if (type === "failure") { const { compilation: { errors }, } = stats; expect(errors).toHaveLength(1); expect(() => { throw new Error(errors[0].error.message); }).toThrowErrorMatchingSnapshot(); } } }); } for (const [key, values] of Object.entries(tests)) { for (const type of Object.keys(values)) { for (const value of values[type]) { createTestCase(key, value, type); } } } }); mini-css-extract-plugin-2.10.2/test/validate-plugin-options.test.js000066400000000000000000000040511516122265000253330ustar00rootroot00000000000000import MiniCssExtractPlugin from "../src"; describe("validate options", () => { const tests = { filename: { success: [ "[name].css", ({ name }) => `${name.replace("/js/", "/css/")}.css`, ], failure: [true, "/styles/[name].css", ""], }, chunkFilename: { success: ["[id].css", ({ chunk }) => `${chunk.id}.${chunk.name}.css`], failure: [true, "/styles/[id].css", ""], }, ignoreOrder: { success: [true, false], failure: [1], }, insert: { success: ["#existing-style", function insert() {}], failure: [1, true, {}], }, attributes: { success: [{}, { id: "id" }], failure: [true], }, linkType: { success: [true, false, "text/css"], failure: [1, {}, [], "invalid/type"], }, unknown: { success: [], failure: [1, true, false, "test", /test/, [], {}, { foo: "bar" }], }, }; function stringifyValue(value) { if ( Array.isArray(value) || (value && typeof value === "object" && value.constructor === Object) ) { return JSON.stringify(value); } return value; } async function createTestCase(key, value, type) { it(`should ${ type === "success" ? "successfully validate" : "throw an error on" } the "${key}" option with "${stringifyValue(value)}" value`, async () => { let error; try { // eslint-disable-next-line no-new new MiniCssExtractPlugin({ [key]: value }); } catch (err) { if (err.name !== "ValidationError") { throw err; } error = err; } finally { if (type === "success") { expect(error).toBeUndefined(); } else if (type === "failure") { expect(() => { throw error; }).toThrowErrorMatchingSnapshot(); } } }); } for (const [key, values] of Object.entries(tests)) { for (const type of Object.keys(values)) { for (const value of values[type]) { createTestCase(key, value, type); } } } }); mini-css-extract-plugin-2.10.2/tsconfig.json000066400000000000000000000004211516122265000207660ustar00rootroot00000000000000{ "compilerOptions": { "target": "esnext", "moduleResolution": "node", "allowJs": true, "checkJs": true, "strict": true, "types": ["node"], "resolveJsonModule": true, "allowSyntheticDefaultImports": true }, "include": ["./src/**/*"] } mini-css-extract-plugin-2.10.2/types/000077500000000000000000000000001516122265000174265ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/types/hmr/000077500000000000000000000000001516122265000202145ustar00rootroot00000000000000mini-css-extract-plugin-2.10.2/types/hmr/hotModuleReplacement.d.ts000066400000000000000000000005661516122265000251350ustar00rootroot00000000000000declare namespace _exports { export { GetScriptSrc, HotHTMLLinkElement }; } declare function _exports( moduleId: number | string, options: { filename?: string; locals?: boolean; }, ): () => void; export = _exports; type GetScriptSrc = (filename?: string) => string[]; type HotHTMLLinkElement = HTMLLinkElement & { isLoaded: boolean; visited: boolean; }; mini-css-extract-plugin-2.10.2/types/hmr/normalize-url.d.ts000066400000000000000000000001111516122265000235770ustar00rootroot00000000000000declare function _exports(urlString: string): string; export = _exports; mini-css-extract-plugin-2.10.2/types/hooks.d.ts000066400000000000000000000006561516122265000213520ustar00rootroot00000000000000export function getCompilationHooks( compilation: Compilation, ): MiniCssExtractPluginCompilationHooks; export type Compilation = import("webpack").Compilation; export type VarNames = { tag: string; chunkId: string; href: string; resolve: string; reject: string; }; export type MiniCssExtractPluginCompilationHooks = { beforeTagInsert: import("tapable").SyncWaterfallHook< [string, VarNames], string >; }; mini-css-extract-plugin-2.10.2/types/index.d.ts000066400000000000000000000251471516122265000213400ustar00rootroot00000000000000export = MiniCssExtractPlugin; declare class MiniCssExtractPlugin { /** * @param {Compiler["webpack"]} webpack webpack * @returns {CssModuleConstructor} CSS module constructor */ static getCssModule(webpack: Compiler["webpack"]): CssModuleConstructor; /** * @param {Compiler["webpack"]} webpack webpack * @returns {CssDependencyConstructor} CSS dependency constructor */ static getCssDependency( webpack: Compiler["webpack"], ): CssDependencyConstructor; /** * Returns all hooks for the given compilation * @param {Compilation} compilation the compilation * @returns {MiniCssExtractPluginCompilationHooks} hooks */ static getCompilationHooks( compilation: Compilation, ): MiniCssExtractPluginCompilationHooks; /** * @param {PluginOptions=} options options */ constructor(options?: PluginOptions | undefined); /** * @private * @type {WeakMap>} */ private _sortedModulesCache; /** * @private * @type {NormalizedPluginOptions} */ private options; /** * @private * @type {RuntimeOptions} */ private runtimeOptions; /** * @param {Compiler} compiler compiler */ apply(compiler: Compiler): void; /** * @private * @param {Chunk} chunk chunk * @param {ChunkGraph} chunkGraph chunk graph * @returns {Iterable} modules */ private getChunkModules; /** * @private * @param {Compilation} compilation compilation * @param {Chunk} chunk chunk * @param {CssModule[]} modules modules * @param {Compilation["requestShortener"]} requestShortener request shortener * @returns {Set} css modules */ private sortModules; /** * @private * @param {Compiler} compiler compiler * @param {Compilation} compilation compilation * @param {Chunk} chunk chunk * @param {CssModule[]} modules modules * @param {Compiler["requestShortener"]} requestShortener request shortener * @param {string} filenameTemplate filename template * @param {Parameters['output']['filename'], string | undefined>>[0]} pathData path data * @returns {Source} source */ private renderContentAsset; } declare namespace MiniCssExtractPlugin { export { pluginName, pluginSymbol, loader, Schema, Compiler, Compilation, ChunkGraph, Chunk, ChunkGroup, Module, Dependency, Source, Configuration, WebpackError, AssetInfo, LoaderDependency, Filename, ChunkFilename, LoaderOptions, PluginOptions, NormalizedPluginOptions, RuntimeOptions, CssModuleDependency, CssModule, CssModuleConstructor, CssDependency, CssDependencyOptions, CssDependencyConstructor, VarNames, MiniCssExtractPluginCompilationHooks, }; } /** @typedef {import("schema-utils/declarations/validate").Schema} Schema */ /** @typedef {import("webpack").Compiler} Compiler */ /** @typedef {import("webpack").Compilation} Compilation */ /** @typedef {import("webpack").ChunkGraph} ChunkGraph */ /** @typedef {import("webpack").Chunk} Chunk */ /** @typedef {import("webpack").ChunkGroup} ChunkGroup */ /** @typedef {import("webpack").Module} Module */ /** @typedef {import("webpack").Dependency} Dependency */ /** @typedef {import("webpack").sources.Source} Source */ /** @typedef {import("webpack").Configuration} Configuration */ /** @typedef {import("webpack").WebpackError} WebpackError */ /** @typedef {import("webpack").AssetInfo} AssetInfo */ /** @typedef {import("./loader.js").Dependency} LoaderDependency */ /** @typedef {NonNullable['output']['filename']>} Filename */ /** @typedef {NonNullable['output']['chunkFilename']>} ChunkFilename */ /** * @typedef {object} LoaderOptions * @property {string | ((resourcePath: string, rootContext: string) => string)=} publicPath public path * @property {boolean=} emit true when need to emit, otherwise false * @property {boolean=} esModule need to generate ES module syntax * @property {string=} layer a layer * @property {boolean=} defaultExport true when need to use default export, otherwise false */ /** * @typedef {object} PluginOptions * @property {Filename=} filename filename * @property {ChunkFilename=} chunkFilename chunk filename * @property {boolean=} ignoreOrder true when need to ignore order, otherwise false * @property {string | ((linkTag: HTMLLinkElement) => void)=} insert link insert place or a custom insert function * @property {Record=} attributes link attributes * @property {string | false | "text/css"=} linkType value of a link type attribute * @property {boolean=} runtime true when need to generate runtime code, otherwise false * @property {boolean=} experimentalUseImportModule true when need to use `experimentalUseImportModule` API, otherwise false */ /** * @typedef {object} NormalizedPluginOptions * @property {Filename=} filename filename * @property {ChunkFilename=} chunkFilename chunk filename * @property {boolean} ignoreOrder true when need to ignore order, otherwise false * @property {string | ((linkTag: HTMLLinkElement) => void)=} insert a link insert place or a custom insert function * @property {Record=} attributes link attributes * @property {string | false | "text/css"=} linkType value of a link type attribute * @property {boolean} runtime true when need to generate runtime code, otherwise false * @property {boolean=} experimentalUseImportModule true when need to use `experimentalUseImportModule` API, otherwise false */ /** * @typedef {object} RuntimeOptions * @property {string | ((linkTag: HTMLLinkElement) => void)=} insert a link insert place or a custom insert function * @property {string | false | "text/css"} linkType value of a link type attribute * @property {Record=} attributes link attributes */ declare const pluginName: "mini-css-extract-plugin"; declare const pluginSymbol: unique symbol; declare var loader: string; type Schema = import("schema-utils/declarations/validate").Schema; type Compiler = import("webpack").Compiler; type Compilation = import("webpack").Compilation; type ChunkGraph = import("webpack").ChunkGraph; type Chunk = import("webpack").Chunk; type ChunkGroup = import("webpack").ChunkGroup; type Module = import("webpack").Module; type Dependency = import("webpack").Dependency; type Source = import("webpack").sources.Source; type Configuration = import("webpack").Configuration; type WebpackError = import("webpack").WebpackError; type AssetInfo = import("webpack").AssetInfo; type LoaderDependency = import("./loader.js").Dependency; type Filename = NonNullable["output"]["filename"]>; type ChunkFilename = NonNullable< Required["output"]["chunkFilename"] >; type LoaderOptions = { /** * public path */ publicPath?: | (string | ((resourcePath: string, rootContext: string) => string)) | undefined; /** * true when need to emit, otherwise false */ emit?: boolean | undefined; /** * need to generate ES module syntax */ esModule?: boolean | undefined; /** * a layer */ layer?: string | undefined; /** * true when need to use default export, otherwise false */ defaultExport?: boolean | undefined; }; type PluginOptions = { /** * filename */ filename?: Filename | undefined; /** * chunk filename */ chunkFilename?: ChunkFilename | undefined; /** * true when need to ignore order, otherwise false */ ignoreOrder?: boolean | undefined; /** * link insert place or a custom insert function */ insert?: (string | ((linkTag: HTMLLinkElement) => void)) | undefined; /** * link attributes */ attributes?: Record | undefined; /** * value of a link type attribute */ linkType?: (string | false | "text/css") | undefined; /** * true when need to generate runtime code, otherwise false */ runtime?: boolean | undefined; /** * true when need to use `experimentalUseImportModule` API, otherwise false */ experimentalUseImportModule?: boolean | undefined; }; type NormalizedPluginOptions = { /** * filename */ filename?: Filename | undefined; /** * chunk filename */ chunkFilename?: ChunkFilename | undefined; /** * true when need to ignore order, otherwise false */ ignoreOrder: boolean; /** * a link insert place or a custom insert function */ insert?: (string | ((linkTag: HTMLLinkElement) => void)) | undefined; /** * link attributes */ attributes?: Record | undefined; /** * value of a link type attribute */ linkType?: (string | false | "text/css") | undefined; /** * true when need to generate runtime code, otherwise false */ runtime: boolean; /** * true when need to use `experimentalUseImportModule` API, otherwise false */ experimentalUseImportModule?: boolean | undefined; }; type RuntimeOptions = { /** * a link insert place or a custom insert function */ insert?: (string | ((linkTag: HTMLLinkElement) => void)) | undefined; /** * value of a link type attribute */ linkType: string | false | "text/css"; /** * link attributes */ attributes?: Record | undefined; }; type CssModuleDependency = { context: string | null; identifier: string; identifierIndex: number; content: Buffer; sourceMap?: Buffer; media?: string; supports?: string; layer?: any; assetsInfo?: Map; assets?: { [key: string]: Source; }; }; type CssModule = Module & { content: Buffer; media?: string; sourceMap?: Buffer; supports?: string; layer?: string; assets?: { [key: string]: Source; }; assetsInfo?: Map; }; type CssModuleConstructor = { new (dependency: CssModuleDependency): CssModule; }; type CssDependency = Dependency & CssModuleDependency; type CssDependencyOptions = Omit; type CssDependencyConstructor = { new ( loaderDependency: CssDependencyOptions, context: string | null, identifierIndex: number, ): CssDependency; }; type VarNames = { /** * tag */ tag: string; /** * chunk id */ chunkId: string; /** * href */ href: string; /** * resolve */ resolve: string; /** * reject */ reject: string; }; type MiniCssExtractPluginCompilationHooks = { /** * before tag insert hook */ beforeTagInsert: import("tapable").SyncWaterfallHook< [string, VarNames], string >; /** * link preload hook */ linkPreload: SyncWaterfallHook<[string, Chunk]>; /** * link prefetch hook */ linkPrefetch: SyncWaterfallHook<[string, Chunk]>; }; import { SyncWaterfallHook } from "tapable"; mini-css-extract-plugin-2.10.2/types/loader.d.ts000066400000000000000000000060751516122265000214760ustar00rootroot00000000000000export = loader; /** * @this {import("webpack").LoaderContext} * @param {string} content content * @returns {string | undefined} the original content */ declare function loader( this: import("webpack").LoaderContext, content: string, ): string | undefined; declare namespace loader { export { hotLoader, pitch, Schema, Compiler, Compilation, Chunk, Module, Source, AssetInfo, NormalModule, LoaderOptions, Locals, EXPECTED_ANY, Dependency, }; } import MiniCssExtractPlugin = require("./index"); /** @typedef {import("schema-utils/declarations/validate").Schema} Schema */ /** @typedef {import("webpack").Compiler} Compiler */ /** @typedef {import("webpack").Compilation} Compilation */ /** @typedef {import("webpack").Chunk} Chunk */ /** @typedef {import("webpack").Module} Module */ /** @typedef {import("webpack").sources.Source} Source */ /** @typedef {import("webpack").AssetInfo} AssetInfo */ /** @typedef {import("webpack").NormalModule} NormalModule */ /** @typedef {import("./index.js").LoaderOptions} LoaderOptions */ /** @typedef {{ [key: string]: string | Function }} Locals */ /** @typedef {any} EXPECTED_ANY */ /** * @typedef {object} Dependency * @property {string} identifier identifier * @property {string | null} context context * @property {Buffer} content content * @property {string=} media media * @property {string=} supports supports * @property {string=} layer layer * @property {Buffer=} sourceMap source map */ /** * @param {string} code code * @param {{ loaderContext: import("webpack").LoaderContext, options: LoaderOptions, locals: Locals | undefined }} context context * @returns {string} code and HMR code */ declare function hotLoader( code: string, context: { loaderContext: import("webpack").LoaderContext; options: LoaderOptions; locals: Locals | undefined; }, ): string; /** * @this {import("webpack").LoaderContext} * @param {string} request request */ declare function pitch( this: import("webpack").LoaderContext, request: string, ): void; type Schema = import("schema-utils/declarations/validate").Schema; type Compiler = import("webpack").Compiler; type Compilation = import("webpack").Compilation; type Chunk = import("webpack").Chunk; type Module = import("webpack").Module; type Source = import("webpack").sources.Source; type AssetInfo = import("webpack").AssetInfo; type NormalModule = import("webpack").NormalModule; type LoaderOptions = import("./index.js").LoaderOptions; type Locals = { [key: string]: string | Function; }; type EXPECTED_ANY = any; type Dependency = { /** * identifier */ identifier: string; /** * context */ context: string | null; /** * content */ content: Buffer; /** * media */ media?: string | undefined; /** * supports */ supports?: string | undefined; /** * layer */ layer?: string | undefined; /** * source map */ sourceMap?: Buffer | undefined; }; mini-css-extract-plugin-2.10.2/types/utils.d.ts000066400000000000000000000050121516122265000213560ustar00rootroot00000000000000export type Compilation = import("webpack").Compilation; export type Module = import("webpack").Module; export type LoaderContext = import("webpack").LoaderContext; export const ABSOLUTE_PUBLIC_PATH: "webpack:///mini-css-extract-plugin/"; export const AUTO_PUBLIC_PATH: "__mini_css_extract_plugin_public_path_auto__"; export const BASE_URI: "webpack://"; export const MODULE_TYPE: "css/mini-extract"; export const SINGLE_DOT_PATH_SEGMENT: "__mini_css_extract_plugin_single_dot_path_segment__"; /** * @param {Module} a a * @param {Module} b b * @returns {0 | 1 | -1} result of comparing */ export function compareModulesByIdentifier(a: Module, b: Module): 0 | 1 | -1; /** * @param {Record} map value map * @returns {boolean | ((value: string) => string)} true/false, when unconditionally true/false, or a template function to determine the value at runtime */ export function compileBooleanMatcher( map: Record, ): boolean | ((value: string) => string); /** * @param {LoaderContext} loaderContext loader context * @param {string | Buffer} code code * @param {string} filename filename * @returns {Record} exports of a module */ export function evalModuleCode( loaderContext: LoaderContext, code: string | Buffer, filename: string, ): Record; /** * @param {Compilation} compilation compilation * @param {string | number} id module id * @returns {null | Module} the found module */ export function findModuleById( compilation: Compilation, id: string | number, ): null | Module; /** * @param {string} filename filename * @param {string} outputPath output path * @param {boolean} enforceRelative true when need to enforce relative path, otherwise false * @returns {string} undo path */ export function getUndoPath( filename: string, outputPath: string, enforceRelative: boolean, ): string; /** * @param {string | Function} value local * @returns {string} stringified local */ export function stringifyLocal(value: string | Function): string; /** * @param {LoaderContext} loaderContext the loader context * @param {string} request a request * @returns {string} a stringified request */ export function stringifyRequest( loaderContext: LoaderContext, request: string, ): string; /** @typedef {import("webpack").Compilation} Compilation */ /** @typedef {import("webpack").Module} Module */ /** @typedef {import("webpack").LoaderContext} LoaderContext */ /** * @returns {boolean} always returns true */ export function trueFn(): boolean;